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
G4INCLEventInfo.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4INCLEventInfo.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
47
#ifndef G4INCLEVENTINFO_HH_HH
48
#define G4INCLEVENTINFO_HH_HH 1
49
50
#include "
G4INCLParticleType.hh
"
51
#ifdef INCL_ROOT_USE
52
#include <Rtypes.h>
53
#endif
54
#include <string>
55
#include <vector>
56
#include <algorithm>
57
58
namespace
G4INCL {
59
#ifndef INCL_ROOT_USE
60
typedef
G4int
Int_t
;
61
typedef
short
Short_t
;
62
typedef
G4float
Float_t
;
63
typedef
G4double
Double_t
;
64
typedef
G4bool
Bool_t
;
65
#endif
66
67
struct
EventInfo
{
68
EventInfo
() :
69
nParticles
(0),
70
eventBias
((
Float_t
)0.0),
71
nRemnants
(0),
72
projectileType
(0),
73
At
(0),
74
Zt
(0),
75
St
(0),
76
Ap
(0),
77
Zp
(0),
78
Sp
(0),
79
Ep
((
Float_t
)0.0),
80
impactParameter
((
Float_t
)0.0),
81
nCollisions
(0),
82
stoppingTime
((
Float_t
)0.0),
83
EBalance
((
Float_t
)0.0),
84
pLongBalance
((
Float_t
)0.0),
85
pTransBalance
((
Float_t
)0.0),
86
nCascadeParticles
(0),
87
transparent
(
false
),
88
forcedCompoundNucleus
(
false
),
89
nucleonAbsorption
(
false
),
90
pionAbsorption
(
false
),
91
nDecays
(0),
92
nBlockedCollisions
(0),
93
nBlockedDecays
(0),
94
effectiveImpactParameter
((
Float_t
)0.0),
95
deltasInside
(
false
),
96
sigmasInside
(
false
),
97
kaonsInside
(
false
),
98
antikaonsInside
(
false
),
99
lambdasInside
(
false
),
100
forcedDeltasInside
(
false
),
101
forcedDeltasOutside
(
false
),
102
forcedPionResonancesOutside
(
false
),
103
absorbedStrangeParticle
(
false
),
104
forcedSigmaOutside
(
false
),
105
forcedStrangeInside
(
false
),
106
emitLambda
(0),
107
emitKaon
(
false
),
108
clusterDecay
(
false
),
109
firstCollisionTime
((
Float_t
)0.0),
110
firstCollisionXSec
((
Float_t
)0.0),
111
firstCollisionSpectatorPosition
((
Float_t
)0.0),
112
firstCollisionSpectatorMomentum
((
Float_t
)0.0),
113
firstCollisionIsElastic
(
false
),
114
nReflectionAvatars
(0),
115
nCollisionAvatars
(0),
116
nDecayAvatars
(0),
117
nUnmergedSpectators
(0),
118
nEnergyViolationInteraction
(0),
119
event
(0)
120
121
{
122
std::fill_n(
A
,
maxSizeParticles
, 0);
123
std::fill_n(
Z
,
maxSizeParticles
, 0);
124
std::fill_n(
S
,
maxSizeParticles
, 0);
125
std::fill_n(
PDGCode
,
maxSizeParticles
, 0);
126
std::fill_n(
ParticleBias
,
maxSizeParticles
, (
Float_t
)0.0);
127
std::fill_n(
EKin
,
maxSizeParticles
, (
Float_t
)0.0);
128
std::fill_n(
px
,
maxSizeParticles
, (
Float_t
)0.0);
129
std::fill_n(
py
,
maxSizeParticles
, (
Float_t
)0.0);
130
std::fill_n(
pz
,
maxSizeParticles
, (
Float_t
)0.0);
131
std::fill_n(
theta
,
maxSizeParticles
, (
Float_t
)0.0);
132
std::fill_n(
phi
,
maxSizeParticles
, (
Float_t
)0.0);
133
std::fill_n(
origin
,
maxSizeParticles
, 0);
134
std::fill_n(
emissionTime
,
maxSizeParticles
, (
Float_t
)0.0);
135
std::fill_n(
ARem
,
maxSizeRemnants
, 0);
136
std::fill_n(
ZRem
,
maxSizeRemnants
, 0);
137
std::fill_n(
SRem
,
maxSizeRemnants
, 0);
138
std::fill_n(
EStarRem
,
maxSizeRemnants
, (
Float_t
)0.0);
139
std::fill_n(
JRem
,
maxSizeRemnants
, (
Float_t
)0.0);
140
std::fill_n(
EKinRem
,
maxSizeRemnants
, (
Float_t
)0.0);
141
std::fill_n(
pxRem
,
maxSizeRemnants
, (
Float_t
)0.0);
142
std::fill_n(
pyRem
,
maxSizeRemnants
, (
Float_t
)0.0);
143
std::fill_n(
pzRem
,
maxSizeRemnants
, (
Float_t
)0.0);
144
std::fill_n(
thetaRem
,
maxSizeRemnants
, (
Float_t
)0.0);
145
std::fill_n(
phiRem
,
maxSizeRemnants
, (
Float_t
)0.0);
146
std::fill_n(
jxRem
,
maxSizeRemnants
, (
Float_t
)0.0);
147
std::fill_n(
jyRem
,
maxSizeRemnants
, (
Float_t
)0.0);
148
std::fill_n(
jzRem
,
maxSizeRemnants
, (
Float_t
)0.0);
149
std::fill_n(
EKinPrime
,
maxSizeParticles
, (
Float_t
)0.0);
150
std::fill_n(
pzPrime
,
maxSizeParticles
, (
Float_t
)0.0);
151
std::fill_n(
thetaPrime
,
maxSizeParticles
, (
Float_t
)0.0);
152
}
153
155
static
G4ThreadLocal
Int_t
eventNumber
;
156
158
static
const
Short_t
maxSizeRemnants
= 10;
159
161
static
const
Short_t
maxSizeParticles
= 1000;
162
164
Short_t
nParticles
;
166
Short_t
A
[
maxSizeParticles
];
168
Short_t
Z
[
maxSizeParticles
];
170
Short_t
S
[
maxSizeParticles
];
172
Int_t
PDGCode
[
maxSizeParticles
];
174
Float_t
ParticleBias
[
maxSizeParticles
];
176
Float_t
eventBias
;
178
Float_t
EKin
[
maxSizeParticles
];
180
Float_t
px
[
maxSizeParticles
];
182
Float_t
py
[
maxSizeParticles
];
184
Float_t
pz
[
maxSizeParticles
];
186
Float_t
theta
[
maxSizeParticles
];
188
Float_t
phi
[
maxSizeParticles
];
193
Short_t
origin
[
maxSizeParticles
];
195
Float_t
emissionTime
[
maxSizeParticles
];
214
std::vector<std::string>
history
;
216
Short_t
nRemnants
;
218
Short_t
ARem
[
maxSizeRemnants
];
220
Short_t
ZRem
[
maxSizeRemnants
];
222
Short_t
SRem
[
maxSizeRemnants
];
224
Float_t
EStarRem
[
maxSizeRemnants
];
226
Float_t
JRem
[
maxSizeRemnants
];
228
Float_t
EKinRem
[
maxSizeRemnants
];
230
Float_t
pxRem
[
maxSizeRemnants
];
232
Float_t
pyRem
[
maxSizeRemnants
];
234
Float_t
pzRem
[
maxSizeRemnants
];
236
Float_t
thetaRem
[
maxSizeRemnants
];
238
Float_t
phiRem
[
maxSizeRemnants
];
240
Float_t
jxRem
[
maxSizeRemnants
];
242
Float_t
jyRem
[
maxSizeRemnants
];
244
Float_t
jzRem
[
maxSizeRemnants
];
246
Int_t
projectileType
;
248
Short_t
At
;
250
Short_t
Zt
;
252
Short_t
St
;
254
Short_t
Ap
;
256
Short_t
Zp
;
258
Short_t
Sp
;
260
Float_t
Ep
;
262
Float_t
impactParameter
;
264
Int_t
nCollisions
;
266
Float_t
stoppingTime
;
268
Float_t
EBalance
;
270
Float_t
pLongBalance
;
272
Float_t
pTransBalance
;
274
Short_t
nCascadeParticles
;
276
Bool_t
transparent
;
278
Bool_t
forcedCompoundNucleus
;
280
Bool_t
nucleonAbsorption
;
282
Bool_t
pionAbsorption
;
284
Int_t
nDecays
;
286
Int_t
nBlockedCollisions
;
288
Int_t
nBlockedDecays
;
290
Float_t
effectiveImpactParameter
;
292
Bool_t
deltasInside
;
294
Bool_t
sigmasInside
;
296
Bool_t
kaonsInside
;
298
Bool_t
antikaonsInside
;
300
Bool_t
lambdasInside
;
302
Bool_t
forcedDeltasInside
;
304
Bool_t
forcedDeltasOutside
;
306
Bool_t
forcedPionResonancesOutside
;
308
Bool_t
absorbedStrangeParticle
;
310
Bool_t
forcedSigmaOutside
;
312
Bool_t
forcedStrangeInside
;
314
Int_t
emitLambda
;
316
Bool_t
emitKaon
;
318
Bool_t
clusterDecay
;
320
Float_t
firstCollisionTime
;
322
Float_t
firstCollisionXSec
;
324
Float_t
firstCollisionSpectatorPosition
;
326
Float_t
firstCollisionSpectatorMomentum
;
328
Bool_t
firstCollisionIsElastic
;
330
Int_t
nReflectionAvatars
;
332
Int_t
nCollisionAvatars
;
334
Int_t
nDecayAvatars
;
336
Int_t
nUnmergedSpectators
;
338
Int_t
nEnergyViolationInteraction
;
340
Int_t
event
;
342
Float_t
EKinPrime
[
maxSizeParticles
];
344
Float_t
pzPrime
[
maxSizeParticles
];
346
Float_t
thetaPrime
[
maxSizeParticles
];
347
349
void
reset
() {
350
nParticles
= 0;
351
eventBias
= (
Float_t
)0.0;
352
history
.clear();
353
nRemnants
= 0;
354
projectileType
= 0;
355
At
= 0;
356
Zt
= 0;
357
St
= 0;
358
Ap
= 0;
359
Zp
= 0;
360
Sp
= 0;
361
Ep
= (
Float_t
)0.0;
362
impactParameter
= (
Float_t
)0.0;
363
nCollisions
= 0;
364
stoppingTime
= (
Float_t
)0.0;
365
EBalance
= (
Float_t
)0.0;
366
pLongBalance
= (
Float_t
)0.0;
367
pTransBalance
= (
Float_t
)0.0;
368
nCascadeParticles
= 0;
369
transparent
=
false
;
370
forcedCompoundNucleus
=
false
;
371
nucleonAbsorption
=
false
;
372
pionAbsorption
=
false
;
373
nDecays
= 0;
374
nBlockedCollisions
= 0;
375
nBlockedDecays
= 0;
376
effectiveImpactParameter
= (
Float_t
)0.0;
377
deltasInside
=
false
;
378
sigmasInside
=
false
;
379
kaonsInside
=
false
;
380
antikaonsInside
=
false
;
381
lambdasInside
=
false
;
382
forcedDeltasInside
=
false
;
383
forcedDeltasOutside
=
false
;
384
forcedPionResonancesOutside
=
false
;
385
absorbedStrangeParticle
=
false
;
386
forcedSigmaOutside
=
false
;
387
forcedStrangeInside
=
false
;
388
emitLambda
= 0;
389
emitKaon
=
false
;
390
clusterDecay
=
false
;
391
firstCollisionTime
= (
Float_t
)0.0;
392
firstCollisionXSec
= (
Float_t
)0.0;
393
firstCollisionSpectatorPosition
= (
Float_t
)0.0;
394
firstCollisionSpectatorMomentum
= (
Float_t
)0.0;
395
firstCollisionIsElastic
=
false
;
396
nReflectionAvatars
= 0;
397
nCollisionAvatars
= 0;
398
nDecayAvatars
= 0;
399
nUnmergedSpectators
= 0;
400
nEnergyViolationInteraction
= 0;
401
event
= 0;
402
403
}
404
406
void
remnantToParticle
(
const
G4int
remnantIndex);
407
409
void
fillInverseKinematics
(
const
Double_t
gamma);
410
};
411
}
412
413
#endif
/* G4INCLEVENTINFO_HH_HH */
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
inclxx
utils
include
G4INCLEventInfo.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:45
using
1.8.2 with
ECCE GitHub integration