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 25RandGaussQ::RandGaussQ(HepRandomEngine & anEngine, double mean, 26 double stdDev ) 27: RandGauss(anEngine, mean, stdDev) {} 28 29RandGaussQ::RandGaussQ(HepRandomEngine * anEngine, double mean, 30 double stdDev ) 31: RandGauss(anEngine, mean, stdDev) {} 32 33// Getting a Gaussian deviate - static methods 34// ------------------------------------------- 35 36double 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 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 65double RandGaussQ::fire() { 66 return transformQuick(localEngine->flat()) * defaultStdDev + defaultMean; 67} 68 69double RandGaussQ::fire(double mean, double stdDev) { 70 return transformQuick(localEngine->flat()) * stdDev + mean; 71} 72 73} // namespace CLHEP 74 75