LDMX Software
ldmx::SimCalorimeterHit Class Reference

Stores simulated calorimeter hit information. More...

#include <SimCalorimeterHit.h>

Classes

class  Contrib
 Information about a contribution to the hit in the associated cell. More...
 

Public Member Functions

 SimCalorimeterHit ()=default
 Class constructor.
 
virtual ~SimCalorimeterHit ()=default
 Class destructor.
 
void Clear ()
 Clear the data in the object.
 
void Print () const
 Print out the object.
 
int getID () const
 Get the detector ID.
 
void setID (const int id)
 Set the detector ID.
 
float getEdep () const
 Get the energy deposition of the hit [MeV].
 
void setEdep (const float edep)
 Set the energy deposition of the hit [MeV].
 
std::vector< float > getPosition () const
 Get the XYZ position of the hit [mm].
 
std::vector< float > getPreStepPosition () const
 Get the XYZ pre-step position of the hit in the coordinate frame of the sensitive volume [mm].
 
std::vector< float > getPostStepPosition () const
 Get the XYZ post-step position of the hit in the coordinate frame of the sensitive volume [mm].
 
void setPosition (const float x, const float y, const float z)
 Set the XYZ position of the hit [mm].
 
void setPreStepPosition (const float x, const float y, const float z)
 Set the XYZ pre-step position of the hit in the coordinate frame of the sensitive volume [mm].
 
void setPostStepPosition (const float x, const float y, const float z)
 Set the XYZ post-step position of the hit in the coordinate frame of the sensitive volume [mm].
 
void setPathLength (const float length)
 Set the physical path length for the interaction [mm].
 
float getPathLength () const
 Get the physical path length for the interaction [mm].
 
void setPreStepTime (const float time)
 Set global pre-step time of the hit [ns].
 
void setPostStepTime (const float time)
 Set global post-step time of the hit [ns].
 
void setVelocity (float velocity)
 Set the velocity of the track [mm/ns].
 
float getTime () const
 Get the global time of the hit [ns].
 
float getPreStepTime () const
 Get the pre-step time of the hit [ns].
 
float getPostStepTime () const
 Get the post-step time of the hit [ns].
 
float getVelocity () const
 Get the track velocity of the hit [mm/ns].
 
void setTime (const float time)
 Set the time of the hit [ns].
 
unsigned getNumberOfContribs () const
 Get the number of hit contributions.
 
void addContrib (int incidentID, int trackID, int pdgCode, float edep, float time)
 Add a hit contribution from a SimParticle.
 
Contrib getContrib (int i) const
 Get a hit contribution by index.
 
int findContribIndex (int trackID, int pdgCode) const
 Find the index of a hit contribution from a SimParticle and PDG code.
 
void updateContrib (int i, float edep, float time)
 Update an existing hit contribution by incrementing its edep and setting the time if the new time is less than the old one.
 
bool operator< (const SimCalorimeterHit &rhs) const
 Sort by time of hit.
 
std::vector< int > getTrackIds () const
 Get the list of track IDs contributing to the hit.
 
std::vector< int > getIncidentIds () const
 Get the list of incident IDs contributing to the hit.
 
std::vector< int > getPdgIds () const
 Get the list of PDG codes contributing to the hit.
 
std::vector< float > getEdeps () const
 Get the list of energy depositions contributing to the hit.
 
std::vector< float > getTimes () const
 Get the list of times contributing to the hit.
 

Static Public Attributes

static const std::string ECAL_COLLECTION
 name of the ecal sim collection, should match gdml
 
static const std::string HCAL_COLLECTION
 name of the hcal sim collection, should match gdml
 

Private Attributes

int id_ {0}
 Member variables used in all calorimeter types.
 
float edep_ {0}
 The energy deposition.
 
float x_ {0}
 The X position.
 
float y_ {0}
 The Y position.
 
float z_ {0}
 The Z position.
 
float time_ {0}
 The global time of the hit.
 
std::vector< int > trackIDContribs_
 The list of track IDs contributing to the hit.
 
std::vector< int > incidentIDContribs_
 The list of incident IDs contributing to the hit.
 
std::vector< int > pdgCodeContribs_
 The list of PDG codes contributing to the hit.
 
std::vector< float > edepContribs_
 The list of energy depositions contributing to the hit.
 
std::vector< float > timeContribs_
 The list of times contributing to the hit.
 
unsigned nContribs_ {0}
 The number of hit contributions.
 
float pathLength_ {-1}
 The true path length [mm].
 
float preStepX_ {0}
 The X, Y, and Z positions [mm] before the interaction in the coordinate frame of the sensitive volume.
 
