Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
genie::RandomGen Class Reference

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...

#include "/cvmfs/nova.opensciencegrid.org/externals/genie/v3_00_06_p01/Linux64bit+2.6-2.12-e17-debug/GENIE-Generator/src/Framework/Numerical/RandomGen.h"

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 RandomGenInstance ()
 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 RandomGenfInstance = 0
 

Friends

struct Cleaner
 

Detailed Description

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.

Author
Costas Andreopoulos <costas.andreopoulos stfc.ac.uk> University of Liverpool & STFC Rutherford Appleton Lab

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.

Constructor & Destructor Documentation

genie::RandomGen::RandomGen ( )
private

Definition at line 35 of file RandomGen.cxx.

References exit(), genie::gAbortingInErr, genie::controls::kDefaultRandSeed, LOG, pFATAL, and pINFO.

Referenced by GetSeed().

36 {
37  LOG("Rndm", pINFO) << "RandomGen late initialization";
38 
39  fInitalized = false;
40  fInstance = 0;
41 /*
42  // try to get this job's random number seed from the environment
43  const char * seed = gSystem->Getenv("GSEED");
44  if(seed) {
45  LOG("Rndm", pDEBUG) << "Reading RandomNumGenerator seed env. var $GSEED";
46  fCurrSeed = atoi(seed);
47  } else {
48  LOG("Rndm", pINFO) << "Env. var. $GSEED is not set. Using default seed";
49  fCurrSeed = kDefaultRandSeed; // default seed number
50  }
51  this->InitRandomGenerators(fCurrSeed);
52 */
53 
54  if ( gSystem->Getenv("GSEED") ) {
55  LOG("Rndm", pFATAL)
56  << "\n\n"
57  << "************************************************************************************** \n"
58  << "The random number seed is no longer set via the $GSEED variable.\n"
59  << "Please use the --seed option implemented in all GENIE apps or, if you access RandomGen \n"
60  << "directly in your user code, use RandomGen::SetSeed(long int seed).\n"
61  << "Unset $GSEED to continue running GENIE. \n"
62  << "************************************************************************************** \n";
63  gAbortingInErr = true;
64  exit(1);
65  }
66 
67  fCurrSeed = kDefaultRandSeed; // a default seed number is set a init
69 
70  fInitalized = true;
71 }
bool fInitalized
done initializing singleton?
Definition: RandomGen.h:96
static const unsigned int kDefaultRandSeed
Definition: Controls.h:38
#define pFATAL
Definition: Messenger.h:57
long int fCurrSeed
random number generator seed number
Definition: RandomGen.h:95
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:97
static RandomGen * fInstance
Definition: RandomGen.h:92
#define pINFO
Definition: Messenger.h:63
void InitRandomGenerators(long int seed)
Definition: RandomGen.cxx:134
exit(0)
bool gAbortingInErr
Definition: Messenger.cxx:56
genie::RandomGen::RandomGen ( const RandomGen rgen)
private
genie::RandomGen::~RandomGen ( )
privatevirtual

Definition at line 73 of file RandomGen.cxx.

Referenced by GetSeed().

74 {
75  fInstance = 0;
76  if(fRandom3) delete fRandom3;
77 }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
static RandomGen * fInstance
Definition: RandomGen.h:92

Member Function Documentation

long int genie::RandomGen::GetSeed ( void  ) const
inline

Definition at line 83 of file RandomGen.h.

References fCurrSeed, RandomGen(), seed, SetSeed(), and ~RandomGen().

83 { return fCurrSeed; }
long int fCurrSeed
random number generator seed number
Definition: RandomGen.h:95
void genie::RandomGen::InitRandomGenerators ( long int  seed)
private

Definition at line 134 of file RandomGen.cxx.

135 {
136  fRandom3 = new TRandom3();
137  this->SetSeed(seed);
138 }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
unsigned int seed
Definition: runWimpSim.h:102
void SetSeed(long int seed)
Definition: RandomGen.cxx:90
RandomGen * genie::RandomGen::Instance ( void  )
static

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().

80 {
81  if(fInstance == 0) {
82  static RandomGen::Cleaner cleaner;
83  cleaner.DummyMethodAndSilentCompiler();
84 
85  fInstance = new RandomGen;
86  }
87  return fInstance;
88 }
friend struct Cleaner
Definition: RandomGen.h:110
static RandomGen * fInstance
Definition: RandomGen.h:92
TRandom3& genie::RandomGen::RndDec ( void  ) const
inline
TRandom3& genie::RandomGen::RndEvg ( void  ) const
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().

75 { return *fRandom3; }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
TRandom3& genie::RandomGen::RndFlux ( void  ) const
inline
TRandom3& genie::RandomGen::RndFsi ( void  ) const
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().

60 { return *fRandom3; }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
TRandom3& genie::RandomGen::RndGen ( void  ) const
inline
TRandom3& genie::RandomGen::RndGeom ( void  ) const
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().

69 { return *fRandom3; }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
TRandom3& genie::RandomGen::RndHadro ( void  ) const
inline
TRandom3& genie::RandomGen::RndISel ( void  ) const
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().

66 { return *fRandom3; }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
TRandom3& genie::RandomGen::RndKine ( void  ) const
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().

