source: trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh@ 1343

Last change on this file since 1343 was 1340, checked in by garnier, 15 years ago

update ti head

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