Implementation of nuclear interactions of hadrons in the tracker layers (based on FTF model of Geant4). More...
Public Member Functions | |
void | interact (fastsim::Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< fastsim::Particle > > &secondaries, const RandomEngineAndDistribution &random) override |
Perform the interaction. More... | |
NuclearInteractionFTF (const std::string &name, const edm::ParameterSet &cfg) | |
Constructor. More... | |
~NuclearInteractionFTF () override | |
Default destructor. More... | |
Public Member Functions inherited from fastsim::InteractionModel | |
const std::string | getName () |
Return (unique) name of this interaction. More... | |
virtual void | interact (Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< Particle > > &secondaries, const RandomEngineAndDistribution &random)=0 |
Perform the interaction. More... | |
InteractionModel (std::string name) | |
Constructor. More... | |
virtual void | registerProducts (edm::ProducesCollector) const |
In case interaction produces and stores content in the event (e.g. TrackerSimHits). More... | |
virtual void | storeProducts (edm::Event &iEvent) |
In case interaction produces and stores content in the event (e.g. TrackerSimHits). More... | |
virtual | ~InteractionModel () |
Default destructor. More... | |
Private Attributes | |
const double | corrfactors_el [numHadrons][npoints] |
elastic interaction length corrections per particle and energy More... | |
const double | corrfactors_inel [numHadrons][npoints] |
inelastic interaction length corrections per particle and energy More... | |
G4LorentzVector | curr4Mom |
int | currIdx |
Index of particle in vector of Geant4 particles. More... | |
const G4ParticleDefinition * | currParticle |
G4Track * | currTrack |
G4Step * | dummyStep |
size_t | index |
Index for energy of particle (vectors parametrized as a function of energy) More... | |
double | intLengthElastic |
Elastic interaction length. More... | |
double | intLengthInelastic |
Inelastic interaction length. More... | |
const double | nuclElLength [numHadrons] |
elastic interaction length in Silicon at 1 TeV per particle More... | |
const double | nuclInelLength [numHadrons] |
inelastic interaction length in Silicon at 1 TeV per particle More... | |
G4Nucleus | targetNucleus |
G4CascadeInterface * | theBertiniCascade |
double | theBertiniLimit |
Bertini cascade for low-energy hadrons. More... | |
G4ThreeVector | theBoost |
G4GeneratorPrecompoundInterface * | theCascade |
G4DiffuseElastic * | theDiffuseElastic |
double | theDistCut |
Cut on deltaR for ClosestChargedDaughter algorithm (FastSim tracking) More... | |
double | theEnergyLimit |
Minimum energy of interacting particle. More... | |
G4TheoFSGenerator * | theHadronicModel |
G4LundStringFragmentation * | theLund |
G4HadProjectile | theProjectile |
G4ExcitedStringDecay * | theStringDecay |
G4FTFModel * | theStringModel |
G4PhysicsLogVector * | vect |
G4ThreeVector | vectProj |
Static Private Attributes | |
static const int | npoints = 21 |
Number of steps to cover range of particle energies. More... | |
static const int | numHadrons = 30 |
Number of G4 hadrons. More... | |
static const G4ParticleDefinition * | theG4Hadron [numHadrons] = {nullptr} |
The Geant4 particles. More... | |
static int | theId [numHadrons] = {0} |
The pdgIDs of the Geant4 particles. More... | |
Implementation of nuclear interactions of hadrons in the tracker layers (based on FTF model of Geant4).
Computes the probability for hadrons to interact with a nucleon of the tracker material (inelastically) and then sample nuclear interaction using FTF model of Geant4 Also, another implementation of nuclear interactions can be used that is based on FullSim events (NuclearInteraction).
Definition at line 102 of file NuclearInteractionFTF.cc.
fastsim::NuclearInteractionFTF::NuclearInteractionFTF | ( | const std::string & | name, |
const edm::ParameterSet & | cfg | ||
) |
Constructor.
Definition at line 299 of file NuclearInteractionFTF.cc.
References looper::cfg, currIdx, currParticle, currTrack, bJpsiMuMuTrigSettings_cff::decays, dummyStep, mps_fire::i, index, fastsim::initializeOnce, intLengthElastic, intLengthInelastic, BPhysicsValidation_cfi::Lambda, npoints, numHadrons, phase2TrackerDigitizer_cfi::SigmaZero, targetNucleus, theBertiniCascade, theBertiniLimit, theDiffuseElastic, theDistCut, theEnergyLimit, theG4Hadron, theHadronicModel, theId, theLund, theStringDecay, theStringModel, and vect.
|
override |
Default destructor.
Definition at line 387 of file NuclearInteractionFTF.cc.
|
override |
Perform the interaction.
particle | The particle that interacts with the matter. |
layer | The detector layer that interacts with the particle. |
secondaries | Particles that are produced in the interaction (if any). |
random | The Random Engine. |
Definition at line 394 of file NuclearInteractionFTF.cc.
References funct::abs(), fastsim::Particle::charge(), corrfactors_el, corrfactors_inel, funct::cos(), DeadROC_duringRun::dir, Calorimetry_cff::dp, MillePedeFileConverter_cfg::e, StorageManager_cfg::e1, EcalCondDBWriter_cfi::Energy, RandomEngineAndDistribution::flatShoot(), fastsim::Particle::getMotherDeltaR(), fastsim::Particle::getMotherPdgId(), dqmiolumiharvest::j, EgHLTOffHistBins_cfi::mass, fastsim::Particle::momentum(), npoints, nuclElLength, nuclInelLength, numHadrons, fastsim::Particle::pdgId(), fastsim::Particle::position(), multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, mps_fire::result, fastsim::Particle::simTrackIndex(), funct::sin(), and mathSSE::sqrt().
|
private |
elastic interaction length corrections per particle and energy
Definition at line 221 of file NuclearInteractionFTF.cc.
|
private |
inelastic interaction length corrections per particle and energy
Definition at line 161 of file NuclearInteractionFTF.cc.
|
private |
Definition at line 145 of file NuclearInteractionFTF.cc.
|
private |
Index of particle in vector of Geant4 particles.
Definition at line 157 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 141 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 140 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 139 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Index for energy of particle (vectors parametrized as a function of energy)
Definition at line 158 of file NuclearInteractionFTF.cc.
Referenced by edmTracerCompactLogViewer.EDModuleTransitionParser::_postJson(), edmTracerCompactLogViewer.ESModuleTransitionParser::_postJson(), edmModuleAllocMonitorAnalyze.EDModuleTransitionParser::_postJsonInfo(), edmModuleAllocMonitorAnalyze.ESModuleTransitionParser::_postJsonInfo(), edmModuleAllocMonitorAnalyze.EDModuleTransitionParser::_postJsonVis(), edmModuleAllocMonitorAnalyze.ESModuleTransitionParser::_postJsonVis(), edmTracerCompactLogViewer.EDModuleTransitionParser::_preJson(), edmTracerCompactLogViewer.ESModuleTransitionParser::_preJson(), edmModuleAllocMonitorAnalyze.EDModuleTransitionParser::_preJsonInfo(), edmModuleAllocMonitorAnalyze.ESModuleTransitionParser::_preJsonInfo(), edmModuleAllocMonitorAnalyze.EDModuleTransitionParser::_preJsonVis(), edmModuleAllocMonitorAnalyze.ESModuleTransitionParser::_preJsonVis(), edmTracerCompactLogViewer.PostSourceTransitionParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PostFrameworkTransitionParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PreSourceTransitionParser::jsonInfo(), edmTracerCompactLogViewer.PostEDModulePrefetchingParser::jsonInfo(), edmTracerCompactLogViewer.PostEDModuleAcquireParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PostSourceTransitionParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PreEventReadFromSourceParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PostEventReadFromSourceParser::jsonInfo(), edmModuleAllocMonitorAnalyze.PreFrameworkTransitionParser::jsonVisInfo(), edmModuleAllocMonitorAnalyze.PostFrameworkTransitionParser::jsonVisInfo(), edmModuleAllocMonitorAnalyze.PostSourceTransitionParser::jsonVisInfo(), edmModuleAllocMonitorAnalyze.PostEDModuleAcquireParser::jsonVisInfo(), NuclearInteractionFTF(), edmTracerCompactLogViewer.EDModuleTransitionParser::textPrefix(), edmTracerCompactLogViewer.ESModuleTransitionParser::textPrefix(), edmModuleAllocMonitorAnalyze.EDModuleTransitionParser::textPrefix(), and edmModuleAllocMonitorAnalyze.ESModuleTransitionParser::textPrefix().
|
private |
Elastic interaction length.
Definition at line 154 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Inelastic interaction length.
Definition at line 155 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
staticprivate |
Number of steps to cover range of particle energies.
Definition at line 124 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
elastic interaction length in Silicon at 1 TeV per particle
Definition at line 286 of file NuclearInteractionFTF.cc.
|
private |
inelastic interaction length in Silicon at 1 TeV per particle
Definition at line 280 of file NuclearInteractionFTF.cc.
|
staticprivate |
Number of G4 hadrons.
Definition at line 123 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 143 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 136 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Bertini cascade for low-energy hadrons.
Definition at line 149 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 147 of file NuclearInteractionFTF.cc.
|
private |
Definition at line 134 of file NuclearInteractionFTF.cc.
|
private |
Definition at line 137 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Cut on deltaR for ClosestChargedDaughter algorithm (FastSim tracking)
Definition at line 152 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Minimum energy of interacting particle.
Definition at line 150 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
staticprivate |
The Geant4 particles.
Definition at line 126 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 130 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
staticprivate |
The pdgIDs of the Geant4 particles.
Definition at line 127 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 133 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 144 of file NuclearInteractionFTF.cc.
|
private |
Definition at line 132 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 131 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 129 of file NuclearInteractionFTF.cc.
Referenced by NuclearInteractionFTF().
|
private |
Definition at line 146 of file NuclearInteractionFTF.cc.