11#include <analysis/DecayDescriptor/DecayString.h>
12#include <analysis/DecayDescriptor/DecayDescriptorParticle.h>
13#include <analysis/dataobjects/Particle.h>
48 int match(
const T* p,
int iDaughter_p);
63 std::vector<std::vector<std::pair<int, std::string>>>
m_hierarchy;
90 std::vector<std::vector<std::pair<int, std::string>>>
getHierarchyOfSelected(
const std::vector<std::pair<int, std::string>>&
95 bool init(
const std::string& str);
191 std::vector<const Particle*>& selparticles,
192 std::vector<std::string>& selnames);
Represents a particle in the DecayDescriptor.
The DecayDescriptor stores information about a decay tree or parts of a decay tree.
DecayDescriptor()
Default ctor.
bool isIgnoreBrems() const
Check if added Brems gammas shall be ignored.
bool isIgnoreRadiatedPhotons() const
Check if additional radiated photons shall be ignored.
bool init(const std::string &str)
Initialise the DecayDescriptor from given string.
bool isSelfConjugated() const
Is the decay or the particle self conjugated.
const DecayDescriptor * getDaughter(int i) const
return i-th daughter (0 based index).
DecayDescriptor & operator=(const DecayDescriptor &)=default
Want the default assignment operator.
DecayDescriptorParticle m_mother
Mother of the decay ('left side').
bool m_isInitOK
Is this object initialized correctly?
bool getSelectionParticlesAndNames(const Particle *particle, std::vector< const Particle * > &selparticles, std::vector< std::string > &selnames)
Takes as input argument a (reconstructed) Particle, tries to match with this DecayDescriptorElement a...
bool isIgnoreNeutrino() const
Check if missing neutrinos shall be ignored.
std::vector< int > getSelectionPDGCodes()
Return list of PDG codes of selected particles.
bool isInitOK() const
Check if the object initialized correctly.
int match(const MCParticle *p)
See match(const Particle* p).
int match(const Particle *p)
Check if the DecayDescriptor matches with the given Particle.
int getMatchedDaughter()
Particle daughter ID set by previous call of match(const Particle*) function.
int getNDaughters() const
return number of direct daughters.
int getProperty() const
return property of the particle.
void resetMatch()
Reset results from previous call of the match() function.
bool m_isNULL
Is this the NULL object?
bool isIgnoreMassive() const
Check if missing massive final state particles shall be ignored.
std::vector< std::vector< std::pair< int, std::string > > > getHierarchyOfSelected()
Function to get hierarchy of selected particles and their names (for python use)
bool isIgnoreGamma() const
Check if missing gammas shall be ignored.
static const DecayDescriptor & s_NULL
Singleton object representing NULL.
std::vector< std::string > getSelectionNames()
Return list of human readable names of selected particles.
std::vector< DecayDescriptor > m_daughters
Direct daughters of the decaying particle.
std::vector< std::vector< std::pair< int, std::string > > > m_hierarchy
Collection of hierarchy paths of selected particles.
std::vector< const Particle * > getSelectionParticles(const Particle *particle)
Get a vector of pointers with selected daughters in the decay tree.
int m_iDaughter_p
ID of the Daughter Particle* matched to this DecayDescriptor.
int match(const T *p, int iDaughter_p)
Internally called by match(Particle*) and match(MCParticle*) function.
bool isIgnoreIntermediate() const
Check if intermediate resonances/particles shall be ignored.
const DecayDescriptorParticle * getMother() const
return mother.
int m_properties
Particle property.
DecayDescriptor(const DecayDescriptor &)=default
Want the default copy ctor.
A Class to store the Monte Carlo particle information.
Class to store reconstructed particles.
@ c_IsIgnoreNeutrino
Is the particle MC matched with the ignore missing neutrino flag set?
@ c_IsIgnoreRadiatedPhotons
Is the particle MC matched with the ignore radiated photon flag set?
@ c_IsIgnoreGamma
Is the particle MC matched with the ignore missing gamma flag set?
@ c_IsIgnoreBrems
Is the particle MC matched with the ignore added Brems gamma flag set?
@ c_IsIgnoreIntermediate
Is the particle MC matched with the ignore intermediate resonances flag set?
@ c_IsIgnoreMassive
Is the particle MC matched with the ignore missing massive particle flag set?
boost::variant< boost::recursive_wrapper< DecayStringDecay >, DecayStringParticle > DecayString
The DecayStringElement can be either a DecayStringDecay or a vector of mother particles.
Abstract base class for different kinds of events.