51 { return *fRandom3; }
TRandom3 * fRandom3
Mersenne Twistor.
Definition: RandomGen.h:94
TRandom3& genie::RandomGen::RndLep ( void  ) const
inline
TRandom3& genie::RandomGen::RndNum ( void  ) const
inline
void genie::RandomGen::SetSeed ( long int  seed)

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().

91 {
92  LOG("Rndm", pNOTICE)
93  << "Setting"
94  << ((fInitalized) ? " " : " default ")
95  << "random number seed"
96  << ((fInitalized) ? ": " : " at random number generator initialization: ")
97  << seed;
98 
99  // Set the seed number for all internal GENIE random number generators
100  this->RndKine ().SetSeed(seed);
101  this->RndHadro().SetSeed(seed);
102  this->RndDec ().SetSeed(seed);
103  this->RndFsi ().SetSeed(seed);
104  this->RndLep ().SetSeed(seed);
105  this->RndISel ().SetSeed(seed);
106  this->RndGeom ().SetSeed(seed);
107  this->RndFlux ().SetSeed(seed);
108  this->RndEvg ().SetSeed(seed);
109  this->RndNum ().SetSeed(seed);
110  this->RndGen ().SetSeed(seed);
111 
112  // Set the seed number for ROOT's gRandom
113  gRandom ->SetSeed (seed);
114 
115  // Set the PYTHIA6 seed number
116  TPythia6 * pythia6 = TPythia6::Instance();
117  pythia6->SetMRPY(1, seed);
118 
119  LOG("Rndm", pINFO) << "RndKine seed = " << this->RndKine ().GetSeed();
120  LOG("Rndm", pINFO) << "RndHadro seed = " << this->RndHadro().GetSeed();
121  LOG("Rndm", pINFO) << "RndDec seed = " << this->RndDec ().GetSeed();
122  LOG("Rndm", pINFO) << "RndFsi seed = " << this->RndFsi ().GetSeed();
123  LOG("Rndm", pINFO) << "RndLep seed = " << this->RndLep ().GetSeed();
124  LOG("Rndm", pINFO) << "RndISel seed = " << this->RndISel ().GetSeed();
125  LOG("Rndm", pINFO) << "RndGeom seed = " << this->RndGeom ().GetSeed();
126  LOG("Rndm", pINFO) << "RndFlux seed = " << this->RndFlux ().GetSeed();
127  LOG("Rndm", pINFO) << "RndEvg seed = " << this->RndEvg ().GetSeed();
128  LOG("Rndm", pINFO) << "RndNum seed = " << this->RndNum ().GetSeed();
129  LOG("Rndm", pINFO) << "RndGen seed = " << this->RndGen ().GetSeed();
130  LOG("Rndm", pINFO) << "gRandom seed = " << gRandom->GetSeed();
131  LOG("Rndm", pINFO) << "PYTHIA6 seed = " << pythia6->GetMRPY(1);
132 }
bool fInitalized
done initializing singleton?
Definition: RandomGen.h:96
TRandom3 & RndFsi(void) const
rnd number generator used by intranuclear cascade monte carlos
Definition: RandomGen.h:60
TRandom3 & RndLep(void) const
rnd number generator used by final state primary lepton generators
Definition: RandomGen.h:63
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:97
unsigned int seed
Definition: runWimpSim.h:102
TRandom3 & RndEvg(void) const
rnd number generator used by the event generation drivers
Definition: RandomGen.h:75
#define pINFO
Definition: Messenger.h:63
TRandom3 & RndGeom(void) const
rnd number generator used by geometry drivers
Definition: RandomGen.h:69
TRandom3 & RndKine(void) const
rnd number generator used by kinematics generators
Definition: RandomGen.h:51
TRandom3 & RndNum(void) const
rnd number generator used by MC integrators & other numerical methods
Definition: RandomGen.h:78
TRandom3 & RndHadro(void) const
rnd number generator used by hadronization models
Definition: RandomGen.h:54
TRandom3 & RndGen(void) const
rnd number generator for generic usage
Definition: RandomGen.h:81
TRandom3 & RndISel(void) const
rnd number generator used by interaction selectors
Definition: RandomGen.h:66
#define pNOTICE
Definition: Messenger.h:62
TRandom3 & RndFlux(void) const
rnd number generator used by flux drivers
Definition: RandomGen.h:72
TRandom3 & RndDec(void) const
rnd number generator used by decay models
Definition: RandomGen.h:57

Friends And Related Function Documentation

friend struct Cleaner
friend

Definition at line 110 of file RandomGen.h.

Member Data Documentation

long int genie::RandomGen::fCurrSeed
private

random number generator seed number

Definition at line 95 of file RandomGen.h.

Referenced by GetSeed().

bool genie::RandomGen::fInitalized
private

done initializing singleton?

Definition at line 96 of file RandomGen.h.

RandomGen * genie::RandomGen::fInstance = 0
staticprivate

Definition at line 92 of file RandomGen.h.

Referenced by genie::RandomGen::Cleaner::~Cleaner().

TRandom3* genie::RandomGen::fRandom3
private

Mersenne Twistor.

Definition at line 94 of file RandomGen.h.

Referenced by RndDec(), RndEvg(), RndFlux(), RndFsi(), RndGen(), RndGeom(), RndHadro(), RndISel(), RndKine(), RndLep(), and RndNum().


The documentation for this class was generated from the following files: