40 TRandom* RooRandom::_theGenerator = 0;
55 if (!_theGenerator) _theGenerator=
new TRandom3();
65 if (_theGenerator)
delete _theGenerator;
76 return _theQuasiGenerator;
85 return generator->
Rndm();
112 return generator->
Gaus();
123 return generator->
generate(dimension,vector);
Random number generator class based on M.
static Double_t gaussian(TRandom *generator=randomGenerator())
Return a Gaussian random variable with mean 0 and variance 1.
virtual Double_t Rndm(Int_t i=0)
Machine independent random number generator.
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
virtual void RndmArray(Int_t n, Float_t *array)
Return an array of n random numbers uniformly distributed in ]0,1].
static UInt_t integer(UInt_t max, TRandom *generator=randomGenerator())
Return an integer uniformly distributed from [0,n-1].
static Bool_t quasi(UInt_t dimension, Double_t vector[], RooQuasiRandomGenerator *generator=quasiGenerator())
Return a quasi-random number in the range (0,1) using the Niederreiter base 2 generator described in ...
This is the base class for the ROOT Random number generators.
virtual UInt_t Integer(UInt_t imax)
Returns a random integer on [ 0, imax-1 ].
Bool_t generate(UInt_t dimension, Double_t vector[])
Generate the next number in the sequence for the specified dimension.
static TRandom * randomGenerator()
Return a pointer to a singleton random-number generator implementation.
static RooQuasiRandomGenerator * quasiGenerator()
Return a pointer to a singleton quasi-random generator implementation.
static void setRandomGenerator(TRandom *gen)
set the random number generator; takes ownership of the object passed as parameter ...
static struct Guard guard
static TRandom * _theGenerator
static Double_t uniform(TRandom *generator=randomGenerator())
Return a number uniformly distributed from (0,1)
static RooQuasiRandomGenerator * _theQuasiGenerator