Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
processes
hadronic
models
high_energy
include
G4HEInelastic.hh
Go to the documentation of this file.
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
// $Id$
27
//
28
//
29
// G4 Gheisha High Energy (GHE) model class -- header file
30
// H. Fesefeldt, RWTH Aachen 23-October-1996
31
// Last modified: 10-December-1996
32
33
// A prototype of the Gheisha High Energy collision model.
34
// It includes all Physics Routines from Geant3,
35
// relevant for simulation of hadronic processes
36
// above approx. 20 GeV incident momentum.
37
// Not included are the Physics Routines for
38
// stopping particles, the low energy neutron
39
// slowing down description and the low energy
40
// nuclear reactions a(A,A')b.
41
42
#ifndef G4HEInelastic_h
43
#define G4HEInelastic_h 1
44
45
// Class description:
46
// Each of the high energy parameterized models (e.g. G4HEProtonInelastic)
47
// derives from the G4HEInelastic class. This class contains the various
48
// algorithms needed to implement the interaction. These include
49
// lambda-fragmentation, meson and nucleon cluster formation and decay,
50
// nuclear cascade, and nuclear de-excitation.
51
//
52
// This class is derived from G4HadronicInteraction.
53
54
// Class Description - End
55
56
#include "
G4HEVector.hh
"
57
#include "
G4HadronicInteraction.hh
"
58
59
class
G4HEInelastic
:
public
G4HadronicInteraction
60
{
61
public
:
// with description
62
G4HEInelastic
(
const
G4String
& modelName =
"HEInelastic"
)
63
:
G4HadronicInteraction
(modelName)
64
{
65
SetParticles
();
66
verboseLevel
= 0;
67
MAXPART
= 0;
68
conserveEnergy
=
true
;
69
};
70
71
~G4HEInelastic
(){ };
72
73
void
SetMaxNumberOfSecondaries
(
const
G4int
maxnumber)
74
{
MAXPART
= maxnumber;}
75
76
void
SetVerboseLevel
(
const
G4int
level) {
verboseLevel
= level;}
77
78
G4int
verboseLevel
;
79
G4int
MAXPART
;
80
G4bool
conserveEnergy
;
81
82
void
ForceEnergyConservation
(
G4bool
energyConservation)
83
{
conserveEnergy
= energyConservation;}
84
85
G4bool
EnergyConservation
(
void
) {
return
conserveEnergy
;}
86
87
virtual
const
std::pair<G4double, G4double>
GetFatalEnergyCheckLevels
()
const
;
88
89
G4double
Amin
(
G4double
a
,
G4double
b
);
90
G4double
Amax
(
G4double
a
,
G4double
b
);
91
G4int
Imin
(
G4int
a
,
G4int
b
);
92
G4int
Imax
(
G4int
a
,
G4int
b
);
93
94
void
FillParticleChange
(
G4HEVector
pv[],
G4int
aVecLength);
95
96
G4double
pmltpc
(
G4int
np,
G4int
nm,
G4int
nz,
97
G4int
n
,
G4double
b
,
G4double
c
);
98
99
G4int
Factorial
(
G4int
n
);
100
101
G4double
NuclearInelasticity
(
G4double
incidentKineticEnergy,
102
G4double
atomicWeight,
103
G4double
atomicNumber);
104
105
G4double
NuclearExcitation
(
G4double
incidentKineticEnergy,
106
G4double
atomicWeight,
107
G4double
atomicNumber,
108
G4double
& excitationEnergyCascade,
109
G4double
& excitationEnergyEvaporation);
110
111
void
HighEnergyCascading
(
G4bool
& successful,
112
G4HEVector
pv[],
113
G4int
& vecLen,
114
G4double
& excitationEnergyGNP,
115
G4double
& excitationEnergyDTA,
116
const
G4HEVector
& incidentParticle,
117
const
G4HEVector
& targetParticle,
118
G4double
atomicWeight,
119
G4double
atomicNumber);
120
121
void
HighEnergyClusterProduction
(
G4bool
& successful,
122
G4HEVector
pv[],
123
G4int
& vecLen,
124
G4double
& excitationEnergyGNP,
125
G4double
& excitationEnergyDTA,
126
const
G4HEVector
& incidentParticle,
127
const
G4HEVector
& targetParticle,
128
G4double
atomicWeight,
129
G4double
atomicNumber);
130
131
void
TuningOfHighEnergyCascading
(
G4HEVector
pv[],
132
G4int
& vecLen,
133
const
G4HEVector
& incidentParticle,
134
const
G4HEVector
& targetParticle,
135
G4double
atomicWeight,
136
G4double
atomicNumber);
137
138
void
MediumEnergyCascading
(
G4bool
& successful,
139
G4HEVector
pv[],
140
G4int
& vecLen,
141
G4double
& excitationEnergyGNP,
142
G4double
& excitationEnergyDTA,
143
const
G4HEVector
& incidentParticle,
144
const
G4HEVector
& targetParticle,
145
G4double
atomicWeight,
146
G4double
atomicNumber);
147
148
void
MediumEnergyClusterProduction
(
G4bool
& successful,
149
G4HEVector
pv[],
150
G4int
& vecLen,
151
G4double
& excitationEnergyGNP,
152
G4double
& excitationEnergyDTA,
153
const
G4HEVector
& incidentParticle,
154
const
G4HEVector
& targetParticle,
155
G4double
atomicWeight,
156
G4double
atomicNumber);
157
158
void
QuasiElasticScattering
(
G4bool
& successful,
159
G4HEVector
pv[],
160
G4int
& vecLen,
161
G4double
& excitationEnergyGNP,
162
G4double
& excitationEnergyDTA,
163
const
G4HEVector
& incidentParticle,
164
const
G4HEVector
& targetParticle,
165
G4double
atomicWeight,
166
G4double
atomicNumber);
167
168
void
ElasticScattering
(
G4bool
& successful,
169
G4HEVector
pv[],
170
G4int
& vecLen,
171
const
G4HEVector
& incidentParticle,
172
G4double
atomicWeight,
173
G4double
atomicNumber);
174
175
G4int
rtmi
(
G4double
*
x
,
G4double
xli,
G4double
xri,
G4double
eps,
176
G4int
iend,
G4double
aa,
G4double
bb,
G4double
cc,
177
G4double
dd,
G4double
rr);
178
179
G4double
fctcos
(
G4double
t,
G4double
aa,
G4double
bb,
G4double
cc,
180
G4double
dd,
G4double
rr);
181
182
void
StrangeParticlePairProduction
(
const
G4double
availableEnergy,
183
const
G4double
centerOfMassEnergy,
184
G4HEVector
pv[],
185
G4int
& vecLen,
186
const
G4HEVector
& incidentParticle,
187
const
G4HEVector
& targetParticle);
188
189
G4double
NBodyPhaseSpace
(
const
G4double
totalEnergy,
190
const
G4bool
constantCrossSection,
191
G4HEVector
pv[],
192
G4int
&vecLen);
193
194
G4double
NBodyPhaseSpace
(
G4int
npart
,
195
G4HEVector
pv[],
196
G4double
wmax,
197
G4double
wfcn,
198
G4int
maxtrial,
199
G4int
ntrial);
200
201
G4double
gpdk
(
G4double
a
,
G4double
b
,
G4double
c
);
202
203
void
QuickSort
(
G4double
arr[],
const
G4int
lidx,
const
G4int
ridx);
204
205
G4double
Alam
(
G4double
a
,
G4double
b
,
G4double
c
);
206
207
G4double
CalculatePhaseSpaceWeight
(
G4int
npart
);
208
209
G4double
normal
(
void
);
210
G4double
GammaRand
(
G4double
avalue);
211
G4double
Erlang
(
G4int
mvalue);
212
G4int
Poisson
(
G4double
x
);
213
void
SetParticles
(
void
);
214
215
G4HEVector
PionPlus
;
216
G4HEVector
PionZero
;
217
G4HEVector
PionMinus
;
218
G4HEVector
KaonPlus
;
219
G4HEVector
KaonZero
;
220
G4HEVector
AntiKaonZero
;
221
G4HEVector
KaonMinus
;
222
G4HEVector
KaonZeroShort
;
223
G4HEVector
KaonZeroLong
;
224
G4HEVector
Proton
;
225
G4HEVector
AntiProton
;
226
G4HEVector
Neutron
;
227
G4HEVector
AntiNeutron
;
228
G4HEVector
Lambda
;
229
G4HEVector
AntiLambda
;
230
G4HEVector
SigmaPlus
;
231
G4HEVector
SigmaZero
;
232
G4HEVector
SigmaMinus
;
233
G4HEVector
AntiSigmaPlus
;
234
G4HEVector
AntiSigmaZero
;
235
G4HEVector
AntiSigmaMinus
;
236
G4HEVector
XiZero
;
237
G4HEVector
XiMinus
;
238
G4HEVector
AntiXiZero
;
239
G4HEVector
AntiXiMinus
;
240
G4HEVector
OmegaMinus
;
241
G4HEVector
AntiOmegaMinus
;
242
G4HEVector
Deuteron
;
243
G4HEVector
Triton
;
244
G4HEVector
Alpha
;
245
G4HEVector
Gamma
;
246
};
247
248
#endif
Generated on Sat May 25 2013 14:33:55 for Geant4 by
1.8.4