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
G4Abla.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4Abla.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
// ABLAXX statistical de-excitation model
27
// Jose Luis Rodriguez, GSI (translation from ABLA07 and contact person)
28
// Pekka Kaitaniemi, HIP (initial translation of ablav3p)
29
// Aleksandra Kelic, GSI (ABLA07 code)
30
// Davide Mancusi, CEA (contact person INCL)
31
// Aatos Heikkinen, HIP (project coordination)
32
//
33
#define ABLAXX_IN_GEANT4_MODE 1
34
35
#include "
globals.hh
"
36
37
#ifndef G4Abla_hh
38
#define G4Abla_hh 1
39
40
#ifdef ABLAXX_IN_GEANT4_MODE
41
#include "
globals.hh
"
42
#else
43
#include "
G4INCLGeant4Compat.hh
"
44
#include "
G4INCLConfig.hh
"
45
#endif
46
47
#include "
G4AblaRandom.hh
"
48
#include "
G4AblaDataDefs.hh
"
49
54
class
G4Abla
{
55
56
public
:
64
#ifdef ABLAXX_IN_GEANT4_MODE
65
G4Abla
(
G4Volant
*aVolant,
G4VarNtp
*aVarntp);
66
#else
67
G4Abla
(
G4INCL::Config
*
config
,
G4Volant
*aVolant,
G4VarNtp
*aVarntp);
68
#endif
69
73
~G4Abla
();
74
76
G4Abla
(
G4Abla
const
&other);
77
79
G4Abla
&
operator=
(
G4Abla
const
&other);
80
84
void
setVerboseLevel
(
G4int
level);
85
89
G4Volant
*
getVolant
() {
90
return
volant
;
91
}
92
105
void
DeexcitationAblaxx
(
G4int
nucleusA,
G4int
nucleusZ,
G4double
excitationEnergy,
G4double
angularMomentum,
G4double
momX,
G4double
momY,
G4double
momZ,
G4int
eventnumber);
106
120
void
DeexcitationAblaxx
(
G4int
nucleusA,
G4int
nucleusZ,
G4double
excitationEnergy,
G4double
angularMomentum,
G4double
momX,
G4double
momY,
G4double
momZ,
G4int
eventnumber,
G4int
nucleusS);
121
122
// Evaporation
123
public
:
128
void
initEvapora
();
129
134
void
SetParameters
();
135
void
SetParametersG4
(
G4int
z
,
G4int
a
);
136
149
void
qrot
(
G4double
z
,
G4double
a
,
G4double
bet,
G4double
sig,
G4double
u
,
G4double
*qr);
150
155
void
mglw
(
G4double
a
,
G4double
z
,
G4double
*el);
156
160
void
mglms
(
G4double
a
,
G4double
z
,
G4int
refopt4,
G4double
*el);
161
165
G4double
spdef
(
G4int
a
,
G4int
z
,
G4int
optxfis);
166
170
G4double
fissility
(
G4int
a
,
G4int
z
,
G4int
ny,
G4double
sn
,
G4double
slam,
G4int
optxfis);
171
175
void
evapora
(
G4double
zprf,
G4double
aprf,
G4double
*ee_par,
G4double
jprf,
176
G4double
*zf_par,
G4double
*af_par,
G4double
*mtota_par,
177
G4double
*vleva_par,
G4double
*vxeva_par,
G4double
*vyeva_par,
178
G4int
*ff_par,
G4int
*fimf_par,
G4double
*fzimf,
G4double
*faimf,
G4double
*tkeimf_par,
G4double
*jprfout,
G4int
*inttype_par,
G4int
*inum_par,
G4double
EV_TEMP[200][6],
G4int
*iev_tab_temp_par,
G4int
*nblam0);
179
180
184
void
direct
(
G4double
zprf,
G4double
a
,
G4double
ee,
G4double
jprf,
G4double
*probp_par,
G4double
*probd_par,
G4double
*probt_par,
G4double
*probn_par,
G4double
*probhe_par,
G4double
*proba_par,
G4double
*probg_par,
G4double
*probimf_par,
G4double
*probf_par,
G4double
*problamb0_par,
G4double
*ptotl_par,
G4double
*sn_par,
G4double
*sbp_par,
G4double
*sbd_par,
G4double
*sbt_par,
G4double
*sbhe_par,
G4double
*sba_par,
G4double
*slamb0_par,
G4double
*ecn_par,
G4double
*ecp_par,
G4double
*ecd_par,
G4double
*ect_par,
G4double
*eche_par,
G4double
*eca_par,
G4double
*ecg_par,
G4double
*eclamb0_par,
G4double
*bp_par,
G4double
*bd_par,
G4double
*bt_par,
G4double
*bhe_par,
G4double
*ba_par,
G4double
*sp_par,
G4double
*sd_par,
G4double
*st_par,
G4double
*she_par,
G4double
*sa_par,
G4double
*ef_par,
G4double
*ts1_par,
G4int
,
G4int
inum,
G4int
itest
,
G4int
*sortie,
G4double
*tcn,
G4double
*jprfn_par,
G4double
*jprfp_par,
G4double
*jprfd_par,
G4double
*jprft_par,
G4double
*jprfhe_par,
G4double
*jprfa_par,
G4double
*jprflamb0_par,
G4double
*tsum_par,
G4int
NbLam0);
185
186
190
void
fission
(
G4double
AF,
G4double
ZF,
G4double
EE,
G4double
JPRF,
191
G4double
*VX1_FISSION,
G4double
*VY1_FISSION,
G4double
*VZ1_FISSION,
192
G4double
*VX2_FISSION,
G4double
*VY2_FISSION,
G4double
*VZ2_FISSION,
193
G4int
*ZFP1,
G4int
*AFP1,
G4int
*SFP1,
G4int
*ZFP2,
G4int
*AFP2,
G4int
*SFP2,
G4int
*imode,
194
G4double
*VX_EVA_SC,
G4double
*VY_EVA_SC,
G4double
*VZ_EVA_SC,
195
G4double
EV_TEMP[200][6],
G4int
*IEV_TAB_FIS,
G4int
*NbLam0);
196
197
201
void
lorentz_boost
(
G4double
VXRIN,
G4double
VYRIN,
G4double
VZRIN,
G4double
VXIN,
G4double
VYIN,
G4double
VZIN,
G4double
*VXOUT,
G4double
*VYOUT,
G4double
*VZOUT);
202
206
void
unstable_nuclei
(
G4int
AFP,
G4int
ZFP,
G4int
*AFPNEW,
G4int
*ZFPNEW,
G4int
&IOUNSTABLE,
G4double
VX,
G4double
VY,
G4double
VZ,
G4double
*VP1X,
G4double
*VP1Y,
G4double
*VP1Z,
G4double
BU_TAB_TEMP[200][6],
G4int
*ILOOP);
207
211
void
unstable_tke
(
G4double
AIN,
G4double
ZIN,
G4double
ANEW,
G4double
ZNEW,
G4double
VXIN,
G4double
VYIN,
G4double
VZIN,
G4double
*V1X,
G4double
*V1Y,
G4double
*V1Z,
G4double
*V2X,
G4double
*V2Y,
G4double
*V2Z);
212
216
void
tke_bu
(
G4double
Z
,
G4double
A
,
G4double
ZALL,
G4double
AAL,
G4double
*VX,
G4double
*VY,
G4double
*VZ);
217
222
void
AMOMENT
(
G4double
AABRA,
G4double
APRF,
G4int
IMULTIFR,
G4double
*PX,
G4double
*PY,
G4double
*PZ);
223
227
void
barrs
(
G4int
Z1
,
G4int
A1,
G4int
Z2
,
G4int
A2,
G4double
*sBARR,
G4double
*sOMEGA);
228
232
void
evap_postsaddle
(
G4double
A
,
G4double
Z
,
G4double
E_scission_pre,
G4double
*E_scission_post,
G4double
*A_scission,
G4double
*Z_scission,
233
G4double
&vx_eva,
G4double
&vy_eva,
G4double
&vz_eva,
G4int
*NbLam0_par);
234
238
void
imf
(
G4double
ACN,
G4double
ZCN,
G4double
TEMP,
G4double
EE,
G4double
*ZIMF,
G4double
*AIMF,
G4double
*BIMF,
G4double
*SBIMF,
G4double
*TIMF,
G4double
JPRF);
239
243
void
fomega_sp
(
G4double
AF,
G4double
Y
,
G4double
*MFCD,
G4double
*sOMEGA,
G4double
*sHOMEGA);
244
248
void
fomega_gs
(
G4double
AF,
G4double
ZF,
G4double
*K1,
G4double
*sOMEGA,
G4double
*sHOMEGA);
249
253
G4double
tunnelling
(
G4double
A
,
G4double
ZPRF,
G4double
Y
,
G4double
EE,
G4double
EF,
G4double
TEMP,
G4double
DENSG,
G4double
DENSF,
G4double
ENH_FACT);
254
258
void
fission_width
(
G4double
ZPRF,
G4double
A
,
G4double
EE,
G4double
BS,
G4double
BK,
G4double
EF,
G4double
Y
,
G4double
*GF,
G4double
*TEMP,
G4double
JPR,
G4int
IEROT,
G4int
FF_ALLOWED,
G4int
OPTCOL,
G4int
OPTSHP,
G4double
DENSG);
259
263
void
unbound
(
G4double
SN,
G4double
SP,
G4double
SD,
G4double
ST,
G4double
SHE,
G4double
SA,
G4double
BP,
G4double
BD,
G4double
BT,
G4double
BHE,
G4double
BA,
G4double
*PROBF,
G4double
*PROBN,
G4double
*PROBP,
G4double
*PROBD,
G4double
*PROBT,
G4double
*PROBHE,
G4double
*PROBA,
G4double
*PROBIMF,
G4double
*PROBG,
G4double
*ECN,
G4double
*ECP,
G4double
*ECD,
G4double
*ECT,
G4double
*ECHE,
G4double
*ECA);
264
268
void
fissionDistri
(
G4double
&
a
,
G4double
&
z
,
G4double
&
e
,
269
G4double
&a1,
G4double
&
z1
,
G4double
&
e1
,
G4double
&
v1
,
270
G4double
&a2,
G4double
&
z2
,
G4double
&
e2
,
G4double
&
v2
,
271
G4double
&vx_eva_sc,
G4double
&vy_eva_sc,
272
G4double
&vz_eva_sc,
G4int
*NbLam0_par);
273
277
void
even_odd
(
G4double
r_origin,
G4double
r_even_odd,
G4int
&i_out);
278
282
G4double
umass
(
G4double
z
,
G4double
n
,
G4double
beta);
283
G4double
ecoul
(
G4double
z1
,
G4double
n1
,
G4double
beta1,
G4double
z2
,
G4double
n2,
G4double
beta2,
G4double
d
);
284
G4double
Uwash
(
G4double
E
,
G4double
Ecrit,
G4double
Freduction,
G4double
gamma);
285
G4double
frldm
(
G4double
z
,
G4double
n
,
G4double
beta);
286
G4double
eflmac_profi
(
G4double
a
,
G4double
z
);
287
G4double
gausshaz
(
G4int
k
,
G4double
xmoy,
G4double
sig);
288
G4double
haz
(
G4int
k
);
289
293
void
densniv
(
G4double
a
,
G4double
z
,
G4double
ee,
G4double
ef,
G4double
*dens,
G4double
bshell,
G4double
bs,
G4double
bk
,
294
G4double
*temp,
G4int
optshp,
G4int
optcol,
G4double
defbet,
G4double
*ecor,
G4double
jprf,
G4int
ifis,
G4double
*qr);
295
299
void
part_fiss
(
G4double
BET,
G4double
GP,
G4double
GF,
G4double
Y
,
G4double
TAUF,
G4double
TS1,
G4double
TSUM,
G4int
*CHOICE,
G4double
ZF,
G4double
AF,
G4double
FT,
G4double
*T_LAPSE,
G4double
*GF_LOC);
300
301
G4double
func_trans
(
G4double
TIME
,
G4double
ZF,
G4double
AF,
G4double
BET,
G4double
Y
,
G4double
FT,
G4double
T_0);
302
310
void
lpoly
(
G4double
x
,
G4int
n
,
G4double
pl
[]);
311
318
G4double
eflmac
(
G4int
ia,
G4int
iz,
G4int
flag,
G4int
optshp);
319
324
void
appariem
(
G4double
a
,
G4double
z
,
G4double
*del);
325
330
void
parite
(
G4double
n
,
G4double
*par);
331
336
G4double
tau
(
G4double
bet,
G4double
homega,
G4double
ef,
G4double
t
);
337
342
G4double
cram
(
G4double
bet,
G4double
homega);
343
349
G4double
bipol
(
G4int
iflag,
G4double
y
);
350
360
void
barfit
(
G4int
iz,
G4int
ia,
G4int
il,
G4double
*sbfis,
G4double
*segs,
G4double
*selmax);
361
365
G4double
width
(
G4double
AMOTHER,
G4double
ZMOTHER,
G4double
APART,
G4double
ZPART,
G4double
TEMP,
G4double
B1,
G4double
SB1,
G4double
EXC);
366
370
G4double
pen
(
G4double
A
,
G4double
ap
,
G4double
omega,
G4double
T
);
371
375
void
lorb
(
G4double
AMOTHER,
G4double
ADAUGHTER,
G4double
LMOTHER,
G4double
EEFINAL,
G4double
*LORBITAL,
G4double
*SIGMA_LORBITAL);
376
380
void
bsbkbc
(
G4double
A
,
G4double
Z
,
G4double
*BS,
G4double
*BK,
G4double
*BC);
381
385
G4double
erf
(
G4double
x
);
386
387
G4double
gammp
(
G4double
a
,
G4double
x
);
388
389
void
gcf
(
G4double
*gammcf,
G4double
a
,
G4double
x
,
G4double
gln);
390
391
void
gser
(
G4double
*gamser,
G4double
a
,
G4double
x
,
G4double
gln);
392
393
G4double
fvmaxhaz
(
G4double
T
);
394
395
G4double
fvmaxhaz_neut
(
G4double
x
);
396
400
void
standardRandom
(
G4double
*rndm,
G4long
*
seed
);
401
405
G4double
gammln
(
G4double
xx
);
406
410
G4double
fd
(
G4double
E
);
411
415
G4double
f
(
G4double
E
);
416
420
G4double
fmaxhaz
(
G4double
T
);
421
425
G4double
fmaxhaz_old
(
G4double
T
);
426
431
G4int
IPOWERLIMHAZ
(
G4double
lambda
,
G4int
xmin
,
G4int
xmax
);
432
436
G4double
pace2
(
G4double
a
,
G4double
z
);
437
441
void
guet
(
G4double
*x_par,
G4double
*z_par,
G4double
*find_par);
442
446
void
isostab_lim
(
G4int
z
,
G4int
*nmin,
G4int
*
nmax
);
447
451
void
FillData
(
G4int
IMULTBU,
G4int
IEV_TAB);
452
456
G4double
gethyperseparation
(
G4double
A
,
G4double
Z
,
G4int
ny);
457
461
G4double
getdeltabinding
(
G4double
a
,
G4int
nblamb);
462
G4double
gethyperbinding
(
G4double
A
,
G4double
Z
,
G4int
ny);
463
464
public
:
465
// Utils
466
G4int
min
(
G4int
a
,
G4int
b
);
467
G4double
min
(
G4double
a
,
G4double
b
);
468
G4int
max
(
G4int
a
,
G4int
b
);
469
G4double
max
(
G4double
a
,
G4double
b
);
470
G4double
DSIGN
(
G4double
a
,
G4double
b
);
471
G4int
ISIGN
(
G4int
a
,
G4int
b
);
472
G4int
nint
(
G4double
number);
473
G4int
secnds
(
G4int
x
);
474
G4int
mod
(
G4int
a
,
G4int
b
);
475
G4double
dmod
(
G4double
a
,
G4double
b
);
476
G4double
dint
(
G4double
a
);
477
G4int
idint
(
G4double
a
);
478
G4int
idnint
(
G4double
value
);
479
G4double
utilabs
(
G4double
a
);
480
G4double
dmin1
(
G4double
a
,
G4double
b
,
G4double
c
);
481
G4Ec2sub
*
getFrldmTable
() {
482
return
ec2sub
;
483
}
484
485
private
:
486
G4int
verboseLevel
;
487
G4int
ilast
;
488
G4double
T_freeze_out_in
;
489
G4int
IEV_TAB_SSC
;
490
G4double
BU_TAB
[200][12],
EV_TAB
[200][6],
EV_TAB_SSC
[200][6];
491
G4int
gammaemission
;
492
G4double
T_freeze_out
;
493
G4Pace
*
pace
;
494
G4Ald
*
ald
;
495
G4Eenuc
*
eenuc
;
496
G4Ec2sub
*
ec2sub
;
497
G4Ecld
*
ecld
;
498
G4Mexp
*
masses
;
499
G4Fb
*
fb
;
500
G4Fiss
*
fiss
;
501
G4Opt
*
opt
;
502
G4Volant
*
volant
;
503
G4VarNtp
*
varntp
;
504
G4int
Ainit
,
Zinit
,
Sinit
;
505
#ifndef ABLAXX_IN_GEANT4_MODE
506
G4INCL::Config
*theConfig;
507
#endif
508
};
509
510
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
abla
include
G4Abla.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:38
using
1.8.2 with
ECCE GitHub integration