LDMX Software
ldmx::CascadeStep Class Reference

Single particle state in the Bertini intranuclear cascade. More...

#include <CascadeStep.h>

Public Member Functions

void clear ()
 
void setHistoryId (int id)
 
void setParentId (int id)
 
void setPdgId (int id)
 
void setMomentum (double px, double py, double pz, double e)
 
void setPosition (double x, double y, double z)
 
void setGeneration (int gen)
 
void setZone (int zone)
 
void setDaughterIds (const std::vector< int > &ids)
 
void addDaughterId (int id)
 
void setTargetPdgId (int id)
 
void setInteracted (bool interacted)
 
void setEscaped (bool escaped)
 
void setStage (CascadeStage stage)
 
void setStage (int stage)
 
int getHistoryId () const
 
int getParentId () const
 
int getPdgId () const
 
double getPx () const
 
double getPy () const
 
double getPz () const
 
double getEnergy () const
 
double getX () const
 
double getY () const
 
double getZ () const
 
int getGeneration () const
 
int getZone () const
 
const std::vector< int > & getDaughterIds () const
 
int getNumDaughters () const
 
int getTargetPdgId () const
 
bool didInteract () const
 
bool didEscape () const
 
CascadeStage getStage () const
 
int getStageInt () const
 
double getKineticEnergy () const
 
double getMass () const
 

Private Member Functions

 ClassDef (CascadeStep, 1)
 

Private Attributes

int history_id_ {-1}
 
int parent_id_ {-1}
 
int pdg_id_ {0}
 
double px_ {0}
 
double py_ {0}
 
double pz_ {0}
 
double energy_ {0}
 
double x_ {0}
 
double y_ {0}
 
double z_ {0}
 
int generation_ {0}
 
int zone_ {0}
 
std::vector< int > daughter_ids_
 
int target_pdg_id_ {0}
 
bool interacted_ {false}
 
bool escaped_ {false}
 
CascadeStage stage_ {CascadeStage::UNKNOWN}
 

Detailed Description

Single particle state in the Bertini intranuclear cascade.

Records PDG, 4-momentum, position, generation, zone, and parent/daughter IDs. History IDs are unique within a cascade and encode the genealogy.

Definition at line 39 of file CascadeStep.h.

Member Function Documentation

◆ addDaughterId()

void ldmx::CascadeStep::addDaughterId ( int id)
inline

Definition at line 63 of file CascadeStep.h.

63{ daughter_ids_.push_back(id); }

◆ clear()

void ldmx::CascadeStep::clear ( )

Definition at line 11 of file CascadeStep.cxx.

11 {
12 history_id_ = -1;
13 parent_id_ = -1;
14 pdg_id_ = 0;
15 px_ = py_ = pz_ = energy_ = 0;
16 x_ = y_ = z_ = 0;
17 generation_ = 0;
18 zone_ = 0;
19 daughter_ids_.clear();
20 target_pdg_id_ = 0;
21 interacted_ = false;
22 escaped_ = false;
23 stage_ = CascadeStage::UNKNOWN;
24}

◆ didEscape()

bool ldmx::CascadeStep::didEscape ( ) const
inline

Definition at line 86 of file CascadeStep.h.

86{ return escaped_; }

◆ didInteract()

bool ldmx::CascadeStep::didInteract ( ) const
inline

Definition at line 85 of file CascadeStep.h.

85{ return interacted_; }

◆ getDaughterIds()

const std::vector< int > & ldmx::CascadeStep::getDaughterIds ( ) const
inline

Definition at line 82 of file CascadeStep.h.

82{ return daughter_ids_; }

◆ getEnergy()

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

Definition at line 76 of file CascadeStep.h.

76{ return energy_; }

◆ getGeneration()

int ldmx::CascadeStep::getGeneration ( ) const
inline

Definition at line 80 of file CascadeStep.h.

80{ return generation_; }

◆ getHistoryId()

int ldmx::CascadeStep::getHistoryId ( ) const
inline

