LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Attributes | List of all members
EVENT::MCParticle Class Referenceabstract

The LCIO Monte Carlo particle. More...

#include <MCParticle.h>

+ Inheritance diagram for EVENT::MCParticle:

Public Types

typedef MCParticle lcobject_type
 Useful typedef for template programming with LCIO. More...
 
- Public Types inherited from lcrtrel::LCRTRelations
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 MCParticleVecgetParents () const =0
 Returns the parents of this particle. More...
 
virtual const MCParticleVecgetDaughters () 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...
 
- Public Member Functions inherited from EVENT::LCObject
virtual ~LCObject ()
 Destructor. More...
 
virtual int id () const =0
 Returns an object id for internal (debugging) use in LCIO. More...
 
virtual LCObjectclone () const
 Returns an object id for internal (debugging) use in LCIO. More...
 
- Public Member Functions inherited from lcrtrel::LCRTRelations
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
 

Detailed Description

The LCIO Monte Carlo particle.

Author
gaede
Version
Id:
MCParticle.aid,v 1.26 2006-08-03 16:53:34 gaede Exp

Definition at line 27 of file MCParticle.h.

Member Typedef Documentation

Useful typedef for template programming with LCIO.

Definition at line 35 of file MCParticle.h.

Constructor & Destructor Documentation

virtual EVENT::MCParticle::~MCParticle ( )
inlinevirtual

Destructor.

Definition at line 31 of file MCParticle.h.

Member Function Documentation

virtual float EVENT::MCParticle::getCharge ( ) const
pure virtual
virtual const int* EVENT::MCParticle::getColorFlow ( ) const
pure virtual

Returns the color flow as defined by the generator.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::printMCParticles().

virtual const MCParticleVec& EVENT::MCParticle::getDaughters ( ) const
pure virtual
virtual const double* EVENT::MCParticle::getEndpoint ( ) const
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().

virtual double EVENT::MCParticle::getEnergy ( ) const
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().

virtual int EVENT::MCParticle::getGeneratorStatus ( ) const
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().

virtual double EVENT::MCParticle::getMass ( ) const
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().

virtual const double* EVENT::MCParticle::getMomentum ( ) const
pure virtual

Returns the particle's 3-momentum at the production vertex in [GeV].

  • only float used in files.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().

virtual const double* EVENT::MCParticle::getMomentumAtEndpoint ( ) const
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().

virtual const MCParticleVec& EVENT::MCParticle::getParents ( ) const
pure virtual

Returns the parents of this particle.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::operator<<(), and UTIL::LCTOOLS::printMCParticles().

virtual int EVENT::MCParticle::getPDG ( ) const
pure virtual

Returns the PDG code of the particle.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::operator<<(), UTIL::LCTOOLS::printDaughterParticles(), and UTIL::LCTOOLS::printMCParticles().

virtual int EVENT::MCParticle::getSimulatorStatus ( ) const
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:

See Also
isCreatedInSimulation()
isBackscatter()
vertexIsNotEndpointOfParent()
isDecayedInTracker()
isDecayedInCalorimeter()
hasLeftDetector()
isStopped()
isOverlay()

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::getSimulatorStatusString(), UTIL::operator<<(), and UTIL::LCTOOLS::printDaughterParticles().

virtual const float* EVENT::MCParticle::getSpin ( ) const
pure virtual

Returns the spin (helicity) vector of the particle.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::printMCParticles().

virtual float EVENT::MCParticle::getTime ( ) const
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.

virtual const double* EVENT::MCParticle::getVertex ( ) const
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().

virtual bool EVENT::MCParticle::hasLeftDetector ( ) const
pure virtual

True if the particle left the world volume undecayed.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::getSimulatorStatusString().

virtual bool EVENT::MCParticle::isBackscatter ( ) const
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().

virtual bool EVENT::MCParticle::isCreatedInSimulation ( ) const
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().

virtual bool EVENT::MCParticle::isDecayedInCalorimeter ( ) const
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().

virtual bool EVENT::MCParticle::isDecayedInTracker ( ) const
pure virtual

True if the particle decayed or interacted in a tracking region.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::getSimulatorStatusString().

virtual bool EVENT::MCParticle::isOverlay ( ) const
pure virtual

True if the particle has been overlayed by the simulation (or digitization) program.

Implemented in IMPL::MCParticleImpl.

Referenced by UTIL::LCTOOLS::getSimulatorStatusString().

virtual bool EVENT::MCParticle::isStopped ( ) const
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().

virtual bool EVENT::MCParticle::vertexIsNotEndpointOfParent ( ) const
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().

Member Data Documentation

const int EVENT::MCParticle::BITBackscatter = 29
static
const int EVENT::MCParticle::BITCreatedInSimulation = 30
static
const int EVENT::MCParticle::BITDecayedInCalorimeter = 26
static
const int EVENT::MCParticle::BITDecayedInTracker = 27
static
const int EVENT::MCParticle::BITEndpoint = 31
static
const int EVENT::MCParticle::BITLeftDetector = 25
static
const int EVENT::MCParticle::BITOverlay = 23
static
const int EVENT::MCParticle::BITStopped = 24
static
const int EVENT::MCParticle::BITVertexIsNotEndpointOfParent = 28
static

The documentation for this class was generated from the following files: