A singleton holding random number generator classes. All random number generation in GENIE should take place through this class. Ensures that the random number generator seed is set consistently to all GENIE modules and that all modules use the preferred rndm number generator. More...
Classes | |
struct | Cleaner |
Public Member Functions | |
TRandom3 & | RndKine (void) const |
rnd number generator used by kinematics generators More... | |
TRandom3 & | RndHadro (void) const |
rnd number generator used by hadronization models More... | |
TRandom3 & | RndDec (void) const |
rnd number generator used by decay models More... | |
TRandom3 & | RndFsi (void) const |
rnd number generator used by intranuclear cascade monte carlos More... | |
TRandom3 & | RndLep (void) const |
rnd number generator used by final state primary lepton generators More... | |
TRandom3 & | RndISel (void) const |
rnd number generator used by interaction selectors More... | |
TRandom3 & | RndGeom (void) const |
rnd number generator used by geometry drivers More... | |
TRandom3 & | RndFlux (void) const |
rnd number generator used by flux drivers More... | |
TRandom3 & | RndEvg (void) const |
rnd number generator used by the event generation drivers More... | |
TRandom3 & | RndNum (void) const |
rnd number generator used by MC integrators & other numerical methods More... | |
TRandom3 & | RndGen (void) const |
rnd number generator for generic usage More... | |
long int | GetSeed (void) const |
void | SetSeed (long int seed) |
Static Public Member Functions | |
static RandomGen * | Instance () |
Access instance. More... | |
Private Member Functions | |
RandomGen () | |
RandomGen (const RandomGen &rgen) | |
virtual | ~RandomGen () |
void | InitRandomGenerators (long int seed) |
Private Attributes | |
TRandom3 * | fRandom3 |
Mersenne Twistor. More... | |
long int | fCurrSeed |
random number generator seed number More... | |
bool | fInitalized |
done initializing singleton? More... | |
Static Private Attributes | |
static RandomGen * | fInstance = 0 |
Friends | |
struct | Cleaner |
A singleton holding random number generator classes. All random number generation in GENIE should take place through this class. Ensures that the random number generator seed is set consistently to all GENIE modules and that all modules use the preferred rndm number generator.
September 22, 2004
Copyright (c) 2003-2019, The GENIE Collaboration For the full text of the license visit http://copyright.genie-mc.org or see $GENIE/LICENSE
Definition at line 30 of file RandomGen.h.
|
private |
Definition at line 35 of file RandomGen.cxx.
References exit(), genie::gAbortingInErr, genie::controls::kDefaultRandSeed, LOG, pFATAL, and pINFO.
Referenced by GetSeed().
|
private |
|
privatevirtual |
Definition at line 83 of file RandomGen.h.
References fCurrSeed, RandomGen(), seed, SetSeed(), and ~RandomGen().
Definition at line 134 of file RandomGen.cxx.
Access instance.
Definition at line 79 of file RandomGen.cxx.
References genie::RandomGen::Cleaner::DummyMethodAndSilentCompiler().
Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::BaryonResonanceDecayer::AcceptPionDecay(), genie::MECGenerator::AddFinalStateLepton(), genie::AMNuGammaGenerator::AddPhoton(), INukeNucleonCorr::AvgCorrection(), BuildSpectrum(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), genie::COHKinematicsGenerator::CalculateKin_AlvarezRuso(), genie::SKKinematicsGenerator::CalculateKin_AtharSingleKaon(), genie::COHKinematicsGenerator::CalculateKin_BergerSehgal(), genie::COHKinematicsGenerator::CalculateKin_BergerSehgalFM(), genie::COHKinematicsGenerator::CalculateKin_ReinSehgal(), genie::flux::GFluxBlender::ChooseFlavor(), ConvertToGTracker(), evgen::CORSIKAGen::CORSIKAGen(), genie::KNOHadronization::DecayBackToBack(), genie::BaryonResonanceDecayer::DecayExclusive(), genie::KNOHadronization::DecayMethod2(), genie::MECGenerator::DecayNucleonCluster(), genie::HNIntranuke2018::ElasHN(), genie::utils::intranuke::Equilibrium(), genie::utils::intranuke2018::Equilibrium(), genie::HNIntranuke2018::GammaInelasticHN(), genie::geometry::ROOTGeomAnalyzer::GenBoxRay(), genie::KNOHadronization::GenerateBaryonPdgCode(), genie::CharmHadronization::GenerateCharmHadron(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayedNucleonPosition(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayProducts(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), genie::GMCJDriver::GenerateEvent1Try(), GenerateEventsAtFixedInitState(), genie::KNOHadronization::GenerateHadronCodes(), genie::flux::GMonoEnergeticFlux::GenerateNext(), genie::flux::GJPARCNuFlux::GenerateNext(), genie::flux::GDk2NuFlux::GenerateNext(), genie::flux::GSimpleNtpFlux::GenerateNext(), genie::flux::GNuMIFlux::GenerateNext(), genie::flux::GAtmoFlux::GenerateNext_1try(), genie::flux::GDk2NuFlux::GenerateNext_weighted(), genie::flux::GNuMIFlux::GenerateNext_weighted(), genie::SpectralFunc::GenerateNucleon(), genie::EffectiveSF::GenerateNucleon(), genie::LocalFGM::GenerateNucleon(), genie::FGMBodekRitchie::GenerateNucleon(), genie::SpectralFunc1d::GenerateNucleon(), genie::NNBarOscPrimaryVtxGenerator::GenerateOscillatingNeutronPosition(), genie::flux::GCylindTH1Flux::GeneratePhi(), genie::Intranuke::GenerateStep(), genie::Intranuke2018::GenerateStep(), INukeNucleonCorr::generateTargetNucleon(), genie::VertexGenerator::GenerateVertex(), genie::geometry::ROOTGeomAnalyzer::GenerateVertex(), genie::Intranuke::GenerateVertex(), genie::Intranuke2018::GenerateVertex(), evgen::GENIENeutronOscGen::GENIENeutronOscGen(), genie::supernova::GFluxWindow::GenPosition(), GetDetectorVertex(), GetRandomRay(), GetTargetMaterial(), genie::HAIntranuke::HadronFateHA(), genie::HAIntranuke2018::HadronFateHA(), genie::HNIntranuke2018::HadronFateHN(), genie::HNIntranuke2018::HadronFateOset(), genie::PythiaHadronization::Hadronize(), genie::CharmHadronization::Hadronize(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke::InelasticHA(), genie::HAIntranuke2018::InelasticHA(), genie::PythiaHadronization::Initialize(), genie::PythiaDecayer::Initialize(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData::IntBounce(), genie::FermiMover::KickHitNucleon(), genie::flux::GDk2NuFlux::LoadBeamSimData(), genie::flux::GSimpleNtpFlux::LoadBeamSimData(), genie::flux::GNuMIFlux::LoadBeamSimData(), genie::GLRESGenerator::LoadConfig(), main(), genie::NucDeExcitationSim::OxygenTargetSim(), genie::KNOHadronization::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::NucDeExcitationSim::Photon4P(), genie::NucDeExcitationSim::PhotonEnergySmearing(), genie::HAIntranuke::PiBounce(), genie::HAIntranuke2018::PiBounce(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke2018::PionProduction(), genie::HAIntranuke::PnBounce(), genie::HAIntranuke2018::PnBounce(), genie::utils::intranuke::PreEquilibrium(), genie::utils::intranuke2018::PreEquilibrium(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NuEPrimaryLeptonGenerator::ProcessEventRecord(), genie::NuEKinematicsGenerator::ProcessEventRecord(), genie::DFRKinematicsGenerator::ProcessEventRecord(), genie::PrimaryLeptonGenerator::ProcessEventRecord(), genie::COHElKinematicsGenerator::ProcessEventRecord(), genie::QELKinematicsGenerator::ProcessEventRecord(), genie::RESKinematicsGenerator::ProcessEventRecord(), genie::OutgoingDarkGenerator::ProcessEventRecord(), genie::IBDKinematicsGenerator::ProcessEventRecord(), genie::DMELKinematicsGenerator::ProcessEventRecord(), genie::DISKinematicsGenerator::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::DMDISKinematicsGenerator::ProcessEventRecord(), genie::QELEventGeneratorSM::ProcessEventRecord(), genie::utils::app_init::RandGen(), genie::flux::GJPARCNuFlux::RandomOffset(), SelectAnnihilationMode(), genie::BaryonResonanceDecayer::SelectDecayChannel(), genie::MECGenerator::SelectEmpiricalKinematics(), genie::flux::GAstroFlux::NuGenerator::SelectEnergy(), genie::KNOPythiaHadronization::SelectHadronizer(), SelectInitState(), genie::PhysInteractionSelector::SelectInteraction(), genie::ToyInteractionSelector::SelectInteraction(), genie::flux::GCylindTH1Flux::SelectNeutrino(), genie::flux::GAtmoFlux::SelectNeutrino(), genie::MECGenerator::SelectNSVLeptonKinematics(), genie::flux::GAstroFlux::NuGenerator::SelectNuPdg(), genie::flux::GAstroFlux::NuGenerator::SelectOrigin(), genie::RSPPResonanceSelector::SelectResonance(), genie::flux::GPointSourceAstroFlux::SelectSource(), genie::QELKinematicsGenerator::SpectralFuncExperimentalCode(), genie::DMELKinematicsGenerator::SpectralFuncExperimentalCode(), genie::supernova::OrderedSampler::Step(), genie::utils::intranuke::ThreeBodyKinematics(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke::TwoBodyKinematics(), genie::utils::intranuke2018::TwoBodyKinematics(), and genie::flux::GDk2NuFluxXMLHelper::~GDk2NuFluxXMLHelper().
|
inline |
rnd number generator used by decay models
Definition at line 57 of file RandomGen.h.
References fRandom3.
Referenced by genie::BaryonResonanceDecayer::DecayExclusive(), genie::MECGenerator::DecayNucleonCluster(), genie::NucDeExcitationSim::OxygenTargetSim(), genie::NucDeExcitationSim::Photon4P(), genie::NucDeExcitationSim::PhotonEnergySmearing(), and genie::BaryonResonanceDecayer::SelectDecayChannel().
|
inline |
rnd number generator used by the event generation drivers
Definition at line 75 of file RandomGen.h.
References fRandom3.
Referenced by genie::GMCJDriver::GenerateEvent1Try(), and SelectInitState().
|
inline |
rnd number generator used by flux drivers
Definition at line 72 of file RandomGen.h.
References fRandom3.
Referenced by genie::flux::GFluxBlender::ChooseFlavor(), genie::flux::GMonoEnergeticFlux::GenerateNext(), genie::flux::GJPARCNuFlux::GenerateNext(), genie::flux::GDk2NuFlux::GenerateNext(), genie::flux::GSimpleNtpFlux::GenerateNext(), genie::flux::GNuMIFlux::GenerateNext(), genie::flux::GAtmoFlux::GenerateNext_1try(), genie::flux::GDk2NuFlux::GenerateNext_weighted(), genie::flux::GNuMIFlux::GenerateNext_weighted(), genie::flux::GCylindTH1Flux::GeneratePhi(), genie::supernova::GFluxWindow::GenPosition(), GetDetectorVertex(), GetRandomRay(), GetTargetMaterial(), genie::flux::GDk2NuFlux::LoadBeamSimData(), genie::flux::GSimpleNtpFlux::LoadBeamSimData(), genie::flux::GNuMIFlux::LoadBeamSimData(), genie::flux::GJPARCNuFlux::RandomOffset(), genie::flux::GAstroFlux::NuGenerator::SelectEnergy(), genie::flux::GCylindTH1Flux::SelectNeutrino(), genie::flux::GAtmoFlux::SelectNeutrino(), genie::flux::GAstroFlux::NuGenerator::SelectNuPdg(), genie::flux::GAstroFlux::NuGenerator::SelectOrigin(), genie::flux::GPointSourceAstroFlux::SelectSource(), genie::supernova::OrderedSampler::Step(), and genie::flux::GDk2NuFluxXMLHelper::~GDk2NuFluxXMLHelper().
|
inline |
rnd number generator used by intranuclear cascade monte carlos
Definition at line 60 of file RandomGen.h.
References fRandom3.
Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2018::ElasHN(), genie::utils::intranuke::Equilibrium(), genie::utils::intranuke2018::Equilibrium(), genie::HNIntranuke2018::GammaInelasticHN(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayedNucleonPosition(), genie::NNBarOscPrimaryVtxGenerator::GenerateOscillatingNeutronPosition(), genie::Intranuke::GenerateStep(), genie::Intranuke2018::GenerateStep(), genie::VertexGenerator::GenerateVertex(), genie::Intranuke::GenerateVertex(), genie::Intranuke2018::GenerateVertex(), genie::HAIntranuke::HadronFateHA(), genie::HAIntranuke2018::HadronFateHA(), genie::HNIntranuke2018::HadronFateHN(), genie::HNIntranuke2018::HadronFateOset(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke::InelasticHA(), genie::HAIntranuke2018::InelasticHA(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData::IntBounce(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::HAIntranuke::PiBounce(), genie::HAIntranuke2018::PiBounce(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke2018::PionProduction(), genie::HAIntranuke::PnBounce(), genie::HAIntranuke2018::PnBounce(), genie::utils::intranuke::PreEquilibrium(), genie::utils::intranuke2018::PreEquilibrium(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::utils::intranuke::ThreeBodyKinematics(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke::TwoBodyKinematics(), and genie::utils::intranuke2018::TwoBodyKinematics().
|
inline |
rnd number generator for generic usage
Definition at line 81 of file RandomGen.h.
References fRandom3.
Referenced by INukeNucleonCorr::AvgCorrection(), BuildSpectrum(), ConvertToGTracker(), GenerateEventsAtFixedInitState(), genie::SpectralFunc::GenerateNucleon(), genie::LocalFGM::GenerateNucleon(), genie::EffectiveSF::GenerateNucleon(), genie::FGMBodekRitchie::GenerateNucleon(), genie::SpectralFunc1d::GenerateNucleon(), INukeNucleonCorr::generateTargetNucleon(), genie::FermiMover::KickHitNucleon(), main(), genie::QELEventGeneratorSM::ProcessEventRecord(), and genie::RSPPResonanceSelector::SelectResonance().
|
inline |
rnd number generator used by geometry drivers
Definition at line 69 of file RandomGen.h.
References fRandom3.
Referenced by genie::geometry::ROOTGeomAnalyzer::GenBoxRay(), and genie::geometry::ROOTGeomAnalyzer::GenerateVertex().
|
inline |
rnd number generator used by hadronization models
Definition at line 54 of file RandomGen.h.
References fRandom3.
Referenced by genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), genie::KNOHadronization::GenerateBaryonPdgCode(), genie::CharmHadronization::GenerateCharmHadron(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayProducts(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), genie::KNOHadronization::GenerateHadronCodes(), genie::PythiaHadronization::Hadronize(), genie::CharmHadronization::Hadronize(), genie::KNOHadronization::PhaseSpaceDecay(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), and genie::KNOPythiaHadronization::SelectHadronizer().
|
inline |
rnd number generator used by interaction selectors
Definition at line 66 of file RandomGen.h.
References fRandom3.
Referenced by genie::PhysInteractionSelector::SelectInteraction(), and genie::ToyInteractionSelector::SelectInteraction().
|
inline |
rnd number generator used by kinematics generators
Random number generators used by various GENIE modules. (See note at http://root.cern.ch/root/html//TRandom.html on using several TRandom objects each with each own "independent" run sequence). At this point, since the actual random number generator periodicity is very high, all the generators are in fact one! However, the option to use many generators is reserved. Currently, the preferred generator is the "Mersenne Twister" with a periodicity of 10**6000 See: http://root.cern.ch/root/html/TRandom3.html
Definition at line 51 of file RandomGen.h.
References fRandom3.
Referenced by genie::AMNuGammaGenerator::AddPhoton(), genie::COHKinematicsGenerator::CalculateKin_AlvarezRuso(), genie::SKKinematicsGenerator::CalculateKin_AtharSingleKaon(), genie::COHKinematicsGenerator::CalculateKin_BergerSehgal(), genie::COHKinematicsGenerator::CalculateKin_BergerSehgalFM(), genie::COHKinematicsGenerator::CalculateKin_ReinSehgal(), genie::DFRKinematicsGenerator::ProcessEventRecord(), genie::NuEKinematicsGenerator::ProcessEventRecord(), genie::COHElKinematicsGenerator::ProcessEventRecord(), genie::QELKinematicsGenerator::ProcessEventRecord(), genie::RESKinematicsGenerator::ProcessEventRecord(), genie::DMELKinematicsGenerator::ProcessEventRecord(), genie::IBDKinematicsGenerator::ProcessEventRecord(), genie::DISKinematicsGenerator::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::DMDISKinematicsGenerator::ProcessEventRecord(), genie::QELEventGeneratorSM::ProcessEventRecord(), genie::MECGenerator::SelectEmpiricalKinematics(), genie::MECGenerator::SelectNSVLeptonKinematics(), genie::QELKinematicsGenerator::SpectralFuncExperimentalCode(), and genie::DMELKinematicsGenerator::SpectralFuncExperimentalCode().
|
inline |
rnd number generator used by final state primary lepton generators
Definition at line 63 of file RandomGen.h.
References fRandom3.
Referenced by genie::MECGenerator::AddFinalStateLepton(), genie::NuEPrimaryLeptonGenerator::ProcessEventRecord(), genie::PrimaryLeptonGenerator::ProcessEventRecord(), genie::OutgoingDarkGenerator::ProcessEventRecord(), and genie::MECGenerator::SelectNSVLeptonKinematics().
|
inline |
rnd number generator used by MC integrators & other numerical methods
Definition at line 78 of file RandomGen.h.
References fRandom3.
Referenced by genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), evgen::CORSIKAGen::GetSample(), evgen::CORSIKAGen::openDBs(), evgen::GENIENeutronOscGen::selectAnnihilationMode(), SelectAnnihilationMode(), and evgen::GENIENeutronOscGen::setRandomEventVertexPosition().
Definition at line 90 of file RandomGen.cxx.
References LOG, pINFO, pNOTICE, and seed.
Referenced by evgen::CORSIKAGen::CORSIKAGen(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), evgen::GENIENeutronOscGen::GENIENeutronOscGen(), GetSeed(), genie::utils::app_init::RandGen(), and SelectAnnihilationMode().
|
friend |
Definition at line 110 of file RandomGen.h.
|
private |
random number generator seed number
Definition at line 95 of file RandomGen.h.
Referenced by GetSeed().
|
private |
done initializing singleton?
Definition at line 96 of file RandomGen.h.
|
staticprivate |
Definition at line 92 of file RandomGen.h.
Referenced by genie::RandomGen::Cleaner::~Cleaner().
|
private |