#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 () override |
Save current nuclear interaction (for later use) More... | |
~NuclearInteractionSimulator () override | |
Default Destructor. More... | |
Public Member Functions inherited from MaterialEffectsSimulator | |
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 *) override |
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 |
TFile * | theFile |
std::vector< std::vector< std::string > > | theFileNames |
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 | |
Public Types inherited from MaterialEffectsSimulator | |
typedef std::vector< RawParticle >::const_iterator | RHEP_const_iter |
Protected Attributes inherited from MaterialEffectsSimulator | |
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 25 of file NuclearInteractionSimulator.cc.
References gather_cfg::cout, currentValuesWereSet, Exception, corrVsCorr::filename, contentValuesFiles::fullPath, edm::FileInPath::fullPath(), ien4, makeListRunsInFiles::inputFile, myOutputBuffer, myOutputFile, read(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, theBranches, theCurrentEntry, theCurrentInteraction, theFile, theFileNames, theNUEvents, theNumberOfEntries, theNumberOfInteractions, thePionCM, thePionEN, thePionMA, thePionNA, theTrees, and to_string().
|
override |
Default Destructor.
Definition at line 164 of file NuclearInteractionSimulator.cc.
References myOutputFile, theFile, and theNUEvents.
|
overrideprivatevirtual |
Generate a nuclear interaction according to the probability that it happens.
Implements MaterialEffectsSimulator.
Definition at line 183 of file NuclearInteractionSimulator.cc.
References MaterialEffectsSimulator::_theUpdatedState, funct::abs(), RawParticle::boost(), currentValuesWereSet, HLT_2024v11_cff::distance, distanceToPrimary(), muonTagProbeFilters_cff::distMin, hcalRecHitTable_cff::energy, JetChargeProducer_cfi::exp, NUEvent::NUInteraction::first, RandomEngineAndDistribution::flatShoot(), NUEvent::NUParticle::id, ien4, index(), NUEvent::NUInteraction::last, dqm-mbProfile::log, makeParticle(), NUEvent::NUParticle::mass, MaterialEffectsSimulator::orthogonal(), phi, ALCARECOTkAlMinBias_cff::pMin, funct::pow(), NUEvent::NUParticle::px, NUEvent::NUParticle::py, NUEvent::NUParticle::pz, MaterialEffectsSimulator::radLengths, RawParticle::rotate(), funct::sin(), slope, mathSSE::sqrt(), MaterialEffectsSimulator::theA(), MaterialEffectsSimulator::theClosestChargedDaughterId, theCurrentEntry, theCurrentInteraction, theDistCut, theIDMap, theLengthRatio, theNUEvents, theNumberOfEntries, theNumberOfInteractions, thePionCM, thePionEN, thePionEnergy, thePionNA, thePionPMin, theRatios, theta(), theTrees, and HLT_2024v11_cff::zAxis.
|
private |
Compute distance between secondary and primary.
Definition at line 491 of file NuclearInteractionSimulator.cc.
References RawParticle::charge(), HLT_2024v11_cff::distance, theDistAlgo, and RawParticle::Vect().
Referenced by compute().
|
private |
Return a hashed index for a given pid.
Definition at line 625 of file NuclearInteractionSimulator.cc.
References thePionID.
Referenced by compute().
bool NuclearInteractionSimulator::read | ( | std::string | inputFile | ) |
Read former nuclear interaction (from previous run)
Definition at line 568 of file NuclearInteractionSimulator.cc.
References makeListRunsInFiles::inputFile, mysort::results, findQualityFiles::size, edm_modernize_messagelogger::stat, theCurrentEntry, and theCurrentInteraction.
Referenced by edmIntegrityCheck.PublishToFileSystem::get(), and NuclearInteractionSimulator().
|
overridevirtual |
Save current nuclear interaction (for later use)
Reimplemented from MaterialEffectsSimulator.
Definition at line 522 of file NuclearInteractionSimulator.cc.
References myOutputBuffer, myOutputFile, findQualityFiles::size, theCurrentEntry, and theCurrentInteraction.
|
private |
Definition at line 96 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 89 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 94 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator(), and save().
|
private |
Definition at line 93 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator(), save(), and ~NuclearInteractionSimulator().
|
private |
Definition at line 79 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator().
|
private |
Definition at line 81 of file NuclearInteractionSimulator.h.
Referenced by compute(), NuclearInteractionSimulator(), read(), and save().
|
private |
Definition at line 82 of file NuclearInteractionSimulator.h.
Referenced by compute(), NuclearInteractionSimulator(), read(), and save().
|
private |
Definition at line 90 of file NuclearInteractionSimulator.h.
Referenced by distanceToPrimary().
|
private |
Definition at line 91 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 77 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator(), and ~NuclearInteractionSimulator().
|
private |
Definition at line 85 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator().
|
private |
Definition at line 88 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 74 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 80 of file NuclearInteractionSimulator.h.
Referenced by compute(), NuclearInteractionSimulator(), and ~NuclearInteractionSimulator().
|
private |
Definition at line 83 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 84 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 86 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 68 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 73 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 69 of file NuclearInteractionSimulator.h.
Referenced by index().
|
private |
Definition at line 71 of file NuclearInteractionSimulator.h.
Referenced by NuclearInteractionSimulator().
|
private |
Definition at line 70 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().
|
private |
Definition at line 72 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 75 of file NuclearInteractionSimulator.h.
Referenced by compute().
|
private |
Definition at line 78 of file NuclearInteractionSimulator.h.
Referenced by compute(), and NuclearInteractionSimulator().