2 #ifndef GAUDIKERNEL_RNDMGENGENERATORS_H
3 #define GAUDIKERNEL_RNDMGENGENERATORS_H
33 :
IRndmGen::Param(IID_IRndmGauss), m_mean(m), m_sigma(s) { }
37 double mean()
const {
return m_mean; }
39 double sigma()
const {
return m_sigma; }
44 return new Gauss(m_mean, m_sigma);
57 :
IRndmGen::Param(IID_IRndmExponential), m_mean(m) { }
61 double mean()
const {
return m_mean; }
77 Chi2(
long n_dof) :
IRndmGen::Param(IID_IRndmChi2), m_nDOF(n_dof) { }
81 long nDOF()
const {
return m_nDOF; }
98 :
IRndmGen::Param(IID_IRndmBreitWigner), m_mean(m), m_gamma(g) { }
102 double mean()
const {
return m_mean; }
104 double gamma()
const {
return m_gamma; }
123 :
IRndmGen::Param(IID_IRndmLandau), m_mean(m), m_sigma(s) { }
127 double mean()
const {
return m_mean; }
129 double sigma()
const {
return m_sigma; }
134 return new Landau(m_mean, m_sigma);
149 :
IRndmGen::Param(IID_IRndmBreitWignerCutOff),
156 double mean()
const {
return m_mean; }
158 double gamma()
const {
return m_gamma; }
182 double aValue()
const {
return m_aValue; }
201 :
IRndmGen::Param(IID_IRndmGamma), m_kValue(k), m_lambda(l) { }
205 double kValue()
const {
return m_kValue; }
207 double lambda()
const {
return m_lambda; }
212 return new Gamma(m_kValue, m_lambda);
230 double mean()
const {
return m_mean; }
249 :
IRndmGen::Param(IID_IRndmBinomial), m_nEvent(n), m_probability(p) { }
260 return new Binomial(m_nEvent, m_probability);
276 :
IRndmGen::Param(IID_IRndmFlat), m_minimum(mi), m_maximum(ma) { }
287 return new Flat(m_minimum, m_maximum);
330 :
IRndmGen::Param(IID_IRndmDefinedPdf),
332 m_interpolation(intpol) { }
336 std::vector<double>&
pdf() {
return m_pdf; }
358 :
IRndmGen::Param(IID_IRndmGaussianTail), m_cut(a), m_sigma(s) { }
362 double cut()
const {
return m_cut; }
364 double sigma()
const {
return m_sigma; }
404 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
413 operator bool ()
const {
414 return m_generator != 0;
417 double operator() () {
418 return this->shoot();
422 return this->shoot();
426 if ( 0 != m_generator ) {
427 return m_generator->shoot();
433 if ( 0 != m_generator ) {
434 return m_generator->shootArray(array, num,
start);
440 #endif // GAUDIKERNEL_RNDMGENGENERATORS_H
virtual IRndmGen::Param * clone() const
Clone parameters.
long nDOF() const
Access mean value of the distribution.
static const InterfaceID & typeID()
Identifier for factory.
Parameters for the bit value generation: returns values 0 and 1.
double m_mean
Mean, Gamma and cut off parameter of the Breit-Wigner distribution.
static const InterfaceID & typeID()
Identifier for factory.
GaussianTail(double a, double s)
Standard Constructor.
double m_minimum
Lower boundary for random numbers.
static const InterfaceID & typeID()
Identifier for factory.
double mean() const
Access mean value of the distribution.
Parameters for the Poisson distributed random number generation with a given mean.
virtual IRndmGen::Param * clone() const
Clone parameters.
double mean() const
Access mean value of the distribution.
Definition of a interface for a generic random number generators.
virtual IRndmGen::Param * clone() const
Clone parameters.
virtual ~Binomial()
Standard Destructor.
double m_probability
And the probability for having success.
static const InterfaceID & typeID()
Identifier for factory.
virtual ~Gamma()
Standard Destructor.
virtual IRndmGen::Param * clone() const
Clone parameters.
double m_sigma
Sigma of the Gauss ditribution.
static const InterfaceID & typeID()
Identifier for factory.
Parameters for the Gauss random number generation.
Gauss(double m, double s)
Standard Constructor.
Flat(double mi, double ma)
Standard Constructor.
double mean() const
Access mean value of the distribution.
double shoot()
Pop a new number from the buffer.
double lambda() const
Access Lambda parameter.
long m_nEvent
Number of events the binomial destribution corresponds to.
double m_mean
Mean value of the exponential distribution.
BreitWigner(double m, double g)
Standard Constructor.
long nEvent() const
Access number of events.
long interpolation() const
Access interpolation type.
virtual IRndmGen::Param * clone() const
Clone parameters.
Landau(double m, double s)
Standard Constructor.
virtual ~Exponential()
Standard Destructor.
double m_mean
Mean value of the Poisson distribution.
Random number accessor This small class encapsulates the use of the random number generator...
virtual IRndmGen::Param * clone() const
Clone parameters.
Bit()
Standard Constructor.
double probability() const
Access number of events.
virtual IRndmGen::Param * clone() const
Clone parameters.
virtual IRndmGen::Param * clone() const
Clone parameters.
virtual IRndmGen::Param * clone() const
Clone parameters.
virtual IRndmGen::Param * clone() const
Clone parameters.
DefinedPdf(const std::vector< double > &pdf, long intpol)
Standard Constructor.
Random Generator service interface definition Definition of a interface for a service to access rando...
double m_cut
Cut on the Gaussian tail distribution.
This class is used for returning status codes from appropriate routines.
virtual IRndmGen::Param * clone() const
Clone parameters.
IRndmGen * m_generator
Pointer to random number generator.
static const InterfaceID & typeID()
Identifier for factory.
Parameters for the flat random number generation within boundaries [minimum, maximum].
double m_maximum
Upper boundary for random numbers.
std::vector< double > m_pdf
Vector containing probability distribution function.
static const InterfaceID & typeID()
Identifier for factory.
StudentT(double a)
Standard Constructor.
double cutOff() const
Access width of the distribution.
static const InterfaceID & typeID()
Identifier for factory.
double m_mean
Mean of the Gauss distribution.
long m_interpolation
Interpolation type.
static const InterfaceID & typeID()
Identifier for factory.
double maximum() const
Access upper edge.
Parameters for the StudentT distributed random number generation.
double m_lambda
Lambda parameter.
static const InterfaceID & typeID()
Identifier for factory.
virtual IRndmGen::Param * clone() const
Clone parameters.
Parameters for the Binomial distributed random number generation.
virtual ~Gauss()
Standard Destructor.
StatusCode shootArray(std::vector< double > &array, long num, long start=0)
Pop a new number from the buffer.
double kValue() const
Access K parameter.
double sigma() const
Access width of the distribution.
Parameters for the Landau distributed random number generation.
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
virtual ~DefinedPdf()
Standard Destructor.
Parameters for the Chi2 distributed random number generation.
double pop()
Pop a new number from the buffer.
virtual ~StudentT()
Standard Destructor.
double m_sigma
Sigma of the Gauss distribution.
virtual ~BreitWigner()
Standard Destructor.
static const InterfaceID & typeID()
Identifier for factory.
Parameters for the BreitWigner distributed random number generation with cut off;.
virtual IRndmGen::Param * clone() const
Clone parameters.
double sigma() const
Access width of the distribution.
double mean() const
Access mean value of the distribution.
virtual ~BreitWignerCutOff()
Standard Destructor.
Parameters for the Gamma distributed random number generation.
virtual ~Poisson()
Standard Destructor.
BreitWignerCutOff(double m, double g, double c)
Standard Constructor.
static const InterfaceID & typeID()
Identifier for factory.
virtual ~Landau()
Standard Destructor.
Gamma(double k, double l)
Standard Constructor.
double gamma() const
Access width of the distribution.
Binomial(long n, double p)
Standard Constructor.
double m_aValue
StudentT distribution parameter.
Chi2(long n_dof)
Standard Constructor.
double aValue() const
Access A parameter.
virtual IRndmGen::Param * clone() const
Clone parameters.
double cut() const
Access cut value of the distribution.
double mean() const
Access mean value of the distribution.
Parameters for the Gaussian tail number generation.
virtual ~Chi2()
Standard Destructor.
Generate a random number Generator following generally distributed random values, given a user-define...
Parameters for the Gauss random number generation.
double minimum() const
Access lower edge.
long m_nDOF
Number of degrees of freedom.
double mean() const
Access mean value of the distribution.
virtual ~GaussianTail()
Standard Destructor.
Parameters for the BreitWigner distributed random number generation.
Poisson(double m)
Standard Constructor.
static const InterfaceID & typeID()
Identifier for factory.
double gamma() const
Access width of the distribution.
double m_mean
Mean and Gamma parameter of the Breit-Wigner distribution.
double sigma() const
Access sigma of the distribution.
virtual ~Bit()
Standard Destructor.
virtual ~Flat()
Standard Destructor.
Exponential(double m)
Standard Constructor.
std::vector< double > & pdf()
Access pdf.
static const InterfaceID & typeID()
Identifier for factory.