1#include "SimCore/Event/PhotonuclearInteraction.h"
22 double energy,
double px,
23 double py,
double pz,
double x,
39 const std::string& material) {
51 int final_state_track_id) {
52 descendant_map_[immediate_secondary_id].push_back(final_state_track_id);
56 int immediate_secondary_id)
const {
61 return std::vector<int>();
65 o <<
"PhotonuclearInteraction:" <<
" Process: " << pn.
process_name_
75 o <<
" track_id=" << sec.track_id_ <<
" pdg=" << sec.pdg_id_
76 <<
" E=" << sec.energy_ <<
" MeV" << std::endl;
78 o <<
" Descendant map entries: " << pn.
descendant_map_.size() << std::endl;
80 o <<
" Secondary " << sec_id <<
" -> " << descendants.size()
81 <<
" descendants" << std::endl;
Stores detailed information about a photonuclear interaction.
std::string target_material_
Target material name.
int target_a_
Target mass number.
void addDescendant(int immediate_secondary_id, int final_state_track_id)
Add a final state descendant track for an immediate secondary.
void print() const
Print information about this interaction.
ParticleInfo incident_photon_
Incident photon information.
void clear()
Clear the interaction data.
std::vector< int > getDescendants(int immediate_secondary_id) const
Get descendants for a specific immediate secondary.
void addImmediateSecondary(const ParticleInfo &particle)
Add an immediate secondary particle from the PN interaction.
std::string process_name_
Process name (e.g., "photonNuclear")
void setIncidentPhoton(int track_id, int pdg_id, double energy, double px, double py, double pz, double x, double y, double z, double time)
Set the incident photon information.
std::string interaction_volume_
Volume where interaction occurred.
void setTarget(int Z, int A, const std::string &material)
Set the target nucleus information.
std::vector< ParticleInfo > immediate_secondaries_
Immediate secondary particles from the cascade.
std::map< int, std::vector< int > > descendant_map_
Maps immediate secondary track ID -> final state track IDs.
int target_z_
Target atomic number.
Stores kinematic and identity information for a particle.
double px_
Momentum components [MeV].
double x_
Position components [mm].
double time_
Global time [ns].
int track_id_
Track ID from Geant4.
int pdg_id_
PDG particle ID.
double energy_
Total energy [MeV].