Definition at line 70 of file CascadeStep.h.

70{ return history_id_; }

◆ getKineticEnergy()

double ldmx::CascadeStep::getKineticEnergy ( ) const

Definition at line 26 of file CascadeStep.cxx.

26 {
27 double mass = getMass();
28 return energy_ - mass;
29}

◆ getMass()

double ldmx::CascadeStep::getMass ( ) const

Definition at line 31 of file CascadeStep.cxx.

31 {
32 double p2 = px_ * px_ + py_ * py_ + pz_ * pz_;
33 double m2 = energy_ * energy_ - p2;
34 return (m2 > 0) ? std::sqrt(m2) : 0;
35}

◆ getNumDaughters()

int ldmx::CascadeStep::getNumDaughters ( ) const
inline

Definition at line 83 of file CascadeStep.h.

83{ return static_cast<int>(daughter_ids_.size()); }

◆ getParentId()

int ldmx::CascadeStep::getParentId ( ) const
inline

Definition at line 71 of file CascadeStep.h.

71{ return parent_id_; }

◆ getPdgId()

int ldmx::CascadeStep::getPdgId ( ) const
inline

Definition at line 72 of file CascadeStep.h.

72{ return pdg_id_; }

◆ getPx()

double ldmx::CascadeStep::getPx ( ) const
inline

Definition at line 73 of file CascadeStep.h.

73{ return px_; }

◆ getPy()

double ldmx::CascadeStep::getPy ( ) const
inline

Definition at line 74 of file CascadeStep.h.

74{ return py_; }

◆ getPz()

double ldmx::CascadeStep::getPz ( ) const
inline

Definition at line 75 of file CascadeStep.h.

75{ return pz_; }

◆ getStage()

CascadeStage ldmx::CascadeStep::getStage ( ) const
inline

Definition at line 87 of file CascadeStep.h.

87{ return stage_; }

◆ getStageInt()

int ldmx::CascadeStep::getStageInt ( ) const
inline

Definition at line 88 of file CascadeStep.h.

88{ return static_cast<int>(stage_); }

◆ getTargetPdgId()

int ldmx::CascadeStep::getTargetPdgId ( ) const
inline

Definition at line 84 of file CascadeStep.h.

84{ return target_pdg_id_; }

◆ getX()

double ldmx::CascadeStep::getX ( ) const
inline

Definition at line 77 of file CascadeStep.h.

77{ return x_; }

◆ getY()

double ldmx::CascadeStep::getY ( ) const
inline

Definition at line 78 of file CascadeStep.h.

78{ return y_; }

◆ getZ()

double ldmx::CascadeStep::getZ ( ) const
inline

Definition at line 79 of file CascadeStep.h.

79{ return z_; }

◆ getZone()

int ldmx::CascadeStep::getZone ( ) const
inline

Definition at line 81 of file CascadeStep.h.

81{ return zone_; }

◆ setDaughterIds()

void ldmx::CascadeStep::setDaughterIds ( const std::vector< int > & ids)
inline

Definition at line 62 of file CascadeStep.h.

62{ daughter_ids_ = ids; }

◆ setEscaped()

void ldmx::CascadeStep::setEscaped ( bool escaped)
inline

Definition at line 66 of file CascadeStep.h.

66{ escaped_ = escaped; }

◆ setGeneration()

void ldmx::CascadeStep::setGeneration ( int gen)
inline

Definition at line 60 of file CascadeStep.h.

60{ generation_ = gen; }

◆ setHistoryId()

void ldmx::CascadeStep::setHistoryId ( int id)
inline

Definition at line 46 of file CascadeStep.h.

46{ history_id_ = id; }

◆ setInteracted()

void ldmx::CascadeStep::setInteracted ( bool interacted)
inline

Definition at line 65 of file CascadeStep.h.

65{ interacted_ = interacted; }

◆ setMomentum()

void ldmx::CascadeStep::setMomentum ( double px,
double py,
double pz,
double e )
inline

