31 void setIncidentTrackId(
int trackId) { incident_track_id_ = trackId; }
32 void setTargetNucleus(
int a,
int z) {
36 void setIncidentEnergy(
double energy) { incident_energy_ = energy; }
37 void setExcitationEnergy(
double energy) { excitation_energy_ = energy; }
38 void setResidualNucleus(
int a,
int z) {
43 void addStep(
const CascadeStep& step) { steps_.push_back(step); }
44 void addStep(
CascadeStep&& step) { steps_.push_back(std::move(step)); }
45 void reserve(
size_t n) { steps_.reserve(n); }
47 int getIncidentTrackId()
const {
return incident_track_id_; }
48 int getTargetA()
const {
return target_a_; }
49 int getTargetZ()
const {
return target_z_; }
50 double getIncidentEnergy()
const {
return incident_energy_; }
51 double getExcitationEnergy()
const {
return excitation_energy_; }
52 int getResidualA()
const {
return residual_a_; }
53 int getResidualZ()
const {
return residual_z_; }
55 size_t getNumSteps()
const {
return steps_.size(); }
56 bool empty()
const {
return steps_.empty(); }
57 const std::vector<CascadeStep>& getSteps()
const {
return steps_; }
58 std::vector<CascadeStep>& getSteps() {
return steps_; }
59 const CascadeStep& getStep(
size_t i)
const {
return steps_.at(i); }
60 const CascadeStep* getStepByHistoryId(
int historyId)
const;
64 std::vector<const CascadeStep*> getStepsAtGeneration(
int generation)
const;
65 std::vector<const CascadeStep*> getInteractingSteps()
const;
66 std::vector<const CascadeStep*> getEscapedSteps()
const;
67 int getMaxGeneration()
const;
68 int getNumInteractions()
const;
72 int incident_track_id_{-1};
75 double incident_energy_{0.0};
76 double excitation_energy_{0.0};
79 std::vector<CascadeStep> steps_;
All CascadeSteps from a single photonuclear interaction.