|
LDMX Software
|
Stores detailed information about a photonuclear interaction. More...
#include <PhotonuclearInteraction.h>
Classes | |
| struct | ParticleInfo |
| Stores kinematic and identity information for a particle. More... | |
Public Member Functions | |
| PhotonuclearInteraction ()=default | |
| Constructor. | |
| virtual | ~PhotonuclearInteraction ()=default |
| Destructor. | |
| void | clear () |
| Clear the interaction data. | |
| 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. | |
| ParticleInfo | getIncidentPhoton () const |
| Get the incident photon information. | |
| void | setTarget (int Z, int A, const std::string &material) |
| Set the target nucleus information. | |
| int | getTargetZ () const |
| Get the target atomic number. | |
| int | getTargetA () const |
| Get the target mass number. | |
| std::string | getTargetMaterial () const |
| Get the target material name. | |
| void | addImmediateSecondary (const ParticleInfo &particle) |
| Add an immediate secondary particle from the PN interaction. | |
| std::vector< ParticleInfo > | getImmediateSecondaries () const |
| Get all immediate secondary particles. | |
| int | getNumImmediateSecondaries () const |
| Get the number of immediate secondary particles. | |
| void | addDescendant (int immediate_secondary_id, int final_state_track_id) |
| Add a final state descendant track for an immediate secondary. | |
| std::map< int, std::vector< int > > | getDescendantMap () const |
| Get the descendant map. | |
| std::vector< int > | getDescendants (int immediate_secondary_id) const |
| Get descendants for a specific immediate secondary. | |
| void | setInteractionVolume (const std::string &volume) |
| Set the volume where the interaction occurred. | |
| std::string | getInteractionVolume () const |
| Get the interaction volume name. | |
| void | setProcessName (const std::string &process) |
| Set the process name. | |
| std::string | getProcessName () const |
| Get the process name. | |
| void | print () const |
| Print information about this interaction. | |
Private Member Functions | |
| ClassDef (PhotonuclearInteraction, 1) | |
| ROOT dictionary generation. | |
Private Attributes | |
| ParticleInfo | incident_photon_ |
| Incident photon information. | |
| int | target_z_ {0} |
| Target atomic number. | |
| int | target_a_ {0} |
| Target mass number. | |
| std::string | target_material_ {""} |
| Target material name. | |
| 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. | |
| std::string | interaction_volume_ {""} |
| Volume where interaction occurred. | |
| std::string | process_name_ {""} |
| Process name (e.g., "photonNuclear") | |
Friends | |
| std::ostream & | operator<< (std::ostream &o, const PhotonuclearInteraction &pn) |
| Stream operator for printing. | |
Stores detailed information about a photonuclear interaction.
This class records comprehensive details about photonuclear (PN) interactions to enable validation of cascade mechanisms, identification of edge cases, and analysis of final state particle production.
For each PN interaction, it captures:
Definition at line 32 of file PhotonuclearInteraction.h.
| void ldmx::PhotonuclearInteraction::addDescendant | ( | int | immediate_secondary_id, |
| int | final_state_track_id ) |
Add a final state descendant track for an immediate secondary.
This builds the map from immediate cascade products to their eventual final state particles.
| immediate_secondary_id | Track ID of the immediate secondary |
| final_state_track_id | Track ID of the final state descendant |
Definition at line 50 of file PhotonuclearInteraction.cxx.
References descendant_map_.
| void ldmx::PhotonuclearInteraction::addImmediateSecondary | ( | const ParticleInfo & | particle | ) |
Add an immediate secondary particle from the PN interaction.
| particle | ParticleInfo for the secondary |
Definition at line 45 of file PhotonuclearInteraction.cxx.
References immediate_secondaries_.
Referenced by simcore::PhotonuclearTracker::stepping().
| void ldmx::PhotonuclearInteraction::clear | ( | ) |
Clear the interaction data.
Definition at line 10 of file PhotonuclearInteraction.cxx.
References descendant_map_, immediate_secondaries_, incident_photon_, interaction_volume_, process_name_, target_a_, target_material_, and target_z_.
|
inline |
Get the descendant map.
Maps immediate secondary track ID -> list of final state track IDs
Definition at line 177 of file PhotonuclearInteraction.h.
References descendant_map_.
| std::vector< int > ldmx::PhotonuclearInteraction::getDescendants | ( | int | immediate_secondary_id | ) | const |
Get descendants for a specific immediate secondary.
| immediate_secondary_id | Track ID of the immediate secondary |
Definition at line 55 of file PhotonuclearInteraction.cxx.
References descendant_map_.
|
inline |
Get all immediate secondary particles.
Definition at line 146 of file PhotonuclearInteraction.h.
References immediate_secondaries_.
|
inline |
Get the incident photon information.
Definition at line 102 of file PhotonuclearInteraction.h.
References incident_photon_.
|
inline |
Get the interaction volume name.
Definition at line 203 of file PhotonuclearInteraction.h.
References interaction_volume_.
|
inline |
Get the number of immediate secondary particles.
Definition at line 155 of file PhotonuclearInteraction.h.
References immediate_secondaries_.
|
inline |
Get the process name.
Definition at line 217 of file PhotonuclearInteraction.h.
References process_name_.
|
inline |
Get the target mass number.
Definition at line 125 of file PhotonuclearInteraction.h.
References target_a_.
|
inline |
Get the target material name.
Definition at line 132 of file PhotonuclearInteraction.h.
References target_material_.
|
inline |
Get the target atomic number.
Definition at line 118 of file PhotonuclearInteraction.h.
References target_z_.
| void ldmx::PhotonuclearInteraction::print | ( | ) | const |
Print information about this interaction.
Definition at line 86 of file PhotonuclearInteraction.cxx.
| void ldmx::PhotonuclearInteraction::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.
| track_id | Geant4 track ID |
| energy | Total energy [MeV] |
| px | Momentum x-component [MeV] |
| py | Momentum y-component [MeV] |
| pz | Momentum z-component [MeV] |
| x | Position x-component [mm] |
| y | Position y-component [mm] |
| z | Position z-component [mm] |
| time | Global time [ns] |
Definition at line 21 of file PhotonuclearInteraction.cxx.
References ldmx::PhotonuclearInteraction::ParticleInfo::energy_, incident_photon_, ldmx::PhotonuclearInteraction::ParticleInfo::pdg_id_, ldmx::PhotonuclearInteraction::ParticleInfo::px_, ldmx::PhotonuclearInteraction::ParticleInfo::time_, ldmx::PhotonuclearInteraction::ParticleInfo::track_id_, and ldmx::PhotonuclearInteraction::ParticleInfo::x_.
Referenced by simcore::PhotonuclearTracker::stepping().
|
inline |
Set the volume where the interaction occurred.
| volume | Volume name |
Definition at line 194 of file PhotonuclearInteraction.h.
References interaction_volume_.
Referenced by simcore::PhotonuclearTracker::stepping().
|
inline |
Set the process name.
| process | Process name (e.g., "photonNuclear") |
Definition at line 210 of file PhotonuclearInteraction.h.
References process_name_.
Referenced by simcore::PhotonuclearTracker::stepping().
| void ldmx::PhotonuclearInteraction::setTarget | ( | int | Z, |
| int | A, | ||
| const std::string & | material ) |
Set the target nucleus information.
| Z | Atomic number |
| A | Mass number |
| material | Material name |
Definition at line 38 of file PhotonuclearInteraction.cxx.
References target_a_, target_material_, and target_z_.
Referenced by simcore::PhotonuclearTracker::stepping().
|
friend |
Stream operator for printing.
Definition at line 64 of file PhotonuclearInteraction.cxx.
|
private |
Maps immediate secondary track ID -> final state track IDs.
Definition at line 247 of file PhotonuclearInteraction.h.
Referenced by addDescendant(), clear(), getDescendantMap(), and getDescendants().
|
private |
Immediate secondary particles from the cascade.
Definition at line 244 of file PhotonuclearInteraction.h.
Referenced by addImmediateSecondary(), clear(), getImmediateSecondaries(), and getNumImmediateSecondaries().
|
private |
Incident photon information.
Definition at line 232 of file PhotonuclearInteraction.h.
Referenced by clear(), getIncidentPhoton(), and setIncidentPhoton().
|
private |
Volume where interaction occurred.
Definition at line 250 of file PhotonuclearInteraction.h.
Referenced by clear(), getInteractionVolume(), and setInteractionVolume().
|
private |
Process name (e.g., "photonNuclear")
Definition at line 253 of file PhotonuclearInteraction.h.
Referenced by clear(), getProcessName(), and setProcessName().
|
private |
Target mass number.
Definition at line 238 of file PhotonuclearInteraction.h.
Referenced by clear(), getTargetA(), and setTarget().
|
private |
Target material name.
Definition at line 241 of file PhotonuclearInteraction.h.
Referenced by clear(), getTargetMaterial(), and setTarget().
|
private |
Target atomic number.
Definition at line 235 of file PhotonuclearInteraction.h.
Referenced by clear(), getTargetZ(), and setTarget().