Class defining methods RandGaussT, which is derived from
RandGauss. The user interface is identical.
Always uses exactly one flat random from the engine.
Is stateless so that saveEngineStatus works even if invoked knowing
only that the distribution is a HepRandom
(RandGauss is not stateless).
Is accurate to more than 12 decimal places in all cases, and more so
near the end points.
Runs about as fast as RandGauss.
RandGaussT utilizes HepStat::flatToGaussian(r),
so its effective footprint (for the tables used) is almost 30K bytes.
If a fast good engine takes 1 usec, RandGauss::fire()
adds 1 usec; RandGaussT::fire() similarly adds 1 usec.
Author
Mark Fischler
See also
Engines:
HepRandomEngine,
DRand48Engine ,
DualRand,
HepJamesRandom,
Hurd160Engine,
Hurd288Engine,
MTwistEngine,
RandEngine,
RanecuEngine,
RanluxEngine,
Ranlux64Engine,
RanshiEngine,
TripleRand
Distributions:
HepRandom,
RandBinomial,
RandBit,
RandBreitWigner,
RandChiSquare,
RandExponential,
RandFlat,
RandGamma,
RandGauss,
RandGaussQ,
RandGeneral,
RandLandau,
RandPoisson,
RandPoissonQ,
RandPoissonT,
RandStudentT
Functions:
HepStat
Declaration
#include "CLHEP/Random/RandGaussT.h"
class RandGaussT : public RandGauss
Public Member Functions
- Constructors
- inline RandGaussT(HepRandomEngine& anEngine, HepDouble mean=0.0,
HepDouble stdDev=1.0)
- inline RandGaussT(HepRandomEngine* anEngine, HepDouble mean=0.0,
HepDouble stdDev=1.0)
- These constructors should be used to instantiate a RandGaussT
distribution object defining a local engine for it.
The static generator will be skipped using the non-static methods
defined below.
If the engine is passed by pointer the corresponding engine object
will be deleted by the RandGaussT destructor.
If the engine is passed by reference the corresponding engine object
will not be deleted by the RandGaussT destructor.
- Destructor
- virtual ~RandGaussT()
- ()
- virtual HepDouble operator()()
- virtual HepDouble operator()(HepDouble mean, HepDouble stdDev)
- Instance methods using the localEngine to instead of the static
generator, and the default mean and stdDev established at
construction.
- fire
- inline HepDouble fire()
- inline HepDouble fire(HepDouble mean, HepDouble stdDev)
- Instance methods using the localEngine to instead of the static
generator, and the default mean and stdDev established at
construction.
- fireArray
- void fireArray(const HepInt size, HepDouble* vect)
- void fireArray(const HepInt size, HepDouble* vect,
HepDouble mean, HepDouble stdDev )
- Instance methods using the localEngine to instead of the static
generator, and the default mean and stdDev established at
construction.
- shoot
- static inline HepDouble shoot()
- static inline HepDouble shoot(HepDouble mean, HepDouble stdDev)
- Static methods to shoot random values using the static generator.
- static inline HepDouble shoot(HepRandomEngine* anotherEngine)
- static inline HepDouble shoot(HepRandomEngine* anotherEngine,
HepDouble mean, HepDouble stdDev)
- Static methods to shoot random values using a given engine
by-passing the static generator.
- shootArray
- static void shootArray(const HepInt size, HepDouble* vect,
HepDouble mean=0.0, HepDouble stdDev=1.0)
- Static method to shoot random values using the static generator.
- static void shootArray(HepRandomEngine* anotherEngine,
const HepInt size,
HepDouble* vect, HepDouble mean=0.0,
HepDouble stdDev=1.0)
- Static method to shoot random values using a given engine
by-passing the static generator.
Example
CLHEP/Random/test/testRandDists.cc
19 June 2001
EVC