LDMX Software
ldmx::SimParticle Class Reference

Class representing a simulated particle. More...

#include <SimParticle.h>

Public Types

enum  ProcessType {
  unknown = 0 , annihil = 1 , compt = 2 , conv = 3 ,
  electronNuclear = 4 , eBrem = 5 , eIoni = 6 , msc = 7 ,
  phot = 8 , photonNuclear = 9 , GammaToMuPair = 10 , eDarkBrem = 11 ,
  Decay = 12 , Primary = 13 , muonNuclear = 14 , neutronInelastic = 15 ,
  neutronCapture = 16 , kaonInelastic = 17 , pionInelastic = 18 , protonInelastic = 19
}
 Enum for interesting process types. More...
 
typedef std::map< std::string, ProcessTypeProcessTypeMap
 Typedef for process map.
 

Public Member Functions

 SimParticle ()=default
 Constructor.
 
virtual ~SimParticle ()=default
 Destructor.
 
void clear ()
 Reset an instance of this class by clearing all of its data.
 
double getEnergy () const
 Get the energy of this particle [MeV].
 
double getKineticEnergy () const
 Get the kinetic energy of this particle [MeV].
 
int getPdgID () const
 Get the PDG ID of this particle.
 
int getGenStatus () const
 Get the generator status of this particle.
 
double getTime () const
 Get the global time of this particle's creation [ns].
 
std::vector< double > getVertex () const
 Get a vector containing the vertex of this particle in mm.
 
std::string getVertexVolume () const
 Get the volume name in which this particle was created in.
 
std::string getInteractionMaterial () const
 Get the material name in which this particle was created in.
 
std::vector< double > getEndPoint () const
 Get the end_point of this particle where it was destroyed or left the world volume [mm].
 
std::vector< double > getMomentum () const
 Get a vector containing the momentum of this particle [MeV].
 
double getMass () const
 Get the mass of this particle [GeV].
 
double getCharge () const
 Get the charge of this particle.
 
std::vector< int > getDaughters () const
 Get a vector containing the track IDs of all daughter particles.
 
std::vector< int > getParents () const
 Get a vector containing the track IDs of the parent particles.
 
void setEnergy (const double &energy)
 Set the energy of this particle [MeV].
 
void setPdgID (const int &pdg_id)
 Set the PDG ID of this particle.
 
void setGenStatus (const int &gen_status)
 Set the generator status of this particle.
 
void setTime (const double &time)
 Set the global time of this particle's creation [ns].
 
void setVertex (const double &vtx_x, const double &vtx_y, const double &vtx_z)
 Set the vertex of this particle [mm].
 
void setVertexVolume (const std::string &vertexVolume)
 Set the name of the volume that this particle was created in.
 
void setInteractionMaterial (const std::string &interaction_material)
 Set the name of the material that this particle was created in.
 
void setEndPoint (const double &end_x, const double &end_y, const double &end_z)
 Set the end point position of this particle [mm].
 
void setMomentum (const double &px, const double &py, const double &pz)
 Set the momentum of this particle [MeV].
 
void setMass (const double &mass)
 Set the mass of this particle [GeV].
 
void setCharge (const double &charge)
 Set the charge of this particle.
 
void addDaughter (const int &daughter_track_id)
 Add a reference to a daughter particle by its track ID.
 
void addParent (const int &parent_track_id)
 Add a reference to a parent particle by its track ID.
 
void encodeTracks (std::function< int(int, unsigned int, unsigned int)> encodeFunc, const unsigned int encoding_version, const unsigned int event_index=0)
 Encodes all Track IDs in the SimParticle object according to the schema provided in the 'encodeFunc' passed to this method.
 
int getProcessType () const
 Get the creator process type of this particle.
 
void setProcessType (const int &process_type)
 Set the creator process type of this particle.
 
void setEndPointMomentum (const double &end_px, const double &end_py, const double &end_pz)
 Set the momentum at this particle's end point.
 
std::vector< double > getEndPointMomentum () const
 Get the momentum at this particle's end point.
 

Static Public Member Functions

