21 #ifndef yap_ParticleCombination_h
22 #define yap_ParticleCombination_h
24 #include "fwd/ParticleCombination.h"
26 #include "fwd/Model.h"
71 const std::vector<unsigned>&
indices()
const
79 std::shared_ptr<ParticleCombination>
parent()
const
94 void addDaughter(std::shared_ptr<ParticleCombination> daughter);
99 std::weak_ptr<ParticleCombination>
Parent_;
113 constexpr
bool equal_always(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B)
117 inline bool equal_by_shared_pointer(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B)
121 bool equal_by_ordered_content(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B);
124 bool equal_by_orderless_content(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B);
127 bool equal_down(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B);
130 bool equal_up(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B);
133 bool equal_up_and_down(
const std::shared_ptr<const ParticleCombination>& A,
const std::shared_ptr<const ParticleCombination>& B);
143 bool disjoint(
const ParticleCombinationVector& pcv);
164 std::string
indices_string(
const ParticleCombination& pc, std::string before =
"(", std::string after =
")");
167 std::string
to_string(
const ParticleCombination& pc);
bool consistent() const
Checks consistency of object.
Definition: ParticleCombination.cxx:39
ParticleCombinationVector Daughters_
vector of daughters
Definition: ParticleCombination.h:102
std::weak_ptr< ParticleCombination > Parent_
Parent of the particle combination.
Definition: ParticleCombination.h:99
const bool is_final_state_particle_combination(const ParticleCombination &pc)
Definition: ParticleCombination.h:146
ParticleCombination & operator=(const ParticleCombination &)=delete
Copy assignment is deleted.
bool equal_up(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by checking selves and then parents
Definition: ParticleCombination.cxx:214
bool disjoint(const ParticleCombinationVector &pcv)
Definition: ParticleCombination.cxx:87
bool equal_by_shared_pointer(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by shared_ptr only
Definition: ParticleCombination.h:117
Stores combinations of particle indices.
Definition: ParticleCombination.h:43
void prune_particle_combinations(ParticleCombinationSet &PCs)
only keep particleCombinations with the highest number of indices in their top-most parent ...
Definition: ParticleCombination.cxx:108
bool equal_by_ordered_content(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by indices only
Definition: ParticleCombination.cxx:168
std::string to_string_with_parent(const ParticleCombination &pc)
convert ParticleCombination with top-most parent to string
Definition: ParticleCombination.cxx:159
const ParticleCombinationVector & daughters() const
Get vector of daughters (const)
Definition: ParticleCombination.h:75
const ParticleCombination & origin(const ParticleCombination &pc)
Definition: ParticleCombination.h:150
constexpr bool equal_always(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination, returning true always
Definition: ParticleCombination.h:113
bool equal_up_and_down(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by checking selves, daughters, and parents ...
Definition: ParticleCombination.cxx:236
std::shared_ptr< ParticleCombination > parent() const
get parent (const)
Definition: ParticleCombination.h:79
std::vector< unsigned > Indices_
vector indices of daughters
Definition: ParticleCombination.h:105
std::ostream & operator<<(std::ostream &os, const DecayChannel &dc)
<< operator
Definition: DecayChannel.h:127
void addDaughter(std::shared_ptr< ParticleCombination > daughter)
Definition: ParticleCombination.cxx:15
const bool is_from_initial_state_particle_combination(const ParticleCombination &pc, const Model &m)
Definition: ParticleCombination.h:157
const std::vector< unsigned > & indices() const
Get vector of indices (const)
Definition: ParticleCombination.h:71
ParticleCombination()=default
default constructor
ParticleCombination(unsigned index)
Final-state-particle constructor, see ParticleCombinationCache::fsp for details.
Definition: ParticleCombination.h:51
Class implementing a PWA model.
Definition: Model.h:56
bool equal_down(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by checking selves and then all daughters ...
Definition: ParticleCombination.cxx:187
const bool is_initial_state_particle_combination(const ParticleCombination &pc, const Model &m)
Definition: ParticleCombination.cxx:98
Caches list of ParticleCombination's.
Definition: ParticleCombinationCache.h:36
bool equal_down_by_orderless_content(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
Definition: ParticleCombination.cxx:274
std::string to_string(const CachedValue::Status &S)
streaming operator for CachedValue::Status
Definition: CachedValue.cxx:27
std::string indices_string(const ParticleCombination &pc, std::string before="(", std::string after=")")
Get indices listed as string.
Definition: ParticleCombination.cxx:124
bool equal_by_orderless_content(const std::shared_ptr< const ParticleCombination > &A, const std::shared_ptr< const ParticleCombination > &B)
compare shared_ptr's to ParticleCombination by indices, disregarding order
Definition: ParticleCombination.cxx:250