Geant4 Cross Reference |
>> 1 // $Id:$ 1 // -*- C++ -*- 2 // -*- C++ -*- 2 // 3 // 3 // ------------------------------------------- 4 // ----------------------------------------------------------------------- 4 // HEP Random 5 // HEP Random 5 // --- RandExponential - 6 // --- RandExponential --- 6 // inlined functions implement 7 // inlined functions implementation file 7 // ------------------------------------------- 8 // ----------------------------------------------------------------------- 8 // This file is part of Geant4 (simulation too 9 // This file is part of Geant4 (simulation toolkit for HEP). 9 10 10 // =========================================== 11 // ======================================================================= 11 // Gabriele Cosmo - Created: 19th August 1998 12 // Gabriele Cosmo - Created: 19th August 1998 12 // =========================================== 13 // ======================================================================= 13 14 14 #include <cmath> // for log() 15 #include <cmath> // for log() 15 16 16 namespace CLHEP { 17 namespace CLHEP { 17 18 18 inline RandExponential::RandExponential(HepRan 19 inline RandExponential::RandExponential(HepRandomEngine & anEngine, 19 double 20 double mean ) 20 : HepRandom(), localEngine(&anEngine, do_nothi 21 : HepRandom(), localEngine(&anEngine, do_nothing_deleter()), defaultMean(mean) {} 21 22 22 inline RandExponential::RandExponential(HepRan 23 inline RandExponential::RandExponential(HepRandomEngine * anEngine, 23 double 24 double mean ) 24 : HepRandom(), localEngine(anEngine), defaultM 25 : HepRandom(), localEngine(anEngine), defaultMean(mean) {} 25 26 26 //------------- 27 //------------- 27 28 28 inline double RandExponential::shoot(HepRandom 29 inline double RandExponential::shoot(HepRandomEngine* anEngine) { 29 return -std::log(anEngine->flat()); 30 return -std::log(anEngine->flat()); 30 } 31 } 31 32 32 inline double RandExponential::shoot(HepRandom 33 inline double RandExponential::shoot(HepRandomEngine* anEngine, 33 double 34 double mean) { 34 return -std::log(anEngine->flat())*mean; 35 return -std::log(anEngine->flat())*mean; 35 } 36 } 36 37 37 //------------- 38 //------------- 38 39 39 inline double RandExponential::fire() { 40 inline double RandExponential::fire() { 40 return -std::log(localEngine->flat())*defaul 41 return -std::log(localEngine->flat())*defaultMean; 41 } 42 } 42 43 43 inline double RandExponential::fire(double mea 44 inline double RandExponential::fire(double mean) { 44 return -std::log(localEngine->flat())*mean; 45 return -std::log(localEngine->flat())*mean; 45 } 46 } 46 47 47 } // namespace CLHEP 48 } // namespace CLHEP 48 49