static ProcessType findProcessType (std::string processName)
 Get the process type enum from a G4VProcess name.
 

Private Member Functions

 ClassDef (SimParticle, 8)
 

Static Private Member Functions

static ProcessTypeMap createProcessTypeMap ()
 

Private Attributes

double energy_ {0}
 The energy of this particle.
 
int pdg_id_ {0}
 The PDG ID of this particle.
 
int gen_status_ {-1}
 The generator status.
 
double time_ {0}
 The global creation time.
 
double vtx_x_ {0}
 The x component of the vertex.
 
double vtx_y_ {0}
 The y component of the vertex.
 
double vtx_z_ {0}
 The z component of the vertex.
 
double end_x_ {0}
 The x component of the end point.
 
double end_y_ {0}
 The y component of the end point.
 
double end_z_ {0}
 The z component of the end point.
 
double px_ {0}
 The x component of the momentum.
 
double py_ {0}
 The y component of the momentum.
 
double pz_ {0}
 The z component of the momentum.
 
double end_px_ {0}
 The x component of the end_point momentum.
 
double end_py_ {0}
 The y component of the end_point momentum.
 
double end_pz_ {0}
 The z component of the end_point momentum.
 
double mass_ {0}
 The particle's mass.
 
double charge_ {0}
 The particle's charge.
 
std::vector< int > daughters_
 The list of daughter particle track IDs.
 
std::vector< int > parents_
 The list of parent particles track IDs.
 
int process_type_ {-1}
 Encoding of Geant4 process type.
 
std::string vertex_volume_ {""}
 Volume the track was created in.
 
std::string interaction_material_ {""}
 Volume the track was created in.
 

Static Private Attributes

static ProcessTypeMap process_map
 Map containing the process types.
 

Friends

std::ostream & operator<< (std::ostream &o, const SimParticle &d)
 Print a string representation of this object.
 

Detailed Description

Class representing a simulated particle.

The particles are created from the tracks produced by simulation.

Definition at line 24 of file SimParticle.h.

Member Typedef Documentation

◆ ProcessTypeMap

Typedef for process map.

Definition at line 54 of file SimParticle.h.

Member Enumeration Documentation

◆ ProcessType

Enum for interesting process types.

Definition at line 29 of file SimParticle.h.

29 {
30 unknown = 0,
31 annihil = 1,
32 compt = 2,
33 conv = 3,
34 electronNuclear = 4,
35 eBrem = 5,
36 eIoni = 6,
37 msc = 7,
38 phot = 8,
39 photonNuclear = 9,
40 GammaToMuPair = 10,
41 eDarkBrem = 11,
42 Decay = 12,
43 Primary = 13,
44 muonNuclear = 14,
45 neutronInelastic = 15,
46 neutronCapture = 16,
47 kaonInelastic = 17,
48 pionInelastic = 18,
49 protonInelastic = 19,
50 // Only add additional processes to the end of this list!
51 };

Member Function Documentation

◆ addDaughter()

void ldmx::SimParticle::addDaughter ( const int & daughter_track_id)
inline

Add a reference to a daughter particle by its track ID.

This adds the track ID of the daughter particle to the vector of daughter particle IDs.

Parameters
[in]daughter_track_idThe daughter particle track ID.

Definition at line 291 of file SimParticle.h.

291 {
292 daughters_.push_back(daughter_track_id);
293 }
std::vector< int > daughters_
The list of daughter particle track IDs.

References daughters_.

◆ addParent()

void ldmx::SimParticle::addParent ( const int & parent_track_id)
inline

Add a reference to a parent particle by its track ID.

Parameters
[in]parent_track_idThe track ID of the parent particle.

Definition at line 300 of file SimParticle.h.

300 {
301 parents_.push_back(parent_track_id);
302 }
std::vector< int > parents_
The list of parent particles track IDs.

References parents_.

◆ clear()

void ldmx::SimParticle::clear ( )

Reset an instance of this class by clearing all of its data.

Definition at line 66 of file SimParticle.cxx.

