ROOT  6.06/09
Reference Guide
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ROOT::Math::RandomFunctions< Engine, EngineBaseType > Class Template Reference

template<class Engine, class EngineBaseType>
class ROOT::Math::RandomFunctions< Engine, EngineBaseType >

Definition at line 139 of file RandomFunctions.h.

Public Member Functions

 RandomFunctions (Engine &rng)
 
 ~RandomFunctions ()
 destructor (no op) we do not mantain the engine) More...
 
double operator() ()
 non-virtual method More...
 
int Binomial (int ntot, double prob)
 Generate binomial numbers. More...
 
double BreitWigner (double mean, double gamma)
 Return a number distributed following a BreitWigner function with mean and gamma. More...
 
void Circle (double &x, double &y, double r)
 Generates random vectors, uniformly distributed over a circle of given radius. More...
 
double Exp (double tau)
 Returns an exponential deviate. More...
 
double GausBM (double mean, double sigma)
 generate Gaussian number using Box-Muller method More...
 
double GausACR (double mean, double sigma)
 generate random numbers according to the Accemptance-Complemet-Ratio method More...
 
double Landau (double mu, double sigma)
 Generate a random number following a Landau distribution with location parameter mu and scale parameter sigma: Landau( (x-mu)/sigma ) More...
 
int Poisson (double mean)
 Generates a random integer N according to a Poisson law. More...
 
double PoissonD (double mean)
 
void Rannor (double &a, double &b)
 Generate numbers distributed following a gaussian with mean=0 and sigma=1. More...
 
void Sphere (double &x, double &y, double &z, double r)
 Generates random vectors, uniformly distributed over the surface of a sphere of given radius. More...
 
double Uniform (double a, double b)
 generate random numbers following a Uniform distribution in the [a,b] interval More...
 
double Uniform (double a)
 generate random numbers following a Uniform distribution in the [0,a] interval More...
 
double Gaus (double mean, double sigma)
 generate Gaussian number using defqault method More...
 
double Gamma (double, double)
 methods which are only for GSL random generators More...
 
double LogNormal (double, double)
 
double ChiSquare (double)
 
double FDist (double, double)
 
double tDist (double)
 
unsigned int NegativeBinomial (double, double)
 
std::vector< unsigned int > MultiNomial (unsigned int, const std::vector< double > &)
 

Protected Member Functions

Engine & Rng ()
 
double Rndm_impl ()
 Internal impelmentation to return random number Since this one is not a virtual function is faster than Rndm. More...
 

Private Attributes

Engine * fEngine
 
RandomFunctionsImpl< EngineBaseType > fImpl
 random number generator engine More...
 

#include <Math/RandomFunctions.h>

+ Collaboration diagram for ROOT::Math::RandomFunctions< Engine, EngineBaseType >:

Constructor & Destructor Documentation

template<class Engine, class EngineBaseType>
ROOT::Math::RandomFunctions< Engine, EngineBaseType >::RandomFunctions ( Engine &  rng)
inline

Definition at line 146 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
ROOT::Math::RandomFunctions< Engine, EngineBaseType >::~RandomFunctions ( )
inline

destructor (no op) we do not mantain the engine)

Definition at line 151 of file RandomFunctions.h.

Member Function Documentation

template<class Engine, class EngineBaseType>
int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Binomial ( int  ntot,
double  prob 
)
inline

Generate binomial numbers.

Definition at line 159 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Binomial().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::BreitWigner ( double  mean,
double  gamma 
)
inline

Return a number distributed following a BreitWigner function with mean and gamma.

Definition at line 164 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::BreitWigner().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::ChiSquare ( double  )
inline

Definition at line 256 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::ChiSquare().

template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Circle ( double x,
double y,
double  r 
)
inline

Generates random vectors, uniformly distributed over a circle of given radius.

Input : r = circle radius Output: x,y a random 2-d vector of length r

Definition at line 171 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Circle().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Exp ( double  tau)
inline

Returns an exponential deviate.

exp( -t/tau )

Definition at line 177 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Exp().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::FDist ( double  ,
double   
)
inline

Definition at line 260 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::FDist().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Gamma ( double  ,
double   
)
inline

methods which are only for GSL random generators

Gamma functions (not implemented here, requires a GSL random engine)

Definition at line 247 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Gamma().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Gaus ( double  mean,
double  sigma 
)
inline

generate Gaussian number using defqault method

Definition at line 227 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Gaus().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::GausACR ( double  mean,
double  sigma 
)
inline

generate random numbers according to the Accemptance-Complemet-Ratio method

Definition at line 187 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::GausBM ( double  mean,
double  sigma 
)
inline

generate Gaussian number using Box-Muller method

Definition at line 182 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Landau ( double  mu,
double  sigma 
)
inline

Generate a random number following a Landau distribution with location parameter mu and scale parameter sigma: Landau( (x-mu)/sigma )

Definition at line 194 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Landau().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::LogNormal ( double  ,
double   
)
inline

Definition at line 252 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::LogNormal().

template<class Engine, class EngineBaseType>
std::vector<unsigned int> ROOT::Math::RandomFunctions< Engine, EngineBaseType >::MultiNomial ( unsigned  int,
const std::vector< double > &   
)
inline

Definition at line 272 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
unsigned int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::NegativeBinomial ( double  ,
double   
)
inline

Definition at line 268 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::NegativeBinomial().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::operator() ( )
inline

non-virtual method

Definition at line 155 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Poisson ( double  mean)
inline

Generates a random integer N according to a Poisson law.

Prob(N) = exp(-mean)*mean^N/Factorial(N)

Definition at line 200 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Poisson().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::PoissonD ( double  mean)
inline

Definition at line 201 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rannor ( double a,
double b 
)
inline

Generate numbers distributed following a gaussian with mean=0 and sigma=1.

Using the Box-Muller method

Definition at line 205 of file RandomFunctions.h.

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rndm_impl ( )
inlineprotected

Internal impelmentation to return random number Since this one is not a virtual function is faster than Rndm.

Definition at line 284 of file RandomFunctions.h.

Referenced by ROOT::Math::RandomFunctions< EngineType, DefaultEngineType >::Uniform().

template<class Engine, class EngineBaseType>
Engine& ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rng ( )
inlineprotected
template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Sphere ( double x,
double y,
double z,
double  r 
)
inline

Generates random vectors, uniformly distributed over the surface of a sphere of given radius.

Definition at line 211 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Sphere().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::tDist ( double  )
inline

Definition at line 264 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::tDist().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Uniform ( double  a,
double  b 
)
inline

generate random numbers following a Uniform distribution in the [a,b] interval

Definition at line 216 of file RandomFunctions.h.

Referenced by ROOT::Math::Random< Engine >::Uniform().

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Uniform ( double  a)
inline

generate random numbers following a Uniform distribution in the [0,a] interval

Definition at line 221 of file RandomFunctions.h.

Member Data Documentation

template<class Engine, class EngineBaseType>
Engine* ROOT::Math::RandomFunctions< Engine, EngineBaseType >::fEngine
private
template<class Engine, class EngineBaseType>
RandomFunctionsImpl<EngineBaseType> ROOT::Math::RandomFunctions< Engine, EngineBaseType >::fImpl
private

The documentation for this class was generated from the following file: