TRandom1*¶
继承 TRandom
class¶
Ranlux random number generator class (periodicity > 10**14)
/// Luxury level is set in the same way as the original FORTRAN routine.
/// level 0 (p=24): equivalent to the original RCARRY of Marsaglia
/// and Zaman, very long period, but fails many tests.
/// level 1 (p=48): considerable improvement in quality over level 0,
/// now passes the gap test, but still fails spectral test.
/// level 2 (p=97): passes all known tests, but theoretically still
/// defective.
/// level 3 (p=223): DEFAULT VALUE. Any theoretically possible
/// correlations have very small chance of being observed.
/// level 4 (p=389): highest possible luxury, all 24 bits chaotic.
TRandom1();
TRandom1(UInt_t seed, Int_t lux = 3 );
TRandom1(Int_t rowIndex, Int_t colIndex, Int_t lux );
virtual ~TRandom1();
virtual Int_t GetLuxury() const {return fLuxury;}
// Get the current seed (first element of the table)
virtual UInt_t GetSeed() const { return UInt_t ( fFloatSeedTable[0] / fMantissaBit24 ) ; }
// Gets the current seed.
const UInt_t *GetTheSeeds() const {return fTheSeeds;}
// Gets the current array of seeds.
static void GetTableSeeds(UInt_t* seeds, Int_t index);///static function returning the table of seeds
// Gets back seed values stored in the table, given the index.
virtual Double_t Rndm(Int_t i=0);//(0,1]均匀分布
virtual void RndmArray(Int_t size, Float_t *vect);///return an array of random numbers in ]0,1]
virtual void RndmArray(Int_t size, Double_t *vect);///return an array of random numbers in ]0,1[
virtual void SetSeed2(UInt_t seed, Int_t lux=3);
/// The initialisation is carried out using a Multiplicative
/// Congruential generator using formula constants of L'Ecuyer
/// as described in "A review of pseudorandom number generators"
/// (Fred James) published in Computer Physics Communications 60 (1990)
/// pages 329-344
/// modified for the case of seed = 0. In that case a random 64 bits seed based on
/// TUUID (using TRandom3(0) ) is generated in order to have a unique seed
// Sets the state of the algorithm according to seed.
virtual void SetSeeds(const UInt_t * seeds, Int_t lux=3);
// Sets the state of the algorithm according to the zero terminated
// array of seeds. Only the first seed is used.
virtual void SetSeed(UInt_t seed);