66 {
67 daughters_.clear();
68 parents_.clear();
69
70 energy_ = 0;
71 pdg_id_ = 0;
72 gen_status_ = -1;
73 time_ = 0;
74 vtx_x_ = 0;
75 vtx_y_ = 0;
76 vtx_z_ = 0;
77 end_x_ = 0;
78 end_y_ = 0;
79 end_z_ = 0;
80 px_ = 0;
81 py_ = 0;
82 pz_ = 0;
83 end_px_ = 0;
84 end_py_ = 0;
85 end_pz_ = 0;
86 mass_ = 0;
87 charge_ = 0;
88 process_type_ = ProcessType::unknown;
89 vertex_volume_ = "";
90}
double end_py_
The y component of the end_point momentum.
double pz_
The z component of the momentum.
double py_
The y component of the momentum.
double vtx_x_
The x component of the vertex.
int process_type_
Encoding of Geant4 process type.
double end_x_
The x component of the end point.
double energy_
The energy of this particle.
double end_pz_
The z component of the end_point momentum.
double vtx_y_
The y component of the vertex.
double charge_
The particle's charge.
double end_y_
The y component of the end point.
double px_
The x component of the momentum.
double end_z_
The z component of the end point.
double mass_
The particle's mass.
double end_px_
The x component of the end_point momentum.
double vtx_z_
The z component of the vertex.
int pdg_id_
The PDG ID of this particle.
int gen_status_
The generator status.
double time_
The global creation time.
std::string vertex_volume_
Volume the track was created in.

References charge_, daughters_, end_px_, end_py_, end_pz_, end_x_, end_y_, end_z_, energy_, gen_status_, mass_, parents_, pdg_id_, process_type_, px_, py_, pz_, time_, vertex_volume_, vtx_x_, vtx_y_, and vtx_z_.

◆ createProcessTypeMap()

SimParticle::ProcessTypeMap ldmx::SimParticle::createProcessTypeMap ( )
staticprivate

Electromagnetic interactions e Z --> e Z gamma

gamma --> e+ e-

e+ e- --> gamma gamma

gamma e --> gamma e

gamma Z --> e- Z

Electron ionization

Multiple scattering

gamma Z --> Z + X

mu Z --> Z + X

e Z --> e Z + X

gamma --> mu+ mu-

e- Z --> e- Z A'

n + Z -> X

n + Z -> Z*

K + Z -> X

pi + Z -> X

p + Z -> X

Other Primary particle

Definition at line 11 of file SimParticle.cxx.

11 {
12 ProcessTypeMap proc_map;
15 proc_map["eBrem"] = ProcessType::eBrem;
17 proc_map["conv"] = ProcessType::conv;
19 proc_map["annihil"] = ProcessType::annihil;
21 proc_map["compt"] = ProcessType::compt;
23 proc_map["phot"] = ProcessType::phot;
25 proc_map["eIoni"] = ProcessType::eIoni;
27 proc_map["msc"] = ProcessType::msc;
29 proc_map["photonNuclear"] = ProcessType::photonNuclear;
31 proc_map["muonNuclear"] = ProcessType::muonNuclear;
33 proc_map["electronNuclear"] = ProcessType::electronNuclear;
35 proc_map["GammaToMuPair"] = ProcessType::GammaToMuPair;
37 proc_map["DarkBrem"] = ProcessType::eDarkBrem;
38
39 // Inelastic interactions
41 proc_map["neutronInelastic"] = ProcessType::neutronInelastic;
43 proc_map["neutronCapture"] = ProcessType::neutronCapture;
45 proc_map["kaon-Inelastic"] = ProcessType::kaonInelastic;
46 proc_map["kaon+Inelastic"] = ProcessType::kaonInelastic;
47 proc_map["kaon0LInelastic"] = ProcessType::kaonInelastic;
48 proc_map["kaon0SInelastic"] = ProcessType::kaonInelastic;
50 proc_map["pi-Inelastic"] = ProcessType::pionInelastic;
51 proc_map["pi+Inelastic"] = ProcessType::pionInelastic;
53 proc_map["protonInelastic"] = ProcessType::protonInelastic;
54
57 proc_map["Primary"] = ProcessType::Primary;
58 // Decay
59 proc_map["Decay"] = ProcessType::Decay;
60 return proc_map;
61}
std::map< std::string, ProcessType > ProcessTypeMap
Typedef for process map.
Definition SimParticle.h:54

