Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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
34
35#include "G4Proton.hh"
36#include "G4Neutron.hh"
37#include "G4ChipsComponentXS.hh"
38
40{
41
42 public:
44 G4int theZ,
45 G4double s);
46// G4FTFParameters(const G4ParticleDefinition * , G4double theA,
47// G4double theZ,
48// G4double s);
49
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 --------------------
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);
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
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 -----------------------------
112
114 G4double GetInelasticProbability(const G4double impactsquare);
117 G4double GetProbabilityOfAnnihilation(); // Uzhi 18.11.10
118
119// --------- Get parameters of elastic scattering --------------------
121
122// --------- Get parameters of excitations ---------------------------
127
131
135
138
139// --------- Get parameters of a string kink --------------------------------
141 std::vector<G4double> GetQuarkProbabilitiesAtGluonSplitUp();
142
143// --------- Get parameters of nuclear destruction---------------------
146
149
151
155
156// private:
157
159
160// ------------ Initial energy of hN interactions --------------------
161 G4double FTFhNcmsEnergy; // Initial hN CMS energy
162
163// ------------ hN cross section manager -----------------------------
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
173 G4double FTFSlope; // in fm^-1
176
177// --------- Parameters of excitations -------------------------------
182
186
190
193
194// ---------- Parameters of kink -------------------------------------
196 std::vector<G4double> QuarkProbabilitiesAtGluonSplitUp;
197
198// --------- Parameters of nuclear destruction------------------------
201
202 G4double CofNuclearDestruction; // Cnd of nuclear destruction
204
206
207 G4double DofNuclearDestruction; // D for momentum sampling
210
211};
212
213// --------------------------------------------------------------------
215 {FTFhNcmsEnergy = S;}
216
217// --------- Set geometrical parameteres ------------------------------
219 {FTFXtotal = Xtotal;}
220
222 {FTFXelastic = Xelastic;}
223
225 {FTFXinelastic = Xinelastic;}
226
228 const G4double Xelastic)
229 {
230 if(Xtotal==0.) {ProbabilityOfElasticScatt = 0.;}
231 else {ProbabilityOfElasticScatt = Xelastic/Xtotal;};
232 }
233
235 {ProbabilityOfElasticScatt = aValue;}
236
238 {ProbabilityOfAnnihilation = aValue;} // Uzhi 18.11.10
239
241 {RadiusOfHNinteractions2 = Radius2;}
242
243inline void G4FTFParameters::SetSlope(const G4double Slope)
244 {FTFSlope = 12.84/Slope;} // Slope is in GeV^-2, FTFSlope in fm^-2
245
246inline void G4FTFParameters::SetGamma0(const G4double Gamma0)
247 {FTFGamma0 = Gamma0;}
248
249// --------- Set parameters of elastic scattering ---------------------
251 {
253
254// --------- Set parameters of excitations ----------------------------
256 {MagQuarkExchange = aValue;}
258 {SlopeQuarkExchange = aValue;}
260 {DeltaProbAtQuarkExchange = aValue;}
262 {ProbOfSameQuarkExchange = aValue;}
263
265 {ProjMinDiffMass = aValue*CLHEP::GeV;}
267 {ProjMinNonDiffMass = aValue*CLHEP::GeV;}
269 {ProbabilityOfProjDiff = aValue;}
270
272 {TarMinDiffMass = aValue*CLHEP::GeV;}
274 {TarMinNonDiffMass = aValue*CLHEP::GeV;}
276 {ProbabilityOfTarDiff = aValue;}
277
279 {AveragePt2 = aValue*CLHEP::GeV*CLHEP::GeV;}
280
282 {ProbLogDistr = aValue;}
283
284// --------- Set parameters of a string kink --------------------------------
285inline void G4FTFParameters::SetPt2Kink(const G4double aValue)
286 {Pt2kink = aValue;}
287
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--------------------
300 const G4double Pbound)
301 {
302 if(Plab > Pbound)
303 {
304 MaxNumberOfCollisions = Plab/Pbound;
306 } else
307 {
308// MaxNumberOfCollisions = -1.;
309// SetProbOfInteraction(std::exp(0.25*(Plab-Pbound)));
312 }
313 }
315 {ProbOfInelInteraction = aValue;}
316
318 {CofNuclearDestruction = aValue;}
320 {R2ofNuclearDestruction = aValue;}
321
324
326 {DofNuclearDestruction = aValue;}
328 {Pt2ofNuclearDestruction =aValue;}
331
332// --------- Get geometrical parameteres ------------------------------
336
338
340 {
341 if(RadiusOfHNinteractions2 > impactsquare) {return 1.;}
342 else {return 0.;}
343 }
344
347
349 {
350 G4double Gamma = GammaElastic(impactsquare);
351 return 2 * Gamma - Gamma *Gamma;
352 }
353
356 // Uzhi 18.11.10
357
358// --------- Get parameters of elastic scattering ---------------------
361
362// --------- Get parameters of excitations ---------------------------
368
372
376
379
380// --------- Get parameters of a string kink --------------------------
382inline std::vector<G4double>
385
386// --------- Get parameters of nuclear destruction---------------------
389
392
395
396
398 {return DofNuclearDestruction;}
402#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void SetTarMinNonDiffMass(const G4double aValue)
G4double R2ofNuclearDestruction
void SetProjMinDiffMass(const G4double aValue)
void SetTotalCrossSection(const G4double Xtotal)
void SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
G4ChipsComponentXS * FTFxsManager
G4double GetProbabilityOfAnnihilation()
G4double ExcitationEnergyPerWoundedNucleon
G4double GetAveragePt2()
G4double GetMaxNumberOfCollisions()
void SetProbabilityOfElasticScatt(const G4double Xtotal, const G4double Xelastic)
void SetElastisCrossSection(const G4double Xelastic)
void SetQuarkProbabilitiesAtGluonSplitUp(const G4double Puubar, const G4double Pddbar, const G4double Pssbar)
G4double ProbabilityOfTarDiff
G4double GetPt2ofNuclearDestruction()
G4double ProbabilityOfProjDiff
void SetProbabilityOfTarDiff(const G4double aValue)
G4double GetProbLogDistr()
G4double GetSlopeQuarkExchange()
G4double GetMaxPt2ofNuclearDestruction()
void SetMaxPt2ofNuclearDestruction(const G4double aValue)
G4double GetProjMinNonDiffMass()
G4double GetProbabilityOfElasticScatt()
G4double ProbOfSameQuarkExchange
G4double GetAvaragePt2ofElasticScattering()
G4double TarMinNonDiffMass
G4double GetElasticCrossSection()
G4double ProbOfInelInteraction
void SetPt2Kink(const G4double aValue)
void SetSlope(const G4double Slope)
G4double GetTarMinDiffMass()
G4double RadiusOfHNinteractions2
void SetDeltaProbAtQuarkExchange(const G4double aValue)
G4double GetInelasticProbability(const G4double impactsquare)
G4double MaxPt2ofNuclearDestruction
G4double GetTarMinNonDiffMass()
G4double GetTotalCrossSection()
void SetMagQuarkExchange(const G4double aValue)
G4double SlopeQuarkExchange
void SetAvaragePt2ofElasticScattering(const G4double aPt2)
G4double DeltaProbAtQuarkExchange
G4double CofNuclearDestruction
void SetTarMinDiffMass(const G4double aValue)
void SetProjMinNonDiffMass(const G4double aValue)
void SethNcmsEnergy(const G4double s)
G4double GetPt2Kink()
void SetR2ofNuclearDestruction(const G4double aValue)
G4double GammaElastic(const G4double impactsquare)
void SetGamma0(const G4double Gamma0)
void SetAveragePt2(const G4double aValue)
G4double GetDeltaProbAtQuarkExchange()
G4double GetProbabilityOfTarDiff()
G4double DofNuclearDestruction
G4double GetInelasticCrossSection()
G4double GetExcitationEnergyPerWoundedNucleon()
void SetProbabilityOfAnnihilation(const G4double aValue)
G4double GetProbOfInteraction()
void SetProbOfInteraction(const G4double aValue)
void SetDofNuclearDestruction(const G4double aValue)
G4double GetProbabilityOfProjDiff()
G4double ProbabilityOfAnnihilation
G4double GetProjMinDiffMass()
G4double GetProbOfSameQuarkExchange()
G4double ProbabilityOfElasticScatt
G4double GetDofNuclearDestruction()
void SetRadiusOfHNinteractions2(const G4double Radius2)
G4double Pt2ofNuclearDestruction
G4double GetProbabilityOfInteraction(const G4double impactsquare)
void SetPt2ofNuclearDestruction(const G4double aValue)
G4double MagQuarkExchange
G4double GetR2ofNuclearDestruction()
G4double GetCofNuclearDestruction()
std::vector< G4double > QuarkProbabilitiesAtGluonSplitUp
void SetProbLogDistr(const G4double aValue)
void SetCofNuclearDestruction(const G4double aValue)
G4double ProjMinNonDiffMass
void SetMaxNumberOfCollisions(const G4double aValue, const G4double bValue)
std::vector< G4double > GetQuarkProbabilitiesAtGluonSplitUp()
G4double ProjMinDiffMass
G4double AvaragePt2ofElasticScattering
void SetSlopeQuarkExchange(const G4double aValue)
void SetProbOfSameQuarkExchange(const G4double aValue)
G4double GetMagQuarkExchange()
G4double MaxNumberOfCollisions
G4double FTFXannihilation
void SetProbabilityOfProjDiff(const G4double aValue)
void SetInelasticCrossSection(const G4double Xinelastic)