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

Last change on this file was 1347, checked in by garnier, 15 years ago

geant4 tag 9.4

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