◆ encodeTracks()

void ldmx::SimParticle::encodeTracks ( std::function< int(int, unsigned int, unsigned int)> encodeFunc,
const unsigned int encoding_version,
const unsigned int event_index = 0 )

Encodes all Track IDs in the SimParticle object according to the schema provided in the 'encodeFunc' passed to this method.

Parameters
encodeFuncThe track ID encoding function to be called.
encoding_versionThe version number for the track ID bitwise encoding schema. Possible values range over [0, 15].
event_indexThe sample event index to assign the track ID.

Definition at line 122 of file SimParticle.cxx.

124 {
125 for (auto& daughter_track : this->daughters_) {
126 daughter_track = encodeFunc(daughter_track, encoding_version, event_index);
127 } // over daughters
128 for (auto& parent_track : this->parents_) {
129 parent_track = encodeFunc(parent_track, encoding_version, event_index);
130 } // over parents
131}

References daughters_, and parents_.

◆ findProcessType()

SimParticle::ProcessType ldmx::SimParticle::findProcessType ( std::string processName)
static

Get the process type enum from a G4VProcess name.

Returns
The process type from the string.

Definition at line 108 of file SimParticle.cxx.

109 {
110 if (process_name.find("biasWrapper") != std::string::npos) {
111 std::size_t pos = process_name.find_first_of("(") + 1;
112 process_name = process_name.substr(pos, process_name.size() - pos - 1);
113 }
114
115 if (process_map.find(process_name) != process_map.end()) {
116 return process_map[process_name];
117 } else {
118 return ProcessType::unknown;
119 }
120}
static ProcessTypeMap process_map
Map containing the process types.

References process_map.

Referenced by simcore::TrackMap::save().

◆ getCharge()

double ldmx::SimParticle::getCharge ( ) const
inline

Get the charge of this particle.

Returns
The charge of this particle.

Definition at line 163 of file SimParticle.h.

163{ return charge_; }

References charge_.

Referenced by tracking::reco::TruthSeedProcessor::createTruthTrack(), and tracking::reco::TruthSeedProcessor::createTruthTrack().

◆ getDaughters()

std::vector< int > ldmx::SimParticle::getDaughters ( ) const
inline

Get a vector containing the track IDs of all daughter particles.

Returns
A vector containing the track IDs of all daughter particles.

Definition at line 171 of file SimParticle.h.

171{ return daughters_; }

References daughters_.

Referenced by dqm::SampleValidation::analyze(), analysis::doesParticleHavePNDaughters(), dqm::PhotoNuclearDQM::findDaughters(), and analysis::getPNGamma().

◆ getEndPoint()

std::vector< double > ldmx::SimParticle::getEndPoint ( ) const
inline

Get the end_point of this particle where it was destroyed or left the world volume [mm].

Returns
The end_point of this particle

Definition at line 140 of file SimParticle.h.

140{ return {end_x_, end_y_, end_z_}; }

References end_x_, end_y_, and end_z_.

Referenced by dqm::SampleValidation::analyze().

◆ getEndPointMomentum()

std::vector< double > ldmx::SimParticle::getEndPointMomentum ( ) const
inline

Get the momentum at this particle's end point.

Returns
The momentum at this particle's end point as a vector.

Definition at line 349 of file SimParticle.h.

349 {
350 return {end_px_, end_py_, end_pz_};
351 }

References end_px_, end_py_, and end_pz_.

◆ getEnergy()

double ldmx::SimParticle::getEnergy ( ) const
inline

Get the energy of this particle [MeV].

Returns
The energy of this particle.

Definition at line 73 of file SimParticle.h.

73{ return energy_; }

References energy_.