float preStepY_ {0}
 
float preStepZ_ {0}
 
float preStepTime_ {0}
 The global time before the interaction [ns].
 
float postStepX_ {0}
 The X, Y, and Z positions [mm] after the interaction in the coordinate frame of the sensitive volume.
 
float postStepY_ {0}
 
float postStepZ_ {0}
 
float postStepTime_ {0}
 The global time after the interaction [ns].
 
float velocity_ {-1}
 The track velocity [mm/ns].
 

Detailed Description

Stores simulated calorimeter hit information.

Note
This class represents simulated hit information from a calorimeter detector. It provides access to the cell ID, energy deposition, cell position and time. Additionally, individual depositions or steps from MC particles are tabulated as contributions stored in vectors. Contribution information includes a reference to the relevant SimParticle, the PDG code of the actual particle which deposited energy (may be different from the actual SimParticle), the time of the contribution and the energy deposition.

Definition at line 32 of file SimCalorimeterHit.h.

Member Function Documentation

◆ addContrib()

void ldmx::SimCalorimeterHit::addContrib ( int incidentID,
int trackID,
int pdgCode,
float edep,
float time )

Add a hit contribution from a SimParticle.

Parameters
incidentIDthe Geant4 track ID for the particle's parent incident on the Calorimeter region
trackIDthe Geant4 track ID for the particle
pdgCodeThe PDG code of the actual track.
edepThe energy deposition of the hit [MeV].
timeThe time of the hit [ns].

Referenced by simcore::TrigScintSD::ProcessHits().

◆ findContribIndex()

int ldmx::SimCalorimeterHit::findContribIndex ( int trackID,
int pdgCode ) const

Find the index of a hit contribution from a SimParticle and PDG code.

Parameters
trackIDthe track ID of the particle causing the hit
pdgCodeThe PDG code of the contribution.
Returns
The index of the contribution or -1 if none exists.

◆ getContrib()

Contrib ldmx::SimCalorimeterHit::getContrib ( int i) const

Get a hit contribution by index.

Parameters
iThe index of the hit contribution.
Returns
The hit contribution at the index.

Referenced by hcal::HcalDigiProducer::produce().

◆ getEdep()

float ldmx::SimCalorimeterHit::getEdep ( ) const
inline

Get the energy deposition of the hit [MeV].

Returns
The energy deposition of the hit.

Definition at line 107 of file SimCalorimeterHit.h.

107{ return edep_; }
float edep_
The energy deposition.

References edep_.

◆ getEdeps()

std::vector< float > ldmx::SimCalorimeterHit::getEdeps ( ) const
inline

Get the list of energy depositions contributing to the hit.

Definition at line 294 of file SimCalorimeterHit.h.

294{ return edepContribs_; }
std::vector< float > edepContribs_
The list of energy depositions contributing to the hit.

References edepContribs_.

◆ getID()

int ldmx::SimCalorimeterHit::getID ( ) const
inline

Get the detector ID.

Returns
The detector ID.

Definition at line 95 of file SimCalorimeterHit.h.

95{ return id_; }
int id_
Member variables used in all calorimeter types.

References id_.

◆ getIncidentIds()

std::vector< int > ldmx::SimCalorimeterHit::getIncidentIds ( ) const
inline

Get the list of incident IDs contributing to the hit.

Definition at line 284 of file SimCalorimeterHit.h.

284{ return incidentIDContribs_; }
std::vector< int > incidentIDContribs_
The list of incident IDs contributing to the hit.

References incidentIDContribs_.

◆ getNumberOfContribs()

unsigned ldmx::SimCalorimeterHit::getNumberOfContribs ( ) const
inline

Get the number of hit contributions.

Returns
The number of hit contributions.

Definition at line 232 of file SimCalorimeterHit.h.

232{ return nContribs_; }
unsigned nContribs_
The number of hit contributions.

References nContribs_.

Referenced by hcal::HcalDigiProducer::produce().

◆ getPathLength()

float ldmx::SimCalorimeterHit::getPathLength ( ) const
inline

Get the physical path length for the interaction [mm].

Returns
physical path length

Definition at line 182 of file SimCalorimeterHit.h.

182{ return pathLength_; }
float pathLength_
The true path length [mm].

References pathLength_.

◆ getPdgIds()

std::vector< int > ldmx::SimCalorimeterHit::getPdgIds ( ) const
inline

Get the list of PDG codes contributing to the hit.

Definition at line 289 of file SimCalorimeterHit.h.

289{ return pdgCodeContribs_; }
std::vector< int > pdgCodeContribs_
The list of PDG codes contributing to the hit.

