![]() |
![]() |
#include <NuclearInteractionSimulator.h>
Public Member Functions | |
NuclearInteractionSimulator (std::vector< double > &hadronEnergies, std::vector< int > &hadronTypes, std::vector< std::string > &hadronNames, std::vector< double > &hadronMasses, std::vector< double > &hadronPMin, double pionEnergy, std::vector< double > &lengthRatio, std::vector< std::vector< double > > &ratios, std::map< int, int > &idMap, std::string inputFile, unsigned int distAlgo, double distCut) | |
Constructor. More... | |
bool | read (std::string inputFile) |
Read former nuclear interaction (from previous run) More... | |
void | save () |
Save current nuclear interaction (for later use) More... | |
~NuclearInteractionSimulator () | |
Default Destructor. More... | |
![]() | |
RHEP_const_iter | beginDaughters () const |
Returns const iterator to the beginning of the daughters list. More... | |
int | closestDaughterId () |
The id of the closest charged daughter (filled for nuclear interactions only) More... | |
double | eMass () const |
Electron mass in GeV/c2. More... | |
RHEP_const_iter | endDaughters () const |
Returns const iterator to the end of the daughters list. More... | |
double | excitE () const |
Mean excitation energy (in GeV) More... | |
MaterialEffectsSimulator (double A=28.0855, double Z=14.0000, double density=2.329, double radLen=9.360) | |
unsigned | nDaughters () const |
Returns the number of daughters. More... | |
XYZVector | orthogonal (const XYZVector &) const |
A vector orthogonal to another one (because it's not in XYZTLorentzVector) More... | |
double | radLenIncm () const |
One radiation length in cm. More... | |
double | rho () const |
Density in g/cm3. More... | |
void | setNormalVector (const GlobalVector &normal) |
Sets the vector normal to the surface traversed. More... | |
double | theA () const |
A. More... | |
double | theZ () const |
Z. More... | |
void | updateState (ParticlePropagator &myTrack, double radlen, RandomEngineAndDistribution const *) |
Compute the material effect (calls the sub class) More... | |
virtual | ~MaterialEffectsSimulator () |
Private Member Functions | |
void | compute (ParticlePropagator &Particle, RandomEngineAndDistribution const *) |
Generate a nuclear interaction according to the probability that it happens. More... | |
double | distanceToPrimary (const RawParticle &Particle, const RawParticle &aDaughter) const |
Compute distance between secondary and primary. More... | |
unsigned | index (int thePid) |
Return a hashed index for a given pid. More... | |
Private Attributes | |
bool | currentValuesWereSet |
unsigned | ien4 |
unsigned | myOutputBuffer |
std::ofstream | myOutputFile |
std::vector< std::vector < TBranch * > > | theBranches |
std::vector< std::vector < unsigned > > | theCurrentEntry |
std::vector< std::vector < unsigned > > | theCurrentInteraction |
unsigned | theDistAlgo |
double | theDistCut |
std::vector< std::vector < std::string > > | theFileNames |
std::vector< std::vector < TFile * > > | theFiles |
std::map< int, int > | theIDMap |
std::vector< double > | theLengthRatio |
std::vector< std::vector < NUEvent * > > | theNUEvents |
std::vector< std::vector < unsigned > > | theNumberOfEntries |
std::vector< std::vector < unsigned > > | theNumberOfInteractions |
std::vector< std::vector < double > > | thePionCM |
std::vector< double > | thePionEN |
double | thePionEnergy |
std::vector< int > | thePionID |
std::vector< double > | thePionMA |
std::vector< std::string > | thePionNA |
std::vector< double > | thePionPMin |
std::vector< std::vector < double > > | theRatios |
std::vector< std::vector < TTree * > > | theTrees |
Additional Inherited Members | |
![]() | |
typedef std::vector < RawParticle > ::const_iterator | RHEP_const_iter |
![]() | |
std::vector< RawParticle > | _theUpdatedState |
double | A |
double | density |
double | radLen |
double | radLengths |
int | theClosestChargedDaughterId |
GlobalVector | theNormalVector |
double | Z |
Definition at line 33 of file NuclearInteractionSimulator.h.
NuclearInteractionSimulator::NuclearInteractionSimulator | ( | std::vector< double > & | hadronEnergies, |
std::vector< int > & | hadronTypes, | ||
std::vector< std::string > & | hadronNames, | ||
std::vector< double > & | hadronMasses, | ||
std::vector< double > & | hadronPMin, | ||
double | pionEnergy, | ||
std::vector< double > & | lengthRatio, | ||
std::vector< std::vector< double > > & | ratios, | ||
std::map< int, int > & | idMap, | ||
std::string | inputFile, | ||
unsigned int | distAlgo, | ||
double | distCut | ||
) |
Constructor.
Definition at line 24 of file NuclearInteractionSimulator.cc.
NuclearInteractionSimulator::~NuclearInteractionSimulator | ( | ) |
Default Destructor.
Definition at line 179 of file NuclearInteractionSimulator.cc.
|
privatevirtual |
Generate a nuclear interaction according to the probability that it happens.
Implements MaterialEffectsSimulator.
Definition at line 198 of file NuclearInteractionSimulator.cc.
|
private |
Compute distance between secondary and primary.
Definition at line 530 of file NuclearInteractionSimulator.cc.
|
private |
Return a hashed index for a given pid.
Definition at line 689 of file NuclearInteractionSimulator.cc.
bool NuclearInteractionSimulator::read | ( | std::string | inputFile | ) |
Read former nuclear interaction (from previous run)
Definition at line 625 of file NuclearInteractionSimulator.cc.
|
virtual |
Save current nuclear interaction (for later use)
Reimplemented from MaterialEffectsSimulator.
Definition at line 572 of file NuclearInteractionSimulator.cc.
|
private |
Definition at line 100 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 93 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 98 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 97 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 83 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 85 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 86 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 94 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 95 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 89 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 81 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 92 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 78 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 84 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 87 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 88 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 90 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 72 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 77 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 73 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 75 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 74 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 76 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 79 of file NuclearInteractionSimulator.h.
|
private |
Definition at line 82 of file NuclearInteractionSimulator.h.