Referenced by dqm::SampleValidation::analyze(), dqm::PhotoNuclearDQM::classifyCompactEvent(), and dqm::PhotoNuclearDQM::findSubleadingKinematics().

◆ getGenStatus()

int ldmx::SimParticle::getGenStatus ( ) const
inline

Get the generator status of this particle.

A non-zero status indicates that this particle originates from an external generator (e.g. LHE).

Returns
The generator status.

Definition at line 95 of file SimParticle.h.

95{ return gen_status_; }

References gen_status_.

◆ getInteractionMaterial()

std::string ldmx::SimParticle::getInteractionMaterial ( ) const
inline

Get the material name in which this particle was created in.

The material names are set in the GDML detector description.

Returns
The material name in which this particle was created in.

Definition at line 132 of file SimParticle.h.

132{ return interaction_material_; }
std::string interaction_material_
Volume the track was created in.

References interaction_material_.

◆ getKineticEnergy()

double ldmx::SimParticle::getKineticEnergy ( ) const
inline

Get the kinetic energy of this particle [MeV].

Returns
The kinetic energy of this particle.

Definition at line 80 of file SimParticle.h.

80{ return energy_ - mass_; }

References energy_, and mass_.

◆ getMass()

double ldmx::SimParticle::getMass ( ) const
inline

Get the mass of this particle [GeV].

Returns
The mass of this particle in GeV.

Definition at line 156 of file SimParticle.h.

156{ return mass_; }

References mass_.

◆ getMomentum()

std::vector< double > ldmx::SimParticle::getMomentum ( ) const
inline

Get a vector containing the momentum of this particle [MeV].

The momentum of this particle is set at the time of its creation.

Returns
The momentum of this particle.

Definition at line 149 of file SimParticle.h.

149{ return {px_, py_, pz_}; }

References px_, py_, and pz_.

Referenced by dqm::SampleValidation::analyze(), tracking::reco::TruthSeedProcessor::createTruthTrack(), dqm::DarkBremInteraction::produce(), and tracking::reco::TruthSeedProcessor::taggerFullSeed().

◆ getParents()

std::vector< int > ldmx::SimParticle::getParents ( ) const
inline

Get a vector containing the track IDs of the parent particles.

Returns
A vector containing the track IDs the parent particles.

Definition at line 178 of file SimParticle.h.

178{ return parents_; }

References parents_.

Referenced by dqm::SampleValidation::analyze().

◆ getPdgID()

int ldmx::SimParticle::getPdgID ( ) const
inline

Get the PDG ID of this particle.

Returns
The PDG ID of this particle.

Definition at line 86 of file SimParticle.h.

86{ return pdg_id_; }

References pdg_id_.

Referenced by dqm::SampleValidation::analyze(), and tracking::reco::TruthSeedProcessor::createTruthTrack().

◆ getProcessType()

int ldmx::SimParticle::getProcessType ( ) const
inline

Get the creator process type of this particle.

Returns
The creator process type of this particle.

Definition at line 321 of file SimParticle.h.

321{ return process_type_; }

References process_type_.

◆ getTime()

double ldmx::SimParticle::getTime ( ) const
inline

Get the global time of this particle's creation [ns].

Returns
The global time of this particle's creation.

Definition at line 102 of file SimParticle.h.

102{ return time_; }

References time_.

◆ getVertex()

std::vector< double > ldmx::SimParticle::getVertex ( ) const
inline

Get a vector containing the vertex of this particle in mm.

In this case, the vertex refers to the position where the particle is first created in the simulation. For a particle with generator status equal to 1, this will equal the position from which this particle is fired from.

Returns
The vertex of this particle.

Definition at line 114 of file SimParticle.h.

114{ return {vtx_x_, vtx_y_, vtx_z_}; }

References vtx_x_, vtx_y_, and vtx_z_.

Referenced by dqm::SampleValidation::analyze(), tracking::reco::TruthSeedProcessor::createTruthTrack(), dqm::PhotoNuclearDQM::findRecoilProperties(), and tracking::reco::TruthSeedProcessor::taggerFullSeed().

◆ getVertexVolume()

