![]() |
ATLAS Offline Software
|
Class describing a truth particle in the MC record. More...
#include <TruthParticle_v1.h>
Classes | |
| struct | Polarization |
| Single container for full polarization information. More... | |
Public Member Functions | |
| TruthParticle_v1 () | |
| Default constructor. | |
| void | toPersistent () |
| Function making sure that the object is ready for persistification. | |
Functions identifying the particle in the MC record | |
| void | setPdgId (int pid) |
| Set PDG ID code. | |
| int | pdgId () const |
| PDG ID code. | |
| int | pdg_id () const |
| PDG ID code. | |
| int | absPdgId () const |
| Absolute PDG ID code (often useful). | |
| int | uid () const |
| Unique ID. | |
| void | setUid (int value) |
| Set unique ID. | |
| int | status () const |
| Status code. | |
| void | setStatus (int value) |
| Set status code. | |
Links to the production and decay vertices | |
| bool | hasProdVtx () const |
| Check for a production vertex on this particle. | |
| const TruthVertex_v1 * | prodVtx () const |
| The production vertex of this particle. | |
| const TruthVertex_v1 * | production_vertex () const |
| The production vertex of this particle. | |
| const ElementLink< TruthVertexContainer > & | prodVtxLink () const |
| The production vertex link of this particle. | |
| void | setProdVtxLink (const ElementLink< TruthVertexContainer > &link) |
| Set the production vertex of the particle. | |
| bool | hasDecayVtx () const |
| Check for a decay vertex on this particle. | |
| const TruthVertex_v1 * | decayVtx () const |
| The decay vertex of this particle. | |
| const TruthVertex_v1 * | end_vertex () const |
| The decay vertex of this particle. | |
| const ElementLink< TruthVertexContainer > & | decayVtxLink () const |
| The decay vertex link of this particle. | |
| void | setDecayVtxLink (const ElementLink< TruthVertexContainer > &link) |
| Set the decay vertex of the particle. | |
Particle connection / origin / decay information | |
| size_t | nParents () const |
| Number of parents of this particle. | |
| const TruthParticle_v1 * | parent (size_t i) const |
| Retrieve the i-th mother (TruthParticle) of this TruthParticle. | |
| const TruthParticle_v1 * | parent () const |
| size_t | nChildren () const |
| Number of children of this particle. | |
| const TruthParticle_v1 * | child (size_t i) const |
| Retrieve the i-th mother (TruthParticle) of this TruthParticle. | |
4-momentum accessors specific to truth particles | |
| double | abseta () const |
| The absolute pseudorapidity ( \(|\eta|\)) of the particle. | |
| double | absrapidity () const |
| The true absolute rapidity ( \(|y|\)) of the particle. | |
| float | px () const |
| The x component of the particle's momentum. | |
| void | setPx (float value) |
| Set the x component of the particle's momentum. | |
| float | py () const |
| The y component of the particle's momentum. | |
| void | setPy (float value) |
| Set the y component of the particle's momentum. | |
| float | pz () const |
| The z component of the particle's momentum. | |
| void | setPz (float value) |
| Set the z component of the particle's momentum. | |
| void | setE (float value) |
| Set the energy of the particle. | |
| void | setM (float value) |
| Also store the mass. | |
Particle species information | |
Just convenience methods here, since they all just forward to the utility functions operating on the PDG particle ID code. | |
| double | charge () const |
| Physical charge. | |
| int | threeCharge () const |
| 3 x the physical charge (so it can be an int for quarks) | |
| bool | isCharged () const |
| Whether the particle is electrically charged. | |
| bool | isNeutral () const |
| Whether the particle is electrically neutral. | |
| bool | isPhoton () const |
| Whether the particle is a photon. | |
| bool | isLepton () const |
| Whether the particle is a lepton. | |
| bool | isChLepton () const |
| Whether the particle is a charged lepton. | |
| bool | isElectron () const |
| Whether the particle is an electron (or positron). | |
| bool | isMuon () const |
| Whether the particle is a muon (or antimuon). | |
| bool | isTau () const |
| Whether the particle is a tau (or antitau). | |
| bool | isNeutrino () const |
| Whether the particle is a neutrino (or antineutrino). | |
| bool | isHadron () const |
| Whether the particle is a hadron. | |
| bool | isMeson () const |
| Whether the particle is a meson. | |
| bool | isBaryon () const |
| Whether the particle is a baryon. | |
| bool | hasStrange () const |
| Whether the particle contains a strange quark (or antiquark). | |
| bool | hasCharm () const |
| Whether the particle contains a charm quark (or antiquark). | |
| bool | hasBottom () const |
| Whether the particle contains a bottom quark (or antiquark). | |
| bool | isLightMeson () const |
| Determine if the PID is that of a light flavour (not b or c) meson. | |
| bool | isLightBaryon () const |
| Determine if the PID is that of a light flavour (not b or c) baryon. | |
| bool | isLightHadron () const |
| Determine if the PID is that of a light flavour (not b or c) hadron. | |
| bool | isHeavyMeson () const |
| Determine if the PID is that of a heavy flavour (b or c) meson. | |
| bool | isHeavyBaryon () const |
| Determine if the PID is that of a heavy flavour (b or c) baryon. | |
| bool | isHeavyHadron () const |
| Determine if the PID is that of a heavy flavour (b or c) hadron. | |
| bool | isBottomMeson () const |
| Determine if the PID is that of a b-meson. | |
| bool | isBottomBaryon () const |
| Determine if the PID is that of a b-baryon. | |
| bool | isBottomHadron () const |
| Determine if the PID is that of a b-hadron. | |
| bool | isCharmMeson () const |
| Determine if the PID is that of a c-meson. | |
| bool | isCharmBaryon () const |
| Determine if the PID is that of a c-baryon. | |
| bool | isCharmHadron () const |
| Determine if the PID is that of a c-hadron. | |
| bool | isStrangeMeson () const |
| Determine if the PID is that of a strange meson. | |
| bool | isStrangeBaryon () const |
| Determine if the PID is that of a strange baryon. | |
| bool | isStrangeHadron () const |
| Determine if the PID is that of a strange hadron. | |
| bool | isQuark () const |
| Check if this particle is a quark. | |
| bool | isParton () const |
| Check if this particle is a parton. | |
| bool | isTop () const |
| Check if this particle is a top quark. | |
| bool | isW () const |
| Check if this particle is a W boson. | |
| bool | isZ () const |
| Check if this particle is a Z boson. | |
| bool | isHiggs () const |
| Check if this particle is a Higgs boson. | |
| bool | isResonance () const |
| Check if this particle is a resonant state. | |
| bool | isGenSpecific () const |
| Check if this is a generator specific (non-physical) particle. | |
| bool | isBSM () const |
| Check if this is a BSM particle. | |
| bool | isGenStable () const |
| Check if this is generator stable particle. | |
| bool | isStable () const |
| Check if this is a stable particle (generator or simulation produced). | |
| bool | isSimulationParticle () const |
| Check if this particle was produced during the simulation. | |
Functions for getting and setting user properties | |
| template<class T> | |
| XAOD_AUXDATA_DEPRECATED T & | auxdata (const std::string &name, const std::string &clsname="") |
| Fetch an aux data variable, as a non-const reference. | |
| template<class T> | |
| XAOD_AUXDATA_DEPRECATED const T & | auxdata (const std::string &name, const std::string &clsname="") const |
| Fetch an aux data variable, as a const reference. | |
| template<class T> | |
| XAOD_AUXDATA_DEPRECATED bool | isAvailable (const std::string &name, const std::string &clsname="") const |
| Check if a user property is available for reading or not. | |
| template<class T> | |
| XAOD_AUXDATA_DEPRECATED bool | isAvailableWritable (const std::string &name, const std::string &clsname="") const |
| Check if a user property is available for writing or not. | |
Polarization properties (optional) | |
| enum | PolParam { polarizationPhi = 0 , polarizationTheta = 1 } |
| Polarization parameter types. More... | |
| bool | polarizationParameter (float &value, PolParam parameter) const |
| Accessor for polarization parameters. | |
| bool | setPolarizationParameter (float value, PolParam parameter) |
| Set method for polarization parameter values. | |
| float | polarizationParameter (PolParam parameter) const |
| Convenience accessor for a polariozation parameter. | |
| Polarization | polarization () const |
| Retrieve a full Polarization with a single call. | |
Functions implementing the xAOD::IParticle interface | |
| |
| typedef IParticle::FourMom_t | FourMom_t |
| Definition of the 4-momentum type. | |
| typedef ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > | GenVecFourMom_t |
| Base 4 Momentum type for TruthParticle. | |
| virtual double | pt () const override final |
| The transverse momentum ( \(p_T\)) of the particle. | |
| virtual double | eta () const override final |
| The pseudorapidity ( \(\eta\)) of the particle. | |
| virtual double | phi () const override final |
| The azimuthal angle ( \(\phi\)) of the particle. | |
| virtual double | m () const override final |
| The mass of the particle. | |
| virtual double | e () const override final |
| The total energy of the particle. | |
| virtual double | rapidity () const override final |
| The true rapidity ( \(y\)) of the particle. | |
| virtual FourMom_t | p4 () const override final |
| The full 4-momentum of the particle. | |
| GenVecFourMom_t | genvecP4 () const |
| The full 4-momentum of the particle : GenVector form. | |
| virtual Type::ObjectType | type () const override final |
| The type of the object as a simple enumeration. | |
Class describing a truth particle in the MC record.
The xAOD truth record mimicks the structure of HepMC. Truth particles and truth vertices form a decay tree. Where each truth particle is connected to a single production and decay vertex. And each vertex is connected to one or more incoming, and one or more outgoing particles.
Definition at line 37 of file TruthParticle_v1.h.
Definition of the 4-momentum type.
Definition at line 147 of file TruthParticle_v1.h.
| typedef ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > xAOD::TruthParticle_v1::GenVecFourMom_t |
Base 4 Momentum type for TruthParticle.
Definition at line 157 of file TruthParticle_v1.h.
Polarization parameter types.
| Enumerator | |
|---|---|
| polarizationPhi | Polarization in ( \(\phi\)). |
| polarizationTheta | Polarization in ( \(\theta\)). |
Definition at line 321 of file TruthParticle_v1.h.
| xAOD::TruthParticle_v1::TruthParticle_v1 | ( | ) |
Default constructor.
Definition at line 31 of file TruthParticle_v1.cxx.
| double xAOD::TruthParticle_v1::abseta | ( | ) | const |
The absolute pseudorapidity ( \(|\eta|\)) of the particle.
Definition at line 213 of file TruthParticle_v1.cxx.
| double xAOD::TruthParticle_v1::absrapidity | ( | ) | const |
The true absolute rapidity ( \(|y|\)) of the particle.
Definition at line 218 of file TruthParticle_v1.cxx.
|
inlineinherited |
Fetch an aux data variable, as a non-const reference.
This function provides an easy way for users to decorate objects with auxiliary data.
Take note that this function is slow. Should not be used inside time-critical code.
Definition at line 98 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
|
inlineinherited |
Fetch an aux data variable, as a const reference.
This function provides an easy way for users to retrieve auxiliary decorations from an object.
Take note that this function is slow. Should not be used inside time-critical code.
Definition at line 118 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
| double xAOD::TruthParticle_v1::charge | ( | ) | const |
Physical charge.
| const TruthParticle_v1 * xAOD::TruthParticle_v1::child | ( | size_t | i | ) | const |
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition at line 144 of file TruthParticle_v1.cxx.
| const TruthVertex_v1 * xAOD::TruthParticle_v1::decayVtx | ( | ) | const |
The decay vertex of this particle.
| const ElementLink< TruthVertexContainer > & xAOD::TruthParticle_v1::decayVtxLink | ( | ) | const |
The decay vertex link of this particle.
|
finaloverridevirtual |
The total energy of the particle.
Implements xAOD::IParticle.
|
inline |
|
finaloverridevirtual |
The pseudorapidity ( \(\eta\)) of the particle.
Implements xAOD::IParticle.
Definition at line 169 of file TruthParticle_v1.cxx.
| TruthParticle_v1::GenVecFourMom_t xAOD::TruthParticle_v1::genvecP4 | ( | ) | const |
The full 4-momentum of the particle : GenVector form.
Definition at line 196 of file TruthParticle_v1.cxx.
| bool xAOD::TruthParticle_v1::hasBottom | ( | ) | const |
Whether the particle contains a bottom quark (or antiquark).
| bool xAOD::TruthParticle_v1::hasCharm | ( | ) | const |
Whether the particle contains a charm quark (or antiquark).
| bool xAOD::TruthParticle_v1::hasDecayVtx | ( | ) | const |
Check for a decay vertex on this particle.
| bool xAOD::TruthParticle_v1::hasProdVtx | ( | ) | const |
Check for a production vertex on this particle.
Definition at line 69 of file TruthParticle_v1.cxx.
| bool xAOD::TruthParticle_v1::hasStrange | ( | ) | const |
Whether the particle contains a strange quark (or antiquark).
|
inlineinherited |
Check if a user property is available for reading or not.
This function should be used to check if a user property which may or may not exist, is set on the object.
Definition at line 135 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
|
inlineinherited |
Check if a user property is available for writing or not.
This function can be used to check whether it will be possible to set a user property on the object.
Definition at line 152 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
| bool xAOD::TruthParticle_v1::isBaryon | ( | ) | const |
Whether the particle is a baryon.
| bool xAOD::TruthParticle_v1::isBottomBaryon | ( | ) | const |
Determine if the PID is that of a b-baryon.
| bool xAOD::TruthParticle_v1::isBottomHadron | ( | ) | const |
Determine if the PID is that of a b-hadron.
| bool xAOD::TruthParticle_v1::isBottomMeson | ( | ) | const |
Determine if the PID is that of a b-meson.
| bool xAOD::TruthParticle_v1::isBSM | ( | ) | const |
Check if this is a BSM particle.
| bool xAOD::TruthParticle_v1::isCharged | ( | ) | const |
Whether the particle is electrically charged.
| bool xAOD::TruthParticle_v1::isCharmBaryon | ( | ) | const |
Determine if the PID is that of a c-baryon.
Specifically, the heaviest quark is a c: a baryon containing a b & c is a b-baryon and NOT a c-baryon. To test for the simpler case, just use a combination of hasCharm() and isBaryon().
| bool xAOD::TruthParticle_v1::isCharmHadron | ( | ) | const |
Determine if the PID is that of a c-hadron.
| bool xAOD::TruthParticle_v1::isCharmMeson | ( | ) | const |
Determine if the PID is that of a c-meson.
Specifically, the heaviest quark is a c: a B_c is a b-meson and NOT a c-meson. Charmonia (closed charm) are counted as c-mesons here.
| bool xAOD::TruthParticle_v1::isChLepton | ( | ) | const |
Whether the particle is a charged lepton.
| bool xAOD::TruthParticle_v1::isElectron | ( | ) | const |
Whether the particle is an electron (or positron).
| bool xAOD::TruthParticle_v1::isGenSpecific | ( | ) | const |
Check if this is a generator specific (non-physical) particle.
| bool xAOD::TruthParticle_v1::isGenStable | ( | ) | const |
Check if this is generator stable particle.
Definition at line 311 of file TruthParticle_v1.cxx.
| bool xAOD::TruthParticle_v1::isHadron | ( | ) | const |
Whether the particle is a hadron.
| bool xAOD::TruthParticle_v1::isHeavyBaryon | ( | ) | const |
Determine if the PID is that of a heavy flavour (b or c) baryon.
| bool xAOD::TruthParticle_v1::isHeavyHadron | ( | ) | const |
Determine if the PID is that of a heavy flavour (b or c) hadron.
| bool xAOD::TruthParticle_v1::isHeavyMeson | ( | ) | const |
Determine if the PID is that of a heavy flavour (b or c) meson.
| bool xAOD::TruthParticle_v1::isHiggs | ( | ) | const |
Check if this particle is a Higgs boson.
| bool xAOD::TruthParticle_v1::isLepton | ( | ) | const |
Whether the particle is a lepton.
| bool xAOD::TruthParticle_v1::isLightBaryon | ( | ) | const |
Determine if the PID is that of a light flavour (not b or c) baryon.
| bool xAOD::TruthParticle_v1::isLightHadron | ( | ) | const |
Determine if the PID is that of a light flavour (not b or c) hadron.
| bool xAOD::TruthParticle_v1::isLightMeson | ( | ) | const |
Determine if the PID is that of a light flavour (not b or c) meson.
| bool xAOD::TruthParticle_v1::isMeson | ( | ) | const |
Whether the particle is a meson.
| bool xAOD::TruthParticle_v1::isMuon | ( | ) | const |
Whether the particle is a muon (or antimuon).
| bool xAOD::TruthParticle_v1::isNeutral | ( | ) | const |
Whether the particle is electrically neutral.
| bool xAOD::TruthParticle_v1::isNeutrino | ( | ) | const |
Whether the particle is a neutrino (or antineutrino).
| bool xAOD::TruthParticle_v1::isParton | ( | ) | const |
Check if this particle is a parton.
| bool xAOD::TruthParticle_v1::isPhoton | ( | ) | const |
Whether the particle is a photon.
| bool xAOD::TruthParticle_v1::isQuark | ( | ) | const |
Check if this particle is a quark.
| bool xAOD::TruthParticle_v1::isResonance | ( | ) | const |
Check if this particle is a resonant state.
| bool xAOD::TruthParticle_v1::isSimulationParticle | ( | ) | const |
Check if this particle was produced during the simulation.
Definition at line 313 of file TruthParticle_v1.cxx.
| bool xAOD::TruthParticle_v1::isStable | ( | ) | const |
Check if this is a stable particle (generator or simulation produced).
Definition at line 312 of file TruthParticle_v1.cxx.
| bool xAOD::TruthParticle_v1::isStrangeBaryon | ( | ) | const |
Determine if the PID is that of a strange baryon.
| bool xAOD::TruthParticle_v1::isStrangeHadron | ( | ) | const |
Determine if the PID is that of a strange hadron.
| bool xAOD::TruthParticle_v1::isStrangeMeson | ( | ) | const |
Determine if the PID is that of a strange meson.
| bool xAOD::TruthParticle_v1::isTau | ( | ) | const |
Whether the particle is a tau (or antitau).
| bool xAOD::TruthParticle_v1::isTop | ( | ) | const |
Check if this particle is a top quark.
| bool xAOD::TruthParticle_v1::isW | ( | ) | const |
Check if this particle is a W boson.
| bool xAOD::TruthParticle_v1::isZ | ( | ) | const |
Check if this particle is a Z boson.
|
finaloverridevirtual |
The mass of the particle.
Note, not necessarily = \(E^2-p^2\) if not on mass shell.
Implements xAOD::IParticle.
| size_t xAOD::TruthParticle_v1::nChildren | ( | ) | const |
Number of children of this particle.
Definition at line 135 of file TruthParticle_v1.cxx.
| size_t xAOD::TruthParticle_v1::nParents | ( | ) | const |
Number of parents of this particle.
Definition at line 117 of file TruthParticle_v1.cxx.
|
finaloverridevirtual |
The full 4-momentum of the particle.
Note that m may not be right, though, if not on mass shell. In which case p4().M() will be different from m().
Implements xAOD::IParticle.
Definition at line 191 of file TruthParticle_v1.cxx.
|
inline |
Definition at line 109 of file TruthParticle_v1.h.
| const TruthParticle_v1 * xAOD::TruthParticle_v1::parent | ( | size_t | i | ) | const |
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
Definition at line 126 of file TruthParticle_v1.cxx.
|
inline |
|
finaloverridevirtual |
The azimuthal angle ( \(\phi\)) of the particle.
Implements xAOD::IParticle.
Definition at line 176 of file TruthParticle_v1.cxx.
| TruthParticle_v1::Polarization xAOD::TruthParticle_v1::polarization | ( | ) | const |
Retrieve a full Polarization with a single call.
Definition at line 380 of file TruthParticle_v1.cxx.
Accessor for polarization parameters.
Generic C++ code should use this function to retrieve the polarization parameters of a truth particle. Since these parameters are optional, the function is designed to tell the user whether the requested parameter could be retrieved or not.
| value | The polarization parameter value read from the object |
| parameter | The polarization parameter that we are interested in |
true if the retrieval was successful, false if it wasn't Definition at line 325 of file TruthParticle_v1.cxx.
Convenience accessor for a polariozation parameter.
Throws an exception if the request can't be completed. It should mostly be used in PyROOT, as the other form of this function is very hard to use there. But one needs to know for sure that the requested parameter will exist.
| parameter | The polarion parameter that we are interested in |
Definition at line 366 of file TruthParticle_v1.cxx.
|
inline |
| const TruthVertex * xAOD::TruthParticle_v1::prodVtx | ( | ) | const |
The production vertex of this particle.
Definition at line 75 of file TruthParticle_v1.cxx.
| const ElementLink< TruthVertexContainer > & xAOD::TruthParticle_v1::prodVtxLink | ( | ) | const |
The production vertex link of this particle.
|
finaloverridevirtual |
The transverse momentum ( \(p_T\)) of the particle.
Implements xAOD::IParticle.
Definition at line 161 of file TruthParticle_v1.cxx.
| float xAOD::TruthParticle_v1::px | ( | ) | const |
The x component of the particle's momentum.
| float xAOD::TruthParticle_v1::py | ( | ) | const |
The y component of the particle's momentum.
| float xAOD::TruthParticle_v1::pz | ( | ) | const |
The z component of the particle's momentum.
|
finaloverridevirtual |
The true rapidity ( \(y\)) of the particle.
Implements xAOD::IParticle.
Definition at line 186 of file TruthParticle_v1.cxx.
| void xAOD::TruthParticle_v1::setDecayVtxLink | ( | const ElementLink< TruthVertexContainer > & | link | ) |
Set the decay vertex of the particle.
| void xAOD::TruthParticle_v1::setE | ( | float | value | ) |
| void xAOD::TruthParticle_v1::setM | ( | float | value | ) |
Also store the mass.
Definition at line 236 of file TruthParticle_v1.cxx.
Set method for polarization parameter values.
In order to keep the symmetry with the getter function, this setter communicates a possible failure in its operation through a return value. Setting a polariozation parameter is much less likely to fail than retrieving one, but in some situations it may still happen...
| value | The polarization parameter value to set on the object |
| parameter | The polarization parameter type that we want to set |
true if the operation was successful, or false if it wasn't Definition at line 348 of file TruthParticle_v1.cxx.
| void xAOD::TruthParticle_v1::setProdVtxLink | ( | const ElementLink< TruthVertexContainer > & | link | ) |
Set the production vertex of the particle.
| int xAOD::TruthParticle_v1::status | ( | ) | const |
Status code.
| int xAOD::TruthParticle_v1::threeCharge | ( | ) | const |
3 x the physical charge (so it can be an int for quarks)
| void xAOD::TruthParticle_v1::toPersistent | ( | ) |
Function making sure that the object is ready for persistification.
Definition at line 393 of file TruthParticle_v1.cxx.
|
finaloverridevirtual |
The type of the object as a simple enumeration.
Implements xAOD::IParticle.
Definition at line 200 of file TruthParticle_v1.cxx.
| int xAOD::TruthParticle_v1::uid | ( | ) | const |
Unique ID.