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