std::string ldmx::SimParticle::getVertexVolume ( ) const
inline

Get the volume name in which this particle was created in.

The volumes names are set in the GDML detector description.

Returns
The volume name in which this particle was created in.

Definition at line 123 of file SimParticle.h.

123{ return vertex_volume_; }

References vertex_volume_.

◆ setCharge()

void ldmx::SimParticle::setCharge ( const double & charge)
inline

Set the charge of this particle.

Parameters
[in]chargeThe charge of this particle.

Definition at line 281 of file SimParticle.h.

281{ charge_ = charge; }

References charge_.

◆ setEndPoint()

void ldmx::SimParticle::setEndPoint ( const double & end_x,
const double & end_y,
const double & end_z )
inline

Set the end point position of this particle [mm].

Parameters
[in]end_xThe x position of the end point.
[in]end_yThe y position of the end point.
[in]end_zThe z position of the end point.

Definition at line 249 of file SimParticle.h.

250 {
251 end_x_ = end_x;
252 end_y_ = end_y;
253 end_z_ = end_z;
254 }

References end_x_, end_y_, and end_z_.

◆ setEndPointMomentum()

void ldmx::SimParticle::setEndPointMomentum ( const double & end_px,
const double & end_py,
const double & end_pz )
inline

Set the momentum at this particle's end point.

Parameters
[in]end_pxThe x component of the momentum.
[in]end_pyThe y component of the momentum.
[in]end_pzThe z component of the momentum.

Definition at line 337 of file SimParticle.h.

338 {
339 end_px_ = end_px;
340 end_py_ = end_py;
341 end_pz_ = end_pz;
342 }

References end_px_, end_py_, and end_pz_.

◆ setEnergy()

void ldmx::SimParticle::setEnergy ( const double & energy)
inline

Set the energy of this particle [MeV].

Parameters
[in]energythe energy of this particle.

Definition at line 185 of file SimParticle.h.

185{ energy_ = energy; }

References energy_.

◆ setGenStatus()

void ldmx::SimParticle::setGenStatus ( const int & gen_status)
inline

Set the generator status of this particle.

Parameters
[in]gen_statusthe generator status of the hit.

Definition at line 199 of file SimParticle.h.

199{ gen_status_ = gen_status; }

References gen_status_.

Referenced by simcore::TrackMap::save().

◆ setInteractionMaterial()

void ldmx::SimParticle::setInteractionMaterial ( const std::string & interaction_material)
inline

Set the name of the material that this particle was created in.

Parameters
[in]interaction_materialvolume name that this particle was created in.

Definition at line 238 of file SimParticle.h.

238 {
239 interaction_material_ = interaction_material;
240 }

References interaction_material_.

◆ setMass()

void ldmx::SimParticle::setMass ( const double & mass)
inline

Set the mass of this particle [GeV].

Parameters
[in]massThe mass of this particle.

Definition at line 274 of file SimParticle.h.

274{ mass_ = mass; }

References mass_.

◆ setMomentum()

void ldmx::SimParticle::setMomentum ( const double & px,
const double & py,
const double & pz )
inline

Set the momentum of this particle [MeV].

Parameters
[in]pxThe momentum x-component.
[in]pyThe momentum y-component.
[in]pzThe momentum z-component.

Definition at line 263 of file SimParticle.h.

263 {
264 px_ = px;
265 py_ = py;
266 pz_ = pz;
267 }

References px_, py_, and pz_.

◆ setPdgID()

void ldmx::SimParticle::setPdgID ( const int & pdg_id)
inline

Set the PDG ID of this particle.

Parameters
[in]pdg_idthe PDG ID of the hit.

Definition at line 192 of file SimParticle.h.

192{ pdg_id_ = pdg_id; }

References pdg_id_.

◆ setProcessType()

void ldmx::SimParticle::setProcessType ( const int & process_type)
inline

Set the creator process type of this particle.

Parameters
[in]process_typethe creator process type of this particle.

Definition at line 328 of file SimParticle.h.

328{ process_type_ = process_type; }

References process_type_.

◆ setTime()

