RandGaussT


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