CLHEP  2.4.7.2
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 
23 namespace CLHEP {
24 
25 RandGaussQ::RandGaussQ(HepRandomEngine & anEngine, double mean,
26  double stdDev )
27 : RandGauss(anEngine, mean, stdDev) {}
28 
29 RandGaussQ::RandGaussQ(HepRandomEngine * anEngine, double mean,
30  double stdDev )
31 : RandGauss(anEngine, mean, stdDev) {}
32 
33 // Getting a Gaussian deviate - static methods
34 // -------------------------------------------
35 
36 double RandGaussQ::shoot()
37 {
38 #ifdef TRACE_DEBUG
39  std::cout << "RandGaussQ::shoot() in icc file\n";
40 #endif
41  HepRandomEngine* anEngine = HepRandom::getTheEngine();
42 #ifdef TRACE_DEBUG
43  std::cout << "RandGaussQ::shoot() engine is " << anEngine->name() << "\n";
44 #endif
45  return transformQuick (anEngine->flat());
46 }
47 
48 double RandGaussQ::shoot( HepRandomEngine* anotherEngine )
49 {
50  return transformQuick (anotherEngine->flat());
51 }
52 
53 double RandGaussQ::shoot(double mean, double stdDev) {
54  return shoot()*stdDev + mean;
55 }
56 
57 double 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 
65 double RandGaussQ::fire() {
66  return transformQuick(localEngine->flat()) * defaultStdDev + defaultMean;
67 }
68 
69 double RandGaussQ::fire(double mean, double stdDev) {
70  return transformQuick(localEngine->flat()) * stdDev + mean;
71 }
72 
73 } // namespace CLHEP
74