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
RandGaussQ.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RandGaussQ.h
1
// -*- C++ -*-
2
//
3
// -----------------------------------------------------------------------
4
// HEP Random
5
// --- RandGaussQ ---
6
// class header file
7
// -----------------------------------------------------------------------
8
9
// Class defining methods RandGaussQ, which is derived from RandGauss.
10
// The user interface is identical; but RandGaussQ is faster and a bit less
11
// accurate.
12
13
// =======================================================================
14
// M. Fischler - Created: 24th Jan 2000
15
// M Fischler - put and get to/from streams 12/10/04
16
//
17
// =======================================================================
18
19
#ifndef RandGaussQ_h
20
#define RandGaussQ_h 1
21
22
#include "
CLHEP/Random/RandGauss.h
"
23
24
namespace
CLHEP {
25
30
class
RandGaussQ
:
public
RandGauss
{
31
32
public
:
33
34
inline
RandGaussQ
(
HepRandomEngine
& anEngine,
double
mean=0.0,
35
double
stdDev=1.0 );
36
inline
RandGaussQ
(
HepRandomEngine
* anEngine,
double
mean=0.0,
37
double
stdDev=1.0 );
38
// These constructors should be used to instantiate a RandGaussQ
39
// distribution object defining a local engine for it.
40
// The static generator will be skipped using the non-static methods
41
// defined below.
42
// If the engine is passed by pointer the corresponding engine object
43
// will be deleted by the RandGaussQ destructor.
44
// If the engine is passed by reference the corresponding engine object
45
// will not be deleted by the RandGaussQ destructor.
46
47
// Destructor
48
virtual
~RandGaussQ
();
49
50
//
51
// Methods to generate Gaussian-distributed random deviates:
52
//
53
// If a fast good engine takes 1 usec, RandGauss::fire() adds 1 usec while
54
// RandGaussQ::fire() adds only .4 usec.
55
//
56
57
// Static methods to shoot random values using the static generator
58
59
static
inline
double
shoot
();
60
61
static
inline
double
shoot
(
double
mean,
double
stdDev );
62
63
static
void
shootArray
(
const
int
size,
double
* vect,
64
double
mean=0.0,
double
stdDev=1.0 );
65
66
// Static methods to shoot random values using a given engine
67
// by-passing the static generator.
68
69
static
inline
double
shoot
(
HepRandomEngine
* anotherEngine );
70
71
static
inline
double
shoot
(
HepRandomEngine
* anotherEngine,
72
double
mean,
double
stdDev );
73
74
75
static
void
shootArray
(
HepRandomEngine
* anotherEngine,
76
const
int
size,
77
double
* vect,
double
mean=0.0,
78
double
stdDev=1.0 );
79
80
// Instance methods using the localEngine to instead of the static
81
// generator, and the default mean and stdDev established at construction
82
83
inline
double
fire
();
84
85
inline
double
fire
(
double
mean,
double
stdDev );
86
87
void
fireArray
(
const
int
size,
double
* vect);
88
void
fireArray
(
const
int
size,
double
* vect,
89
double
mean,
double
stdDev );
90
91
virtual
double
operator()
();
92
virtual
double
operator()
(
double
mean,
double
stdDev );
93
94
// Save and restore to/from streams
95
96
std::ostream &
put
( std::ostream & os )
const
;
97
std::istream &
get
( std::istream & is );
98
99
std::string
name
()
const
;
100
HepRandomEngine
&
engine
();
101
102
static
std::string
distributionName
() {
return
"RandGaussQ"
;}
103
// Provides the name of this distribution class
104
105
106
protected
:
107
108
static
double
transformQuick
(
double
r
);
109
static
double
transformSmall
(
double
r
);
110
111
private
:
112
113
// All the engine info, and the default mean and sigma, are in the RandGauss
114
// base class.
115
116
};
117
118
}
// namespace CLHEP
119
120
#include "CLHEP/Random/RandGaussQ.icc"
121
122
#endif
geant4
tree
geant4-10.6-release
source
externals
clhep
include
CLHEP
Random
RandGaussQ.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:14
using
1.8.2 with
ECCE GitHub integration