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
G4INCLRandom.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4INCLRandom.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// INCL++ intra-nuclear cascade model
27
// Alain Boudard, CEA-Saclay, France
28
// Joseph Cugnon, University of Liege, Belgium
29
// Jean-Christophe David, CEA-Saclay, France
30
// Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
31
// Sylvie Leray, CEA-Saclay, France
32
// Davide Mancusi, CEA-Saclay, France
33
//
34
#define INCLXX_IN_GEANT4_MODE 1
35
36
#include "
globals.hh
"
37
38
/*
39
* G4INCLRandom.hh
40
*
41
* \date 7 June 2009
42
* \author Pekka Kaitaniemi
43
*/
44
45
#ifndef G4INCLRANDOM_HH_
46
#define G4INCLRANDOM_HH_
47
48
#include <iostream>
49
#include <cmath>
50
#include <utility>
51
#include <limits>
52
#include "
G4INCLIRandomGenerator.hh
"
53
#include "
G4INCLThreeVector.hh
"
54
#include "
G4INCLGlobals.hh
"
55
#include "
G4INCLConfig.hh
"
56
#include "
Randomize.hh
"
57
58
namespace
G4INCL {
59
60
namespace
Random {
66
void
setGenerator
(
G4INCL::IRandomGenerator
*aGenerator);
67
72
void
setSeeds
(
const
SeedVector
&sv);
73
78
SeedVector
getSeeds
();
79
83
G4double
shoot
();
84
88
G4double
shoot0
();
89
93
G4double
shoot1
();
94
98
template
<
typename
T>
T
shootInteger
(
T
n
){
99
return
static_cast<
T
>
(
shoot1
() *
n
);
100
}
101
105
G4double
gauss
(
G4double
sigma=1.);
106
107
#ifdef INCLXX_IN_GEANT4_MODE
108
112
G4double
gaussWithMemory
(
G4double
sigma=1.);
113
#endif
114
118
ThreeVector
normVector
(
G4double
norm
=1.);
119
124
ThreeVector
sphereVector
(
G4double
rmax
=1.);
125
131
ThreeVector
gaussVector
(
G4double
sigma=1.);
132
134
std::pair<G4double,G4double>
correlatedGaussian
(
const
G4double
corrCoeff,
const
G4double
x0=0.,
const
G4double
sigma=1.);
135
137
std::pair<G4double,G4double>
correlatedUniform
(
const
G4double
corrCoeff);
138
142
void
deleteGenerator
();
143
147
G4bool
isInitialized
();
148
149
#ifdef INCL_COUNT_RND_CALLS
150
151
unsigned
long
long
getNumberOfCalls();
152
#endif
153
155
void
saveSeeds
();
156
158
SeedVector
getSavedSeeds
();
159
161
#ifdef INCLXX_IN_GEANT4_MODE
162
void
initialize
(
Config
const
*
const
);
163
#else
164
void
initialize
(
Config
const
*
const
theConfig);
165
#endif
166
167
class
Adapter
{
168
public
:
169
using
result_type
=
unsigned
long;
170
171
static
constexpr
result_type
min
() {
172
return
std::numeric_limits<Adapter::result_type>::min
();
173
}
174
175
static
constexpr
result_type
max
() {
176
return
std::numeric_limits<Adapter::result_type>::max
();
177
}
178
179
result_type
operator()
()
const
{
180
// return shootInteger(max());
181
return
G4RandFlat::shootInt(
INT_MAX
);
182
}
183
184
};
185
186
Adapter
const
&
getAdapter
();
187
}
188
189
}
190
191
#endif
/* G4INCLRANDOM_HH_ */
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
inclxx
utils
include
G4INCLRandom.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:45
using
1.8.2 with
ECCE GitHub integration