Definition at line 49 of file CascadeStep.h.

49 {
50 px_ = px;
51 py_ = py;
52 pz_ = pz;
53 energy_ = e;
54 }

◆ setParentId()

void ldmx::CascadeStep::setParentId ( int id)
inline

Definition at line 47 of file CascadeStep.h.

47{ parent_id_ = id; }

◆ setPdgId()

void ldmx::CascadeStep::setPdgId ( int id)
inline

Definition at line 48 of file CascadeStep.h.

48{ pdg_id_ = id; }

◆ setPosition()

void ldmx::CascadeStep::setPosition ( double x,
double y,
double z )
inline

Definition at line 55 of file CascadeStep.h.

55 {
56 x_ = x;
57 y_ = y;
58 z_ = z;
59 }

◆ setStage() [1/2]

void ldmx::CascadeStep::setStage ( CascadeStage stage)
inline

Definition at line 67 of file CascadeStep.h.

67{ stage_ = stage; }

◆ setStage() [2/2]

void ldmx::CascadeStep::setStage ( int stage)
inline

Definition at line 68 of file CascadeStep.h.

68{ stage_ = static_cast<CascadeStage>(stage); }
CascadeStage
Classification of cascade particle stages.
Definition CascadeStep.h:20

◆ setTargetPdgId()

void ldmx::CascadeStep::setTargetPdgId ( int id)
inline

Definition at line 64 of file CascadeStep.h.

64{ target_pdg_id_ = id; }

◆ setZone()

void ldmx::CascadeStep::setZone ( int zone)
inline

Definition at line 61 of file CascadeStep.h.

61{ zone_ = zone; }

Member Data Documentation

◆ daughter_ids_

std::vector<int> ldmx::CascadeStep::daughter_ids_
private

Definition at line 110 of file CascadeStep.h.

◆ energy_

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

Definition at line 101 of file CascadeStep.h.

101{0};

◆ escaped_

bool ldmx::CascadeStep::escaped_ {false}
private

Definition at line 114 of file CascadeStep.h.

114{false};

◆ generation_

int ldmx::CascadeStep::generation_ {0}
private

Definition at line 107 of file CascadeStep.h.

107{0};

◆ history_id_

int ldmx::CascadeStep::history_id_ {-1}
private

Definition at line 94 of file CascadeStep.h.

94{-1};

◆ interacted_

bool ldmx::CascadeStep::interacted_ {false}
private

Definition at line 113 of file CascadeStep.h.

113{false};

◆ parent_id_

int ldmx::CascadeStep::parent_id_ {-1}
private

Definition at line 95 of file CascadeStep.h.

95{-1};

◆ pdg_id_

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

Definition at line 96 of file CascadeStep.h.

96{0};

◆ px_

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

Definition at line 98 of file CascadeStep.h.

98{0};

◆ py_

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

Definition at line 99 of file CascadeStep.h.

99{0};

◆ pz_

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

Definition at line 100 of file CascadeStep.h.

100{0};

◆ stage_

CascadeStage ldmx::CascadeStep::stage_ {CascadeStage::UNKNOWN}
private

Definition at line 116 of file CascadeStep.h.

116{CascadeStage::UNKNOWN};

◆ target_pdg_id_

int ldmx::CascadeStep::target_pdg_id_ {0}
private

Definition at line 111 of file CascadeStep.h.

111{0};

◆ x_

double ldmx::CascadeStep::x_ {0}
private

Definition at line 103 of file CascadeStep.h.

103{0};

◆ y_

double ldmx::CascadeStep::y_ {0}
private

Definition at line 104 of file CascadeStep.h.

104{0};

◆ z_

double ldmx::CascadeStep::z_ {0}
private

Definition at line 105 of file CascadeStep.h.

105{0};

◆ zone_

int ldmx::CascadeStep::zone_ {0}
private

Definition at line 108 of file CascadeStep.h.

108{0};

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