Logo ROOT   6.08/07
Reference Guide
TRandom.h
Go to the documentation of this file.
1 // @(#)root/mathcore:$Id$
2 // Author: Rene Brun 15/12/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TRandom
13 #define ROOT_TRandom
14 
15 #ifndef ROOT_Math_TRandomEngine
16 #include "Math/TRandomEngine.h"
17 #endif
18 
19 //////////////////////////////////////////////////////////////////////////
20 // //
21 // TRandom //
22 // //
23 // Simple prototype random number generator class (periodicity = 10**9) //
24 // //
25 //////////////////////////////////////////////////////////////////////////
26 
27 #ifndef ROOT_TNamed
28 #include "TNamed.h"
29 #endif
30 
31 class TRandom : public TNamed, public ROOT::Math::TRandomEngine {
32 
33 protected:
34  UInt_t fSeed; //Random number generator seed
35 
36 public:
37  TRandom(UInt_t seed=65539);
38  virtual ~TRandom();
39  virtual Int_t Binomial(Int_t ntot, Double_t prob);
40  virtual Double_t BreitWigner(Double_t mean=0, Double_t gamma=1);
41  virtual void Circle(Double_t &x, Double_t &y, Double_t r);
42  virtual Double_t Exp(Double_t tau);
43  virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1);
44  virtual UInt_t GetSeed() const {return fSeed;}
45  virtual UInt_t Integer(UInt_t imax);
46  virtual Double_t Landau(Double_t mean=0, Double_t sigma=1);
47  virtual Int_t Poisson(Double_t mean);
48  virtual Double_t PoissonD(Double_t mean);
49  virtual void Rannor(Float_t &a, Float_t &b);
50  virtual void Rannor(Double_t &a, Double_t &b);
51  virtual void ReadRandom(const char *filename);
52  virtual void SetSeed(ULong_t seed=0);
53  virtual Double_t Rndm();
54  // keep for backward compatibility
55  virtual Double_t Rndm(Int_t ) { return Rndm(); }
56  virtual void RndmArray(Int_t n, Float_t *array);
57  virtual void RndmArray(Int_t n, Double_t *array);
58  virtual void Sphere(Double_t &x, Double_t &y, Double_t &z, Double_t r);
59  virtual Double_t Uniform(Double_t x1=1);
61  virtual void WriteRandom(const char *filename) const;
62 
63  ClassDef(TRandom,3) //Simple Random number generator (periodicity = 10**9)
64 };
65 
67 
68 #endif
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
Definition: TRandom.cxx:460
virtual Double_t PoissonD(Double_t mean)
Generates a random number according to a Poisson law.
Definition: TRandom.cxx:414
float Float_t
Definition: RtypesCore.h:53
virtual Int_t Binomial(Int_t ntot, Double_t prob)
Generates a random integer N according to the binomial law.
Definition: TRandom.cxx:172
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...
Definition: TRandom.cxx:235
virtual void RndmArray(Int_t n, Float_t *array)
Return an array of n random numbers uniformly distributed in ]0,1].
Definition: TRandom.cxx:548
virtual ~TRandom()
Default destructor.
Definition: TRandom.cxx:156
int Int_t
Definition: RtypesCore.h:41
TArc * a
Definition: textangle.C:12
static const double x2[5]
Double_t x[n]
Definition: legend1.C:17
#define ClassDef(name, id)
Definition: Rtypes.h:254
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t tau
Definition: TRolke.cxx:630
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:31
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Definition: TRandom.cxx:568
virtual Double_t Rndm(Int_t)
Definition: TRandom.h:55
virtual UInt_t Integer(UInt_t imax)
Returns a random integer on [ 0, imax-1 ].
Definition: TRandom.cxx:320
const Double_t sigma
virtual Double_t Rndm()
Machine independent random number generator.
Definition: TRandom.cxx:512
double gamma(double x)
TRandom2 r(17)
unsigned int UInt_t
Definition: RtypesCore.h:42
TRandom(UInt_t seed=65539)
Default constructor. For seed see SetSeed().
Definition: TRandom.cxx:147
virtual void WriteRandom(const char *filename) const
Writes random generator status to filename.
Definition: TRandom.cxx:624
R__EXTERN TRandom * gRandom
Definition: TRandom.h:66
virtual void Circle(Double_t &x, Double_t &y, Double_t r)
Generates random vectors, uniformly distributed over a circle of given radius.
Definition: TRandom.cxx:200
static const double x1[5]
UInt_t fSeed
Definition: TRandom.h:34
double Double_t
Definition: RtypesCore.h:55
unsigned long ULong_t
Definition: RtypesCore.h:51
virtual void ReadRandom(const char *filename)
Reads saved random generator status from filename.
Definition: TRandom.cxx:490
Double_t y[n]
Definition: legend1.C:17
virtual Double_t Uniform(Double_t x1=1)
Returns a uniform deviate on the interval (0, x1).
Definition: TRandom.cxx:606
virtual Double_t BreitWigner(Double_t mean=0, Double_t gamma=1)
Return a number distributed following a BreitWigner function with mean and gamma. ...
Definition: TRandom.cxx:186
virtual void Sphere(Double_t &x, Double_t &y, Double_t &z, Double_t r)
Generates random vectors, uniformly distributed over the surface of a sphere of given radius...
Definition: TRandom.cxx:588
you should not use this method at all Int_t Int_t z
Definition: TRolke.cxx:630
#define R__EXTERN
Definition: DllImport.h:27
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
virtual Int_t Poisson(Double_t mean)
Generates a random integer N according to a Poisson law.
Definition: TRandom.cxx:362
virtual Double_t Landau(Double_t mean=0, Double_t sigma=1)
Generate a random number following a Landau distribution with location parameter mu and scale paramet...
Definition: TRandom.cxx:340
const Int_t n
Definition: legend1.C:16
virtual UInt_t GetSeed() const
Definition: TRandom.h:44
virtual Double_t Exp(Double_t tau)
Returns an exponential deviate.
Definition: TRandom.cxx:212