Implementation of the generic SimCalorimeterHit. More...
#include <IMPL/SimCalorimeterHitImpl.h>
Public Member Functions | |
SimCalorimeterHitImpl () | |
Default constructor, initializes values to 0. | |
SimCalorimeterHitImpl (const EVENT::SimCalorimeterHit &hit) | |
Copy constructor - shallow copy. | |
virtual | ~SimCalorimeterHitImpl () |
Destructor. | |
virtual int | id () const |
Returns an object id for internal (debugging) use in LCIO. | |
virtual int | getCellID0 () const |
Create a deep copy of itself. More... | |
virtual int | getCellID1 () const |
Returns the second detector specific (geometrical) cell id. More... | |
virtual float | getEnergy () const |
Returns the energy of the hit. | |
virtual const float * | getPosition () const |
Returns the position of the hit in world coordinates. More... | |
virtual const float * | getStepPosition (int i) const |
Returns the position where the energy deposited (step) occurred optional, only if bit LCIO::CHBIT_STEP is set. | |
virtual int | getNMCParticles () const |
Returns the number of MC contributions to the hit. More... | |
virtual int | getNMCContributions () const |
Returns the number of MC contributions to the hit. More... | |
virtual float | getEnergyCont (int i) const |
Returns the energy in [GeV] of the i-th contribution to the hit. More... | |
virtual float | getTimeCont (int i) const |
Returns the time of the i-th in [ns] contribution to the hit. More... | |
virtual int | getPDGCont (int i) const |
Returns the PDG code of the shower particle that caused this contribution. More... | |
virtual EVENT::MCParticle * | getParticleCont (int i) const |
Returns the MCParticle that caused the shower responsible for this contribution to the hit. More... | |
void | setCellID0 (int id0) |
Sets the first cell id;. | |
void | setCellID1 (int id1) |
Sets the second cell id; Only store if the flag word (bit CHBIT_ID1) of the collection is set. More... | |
void | setEnergy (float en) |
Sets the energy. | |
void | setPosition (const float pos[3]) |
Sets the position. More... | |
void | addMCParticleContribution (EVENT::MCParticle *p, float en, float t) |
Adds an MCParticle contribution to the hit - contributions for the same MCParticle are combined into one, where the energy is accumulated and the time is the energy weighted mean time. More... | |
void | addMCParticleContribution (EVENT::MCParticle *p, float en, float t, int pdg, float *stepPos=0) |
Adds a detailed MCParticle contribution to the hit. More... | |
![]() | |
virtual | ~SimCalorimeterHit () |
Destructor. | |
![]() | |
virtual | ~LCObject () |
Destructor. | |
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,... | |
template<class V > | |
const V::ext_type | ext () const |
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. | |
![]() | |
virtual int | simpleUID () const |
Protected Attributes | |
int | _cellID0 |
int | _cellID1 |
float | _energy |
float | _position [3] |
MCParticleContVec | _vec |
![]() | |
bool | _readOnly |
int | _id |
Additional Inherited Members | |
![]() | |
typedef SimCalorimeterHit | lcobject_type |
Useful typedef for template programming with LCIO. | |
![]() | |
template<class V > | |
V::ptr & | ptr () const |
Returns the reference to the pointer to the extension/relation object. | |
![]() | |
virtual void | setReadOnly (bool readOnly) |
void | checkAccess () throw ( EVENT::ReadOnlyException ) |
void | checkAccess (const char *what) throw ( EVENT::ReadOnlyException ) |
Implementation of the generic SimCalorimeterHit.
void IMPL::SimCalorimeterHitImpl::addMCParticleContribution | ( | EVENT::MCParticle * | p, |
float | en, | ||
float | t | ||
) |
Adds an MCParticle contribution to the hit - contributions for the same MCParticle are combined into one, where the energy is accumulated and the time is the energy weighted mean time.
Use this method for the standard LCIO mode, where one energy contribution per primary particle entering the calorimeter is stored.
void IMPL::SimCalorimeterHitImpl::addMCParticleContribution | ( | EVENT::MCParticle * | p, |
float | en, | ||
float | t, | ||
int | pdg, | ||
float * | stepPos = 0 |
||
) |
Adds a detailed MCParticle contribution to the hit.
This method should be used for the detailed mode, where one MCParticleContribution is stored for every simulator step.
If stepPos==0, (0,0,0) will be stored. NB: The flag word bit LCIO::CHBIT_STEP (or LCIO::CHBIT_PDG) has to be set, in order for the PDG and step position to be stored.
|
virtual |
Create a deep copy of itself.
Overwrites return type in LCObject::clone(). Not yet - as AID genereates virtual inheritance and g++ doesn't support virtual constructors with virtual inheritance TODO - change org.freehep.aid.CPPHeaderGenerator !Returns the detector specific (geometrical) cell id.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the second detector specific (geometrical) cell id.
0 if information is not stored - check the flag word (bit CHBIT_ID1) of the collection. Default is to store only cellid0.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the energy in [GeV] of the i-th contribution to the hit.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the number of MC contributions to the hit.
0 if information is not stored. There are two levels of detail: if collection flag bit LCIO.CHBIT_STEP==1 then all simulator steps' contributions to the hit are stored, otherwise there is only one contribution for every particle entering the calorimeter.
Implements EVENT::SimCalorimeterHit.
Referenced by getNMCParticles().
|
virtual |
Returns the number of MC contributions to the hit.
0 if information is not stored. Renamed to getNMCContributions.
Implements EVENT::SimCalorimeterHit.
References getNMCContributions(), and UTIL::LCWarning::printWarning().
|
virtual |
Returns the MCParticle that caused the shower responsible for this contribution to the hit.
This is the particle that flew into the calorimeter and not the shower particle that made the energy deposition.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the PDG code of the shower particle that caused this contribution.
Check the flag word bit LCIO.CHBIT_STEP of the collection whether this information is available.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the position of the hit in world coordinates.
NULL if information is not stored. Ask collection for flag, only available if bit LCIO.CHBIT_LONG is set.
Implements EVENT::SimCalorimeterHit.
|
virtual |
Returns the time of the i-th in [ns] contribution to the hit.
Implements EVENT::SimCalorimeterHit.
void IMPL::SimCalorimeterHitImpl::setCellID1 | ( | int | id1 | ) |
Sets the second cell id; Only store if the flag word (bit CHBIT_ID1) of the collection is set.
Default is to store only cellid0.
void IMPL::SimCalorimeterHitImpl::setPosition | ( | const float | pos[3] | ) |
Sets the position.
Not stored if LCIO.CHBIT_LONG isn't set.