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

Last change on this file since 1347 was 1347, checked in by garnier, 13 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.