**HepRandomEngine**- Abstract class defining the interface for each Random engine, its pure virtual methods must be defined by its subclasses representing the concrete Random engines.
**HepJamesRandom**- Class inheriting from
*HepRandomEngine*and defining a flat Random number generator according to the algorithm described in "F.James, Comp.Phys.Comm. 60 (1990) 329". This class is instantiated by default as the default Random engine. **DRand48Engine**- Class inheriting from
*HepRandomEngine*and defining a flat Random number generator according to the drand48() and srand48() system functions from the C standard library. **RandEngine**- Class inheriting from
*HepRandomEngine*and defining a flat Random number generator according to the rand() and srand() system functions from the C standard library. **RanluxEngine**- Class inheriting from
*HepRandomEngine*and defining a flat Random number generator according to the algorithm described in "F.James, Comp.Phys.Comm. 60 (1990) 329-344" and originally implemented in FORTRAN 77 as part of the MATHLIB HEP library. It provides 5 different "luxury" levels [0..4]. **RanecuEngine**- Class inheriting from
*HepRandomEngine*and defining a flat Random number generator according to the algorithm RANECU originally written in FORTRAN 77 as part of the MATHLIB HEP library. It uses a table of seeds which provides uncorrelated couples of seed values. **HepRandom**- The main class collecting all the methods defining the different random generators applied to
*HepRandomEngine*. It's a singleton class which all the distribution classes derives from. This singleton is instantiated by default. **RandFlat**- Distribution class for flat random numbers generation. It provides also methods to fill an array of flat random values, given its size or shoot bits.
**RandExponential**- Distribution class defining exponential random numbers distribution, given a mean. It provides also a method to fill an array of flat random values, given its size.
**RandGauss**- Distribution class defining Gauss random numbers distribution, given a mean or specifying also a deviation. It provides also a method to fill an array of flat random values, given its size.
**RandBreitWigner**- Distribution class defining the Breit-Wigner random numbers distribution. It provides also a method to fill an array of flat random values, given its size.
**RandPoisson**- Distribution class defining Poisson random numbers distribution, given a mean. It provides also a method to fill an array of flat random values, given its size.

GC