3// -----------------------------------------------------------------------
5// --- RandExponential ---
6// inlined functions implementation file
7// -----------------------------------------------------------------------
8// This file is part of Geant4 (simulation toolkit for HEP).
10// =======================================================================
11// Gabriele Cosmo - Created: 19th August 1998
12// =======================================================================
14#include <cmath> // for log()
18inline RandExponential::RandExponential(HepRandomEngine & anEngine,
20: HepRandom(), localEngine(&anEngine, do_nothing_deleter()), defaultMean(mean) {}
22inline RandExponential::RandExponential(HepRandomEngine * anEngine,
24: HepRandom(), localEngine(anEngine), defaultMean(mean) {}
28inline double RandExponential::shoot(HepRandomEngine* anEngine) {
29 return -std::log(anEngine->flat());
32inline double RandExponential::shoot(HepRandomEngine* anEngine,
34 return -std::log(anEngine->flat())*mean;
39inline double RandExponential::fire() {
40 return -std::log(localEngine->flat())*defaultMean;
43inline double RandExponential::fire(double mean) {
44 return -std::log(localEngine->flat())*mean;