References pdgCodeContribs_.

◆ getPosition()

std::vector< float > ldmx::SimCalorimeterHit::getPosition ( ) const
inline

Get the XYZ position of the hit [mm].

Returns
The XYZ position of the hit.

Definition at line 119 of file SimCalorimeterHit.h.

119{ return {x_, y_, z_}; }
float z_
The Z position.
float y_
The Y position.
float x_
The X position.

References x_, y_, and z_.

Referenced by hcal::HcalDigiProducer::produce().

◆ getPostStepPosition()

std::vector< float > ldmx::SimCalorimeterHit::getPostStepPosition ( ) const
inline

Get the XYZ post-step position of the hit in the coordinate frame of the sensitive volume [mm].

Returns
The XYZ position of the hit.

Definition at line 134 of file SimCalorimeterHit.h.

134 {
135 return {postStepX_, postStepY_, postStepZ_};
136 }
float postStepX_
The X, Y, and Z positions [mm] after the interaction in the coordinate frame of the sensitive volume.

References postStepX_.

◆ getPostStepTime()

float ldmx::SimCalorimeterHit::getPostStepTime ( ) const
inline

Get the post-step time of the hit [ns].

Returns
The global time of the hit after the interaction.

Definition at line 214 of file SimCalorimeterHit.h.

214{ return postStepTime_; }
float postStepTime_
The global time after the interaction [ns].

References postStepTime_.

◆ getPreStepPosition()

std::vector< float > ldmx::SimCalorimeterHit::getPreStepPosition ( ) const
inline

Get the XYZ pre-step position of the hit in the coordinate frame of the sensitive volume [mm].

Returns
The local XYZ position of the hit.

Definition at line 126 of file SimCalorimeterHit.h.

126 {
127 return {preStepX_, preStepY_, preStepZ_};
128 }
float preStepX_
The X, Y, and Z positions [mm] before the interaction in the coordinate frame of the sensitive volume...

References preStepX_.

◆ getPreStepTime()

float ldmx::SimCalorimeterHit::getPreStepTime ( ) const
inline

Get the pre-step time of the hit [ns].

Returns
The global time of the hit before the interaction.

Definition at line 209 of file SimCalorimeterHit.h.

209{ return preStepTime_; }
float preStepTime_
The global time before the interaction [ns].

References preStepTime_.

◆ getTime()

float ldmx::SimCalorimeterHit::getTime ( ) const
inline

Get the global time of the hit [ns].

Returns
The global time of the hit.

Definition at line 204 of file SimCalorimeterHit.h.

204{ return time_; }
float time_
The global time of the hit.

References time_.

Referenced by operator<().

◆ getTimes()

std::vector< float > ldmx::SimCalorimeterHit::getTimes ( ) const
inline

Get the list of times contributing to the hit.

Definition at line 299 of file SimCalorimeterHit.h.

299{ return timeContribs_; }
std::vector< float > timeContribs_
The list of times contributing to the hit.

References timeContribs_.

◆ getTrackIds()

std::vector< int > ldmx::SimCalorimeterHit::getTrackIds ( ) const
inline

Get the list of track IDs contributing to the hit.

Definition at line 280 of file SimCalorimeterHit.h.

280{ return trackIDContribs_; }
std::vector< int > trackIDContribs_
The list of track IDs contributing to the hit.

References trackIDContribs_.

◆ getVelocity()

float ldmx::SimCalorimeterHit::getVelocity ( ) const
inline

Get the track velocity of the hit [mm/ns].

Returns
Thetrack velocity of the hit.

Definition at line 220 of file SimCalorimeterHit.h.

220{ return velocity_; }
float velocity_
The track velocity [mm/ns].

References velocity_.

◆ operator<()

bool ldmx::SimCalorimeterHit::operator< ( const SimCalorimeterHit & rhs) const
inline

Sort by time of hit.

Definition at line 273 of file SimCalorimeterHit.h.

273 {
274 return this->getTime() < rhs.getTime();
275 }
float getTime() const
Get the global time of the hit [ns].

References getTime().

◆ setEdep()

void ldmx::SimCalorimeterHit::setEdep ( const float edep)
inline

Set the energy deposition of the hit [MeV].

Parameters
edepThe energy deposition of the hit.

Definition at line 113 of file SimCalorimeterHit.h.

113{ this->edep_ = edep; }

References edep_.

◆ setID()

void ldmx::SimCalorimeterHit::setID ( const int id)
inline

Set the detector ID.

@id The detector ID.

Definition at line 101 of file SimCalorimeterHit.h.