void ldmx::SimParticle::setTime ( const double & time)
inline

Set the global time of this particle's creation [ns].

Parameters
[in]timeThe global time of this particle's creation.

Definition at line 206 of file SimParticle.h.

206{ time_ = time; }

References time_.

◆ setVertex()

void ldmx::SimParticle::setVertex ( const double & vtx_x,
const double & vtx_y,
const double & vtx_z )
inline

Set the vertex of this particle [mm].

Parameters
[in]xThe vertex x position.
[in]yThe vertex y position.
[in]zThe vertex z position.

Definition at line 215 of file SimParticle.h.

216 {
217 vtx_x_ = vtx_x;
218 vtx_y_ = vtx_y;
219 vtx_z_ = vtx_z;
220 }

References vtx_x_, vtx_y_, and vtx_z_.

◆ setVertexVolume()

void ldmx::SimParticle::setVertexVolume ( const std::string & vertexVolume)
inline

Set the name of the volume that this particle was created in.

Parameters
[in]vertexVolumevolume name that this particle was created in.

Definition at line 228 of file SimParticle.h.

228 {
229 vertex_volume_ = vertexVolume;
230 }

References vertex_volume_.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream & o,
const SimParticle & d )
friend

Print a string representation of this object.

Definition at line 92 of file SimParticle.cxx.

92 {
93 return o << "SimParticle { " << "energy: " << sp.energy_ << ", "
94 << "pdg_id: " << sp.pdg_id_ << ", "
95 << "gen_status: " << sp.gen_status_ << ", " << "time: " << sp.time_
96 << ", " << "vertex: ( " << sp.vtx_x_ << ", " << sp.vtx_y_ << ", "
97 << sp.vtx_z_ << " ), " << "end_point: ( " << sp.end_x_ << ", "
98 << sp.end_y_ << ", " << sp.end_z_ << " ), " << "momentum: ( "
99 << sp.px_ << ", " << sp.py_ << ", " << sp.pz_ << " ), "
100 << "end_point_momentum: ( " << sp.end_px_ << ", " << sp.end_py_
101 << ", " << sp.end_pz_ << " ), " << "mass: " << sp.mass_ << ", "
102 << "n_daughters: " << sp.daughters_.size() << ", "
103 << "n_parents: " << sp.parents_.size() << ", "
104 << "process_type: " << sp.process_type_ << ", "
105 << "vertex_volume: " << sp.vertex_volume_ << " }";
106}

Member Data Documentation

◆ charge_

double ldmx::SimParticle::charge_ {0}
private

The particle's charge.

Definition at line 416 of file SimParticle.h.

416{0};

Referenced by clear(), getCharge(), and setCharge().

◆ daughters_

std::vector<int> ldmx::SimParticle::daughters_
private

The list of daughter particle track IDs.

Definition at line 419 of file SimParticle.h.

Referenced by addDaughter(), clear(), encodeTracks(), and getDaughters().

◆ end_px_

double ldmx::SimParticle::end_px_ {0}
private

The x component of the end_point momentum.

Definition at line 404 of file SimParticle.h.

404{0};

Referenced by clear(), getEndPointMomentum(), and setEndPointMomentum().

◆ end_py_

double ldmx::SimParticle::end_py_ {0}
private

The y component of the end_point momentum.

Definition at line 407 of file SimParticle.h.

407{0};

Referenced by clear(), getEndPointMomentum(), and setEndPointMomentum().

◆ end_pz_

double ldmx::SimParticle::end_pz_ {0}
private

The z component of the end_point momentum.

Definition at line 410 of file SimParticle.h.

410{0};

Referenced by clear(), getEndPointMomentum(), and setEndPointMomentum().

◆ end_x_

double ldmx::SimParticle::end_x_ {0}
private

The x component of the end point.

Definition at line 386 of file SimParticle.h.

386{0};

Referenced by clear(), getEndPoint(), and setEndPoint().

◆ end_y_

double ldmx::SimParticle::end_y_ {0}
private

The y component of the end point.

Definition at line 389 of file SimParticle.h.

