CLHEP 2.4.7.1
C++ Class Library for High Energy Physics
RandGaussQ.icc
Go to the documentation of this file.
1// $Id: RandGaussQ.icc,v 1.4 2010/06/16 17:24:53 garren Exp $
2// -*- C++ -*-
3//
4// -----------------------------------------------------------------------
5// HEP Random
6// --- RandGaussQ ---
7// inlined functions implementation file
8// -----------------------------------------------------------------------
9// This file is part of Geant4 (simulation toolkit for HEP).
10
11// =======================================================================
12// M. Fischler - Created: 24 Janm 2000
13//
14// M. Fischler - Modified fire() to use local engine, not getTheEngine()
15// 12/13/04
16// =======================================================================
17
18// Constructors
19// ------------
20
21//#define TRACE_DEBUG
22
23namespace CLHEP {
24
26 double stdDev )
27: RandGauss(anEngine, mean, stdDev) {}
28
30 double stdDev )
31: RandGauss(anEngine, mean, stdDev) {}
32
33// Getting a Gaussian deviate - static methods
34// -------------------------------------------
35
37{
38#ifdef TRACE_DEBUG
39 std::cout << "RandGaussQ::shoot() in icc file\n";
40#endif
42#ifdef TRACE_DEBUG
43 std::cout << "RandGaussQ::shoot() engine is " << anEngine->name() << "\n";
44#endif
45 return transformQuick (anEngine->flat());
46}
47
48double RandGaussQ::shoot( HepRandomEngine* anotherEngine )
49{
50 return transformQuick (anotherEngine->flat());
51}
52
53double RandGaussQ::shoot(double mean, double stdDev) {
54 return shoot()*stdDev + mean;
55}
56
57double RandGaussQ::shoot(HepRandomEngine* anotherEngine,
58 double mean, double stdDev) {
59 return shoot(anotherEngine)*stdDev + mean;
60}
61
62// Getting a Gaussian deviate - instance methods
63// ---------------------------------------------
64
68
69double RandGaussQ::fire(double mean, double stdDev) {
70 return transformQuick(localEngine->flat()) * stdDev + mean;
71}
72
73} // namespace CLHEP
74
virtual double flat()=0
virtual std::string name() const =0
static HepRandomEngine * getTheEngine()
RandGaussQ(HepRandomEngine &anEngine, double mean=0.0, double stdDev=1.0)
static double shoot()
static double transformQuick(double r)
double defaultStdDev
Definition RandGauss.h:154
RandGauss(HepRandomEngine &anEngine, double mean=0.0, double stdDev=1.0)
Definition RandGauss.icc:17
std::shared_ptr< HepRandomEngine > localEngine
Definition RandGauss.h:156