LCIO
02.17
|
The LCIO Monte Carlo particle. More...
#include <MCParticle.h>
Public Types | |
typedef MCParticle | lcobject_type |
Useful typedef for template programming with LCIO. More... | |
![]() | |
typedef std::type_index | ext_index |
typedef std::shared_ptr< void > | ext_type |
typedef std::map< ext_index, ext_type > | ext_map |
Public Member Functions | |
virtual | ~MCParticle () |
Destructor. More... | |
virtual double | getEnergy () const =0 |
Returns the energy of the particle (at the vertex) in [GeV] computed from the particle's momentum and mass - only float used in files. More... | |
virtual const float * | getSpin () const =0 |
Returns the spin (helicity) vector of the particle. More... | |
virtual const int * | getColorFlow () const =0 |
Returns the color flow as defined by the generator. More... | |
virtual const MCParticleVec & | getParents () const =0 |
Returns the parents of this particle. More... | |
virtual const MCParticleVec & | getDaughters () const =0 |
Returns the daughters of this particle. More... | |
virtual int | getPDG () const =0 |
Returns the PDG code of the particle. More... | |
virtual int | getGeneratorStatus () const =0 |
Returns the status for particles as defined by the generator, typically 0 empty line 1 undecayed particle, stable in the generator 2 particle decayed in the generator 3 documentation line. More... | |
virtual int | getSimulatorStatus () const =0 |
Returns the status for particles from the simulation, e.g. More... | |
virtual bool | isCreatedInSimulation () const =0 |
True if the particle has been created by the simulation program (rather than the generator). More... | |
virtual bool | isBackscatter () const =0 |
True if the particle was created by the simulator as a result of an interaction or decay in non-tracking region, e.g. More... | |
virtual bool | vertexIsNotEndpointOfParent () const =0 |
True if the particle was created as a result of a continuous process where the parent particle continues, i.e. More... | |
virtual bool | isDecayedInTracker () const =0 |
True if the particle decayed or interacted in a tracking region. More... | |
virtual bool | isDecayedInCalorimeter () const =0 |
True if the particle decayed or interacted (non-continuous interaction, particle terminated) in non-tracking region. More... | |
virtual bool | hasLeftDetector () const =0 |
True if the particle left the world volume undecayed. More... | |
virtual bool | isStopped () const =0 |
True if the particle lost all kinetic energy inside the world volume and did not decay. More... | |
virtual bool | isOverlay () const =0 |
True if the particle has been overlayed by the simulation (or digitization) program. More... | |
virtual const double * | getVertex () const =0 |
Returns the production vertex of the particle in [mm]. More... | |
virtual float | getTime () const =0 |
The creation time of the particle in [ns] wrt. More... | |
virtual const double * | getEndpoint () const =0 |
Returns the endpoint of the particle in [mm] if the endpoint has been set explicetly. More... | |
virtual const double * | getMomentum () const =0 |
Returns the particle's 3-momentum at the production vertex in [GeV]. More... | |
virtual const double * | getMomentumAtEndpoint () const =0 |
Returns the particle's 3-momentum at the endpoint in [GeV] Only float used in files. More... | |
virtual double | getMass () const =0 |
Returns the mass of the particle in [GeV] - only float used in files. More... | |
virtual float | getCharge () const =0 |
Returns the particle's charge. More... | |
![]() | |
virtual | ~LCObject () |
Destructor. More... | |
virtual int | id () const =0 |
Returns an object id for internal (debugging) use in LCIO. More... | |
virtual LCObject * | clone () const |
Returns an object id for internal (debugging) use in LCIO. More... | |
![]() | |
template<class V > | |
V::ext_type | ext () |
Provides access to an extension object - the type and ownership is defined by the class V which should be a subtype of LCExtension, LCOwnedExtension, LCExtensionVector, LCExtensionList,... More... | |
template<class V > | |
const V::ext_type | ext () const |
Provides access to an extension object - the type and ownership is defined by the class V which should be a subtype of LCExtension, LCOwnedExtension, LCExtensionVector, LCExtensionList,... More... | |
template<class V > | |
V::rel_type | rel () |
Provides read access to relations - the object types and their connectivity are defined by the class V which has to be a subtype of either LC1To1Relation, LC1ToNRelation or LCNToNRelation. More... | |
Static Public Attributes | |
static const int | BITEndpoint = 31 |
static const int | BITCreatedInSimulation = 30 |
static const int | BITBackscatter = 29 |
static const int | BITVertexIsNotEndpointOfParent = 28 |
static const int | BITDecayedInTracker = 27 |
static const int | BITDecayedInCalorimeter = 26 |
static const int | BITLeftDetector = 25 |
static const int | BITStopped = 24 |
static const int | BITOverlay = 23 |
The LCIO Monte Carlo particle.
Definition at line 27 of file MCParticle.h.
Useful typedef for template programming with LCIO.
Definition at line 35 of file MCParticle.h.
|
inlinevirtual |
Destructor.
Definition at line 31 of file MCParticle.h.
|
pure virtual |
Returns the particle's charge.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the color flow as defined by the generator.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the daughters of this particle.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::decodeMCTruthProcess(), UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the endpoint of the particle in [mm] if the endpoint has been set explicetly.
If not, the vertex of the first daughter that has vertexIsNotEndpointOfParent==false is returned. If no such daughter exists (0,0,0) is returned.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the energy of the particle (at the vertex) in [GeV] computed from the particle's momentum and mass - only float used in files.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the status for particles as defined by the generator, typically
0 empty line
1 undecayed particle, stable in the generator
2 particle decayed in the generator
3 documentation line.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the mass of the particle in [GeV] - only float used in files.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the particle's 3-momentum at the production vertex in [GeV].
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the particle's 3-momentum at the endpoint in [GeV] Only float used in files.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the parents of this particle.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the PDG code of the particle.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
Returns the status for particles from the simulation, e.g.
decayed in flight. Bits 31-16 are used to decode the information. Use the followng boolean functions to determine the proper simulator status:
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString(), UTIL::operator<<(), and UTIL::LCTOOLS::printDaughterParticles().
|
pure virtual |
Returns the spin (helicity) vector of the particle.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
The creation time of the particle in [ns] wrt.
the event, e.g. for preassigned decays or decays in flight from the simulator.
Implemented in IMPL::MCParticleImpl.
|
pure virtual |
Returns the production vertex of the particle in [mm].
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().
|
pure virtual |
True if the particle left the world volume undecayed.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle was created by the simulator as a result of an interaction or decay in non-tracking region, e.g.
a calorimeter. By convention, such particles are not saved. However, if this particle creates a tracker hit, the particle is added to the MCParticle list with this flag set, and the parent set to the particle that initially decayed or interacted in a non-tracking region.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle has been created by the simulation program (rather than the generator).
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle decayed or interacted (non-continuous interaction, particle terminated) in non-tracking region.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle decayed or interacted in a tracking region.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle has been overlayed by the simulation (or digitization) program.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle lost all kinetic energy inside the world volume and did not decay.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
pure virtual |
True if the particle was created as a result of a continuous process where the parent particle continues, i.e.
hard ionization, Bremsstrahlung, elastic interactions, etc.
Implemented in IMPL::MCParticleImpl.
Referenced by UTIL::LCTOOLS::getSimulatorStatusString().
|
static |
Definition at line 89 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isBackscatter(), and IMPL::MCParticleImpl::setBackscatter().
|
static |
Definition at line 88 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isCreatedInSimulation(), and IMPL::MCParticleImpl::setCreatedInSimulation().
|
static |
Definition at line 92 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isDecayedInCalorimeter(), and IMPL::MCParticleImpl::setDecayedInCalorimeter().
|
static |
Definition at line 91 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isDecayedInTracker(), and IMPL::MCParticleImpl::setDecayedInTracker().
|
static |
Definition at line 87 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::getEndpoint(), SIO::SIOParticleHandler::read(), IMPL::MCParticleImpl::setEndpoint(), and SIO::SIOParticleHandler::write().
|
static |
Definition at line 93 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::hasLeftDetector(), and IMPL::MCParticleImpl::setHasLeftDetector().
|
static |
Definition at line 95 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isOverlay(), and IMPL::MCParticleImpl::setOverlay().
|
static |
Definition at line 94 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::isStopped(), and IMPL::MCParticleImpl::setStopped().
|
static |
Definition at line 90 of file MCParticle.h.
Referenced by IMPL::MCParticleImpl::setVertexIsNotEndpointOfParent(), and IMPL::MCParticleImpl::vertexIsNotEndpointOfParent().