ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
RandExponential.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RandExponential.h
1
// -*- C++ -*-
2
//
3
// -----------------------------------------------------------------------
4
// HEP Random
5
// --- RandExponential ---
6
// class header file
7
// -----------------------------------------------------------------------
8
// This file is part of Geant4 (simulation toolkit for HEP).
9
//
10
// Class defining methods for shooting exponential distributed random
11
// values, given a mean (default mean = 1).
12
// Default mean is used for operator()().
13
14
// =======================================================================
15
// Gabriele Cosmo - Created: 5th September 1995
16
// - Added methods to shoot arrays: 28th July 1997
17
// J.Marraffino - Added default mean as attribute and
18
// operator() with mean: 16th Feb 1998
19
// M Fischler - put and get to/from streams 12/10/04
20
// =======================================================================
21
22
#ifndef RandExponential_h
23
#define RandExponential_h 1
24
25
#include "
CLHEP/Random/Random.h
"
26
#include "
CLHEP/Utility/memory.h
"
27
28
namespace
CLHEP {
29
34
class
RandExponential
:
public
HepRandom
{
35
36
public
:
37
38
inline
RandExponential
(
HepRandomEngine
& anEngine,
double
mean=1.0 );
39
inline
RandExponential
(
HepRandomEngine
* anEngine,
double
mean=1.0 );
40
// These constructors should be used to instantiate a RandExponential
41
// distribution object defining a local engine for it.
42
// The static generator will be skipped using the non-static methods
43
// defined below.
44
// If the engine is passed by pointer the corresponding engine object
45
// will be deleted by the RandExponential destructor.
46
// If the engine is passed by reference the corresponding engine object
47
// will not be deleted by the RandExponential destructor.
48
49
virtual
~RandExponential
();
50
// Destructor
51
52
// Static methods to shoot random values using the static generator
53
54
static
double
shoot
();
55
56
static
double
shoot
(
double
mean );
57
58
static
void
shootArray
(
const
int
size,
double
* vect,
59
double
mean=1.0 );
60
61
// Static methods to shoot random values using a given engine
62
// by-passing the static generator.
63
64
static
inline
double
shoot
(
HepRandomEngine
* anEngine );
65
66
static
inline
double
shoot
(
HepRandomEngine
* anEngine,
double
mean );
67
68
static
void
shootArray
(
HepRandomEngine
* anEngine,
const
int
size,
69
double
* vect,
double
mean=1.0 );
70
71
// Methods using the localEngine to shoot random values, by-passing
72
// the static generator.
73
74
inline
double
fire
();
75
76
inline
double
fire
(
double
mean );
77
78
void
fireArray
(
const
int
size,
double
* vect );
79
void
fireArray
(
const
int
size,
double
* vect,
double
mean );
80
81
double
operator()
();
82
double
operator()
(
double
mean );
83
84
// Save and restore to/from streams
85
86
std::ostream &
put
( std::ostream & os )
const
;
87
std::istream &
get
( std::istream & is );
88
89
std::string
name
()
const
;
90
HepRandomEngine
&
engine
();
91
92
static
std::string
distributionName
() {
return
"RandExponential"
;}
93
// Provides the name of this distribution class
94
95
private
:
96
97
std::shared_ptr<HepRandomEngine>
localEngine
;
98
double
defaultMean
;
99
100
};
101
102
}
// namespace CLHEP
103
104
#include "CLHEP/Random/RandExponential.icc"
105
106
#endif
geant4
tree
geant4-10.6-release
source
externals
clhep
include
CLHEP
Random
RandExponential.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:14
using
1.8.2 with
ECCE GitHub integration