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
G4FTFParameters.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4FTFParameters.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
//
27
//
28
#ifndef G4FTFParameters_h
29
#define G4FTFParameters_h 1
30
31
#include <
CLHEP/Units/SystemOfUnits.h
>
32
#include <vector>
33
#include "
G4Types.hh
"
34
#include "
G4Exp.hh
"
35
36
class
G4ParticleDefinition
;
37
class
G4VComponentCrossSection
;
38
class
G4LundStringFragmentation
;
39
40
41
// NOTE: the settings are different for:
42
// * baryons projectile
43
// * anti-baryons projectile
44
// * pions (chg or pi0) projectile
45
// * kaons projectile (pdg = +/-321, 311, 130, or 310)
46
// * "undefined" projectile - nucleon assumed
47
48
class
G4FTFParamCollection
{
49
public
:
50
51
//dtor
52
virtual
~G4FTFParamCollection
() {}
53
54
// parameters of excitation
55
//
56
// Proc=0 --> Qexchg w/o excitation
57
//
58
double
GetProc0A1
()
const
{
return
fProc0A1
; }
59
double
GetProc0B1
()
const
{
return
fProc0B1
; }
60
double
GetProc0A2
()
const
{
return
fProc0A2
; }
61
double
GetProc0B2
()
const
{
return
fProc0B2
; }
62
double
GetProc0A3
()
const
{
return
fProc0A3
; }
63
double
GetProc0Atop
()
const
{
return
fProc0Atop
; }
64
double
GetProc0Ymin
()
const
{
return
fProc0Ymin
; }
65
//
66
// Proc=1 --> Qexchg w/excitation
67
//
68
double
GetProc1A1
()
const
{
return
fProc1A1
; }
69
double
GetProc1B1
()
const
{
return
fProc1B1
; }
70
double
GetProc1A2
()
const
{
return
fProc1A2
; }
71
double
GetProc1B2
()
const
{
return
fProc1B2
; }
72
double
GetProc1A3
()
const
{
return
fProc1A3
; }
73
double
GetProc1Atop
()
const
{
return
fProc1Atop
; }
74
double
GetProc1Ymin
()
const
{
return
fProc1Ymin
; }
75
//
76
// Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 )
77
// Update: Proc=2 & Proc=3 in case ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 )
78
// (diffraction dissociation)
79
//
80
// Other parameters have a complex form for baryon projectile
81
// although they're just numbers for e.g. pions projectile
82
//
83
// Proc=2 --> Projectile diffraction
84
//
85
double
GetProc2A1
()
const
{
return
fProc2A1
; }
86
double
GetProc2B1
()
const
{
return
fProc2B1
; }
87
double
GetProc2A2
()
const
{
return
fProc2A2
; }
88
double
GetProc2B2
()
const
{
return
fProc2B2
; }
89
double
GetProc2A3
()
const
{
return
fProc2A3
; }
90
double
GetProc2Atop
()
const
{
return
fProc2Atop
; }
91
double
GetProc2Ymin
()
const
{
return
fProc2Ymin
; }
92
//
93
// Proc=3 --> Target diffraction
94
//
95
double
GetProc3A1
()
const
{
return
fProc3A1
; }
96
double
GetProc3B1
()
const
{
return
fProc3B1
; }
97
double
GetProc3A2
()
const
{
return
fProc3A2
; }
98
double
GetProc3B2
()
const
{
return
fProc3B2
; }
99
double
GetProc3A3
()
const
{
return
fProc3A3
; }
100
double
GetProc3Atop
()
const
{
return
fProc3Atop
; }
101
double
GetProc3Ymin
()
const
{
return
fProc3Ymin
; }
102
//
103
bool
IsProjDiffDissociation
()
const
{
return
fProjDiffDissociation
; }
104
bool
IsTgtDiffDissociation
()
const
{
return
fTgtDiffDissociation
; }
105
//
106
// Proc=4 --> Qexchg "w/additional multiplier" in excitation
107
//
108
double
GetProc4A1
()
const
{
return
fProc4A1
; }
109
double
GetProc4B1
()
const
{
return
fProc4B1
; }
110
double
GetProc4A2
()
const
{
return
fProc4A2
; }
111
double
GetProc4B2
()
const
{
return
fProc4B2
; }
112
double
GetProc4A3
()
const
{
return
fProc4A3
; }
113
double
GetProc4Atop
()
const
{
return
fProc4Atop
; }
114
double
GetProc4Ymin
()
const
{
return
fProc4Ymin
; }
115
//
116
//
117
double
GetDeltaProbAtQuarkExchange
()
const
{
return
fDeltaProbAtQuarkExchange
; }
118
double
GetProbOfSameQuarkExchange
()
const
{
return
fProbOfSameQuarkExchange
; }
119
double
GetProjMinDiffMass
()
const
{
return
fProjMinDiffMass
; }
120
double
GetProjMinNonDiffMass
()
const
{
return
fProjMinNonDiffMass
; }
121
double
GetTgtMinDiffMass
()
const
{
return
fTgtMinDiffMass
; }
122
double
GetTgtMinNonDiffMass
()
const
{
return
fTgtMinNonDiffMass
; }
123
double
GetAveragePt2
()
const
{
return
fAveragePt2
; }
124
double
GetProbLogDistrPrD
()
const
{
return
fProbLogDistrPrD
; }
125
double
GetProbLogDistr
()
const
{
return
fProbLogDistr
; }
126
127
// NOTE (JVY): There is also the Pt2Kind parameter but for now it's set to 0., so we'll leave it aside
128
129
// --> FIXME !!! --> void Get/SetBaryonMaxNumberOfCollisions( const double, const double ); // 1st is Plab, 2nd - D=2.
130
//
131
double
GetNuclearProjDestructP1
()
const
{
return
fNuclearProjDestructP1
; }
132
bool
IsNuclearProjDestructP1_NBRNDEP
()
const
{
return
fNuclearProjDestructP1_NBRNDEP
; }
133
double
GetNuclearTgtDestructP1
()
const
{
return
fNuclearTgtDestructP1
; }
134
bool
IsNuclearTgtDestructP1_ADEP
()
const
{
return
fNuclearTgtDestructP1_ADEP
; }
135
double
GetNuclearProjDestructP2
()
const
{
return
fNuclearProjDestructP2
; }
136
double
GetNuclearProjDestructP3
()
const
{
return
fNuclearProjDestructP3
; }
137
double
GetNuclearTgtDestructP2
()
const
{
return
fNuclearTgtDestructP2
; }
138
double
GetNuclearTgtDestructP3
()
const
{
return
fNuclearTgtDestructP3
; }
139
double
GetPt2NuclearDestructP1
()
const
{
return
fPt2NuclearDestructP1
; }
140
double
GetPt2NuclearDestructP2
()
const
{
return
fPt2NuclearDestructP2
; }
141
double
GetPt2NuclearDestructP3
()
const
{
return
fPt2NuclearDestructP3
; }
142
double
GetPt2NuclearDestructP4
()
const
{
return
fPt2NuclearDestructP4
; }
143
//
144
// separately for baryons, mesons, etc.
145
//
146
double
GetR2ofNuclearDestruct
()
const
{
return
fR2ofNuclearDestruct
; }
147
double
GetExciEnergyPerWoundedNucleon
()
const
{
return
fExciEnergyPerWoundedNucleon
; }
148
double
GetDofNuclearDestruct
()
const
{
return
fDofNuclearDestruct
; }
149
double
GetMaxPt2ofNuclearDestruct
()
const
{
return
fMaxPt2ofNuclearDestruct
; }
150
151
protected
:
152
153
// ctor
154
G4FTFParamCollection
();
155
156
// parameters of excitation
157
//
158
//
159
// these are for Inelastic interactions, i.e. Xinelastic=(Xtotal-Xelastix)>0.
160
// for elastic, all the A's & B's, Atop & Ymin are zeros
161
// general formula: Pp = A1*exp(B1*Y) + A2*exp(B2*Y) + A3
162
// but if Y<Ymin, then Pp=max(0.,Atop)
163
// for details, see also G4FTFParameters::GetProcProb( ProcN, y )
164
//
165
// Proc=0 --> Qexchg w/o excitation
166
double
fProc0A1
;
// D=13.71
167
double
fProc0B1
;
// D=1.75
168
double
fProc0A2
;
// D=-30.69 (or -214.5 as in Doc ?)
169
double
fProc0B2
;
// D=3. ( or 4. as in Doc ?)
170
double
fProc0A3
;
// D=0.
171
double
fProc0Atop
;
// D=1. ( or 0.5 as in Doc ?)
172
double
fProc0Ymin
;
// D=0.93 (or 1.1 as in Doc ?)
173
// Proc=1 --> Qexchg w/excitation
174
double
fProc1A1
;
// D=25.
175
double
fProc1B1
;
// D=1.
176
double
fProc1A2
;
// D=-50.34
177
double
fProc1B2
;
// D=1.5
178
double
fProc1A3
;
// D=0.
179
double
fProc1Atop
;
// D=0.
180
double
fProc1Ymin
;
// D=1.4
181
//
182
// NOTE: Proc #2 & 3 are projectile & target diffraction
183
// they have more complex definition of A1 & A2
184
// for *baryons* although they're just numbers for pions
185
// (example for baryons below)
186
// SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Projectile diffraction
187
// SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Target diffraction
188
//
189
// Also, for ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 )
190
// projectile and/or target diffraction (dissociation) may be switched ON/OFF
191
bool
fProjDiffDissociation
;
192
bool
fTgtDiffDissociation
;
193
// Proc=2 --> Projectile diffraction
194
double
fProc2A1
;
195
double
fProc2B1
;
196
double
fProc2A2
;
197
double
fProc2B2
;
198
double
fProc2A3
;
199
double
fProc2Atop
;
200
double
fProc2Ymin
;
201
// Proc=3 --> Target diffraction
202
double
fProc3A1
;
203
double
fProc3B1
;
204
double
fProc3A2
;
205
double
fProc3B2
;
206
double
fProc3A3
;
207
double
fProc3Atop
;
208
double
fProc3Ymin
;
209
// Proc=4 --> Qexchg w/additional multiplier in excitation
210
double
fProc4A1
;
// D=0.6 (or 1. as in Doc ?)
211
double
fProc4B1
;
// D=0.
212
double
fProc4A2
;
// D=-1.2 (or -2.01 as in Doc ?)
213
double
fProc4B2
;
// D=0.5
214
double
fProc4A3
;
// D=0.
215
double
fProc4Atop
;
// D=0.
216
double
fProc4Ymin
;
// D=1.4
217
//
218
// parameters of participating baryon excitation
219
// NOTE: baryon ot HADRON ???
220
// NOTE: this parameters (as C++ class data members) are used for all types of hadrons
221
// but the values for a specific group of particles can be are different from
222
// another group of particles
223
// the defaults listed under coments are for baryons,
224
// and they may be different or the same for other hadrons (e.g. mesons)
225
//
226
double
fDeltaProbAtQuarkExchange
;
// D=0.
227
double
fProbOfSameQuarkExchange
;
// D=0. if A<=26, otherwise D=1.
228
double
fProjMinDiffMass
;
// projectile, D=1.16GeV
229
double
fProjMinNonDiffMass
;
// projectile, D=1.16GeV
230
double
fTgtMinDiffMass
;
// target, D=1.16GeV
231
double
fTgtMinNonDiffMass
;
// target, D=1.16GeV
232
double
fAveragePt2
;
// D=0.3GeV**2 ( or 0.15 as in the Doc ???)
233
double
fProbLogDistrPrD
;
// D=0.55 (or 0.6 ??? or 0.3 ???)
234
double
fProbLogDistr
;
// D=0.55 (or 0.6 ??? or 0.3 ???)
235
236
// parameters of nuclear distruction
237
//
238
// NOTE (JVY): there're 3 cases here:
239
// * baryon projectile
240
// * anti-baryon projectile
241
// * meson projectile
242
//
243
// double fBaryonMaxNumberOfCollisions; // D=2.
244
// void SetBaryonProbOfInteraction( const double ); // ??? this is prob. of inelastic interaction
245
// that is set internally based on certain conditions...
246
// general (i.e. for used for baryons,anti-baryons, and mesons)
247
// NOTE: these parameters have stayed THE SAME for quite a while
248
double
fNuclearProjDestructP1
;
// D=0.00481 in 10.3.ref04 !!!
249
// BUT !!! In 10.3.ref04 as well as in 10.2-seriesit's multiplied of AbsProjectileBaryonNumber
250
// which somehow is 0 for the proton projectile (see in 10.3.ref04 around lines 130-140 In G4FTFParameters.cc).
251
// For the target destr. it's multipled by the number of target nucleons (12 for Carbon).
252
// In 10.3.p01 it's set to 1. FLAT OUT for both projectile & target, no multiplications, etc.
253
// Now, make default at 1.
254
bool
fNuclearProjDestructP1_NBRNDEP
;
255
double
fNuclearTgtDestructP1
;
// Make D=1. as in 10.3.p01
256
bool
fNuclearTgtDestructP1_ADEP
;
257
double
fNuclearProjDestructP2
;
// D=4.0
258
double
fNuclearProjDestructP3
;
// D=2.1
259
double
fNuclearTgtDestructP2
;
// D=4.0
260
double
fNuclearTgtDestructP3
;
// D=2.1
261
//
262
double
fPt2NuclearDestructP1
;
// D=0.035
263
double
fPt2NuclearDestructP2
;
// D=0.04
264
double
fPt2NuclearDestructP3
;
// D=4.0
265
double
fPt2NuclearDestructP4
;
// D=2.5
266
// baryons... well, in fact also mesons...
267
double
fR2ofNuclearDestruct
;
// D=1.5*fermi*fermi
268
double
fExciEnergyPerWoundedNucleon
;
// D=40MeV
269
double
fDofNuclearDestruct
;
// D=0.3
270
// NOTE: this parameter has changed from 1. to 9. between 10.2 and 10.4.ref04 !!!
271
// ... but that's for baryons !
272
// ... while for mesons it's 1GeV**2
273
double
fMaxPt2ofNuclearDestruct
;
// D=9GeV**2
274
275
private
:
276
277
void
Reset
();
278
};
279
280
281
class
G4FTFParamCollBaryonProj
:
public
G4FTFParamCollection
{
282
public
:
283
// ctor
284
G4FTFParamCollBaryonProj
();
285
};
286
287
class
G4FTFParamCollMesonProj
:
public
G4FTFParamCollection
{
288
289
public
:
290
291
// ctor
292
G4FTFParamCollMesonProj
();
293
294
};
295
296
class
G4FTFParamCollPionProj
:
public
G4FTFParamCollMesonProj
{
297
298
public
:
299
300
// ctor
301
G4FTFParamCollPionProj
();
302
303
};
304
305
class
G4FTFParameters
{
306
public
:
307
G4FTFParameters
();
308
~G4FTFParameters
();
309
310
void
InitForInteraction
(
const
G4ParticleDefinition
* ,
G4int
theA,
G4int
theZ,
G4double
s
);
311
312
// Set geometrical parameteres
313
void
SethNcmsEnergy
(
const
G4double
s );
314
void
SetTotalCrossSection
(
const
G4double
Xtotal );
315
void
SetElastisCrossSection
(
const
G4double
Xelastic );
316
void
SetInelasticCrossSection
(
const
G4double
Xinelastic );
317
void
SetProbabilityOfElasticScatt
(
const
G4double
Xtotal,
const
G4double
Xelastic );
318
void
SetProbabilityOfElasticScatt
(
const
G4double
aValue );
319
void
SetProbabilityOfAnnihilation
(
const
G4double
aValue );
320
void
SetRadiusOfHNinteractions2
(
const
G4double
Radius2 );
321
322
void
SetSlope
(
const
G4double
Slope );
323
void
SetGamma0
(
const
G4double
Gamma0 );
324
G4double
GammaElastic
(
const
G4double
impactsquare );
325
326
// Set parameters of elastic scattering
327
void
SetAvaragePt2ofElasticScattering
(
const
G4double
aPt2 );
328
329
// Set parameters of excitations
330
void
SetParams
(
const
G4int
ProcN,
331
const
G4double
A1,
const
G4double
B1,
const
G4double
A2,
const
G4double
B2,
332
const
G4double
A3,
const
G4double
Atop,
const
G4double
Ymin
);
333
334
void
SetDeltaProbAtQuarkExchange
(
const
G4double
aValue );
335
void
SetProbOfSameQuarkExchange
(
const
G4double
aValue );
336
337
void
SetProjMinDiffMass
(
const
G4double
aValue );
338
void
SetProjMinNonDiffMass
(
const
G4double
aValue );
339
//void SetProbabilityOfProjDiff( const G4double aValue );
340
void
SetProbLogDistrPrD
(
const
G4double
aValue );
341
342
void
SetTarMinDiffMass
(
const
G4double
aValue );
343
void
SetTarMinNonDiffMass
(
const
G4double
aValue );
344
//void SetProbabilityOfTarDiff( const G4double aValue );
345
346
void
SetAveragePt2
(
const
G4double
aValue );
347
void
SetProbLogDistr
(
const
G4double
aValue );
348
349
// Set parameters of a string kink
350
void
SetPt2Kink
(
const
G4double
aValue );
351
void
SetQuarkProbabilitiesAtGluonSplitUp
(
const
G4double
Puubar,
const
G4double
Pddbar,
352
const
G4double
Pssbar );
353
354
// Set parameters of nuclear destruction
355
void
SetMaxNumberOfCollisions
(
const
G4double
aValue,
const
G4double
bValue );
356
void
SetProbOfInteraction
(
const
G4double
aValue );
357
358
void
SetCofNuclearDestructionPr
(
const
G4double
aValue );
359
void
SetCofNuclearDestruction
(
const
G4double
aValue );
360
void
SetR2ofNuclearDestruction
(
const
G4double
aValue );
361
362
void
SetExcitationEnergyPerWoundedNucleon
(
const
G4double
aValue );
363
364
void
SetDofNuclearDestruction
(
const
G4double
aValue );
365
void
SetPt2ofNuclearDestruction
(
const
G4double
aValue );
366
void
SetMaxPt2ofNuclearDestruction
(
const
G4double
aValue );
367
368
// Get geometrical parameteres
369
G4double
GetTotalCrossSection
();
370
G4double
GetElasticCrossSection
();
371
G4double
GetInelasticCrossSection
();
372
373
G4double
GetProbabilityOfInteraction
(
const
G4double
impactsquare );
374
G4double
GetInelasticProbability
(
const
G4double
impactsquare );
375
G4double
GetProbabilityOfElasticScatt
();
376
G4double
GetSlope
();
377
G4double
GetProbabilityOfAnnihilation
();
378
379
// Get parameters of elastic scattering
380
G4double
GetAvaragePt2ofElasticScattering
();
381
382
// Get parameters of excitations
383
G4double
GetProcProb
(
const
G4int
ProcN,
const
G4double
y
);
384
385
G4double
GetDeltaProbAtQuarkExchange
();
386
G4double
GetProbOfSameQuarkExchange
();
387
388
G4double
GetProjMinDiffMass
();
389
G4double
GetProjMinNonDiffMass
();
390
G4double
GetProbLogDistrPrD
();
391
392
G4double
GetTarMinDiffMass
();
393
G4double
GetTarMinNonDiffMass
();
394
395
G4double
GetAveragePt2
();
396
G4double
GetProbLogDistr
();
397
398
// Get parameters of a string kink
399
G4double
GetPt2Kink
();
400
std::vector< G4double >
GetQuarkProbabilitiesAtGluonSplitUp
();
401
402
// Get parameters of nuclear destruction
403
G4double
GetMaxNumberOfCollisions
();
404
G4double
GetProbOfInteraction
();
405
406
G4double
GetCofNuclearDestructionPr
();
407
G4double
GetCofNuclearDestruction
();
408
G4double
GetR2ofNuclearDestruction
();
409
410
G4double
GetExcitationEnergyPerWoundedNucleon
();
411
412
G4double
GetDofNuclearDestruction
();
413
G4double
GetPt2ofNuclearDestruction
();
414
G4double
GetMaxPt2ofNuclearDestruction
();
415
416
// JVY, July 31, 2017: Is there any reason for NOT making
417
// all the members data private ???
418
//
419
// private:
420
421
// Initial energy of hN interactions
422
G4double
FTFhNcmsEnergy
;
// Initial hN CMS energy
423
424
// Geometrical parameteres
425
G4double
FTFXtotal
;
// Total X in mb
426
G4double
FTFXelastic
;
// Elastic X in mb
427
G4double
FTFXinelastic
;
// Inelastic X in mb
428
G4double
FTFXannihilation
;
// Annihilation X in mb
429
G4double
ProbabilityOfAnnihilation
;
// Xannih/Xinelast
430
G4double
ProbabilityOfElasticScatt
;
// Xel/Xtot
431
G4double
RadiusOfHNinteractions2
;
// Xtot/pi, in fm^2
432
G4double
FTFSlope
;
// in fm^-1
433
G4double
AvaragePt2ofElasticScattering
;
// in MeV^2
434
G4double
FTFGamma0
;
435
436
// Parameters of excitations
437
G4double
ProcParams
[5][7];
438
439
G4double
DeltaProbAtQuarkExchange
;
440
G4double
ProbOfSameQuarkExchange
;
441
442
G4double
ProjMinDiffMass
;
443
G4double
ProjMinNonDiffMass
;
444
G4double
ProbLogDistrPrD
;
445
G4double
TarMinDiffMass
;
446
G4double
TarMinNonDiffMass
;
447
448
G4double
AveragePt2
;
449
G4double
ProbLogDistr
;
450
451
// Parameters of kink
452
G4double
Pt2kink
;
453
std::vector< G4double >
QuarkProbabilitiesAtGluonSplitUp
;
454
455
// Parameters of nuclear destruction
456
G4double
MaxNumberOfCollisions
;
457
G4double
ProbOfInelInteraction
;
458
459
G4double
CofNuclearDestructionPr
;
// Cnd of nuclear destruction of projectile nucleus
460
G4double
CofNuclearDestruction
;
// Cnd of nuclear destruction
461
G4double
R2ofNuclearDestruction
;
// R2nd
462
463
G4double
ExcitationEnergyPerWoundedNucleon
;
464
465
G4double
DofNuclearDestruction
;
// Dispersion for momentum sampling
466
G4double
Pt2ofNuclearDestruction
;
// Pt2
467
G4double
MaxPt2ofNuclearDestruction
;
// Max Pt2
468
469
private
:
470
G4LundStringFragmentation
*
StringMass
;
471
G4double
GetMinMass
(
const
G4ParticleDefinition
* aParticle );
472
473
void
Reset
();
474
475
// JVY, July 31, 2017: encapsulates (current set of) parameters for the baryon projectile
476
//
477
G4FTFParamCollBaryonProj
fParCollBaryonProj
;
478
479
// JVY, Feb 14, 2019: encapsulates (current set of) parameters for meson/pion (+/-/0) projectile
480
G4FTFParamCollMesonProj
fParCollMesonProj
;
481
G4FTFParamCollPionProj
fParCollPionProj
;
482
483
// Glauber-Gribov hN x-section
484
G4VComponentCrossSection
*
csGGinstance
;
485
};
486
487
488
inline
G4double
G4FTFParameters::GammaElastic
(
const
G4double
impactsquare ) {
489
return
(
FTFGamma0
*
G4Exp
( -
FTFSlope
* impactsquare ) );
490
}
491
492
inline
void
G4FTFParameters::SethNcmsEnergy
(
const
G4double
S
) {
493
FTFhNcmsEnergy
=
S
;
494
}
495
496
// Set geometrical parameteres
497
498
inline
void
G4FTFParameters::SetTotalCrossSection
(
const
G4double
Xtotal ) {
499
FTFXtotal
= Xtotal;
500
}
501
502
inline
void
G4FTFParameters::SetElastisCrossSection
(
const
G4double
Xelastic ) {
503
FTFXelastic
= Xelastic;
504
}
505
506
inline
void
G4FTFParameters::SetInelasticCrossSection
(
const
G4double
Xinelastic ) {
507
FTFXinelastic
= Xinelastic;
508
}
509
510
inline
void
G4FTFParameters::SetProbabilityOfElasticScatt
(
const
G4double
Xtotal,
511
const
G4double
Xelastic ) {
512
if
( Xtotal == 0.0 ) {
513
ProbabilityOfElasticScatt
= 0.0;
514
}
else
{
515
ProbabilityOfElasticScatt
= Xelastic / Xtotal;
516
}
517
}
518
519
inline
void
G4FTFParameters::SetProbabilityOfElasticScatt
(
const
G4double
aValue ) {
520
ProbabilityOfElasticScatt
= aValue;
521
}
522
523
inline
void
G4FTFParameters::SetProbabilityOfAnnihilation
(
const
G4double
aValue ) {
524
ProbabilityOfAnnihilation
= aValue;
525
}
526
527
inline
void
G4FTFParameters::SetRadiusOfHNinteractions2
(
const
G4double
Radius2 ) {
528
RadiusOfHNinteractions2
= Radius2;
529
}
530
531
inline
void
G4FTFParameters::SetSlope
(
const
G4double
Slope ) {
532
FTFSlope
= 12.84 / Slope;
// Slope is in GeV^-2, FTFSlope in fm^-2
533
}
534
535
inline
void
G4FTFParameters::SetGamma0
(
const
G4double
Gamma0 ) {
536
FTFGamma0
= Gamma0;
537
}
538
539
// Set parameters of elastic scattering
540
inline
void
G4FTFParameters::SetAvaragePt2ofElasticScattering
(
const
G4double
aPt2 ) {
541
AvaragePt2ofElasticScattering
= aPt2;
542
}
543
544
// Set parameters of excitations
545
546
inline
void
G4FTFParameters::SetParams
(
const
G4int
ProcN,
547
const
G4double
A1,
const
G4double
B1,
const
G4double
A2,
548
const
G4double
B2,
const
G4double
A3,
const
G4double
Atop,
549
const
G4double
Ymin
) {
550
ProcParams
[ProcN][0] = A1;
ProcParams
[ProcN][1] = B1;
551
ProcParams
[ProcN][2] = A2;
ProcParams
[ProcN][3] = B2;
552
ProcParams
[ProcN][4] = A3;
553
ProcParams
[ProcN][5] = Atop;
ProcParams
[ProcN][6] =
Ymin
;
554
}
555
556
inline
void
G4FTFParameters::SetDeltaProbAtQuarkExchange
(
const
G4double
aValue ) {
557
DeltaProbAtQuarkExchange
= aValue;
558
}
559
560
inline
void
G4FTFParameters::SetProbOfSameQuarkExchange
(
const
G4double
aValue ) {
561
ProbOfSameQuarkExchange
= aValue;
562
}
563
564
inline
void
G4FTFParameters::SetProjMinDiffMass
(
const
G4double
aValue ) {
565
ProjMinDiffMass
= aValue*
CLHEP::GeV
;
566
}
567
568
inline
void
G4FTFParameters::SetProjMinNonDiffMass
(
const
G4double
aValue ) {
569
ProjMinNonDiffMass
= aValue*
CLHEP::GeV
;
570
}
571
572
inline
void
G4FTFParameters::SetTarMinDiffMass
(
const
G4double
aValue ) {
573
TarMinDiffMass
= aValue*
CLHEP::GeV
;
574
}
575
576
inline
void
G4FTFParameters::SetTarMinNonDiffMass
(
const
G4double
aValue ) {
577
TarMinNonDiffMass
= aValue*
CLHEP::GeV
;
578
}
579
580
inline
void
G4FTFParameters::SetAveragePt2
(
const
G4double
aValue ) {
581
AveragePt2
= aValue*
CLHEP::GeV
*
CLHEP::GeV
;
582
}
583
584
inline
void
G4FTFParameters::SetProbLogDistrPrD
(
const
G4double
aValue ) {
585
ProbLogDistrPrD
= aValue;
586
}
587
588
inline
void
G4FTFParameters::SetProbLogDistr
(
const
G4double
aValue ) {
589
ProbLogDistr
= aValue;
590
}
591
592
// Set parameters of a string kink
593
594
inline
void
G4FTFParameters::SetPt2Kink
(
const
G4double
aValue ) {
595
Pt2kink
= aValue;
596
}
597
598
inline
void
G4FTFParameters::SetQuarkProbabilitiesAtGluonSplitUp
(
const
G4double
Puubar,
599
const
G4double
Pddbar,
600
const
G4double
Pssbar ) {
601
QuarkProbabilitiesAtGluonSplitUp
.push_back( Puubar );
602
QuarkProbabilitiesAtGluonSplitUp
.push_back( Puubar + Pddbar );
603
QuarkProbabilitiesAtGluonSplitUp
.push_back( Puubar + Pddbar + Pssbar );
604
}
605
606
// Set parameters of nuclear destruction
607
inline
void
G4FTFParameters::SetMaxNumberOfCollisions
(
const
G4double
Plab,
608
const
G4double
Pbound ) {
609
if
( Plab > Pbound ) {
610
MaxNumberOfCollisions
= Plab/Pbound;
611
SetProbOfInteraction
( -1.0 );
612
}
else
{
613
//MaxNumberOfCollisions = -1.0;
614
//SetProbOfInteraction( G4Exp( 0.25*(Plab-Pbound) ) );
615
MaxNumberOfCollisions
= 1;
616
SetProbOfInteraction
( -1.0 );
617
}
618
}
619
620
inline
void
G4FTFParameters::SetProbOfInteraction
(
const
G4double
aValue ) {
621
ProbOfInelInteraction
= aValue;
622
}
623
624
inline
void
G4FTFParameters::SetCofNuclearDestructionPr
(
const
G4double
aValue ) {
625
CofNuclearDestructionPr
= aValue;
626
}
627
628
inline
void
G4FTFParameters::SetCofNuclearDestruction
(
const
G4double
aValue ) {
629
CofNuclearDestruction
= aValue;
630
}
631
632
inline
void
G4FTFParameters::SetR2ofNuclearDestruction
(
const
G4double
aValue ) {
633
R2ofNuclearDestruction
= aValue;
634
}
635
636
inline
void
G4FTFParameters::SetExcitationEnergyPerWoundedNucleon
(
const
G4double
aValue ) {
637
ExcitationEnergyPerWoundedNucleon
= aValue;
638
}
639
640
inline
void
G4FTFParameters::SetDofNuclearDestruction
(
const
G4double
aValue ) {
641
DofNuclearDestruction
= aValue;
642
}
643
644
inline
void
G4FTFParameters::SetPt2ofNuclearDestruction
(
const
G4double
aValue ) {
645
Pt2ofNuclearDestruction
= aValue;
646
}
647
648
inline
void
G4FTFParameters::SetMaxPt2ofNuclearDestruction
(
const
G4double
aValue ) {
649
MaxPt2ofNuclearDestruction
= aValue;
650
}
651
652
// Get geometrical parameteres
653
inline
G4double
G4FTFParameters::GetTotalCrossSection
() {
654
return
FTFXtotal
;
655
}
656
657
inline
G4double
G4FTFParameters::GetElasticCrossSection
() {
658
return
FTFXelastic
;
659
}
660
661
inline
G4double
G4FTFParameters::GetInelasticCrossSection
() {
662
return
FTFXinelastic
;
663
}
664
665
inline
G4double
G4FTFParameters::GetSlope
() {
666
return
FTFSlope
;
667
}
668
669
inline
G4double
G4FTFParameters::GetProbabilityOfInteraction
(
const
G4double
impactsquare ) {
670
if
(
RadiusOfHNinteractions2
> impactsquare ) {
671
return
1.0;
672
}
else
{
673
return
0.0;
674
}
675
}
676
677
inline
G4double
G4FTFParameters::GetProbabilityOfElasticScatt
() {
678
return
ProbabilityOfElasticScatt
;
679
}
680
681
inline
G4double
G4FTFParameters::GetInelasticProbability
(
const
G4double
impactsquare ) {
682
G4double
Gamma =
GammaElastic
( impactsquare );
683
return
2*Gamma - Gamma*Gamma;
684
}
685
686
inline
G4double
G4FTFParameters::GetProbabilityOfAnnihilation
() {
687
return
ProbabilityOfAnnihilation
;
688
}
689
690
// Get parameters of elastic scattering
691
inline
G4double
G4FTFParameters::GetAvaragePt2ofElasticScattering
() {
692
return
AvaragePt2ofElasticScattering
;
693
}
694
695
// Get parameters of excitations
696
697
inline
G4double
G4FTFParameters::GetDeltaProbAtQuarkExchange
() {
698
return
DeltaProbAtQuarkExchange
;
699
}
700
701
inline
G4double
G4FTFParameters::GetProbOfSameQuarkExchange
() {
702
return
ProbOfSameQuarkExchange
;
703
}
704
705
inline
G4double
G4FTFParameters::GetProjMinDiffMass
() {
706
return
ProjMinDiffMass
;
707
}
708
709
inline
G4double
G4FTFParameters::GetProjMinNonDiffMass
() {
710
return
ProjMinNonDiffMass
;
711
}
712
713
inline
G4double
G4FTFParameters::GetTarMinDiffMass
() {
714
return
TarMinDiffMass
;
715
}
716
717
inline
G4double
G4FTFParameters::GetTarMinNonDiffMass
() {
718
return
TarMinNonDiffMass
;
719
}
720
721
inline
G4double
G4FTFParameters::GetAveragePt2
() {
722
return
AveragePt2
;
723
}
724
725
inline
G4double
G4FTFParameters::GetProbLogDistrPrD
() {
726
return
ProbLogDistrPrD
;
727
}
728
729
inline
G4double
G4FTFParameters::GetProbLogDistr
() {
730
return
ProbLogDistr
;
731
}
732
733
// Get parameters of a string kink
734
735
inline
G4double
G4FTFParameters::GetPt2Kink
() {
736
return
Pt2kink
;
737
}
738
739
inline
std::vector< G4double >
G4FTFParameters::GetQuarkProbabilitiesAtGluonSplitUp
() {
740
return
QuarkProbabilitiesAtGluonSplitUp
;
741
}
742
743
// Get parameters of nuclear destruction
744
745
inline
G4double
G4FTFParameters::GetMaxNumberOfCollisions
() {
746
return
MaxNumberOfCollisions
;
747
}
748
749
inline
G4double
G4FTFParameters::GetProbOfInteraction
() {
750
return
ProbOfInelInteraction
;
751
}
752
753
inline
G4double
G4FTFParameters::GetCofNuclearDestructionPr
() {
754
return
CofNuclearDestructionPr
;
755
}
756
757
inline
G4double
G4FTFParameters::GetCofNuclearDestruction
() {
758
return
CofNuclearDestruction
;
759
}
760
761
inline
G4double
G4FTFParameters::GetR2ofNuclearDestruction
() {
762
return
R2ofNuclearDestruction
;
763
}
764
765
inline
G4double
G4FTFParameters::GetExcitationEnergyPerWoundedNucleon
() {
766
return
ExcitationEnergyPerWoundedNucleon
;
767
}
768
769
inline
G4double
G4FTFParameters::GetDofNuclearDestruction
() {
770
return
DofNuclearDestruction
;
771
}
772
773
inline
G4double
G4FTFParameters::GetPt2ofNuclearDestruction
() {
774
return
Pt2ofNuclearDestruction
;
775
}
776
777
inline
G4double
G4FTFParameters::GetMaxPt2ofNuclearDestruction
() {
778
return
MaxPt2ofNuclearDestruction
;
779
}
780
781
#endif
782
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
parton_string
diffraction
include
G4FTFParameters.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:49
using
1.8.2 with
ECCE GitHub integration