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