101{ this->id_ = id; }

References id_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setPathLength()

void ldmx::SimCalorimeterHit::setPathLength ( const float length)
inline

Set the physical path length for the interaction [mm].

Parameters
lengthThe physical path lenght

Definition at line 177 of file SimCalorimeterHit.h.

177{ pathLength_ = length; }

References pathLength_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setPosition()

void ldmx::SimCalorimeterHit::setPosition ( const float x,
const float y,
const float z )
inline

Set the XYZ position of the hit [mm].

Parameters
xThe X position.
yThe Y position.
zThe Z position.

Definition at line 143 of file SimCalorimeterHit.h.

143 {
144 this->x_ = x;
145 this->y_ = y;
146 this->z_ = z;
147 }

References x_, y_, and z_.

Referenced by simcore::HcalSD::ProcessHits(), and simcore::TrigScintSD::ProcessHits().

◆ setPostStepPosition()

void ldmx::SimCalorimeterHit::setPostStepPosition ( const float x,
const float y,
const float z )
inline

Set the XYZ post-step position of the hit in the coordinate frame of the sensitive volume [mm].

Parameters
xThe X position.
yThe Y position.
zThe Z position.

Definition at line 167 of file SimCalorimeterHit.h.

167 {
168 postStepX_ = x;
169 postStepY_ = y;
170 postStepZ_ = z;
171 }

References postStepX_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setPostStepTime()

void ldmx::SimCalorimeterHit::setPostStepTime ( const float time)
inline

Set global post-step time of the hit [ns].

Parameters
timeThe time before the step

Definition at line 192 of file SimCalorimeterHit.h.

192{ postStepTime_ = time; }

References postStepTime_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setPreStepPosition()

void ldmx::SimCalorimeterHit::setPreStepPosition ( const float x,
const float y,
const float z )
inline

Set the XYZ pre-step position of the hit in the coordinate frame of the sensitive volume [mm].

Parameters
xThe X position.
yThe Y position.
zThe Z position.

Definition at line 155 of file SimCalorimeterHit.h.

155 {
156 preStepX_ = x;
157 preStepY_ = y;
158 preStepZ_ = z;
159 }

References preStepX_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setPreStepTime()

void ldmx::SimCalorimeterHit::setPreStepTime ( const float time)
inline

Set global pre-step time of the hit [ns].

Parameters
timeThe time before the step

Definition at line 187 of file SimCalorimeterHit.h.

187{ preStepTime_ = time; }

References preStepTime_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ setTime()

void ldmx::SimCalorimeterHit::setTime ( const float time)
inline

Set the time of the hit [ns].

Parameters
timeThe time of the hit.

Definition at line 226 of file SimCalorimeterHit.h.

226{ this->time_ = time; }

References time_.

◆ setVelocity()

void ldmx::SimCalorimeterHit::setVelocity ( float velocity)
inline

Set the velocity of the track [mm/ns].

Parameters
velocityThe track velocity

Definition at line 198 of file SimCalorimeterHit.h.

198{ velocity_ = velocity; }

References velocity_.

Referenced by simcore::TrigScintSD::ProcessHits().

◆ updateContrib()

void ldmx::SimCalorimeterHit::updateContrib ( int i,
float edep,
float time )

Update an existing hit contribution by incrementing its edep and setting the time if the new time is less than the old one.

Parameters
iThe index of the contribution.
edepThe additional energy contribution [MeV].
timeThe time of the contribution [ns].

Member Data Documentation

◆ ECAL_COLLECTION

const std::string ldmx::SimCalorimeterHit::ECAL_COLLECTION
static

name of the ecal sim collection, should match gdml

Definition at line 35 of file SimCalorimeterHit.h.

◆ edep_

float ldmx::SimCalorimeterHit::edep_ {0}
private

The energy deposition.

Definition at line 313 of file SimCalorimeterHit.h.

313{0};

Referenced by getEdep(), and setEdep().

◆ edepContribs_

std::vector<float> ldmx::SimCalorimeterHit::edepContribs_
private

The list of energy depositions contributing to the hit.

Definition at line 353 of file SimCalorimeterHit.h.

Referenced by getEdeps().

◆ HCAL_COLLECTION

const std::string ldmx::SimCalorimeterHit::HCAL_COLLECTION
static

name of the hcal sim collection, should match gdml

Definition at line 38 of file SimCalorimeterHit.h.

◆ id_

int ldmx::SimCalorimeterHit::id_ {0}
private

Member variables used in all calorimeter types.

The detector ID.

Definition at line 308 of file SimCalorimeterHit.h.

