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
parton_string
diffraction
include
G4FTFParameters.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
//
27
// $Id$
28
// GEANT4 tag $Name: $
29
//
30
#ifndef G4FTFParameters_h
31
#define G4FTFParameters_h 1
32
33
#include <
CLHEP/Units/SystemOfUnits.h
>
34
35
#include "
G4Proton.hh
"
36
#include "
G4Neutron.hh
"
37
#include "
G4ChipsComponentXS.hh
"
38
39
class
G4FTFParameters
40
{
41
42
public
:
43
G4FTFParameters
(
const
G4ParticleDefinition
* ,
G4int
theA,
44
G4int
theZ,
45
G4double
s
);
46
// G4FTFParameters(const G4ParticleDefinition * , G4double theA,
47
// G4double theZ,
48
// G4double s);
49
50
~G4FTFParameters
();
51
52
// --------- Set geometrical parameteres -----------------------------
53
void
SethNcmsEnergy
(
const
G4double
s);
54
void
SetTotalCrossSection
(
const
G4double
Xtotal);
55
void
SetElastisCrossSection
(
const
G4double
Xelastic);
56
void
SetInelasticCrossSection
(
const
G4double
Xinelastic);
57
void
SetProbabilityOfElasticScatt
(
const
G4double
Xtotal,
const
G4double
Xelastic);
58
void
SetProbabilityOfElasticScatt
(
const
G4double
aValue);
59
void
SetProbabilityOfAnnihilation
(
const
G4double
aValue);
// Uzhi 18.11.10
60
61
void
SetRadiusOfHNinteractions2
(
const
G4double
Radius2);
62
void
SetSlope
(
const
G4double
Slope);
63
void
SetGamma0
(
const
G4double
Gamma0);
64
65
G4double
GammaElastic
(
const
G4double
impactsquare)
66
{
return
(
FTFGamma0
* std::exp(-
FTFSlope
* impactsquare));};
67
68
// --------- Set parameters of elastic scattering --------------------
69
void
SetAvaragePt2ofElasticScattering
(
const
G4double
aPt2);
70
71
// --------- Set parameters of excitations ---------------------------
72
void
SetMagQuarkExchange
(
const
G4double
aValue);
73
void
SetSlopeQuarkExchange
(
const
G4double
aValue);
74
void
SetDeltaProbAtQuarkExchange
(
const
G4double
aValue);
75
void
SetProbOfSameQuarkExchange
(
const
G4double
aValue);
76
77
void
SetProjMinDiffMass
(
const
G4double
aValue);
78
void
SetProjMinNonDiffMass
(
const
G4double
aValue);
79
void
SetProbabilityOfProjDiff
(
const
G4double
aValue);
80
81
void
SetTarMinDiffMass
(
const
G4double
aValue);
82
void
SetTarMinNonDiffMass
(
const
G4double
aValue);
83
void
SetProbabilityOfTarDiff
(
const
G4double
aValue);
84
85
void
SetAveragePt2
(
const
G4double
aValue);
86
void
SetProbLogDistr
(
const
G4double
aValue);
87
88
// --------- Set parameters of a string kink --------------------------------
89
void
SetPt2Kink
(
const
G4double
aValue);
90
void
SetQuarkProbabilitiesAtGluonSplitUp
(
const
G4double
Puubar,
91
const
G4double
Pddbar,
92
const
G4double
Pssbar );
93
94
// --------- Set parameters of nuclear destruction--------------------
95
void
SetMaxNumberOfCollisions
(
const
G4double
aValue,
const
G4double
bValue);
96
void
SetProbOfInteraction
(
const
G4double
aValue);
97
98
void
SetCofNuclearDestruction
(
const
G4double
aValue);
99
void
SetR2ofNuclearDestruction
(
const
G4double
aValue);
100
101
void
SetExcitationEnergyPerWoundedNucleon
(
const
G4double
aValue);
102
103
void
SetDofNuclearDestruction
(
const
G4double
aValue);
104
void
SetPt2ofNuclearDestruction
(
const
G4double
aValue);
105
void
SetMaxPt2ofNuclearDestruction
(
const
G4double
aValue);
106
107
//--------------------------------------------------------------------
108
// --------- Get geometrical parameteres -----------------------------
109
G4double
GetTotalCrossSection
();
110
G4double
GetElasticCrossSection
();
111
G4double
GetInelasticCrossSection
();
112
113
G4double
GetProbabilityOfInteraction
(
const
G4double
impactsquare);
114
G4double
GetInelasticProbability
(
const
G4double
impactsquare);
115
G4double
GetProbabilityOfElasticScatt
();
116
G4double
GetSlope
();
117
G4double
GetProbabilityOfAnnihilation
();
// Uzhi 18.11.10
118
119
// --------- Get parameters of elastic scattering --------------------
120
G4double
GetAvaragePt2ofElasticScattering
();
121
122
// --------- Get parameters of excitations ---------------------------
123
G4double
GetMagQuarkExchange
();
124
G4double
GetSlopeQuarkExchange
();
125
G4double
GetDeltaProbAtQuarkExchange
();
126
G4double
GetProbOfSameQuarkExchange
();
127
128
G4double
GetProjMinDiffMass
();
129
G4double
GetProjMinNonDiffMass
();
130
G4double
GetProbabilityOfProjDiff
();
131
132
G4double
GetTarMinDiffMass
();
133
G4double
GetTarMinNonDiffMass
();
134
G4double
GetProbabilityOfTarDiff
();
135
136
G4double
GetAveragePt2
();
137
G4double
GetProbLogDistr
();
138
139
// --------- Get parameters of a string kink --------------------------------
140
G4double
GetPt2Kink
();
141
std::vector<G4double>
GetQuarkProbabilitiesAtGluonSplitUp
();
142
143
// --------- Get parameters of nuclear destruction---------------------
144
G4double
GetMaxNumberOfCollisions
();
145
G4double
GetProbOfInteraction
();
146
147
G4double
GetCofNuclearDestruction
();
148
G4double
GetR2ofNuclearDestruction
();
149
150
G4double
GetExcitationEnergyPerWoundedNucleon
();
151
152
G4double
GetDofNuclearDestruction
();
153
G4double
GetPt2ofNuclearDestruction
();
154
G4double
GetMaxPt2ofNuclearDestruction
();
155
156
// private:
157
158
G4FTFParameters
();
159
160
// ------------ Initial energy of hN interactions --------------------
161
G4double
FTFhNcmsEnergy
;
// Initial hN CMS energy
162
163
// ------------ hN cross section manager -----------------------------
164
G4ChipsComponentXS
*
FTFxsManager
;
165
// ------------ Geometrical parameteres ------------------------------
166
G4double
FTFXtotal
;
// Total X in mb
167
G4double
FTFXelastic
;
// Elastic X in mb
168
G4double
FTFXinelastic
;
// Inelastic X in mb
169
G4double
FTFXannihilation
;
// Annihilation X in mb // Uzhi 18.11.10
170
G4double
ProbabilityOfAnnihilation
;
// Xannih/Xinelast // Uzhi 18.11.10
171
G4double
ProbabilityOfElasticScatt
;
// Xel/Xtot
172
G4double
RadiusOfHNinteractions2
;
// Xtot/pi, in fn^2
173
G4double
FTFSlope
;
// in fm^-1
174
G4double
AvaragePt2ofElasticScattering
;
// in MeV^2
175
G4double
FTFGamma0
;
176
177
// --------- Parameters of excitations -------------------------------
178
G4double
MagQuarkExchange
;
179
G4double
SlopeQuarkExchange
;
180
G4double
DeltaProbAtQuarkExchange
;
181
G4double
ProbOfSameQuarkExchange
;
182
183
G4double
ProjMinDiffMass
;
184
G4double
ProjMinNonDiffMass
;
185
G4double
ProbabilityOfProjDiff
;
186
187
G4double
TarMinDiffMass
;
188
G4double
TarMinNonDiffMass
;
189
G4double
ProbabilityOfTarDiff
;
190
191
G4double
AveragePt2
;
192
G4double
ProbLogDistr
;
193
194
// ---------- Parameters of kink -------------------------------------
195
G4double
Pt2kink
;
196
std::vector<G4double>
QuarkProbabilitiesAtGluonSplitUp
;
197
198
// --------- Parameters of nuclear destruction------------------------
199
G4double
MaxNumberOfCollisions
;
200
G4double
ProbOfInelInteraction
;
201
202
G4double
CofNuclearDestruction
;
// Cnd of nuclear destruction
203
G4double
R2ofNuclearDestruction
;
// R2nd
204
205
G4double
ExcitationEnergyPerWoundedNucleon
;
206
207
G4double
DofNuclearDestruction
;
// D for momentum sampling
208
G4double
Pt2ofNuclearDestruction
;
// Pt2
209
G4double
MaxPt2ofNuclearDestruction
;
// Max Pt2
210
211
};
212
213
// --------------------------------------------------------------------
214
inline
void
G4FTFParameters::SethNcmsEnergy
(
const
G4double
S)
215
{
FTFhNcmsEnergy
= S;}
216
217
// --------- Set geometrical parameteres ------------------------------
218
inline
void
G4FTFParameters::SetTotalCrossSection
(
const
G4double
Xtotal)
219
{
FTFXtotal
= Xtotal;}
220
221
inline
void
G4FTFParameters::SetElastisCrossSection
(
const
G4double
Xelastic)
222
{
FTFXelastic
= Xelastic;}
223
224
inline
void
G4FTFParameters::SetInelasticCrossSection
(
const
G4double
Xinelastic)
225
{
FTFXinelastic
= Xinelastic;}
226
227
inline
void
G4FTFParameters::SetProbabilityOfElasticScatt
(
const
G4double
Xtotal,
228
const
G4double
Xelastic)
229
{
230
if
(Xtotal==0.) {
ProbabilityOfElasticScatt
= 0.;}
231
else
{
ProbabilityOfElasticScatt
= Xelastic/Xtotal;};
232
}
233
234
inline
void
G4FTFParameters::SetProbabilityOfElasticScatt
(
const
G4double
aValue)
235
{
ProbabilityOfElasticScatt
= aValue;}
236
237
inline
void
G4FTFParameters::SetProbabilityOfAnnihilation
(
const
G4double
aValue)
238
{
ProbabilityOfAnnihilation
= aValue;}
// Uzhi 18.11.10
239
240
inline
void
G4FTFParameters::SetRadiusOfHNinteractions2
(
const
G4double
Radius2)
241
{
RadiusOfHNinteractions2
= Radius2;}
242
243
inline
void
G4FTFParameters::SetSlope
(
const
G4double
Slope)
244
{
FTFSlope
= 12.84/Slope;}
// Slope is in GeV^-2, FTFSlope in fm^-2
245
246
inline
void
G4FTFParameters::SetGamma0
(
const
G4double
Gamma0)
247
{
FTFGamma0
= Gamma0;}
248
249
// --------- Set parameters of elastic scattering ---------------------
250
inline
void
G4FTFParameters::SetAvaragePt2ofElasticScattering
(
const
G4double
aPt2)
251
{
252
AvaragePt2ofElasticScattering
= aPt2;}
253
254
// --------- Set parameters of excitations ----------------------------
255
inline
void
G4FTFParameters::SetMagQuarkExchange
(
const
G4double
aValue)
256
{
MagQuarkExchange
= aValue;}
257
inline
void
G4FTFParameters::SetSlopeQuarkExchange
(
const
G4double
aValue)
258
{
SlopeQuarkExchange
= aValue;}
259
inline
void
G4FTFParameters::SetDeltaProbAtQuarkExchange
(
const
G4double
aValue)
260
{
DeltaProbAtQuarkExchange
= aValue;}
261
inline
void
G4FTFParameters::SetProbOfSameQuarkExchange
(
const
G4double
aValue)
262
{
ProbOfSameQuarkExchange
= aValue;}
263
264
inline
void
G4FTFParameters::SetProjMinDiffMass
(
const
G4double
aValue)
265
{
ProjMinDiffMass
= aValue*CLHEP::GeV;}
266
inline
void
G4FTFParameters::SetProjMinNonDiffMass
(
const
G4double
aValue)
267
{
ProjMinNonDiffMass
= aValue*CLHEP::GeV;}
268
inline
void
G4FTFParameters::SetProbabilityOfProjDiff
(
const
G4double
aValue)
269
{
ProbabilityOfProjDiff
= aValue;}
270
271
inline
void
G4FTFParameters::SetTarMinDiffMass
(
const
G4double
aValue)
272
{
TarMinDiffMass
= aValue*CLHEP::GeV;}
273
inline
void
G4FTFParameters::SetTarMinNonDiffMass
(
const
G4double
aValue)
274
{
TarMinNonDiffMass
= aValue*CLHEP::GeV;}
275
inline
void
G4FTFParameters::SetProbabilityOfTarDiff
(
const
G4double
aValue)
276
{
ProbabilityOfTarDiff
= aValue;}
277
278
inline
void
G4FTFParameters::SetAveragePt2
(
const
G4double
aValue)
279
{
AveragePt2
= aValue*CLHEP::GeV*CLHEP::GeV;}
280
281
inline
void
G4FTFParameters::SetProbLogDistr
(
const
G4double
aValue)
282
{
ProbLogDistr
= aValue;}
283
284
// --------- Set parameters of a string kink --------------------------------
285
inline
void
G4FTFParameters::SetPt2Kink
(
const
G4double
aValue)
286
{
Pt2kink
= aValue;}
287
288
inline
void
G4FTFParameters::SetQuarkProbabilitiesAtGluonSplitUp
(
289
const
G4double
Puubar,
290
const
G4double
Pddbar,
291
const
G4double
Pssbar )
292
{
293
QuarkProbabilitiesAtGluonSplitUp
.push_back(Puubar);
294
QuarkProbabilitiesAtGluonSplitUp
.push_back(Puubar+Pddbar);
295
QuarkProbabilitiesAtGluonSplitUp
.push_back(Puubar+Pddbar+Pssbar);
296
}
297
298
// --------- Set parameters of nuclear destruction--------------------
299
inline
void
G4FTFParameters::SetMaxNumberOfCollisions
(
const
G4double
Plab,
300
const
G4double
Pbound)
301
{
302
if
(Plab > Pbound)
303
{
304
MaxNumberOfCollisions
= Plab/Pbound;
305
SetProbOfInteraction
(-1.);
306
}
else
307
{
308
// MaxNumberOfCollisions = -1.;
309
// SetProbOfInteraction(std::exp(0.25*(Plab-Pbound)));
310
MaxNumberOfCollisions
= 1;
311
SetProbOfInteraction
(-1.);
312
}
313
}
314
inline
void
G4FTFParameters::SetProbOfInteraction
(
const
G4double
aValue)
315
{
ProbOfInelInteraction
= aValue;}
316
317
inline
void
G4FTFParameters::SetCofNuclearDestruction
(
const
G4double
aValue)
318
{
CofNuclearDestruction
= aValue;}
319
inline
void
G4FTFParameters::SetR2ofNuclearDestruction
(
const
G4double
aValue)
320
{
R2ofNuclearDestruction
= aValue;}
321
322
inline
void
G4FTFParameters::SetExcitationEnergyPerWoundedNucleon
(
const
G4double
aValue)
323
{
ExcitationEnergyPerWoundedNucleon
= aValue;}
324
325
inline
void
G4FTFParameters::SetDofNuclearDestruction
(
const
G4double
aValue)
326
{
DofNuclearDestruction
= aValue;}
327
inline
void
G4FTFParameters::SetPt2ofNuclearDestruction
(
const
G4double
aValue)
328
{
Pt2ofNuclearDestruction
=aValue;}
329
inline
void
G4FTFParameters::SetMaxPt2ofNuclearDestruction
(
const
G4double
aValue)
330
{
MaxPt2ofNuclearDestruction
= aValue;}
331
332
// --------- Get geometrical parameteres ------------------------------
333
inline
G4double
G4FTFParameters::GetTotalCrossSection
() {
return
FTFXtotal
;}
334
inline
G4double
G4FTFParameters::GetElasticCrossSection
() {
return
FTFXelastic
;}
335
inline
G4double
G4FTFParameters::GetInelasticCrossSection
() {
return
FTFXinelastic
;}
336
337
inline
G4double
G4FTFParameters::GetSlope
() {
return
FTFSlope
;}
338
339
inline
G4double
G4FTFParameters::GetProbabilityOfInteraction
(
const
G4double
impactsquare)
340
{
341
if
(
RadiusOfHNinteractions2
> impactsquare) {
return
1.;}
342
else
{
return
0.;}
343
}
344
345
inline
G4double
G4FTFParameters::GetProbabilityOfElasticScatt
()
346
{
return
ProbabilityOfElasticScatt
;}
347
348
inline
G4double
G4FTFParameters::GetInelasticProbability
(
const
G4double
impactsquare)
349
{
350
G4double
Gamma =
GammaElastic
(impactsquare);
351
return
2 * Gamma - Gamma *Gamma;
352
}
353
354
inline
G4double
G4FTFParameters::GetProbabilityOfAnnihilation
()
355
{
return
ProbabilityOfAnnihilation
;}
356
// Uzhi 18.11.10
357
358
// --------- Get parameters of elastic scattering ---------------------
359
inline
G4double
G4FTFParameters::GetAvaragePt2ofElasticScattering
()
360
{
return
AvaragePt2ofElasticScattering
;}
361
362
// --------- Get parameters of excitations ---------------------------
363
inline
G4double
G4FTFParameters::GetMagQuarkExchange
() {
return
MagQuarkExchange
;}
364
inline
G4double
G4FTFParameters::GetSlopeQuarkExchange
() {
return
SlopeQuarkExchange
;}
365
inline
G4double
G4FTFParameters::GetDeltaProbAtQuarkExchange
(){
return
366
DeltaProbAtQuarkExchange
;}
367
inline
G4double
G4FTFParameters::GetProbOfSameQuarkExchange
(){
return
ProbOfSameQuarkExchange
;}
368
369
inline
G4double
G4FTFParameters::GetProjMinDiffMass
() {
return
ProjMinDiffMass
;}
370
inline
G4double
G4FTFParameters::GetProjMinNonDiffMass
() {
return
ProjMinNonDiffMass
;}
371
inline
G4double
G4FTFParameters::GetProbabilityOfProjDiff
() {
return
ProbabilityOfProjDiff
;}
372
373
inline
G4double
G4FTFParameters::GetTarMinDiffMass
() {
return
TarMinDiffMass
;}
374
inline
G4double
G4FTFParameters::GetTarMinNonDiffMass
() {
return
TarMinNonDiffMass
;}
375
inline
G4double
G4FTFParameters::GetProbabilityOfTarDiff
() {
return
ProbabilityOfTarDiff
;}
376
377
inline
G4double
G4FTFParameters::GetAveragePt2
() {
return
AveragePt2
;}
378
inline
G4double
G4FTFParameters::GetProbLogDistr
() {
return
ProbLogDistr
;}
379
380
// --------- Get parameters of a string kink --------------------------
381
inline
G4double
G4FTFParameters::GetPt2Kink
() {
return
Pt2kink
;}
382
inline
std::vector<G4double>
383
G4FTFParameters::GetQuarkProbabilitiesAtGluonSplitUp
()
384
{
return
QuarkProbabilitiesAtGluonSplitUp
;}
385
386
// --------- Get parameters of nuclear destruction---------------------
387
inline
G4double
G4FTFParameters::GetMaxNumberOfCollisions
(){
return
MaxNumberOfCollisions
;}
388
inline
G4double
G4FTFParameters::GetProbOfInteraction
() {
return
ProbOfInelInteraction
;}
389
390
inline
G4double
G4FTFParameters::GetCofNuclearDestruction
(){
return
CofNuclearDestruction
;}
391
inline
G4double
G4FTFParameters::GetR2ofNuclearDestruction
(){
return
R2ofNuclearDestruction
;}
392
393
inline
G4double
G4FTFParameters::GetExcitationEnergyPerWoundedNucleon
()
394
{
return
ExcitationEnergyPerWoundedNucleon
;}
395
396
397
inline
G4double
G4FTFParameters::GetDofNuclearDestruction
()
398
{
return
DofNuclearDestruction
;}
399
inline
G4double
G4FTFParameters::GetPt2ofNuclearDestruction
(){
return
Pt2ofNuclearDestruction
;}
400
inline
G4double
G4FTFParameters::GetMaxPt2ofNuclearDestruction
()
401
{
return
MaxPt2ofNuclearDestruction
;}
402
#endif
Generated on Sat May 25 2013 14:34:05 for Geant4 by
1.8.4