389{0};

Referenced by clear(), getEndPoint(), and setEndPoint().

◆ end_z_

double ldmx::SimParticle::end_z_ {0}
private

The z component of the end point.

Definition at line 392 of file SimParticle.h.

392{0};

Referenced by clear(), getEndPoint(), and setEndPoint().

◆ energy_

double ldmx::SimParticle::energy_ {0}
private

The energy of this particle.

Definition at line 365 of file SimParticle.h.

365{0};

Referenced by clear(), getEnergy(), getKineticEnergy(), and setEnergy().

◆ gen_status_

int ldmx::SimParticle::gen_status_ {-1}
private

The generator status.

Definition at line 371 of file SimParticle.h.

371{-1};

Referenced by clear(), getGenStatus(), and setGenStatus().

◆ interaction_material_

std::string ldmx::SimParticle::interaction_material_ {""}
private

Volume the track was created in.

Definition at line 431 of file SimParticle.h.

431{""};

Referenced by getInteractionMaterial(), and setInteractionMaterial().

◆ mass_

double ldmx::SimParticle::mass_ {0}
private

The particle's mass.

Definition at line 413 of file SimParticle.h.

413{0};

Referenced by clear(), getKineticEnergy(), getMass(), and setMass().

◆ parents_

std::vector<int> ldmx::SimParticle::parents_
private

The list of parent particles track IDs.

Definition at line 422 of file SimParticle.h.

Referenced by addParent(), clear(), encodeTracks(), and getParents().

◆ pdg_id_

int ldmx::SimParticle::pdg_id_ {0}
private

The PDG ID of this particle.

Definition at line 368 of file SimParticle.h.

368{0};

Referenced by clear(), getPdgID(), and setPdgID().

◆ process_map

SimParticle::ProcessTypeMap ldmx::SimParticle::process_map
staticprivate
Initial value:
=
static ProcessTypeMap createProcessTypeMap()

Map containing the process types.

Definition at line 434 of file SimParticle.h.

Referenced by findProcessType().

◆ process_type_

int ldmx::SimParticle::process_type_ {-1}
private

Encoding of Geant4 process type.

Definition at line 425 of file SimParticle.h.

425{-1};

Referenced by clear(), getProcessType(), and setProcessType().

◆ px_

double ldmx::SimParticle::px_ {0}
private

The x component of the momentum.

Definition at line 395 of file SimParticle.h.

395{0};

Referenced by clear(), getMomentum(), and setMomentum().

◆ py_

double ldmx::SimParticle::py_ {0}
private

The y component of the momentum.

Definition at line 398 of file SimParticle.h.

398{0};

Referenced by clear(), getMomentum(), and setMomentum().

◆ pz_

double ldmx::SimParticle::pz_ {0}
private

The z component of the momentum.

Definition at line 401 of file SimParticle.h.

401{0};

Referenced by clear(), getMomentum(), and setMomentum().

◆ time_

double ldmx::SimParticle::time_ {0}
private

The global creation time.

Definition at line 374 of file SimParticle.h.

374{0};

Referenced by clear(), getTime(), and setTime().

◆ vertex_volume_

std::string ldmx::SimParticle::vertex_volume_ {""}
private

Volume the track was created in.

Definition at line 428 of file SimParticle.h.

428{""};

Referenced by clear(), getVertexVolume(), and setVertexVolume().

◆ vtx_x_

double ldmx::SimParticle::vtx_x_ {0}
private

The x component of the vertex.

Definition at line 377 of file SimParticle.h.

377{0};

Referenced by clear(), getVertex(), and setVertex().

◆ vtx_y_

double ldmx::SimParticle::vtx_y_ {0}
private

The y component of the vertex.

Definition at line 380 of file SimParticle.h.

380{0};

Referenced by clear(), getVertex(), and setVertex().

◆ vtx_z_

double ldmx::SimParticle::vtx_z_ {0}
private

The z component of the vertex.

Definition at line 383 of file SimParticle.h.

383{0};

Referenced by clear(), getVertex(), and setVertex().


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