308{0};

Referenced by getID(), and setID().

◆ incidentIDContribs_

std::vector<int> ldmx::SimCalorimeterHit::incidentIDContribs_
private

The list of incident IDs contributing to the hit.

Definition at line 343 of file SimCalorimeterHit.h.

Referenced by getIncidentIds().

◆ nContribs_

unsigned ldmx::SimCalorimeterHit::nContribs_ {0}
private

The number of hit contributions.

Definition at line 363 of file SimCalorimeterHit.h.

363{0};

Referenced by getNumberOfContribs().

◆ pathLength_

float ldmx::SimCalorimeterHit::pathLength_ {-1}
private

The true path length [mm].

Can in general differ from the distance between the pre and post step position.

Definition at line 374 of file SimCalorimeterHit.h.

374{-1};

Referenced by getPathLength(), and setPathLength().

◆ pdgCodeContribs_

std::vector<int> ldmx::SimCalorimeterHit::pdgCodeContribs_
private

The list of PDG codes contributing to the hit.

Definition at line 348 of file SimCalorimeterHit.h.

Referenced by getPdgIds().

◆ postStepTime_

float ldmx::SimCalorimeterHit::postStepTime_ {0}
private

The global time after the interaction [ns].

Definition at line 397 of file SimCalorimeterHit.h.

397{0};

Referenced by getPostStepTime(), and setPostStepTime().

◆ postStepX_

float ldmx::SimCalorimeterHit::postStepX_ {0}
private

The X, Y, and Z positions [mm] after the interaction in the coordinate frame of the sensitive volume.

Definition at line 391 of file SimCalorimeterHit.h.

391{0};

Referenced by getPostStepPosition(), and setPostStepPosition().

◆ postStepY_

float ldmx::SimCalorimeterHit::postStepY_ {0}
private

Definition at line 392 of file SimCalorimeterHit.h.

392{0};

◆ postStepZ_

float ldmx::SimCalorimeterHit::postStepZ_ {0}
private

Definition at line 393 of file SimCalorimeterHit.h.

393{0};

◆ preStepTime_

float ldmx::SimCalorimeterHit::preStepTime_ {0}
private

The global time before the interaction [ns].

Definition at line 386 of file SimCalorimeterHit.h.

386{0};

Referenced by getPreStepTime(), and setPreStepTime().

◆ preStepX_

float ldmx::SimCalorimeterHit::preStepX_ {0}
private

The X, Y, and Z positions [mm] before the interaction in the coordinate frame of the sensitive volume.

Definition at line 380 of file SimCalorimeterHit.h.

380{0};

Referenced by getPreStepPosition(), and setPreStepPosition().

◆ preStepY_

float ldmx::SimCalorimeterHit::preStepY_ {0}
private

Definition at line 381 of file SimCalorimeterHit.h.

381{0};

◆ preStepZ_

float ldmx::SimCalorimeterHit::preStepZ_ {0}
private

Definition at line 382 of file SimCalorimeterHit.h.

382{0};

◆ time_

float ldmx::SimCalorimeterHit::time_ {0}
private

The global time of the hit.

Definition at line 333 of file SimCalorimeterHit.h.

333{0};

Referenced by getTime(), and setTime().

◆ timeContribs_

std::vector<float> ldmx::SimCalorimeterHit::timeContribs_
private

The list of times contributing to the hit.

Definition at line 358 of file SimCalorimeterHit.h.

Referenced by getTimes().

◆ trackIDContribs_

std::vector<int> ldmx::SimCalorimeterHit::trackIDContribs_
private

The list of track IDs contributing to the hit.

Definition at line 338 of file SimCalorimeterHit.h.

Referenced by getTrackIds().

◆ velocity_

float ldmx::SimCalorimeterHit::velocity_ {-1}
private

The track velocity [mm/ns].

Definition at line 402 of file SimCalorimeterHit.h.

402{-1};

Referenced by getVelocity(), and setVelocity().

◆ x_

float ldmx::SimCalorimeterHit::x_ {0}
private

The X position.

Definition at line 318 of file SimCalorimeterHit.h.

318{0};

Referenced by getPosition(), and setPosition().

◆ y_

float ldmx::SimCalorimeterHit::y_ {0}
private

The Y position.

Definition at line 323 of file SimCalorimeterHit.h.

323{0};

Referenced by getPosition(), and setPosition().

◆ z_

float ldmx::SimCalorimeterHit::z_ {0}
private

The Z position.

Definition at line 328 of file SimCalorimeterHit.h.

328{0};

Referenced by getPosition(), and setPosition().


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