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

Last change on this file since 1337 was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 15.3 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.7 2009/10/25 10:50:54 vuzhinsk Exp $
30// GEANT4 tag $Name: geant4-09-04-beta-01 $
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 SetCofNuclearDestruction(const G4double aValue);
84        void SetR2ofNuclearDestruction(const G4double aValue);
85
86        void SetExcitationEnergyPerWoundedNucleon(const G4double aValue);
87
88        void SetDofNuclearDestruction(const G4double aValue);
89        void SetPt2ofNuclearDestruction(const G4double aValue);
90        void SetMaxPt2ofNuclearDestruction(const G4double aValue);
91
92//--------------------------------------------------------------------
93// --------- Get geometrical parameteres -----------------------------
94        G4double GetTotalCrossSection();
95        G4double GetElasticCrossSection();
96        G4double GetInelasticCrossSection();
97        G4double GetProbabilityOfElasticScatt();
98
99        G4double GetSlope();
100
101        G4double GetProbabilityOfInteraction(const G4double impactsquare);
102        G4double GetInelasticProbability(const G4double impactsquare);
103
104// --------- Get parameters of elastic scattering --------------------
105        G4double GetAvaragePt2ofElasticScattering();
106
107// --------- Get parameters of excitations ---------------------------
108        G4double GetMagQuarkExchange();
109        G4double GetSlopeQuarkExchange();
110        G4double GetDeltaProbAtQuarkExchange();
111
112        G4double GetProjMinDiffMass();
113        G4double GetProjMinNonDiffMass();
114        G4double GetProbabilityOfProjDiff();
115
116        G4double GetTarMinDiffMass();
117        G4double GetTarMinNonDiffMass();
118        G4double GetProbabilityOfTarDiff();
119
120        G4double GetAveragePt2();
121
122// --------- Get parameters of a string kink --------------------------------
123        G4double GetPt2Kink();
124        std::vector<G4double>  GetQuarkProbabilitiesAtGluonSplitUp();
125
126// --------- Get parameters of nuclear destruction---------------------
127        G4double GetCofNuclearDestruction();
128        G4double GetR2ofNuclearDestruction();
129
130        G4double GetExcitationEnergyPerWoundedNucleon();
131
132        G4double GetDofNuclearDestruction();
133        G4double GetPt2ofNuclearDestruction();
134        G4double GetMaxPt2ofNuclearDestruction();
135
136//  private:
137
138        G4FTFParameters();
139
140// ------------ Initial energy of hN interactions -------------------- 
141        G4double FTFhNcmsEnergy;                // Initial hN CMS energy
142
143// ------------ Geometrical parameteres ------------------------------
144        G4double FTFXtotal;                     // Total X in mb
145        G4double FTFXelastic;                   // Elastic X in mb
146        G4double FTFXinelastic;                 // Inelastic X in mb
147        G4double ProbabilityOfElasticScatt;     // Xel/Xtot
148        G4double RadiusOfHNinteractions2;       // Xtot/pi, in fn^2
149        G4double FTFSlope;                      // in fm^-1
150        G4double AvaragePt2ofElasticScattering; // in MeV^2
151        G4double FTFGamma0;
152
153// --------- Parameters of excitations -------------------------------
154        G4double MagQuarkExchange;
155        G4double SlopeQuarkExchange;
156        G4double DeltaProbAtQuarkExchange;
157
158        G4double ProjMinDiffMass;
159        G4double ProjMinNonDiffMass;
160        G4double ProbabilityOfProjDiff;
161
162        G4double TarMinDiffMass; 
163        G4double TarMinNonDiffMass;
164        G4double ProbabilityOfTarDiff;
165
166        G4double AveragePt2;
167
168// ---------- Parameters of kink -------------------------------------
169        G4double Pt2kink;
170        std::vector<G4double> QuarkProbabilitiesAtGluonSplitUp;
171
172// --------- Parameters of nuclear destruction------------------------
173        G4double CofNuclearDestruction;         // Cnd of nuclear destruction
174        G4double R2ofNuclearDestruction;        // R2nd
175
176        G4double ExcitationEnergyPerWoundedNucleon;
177
178        G4double DofNuclearDestruction;         // D for momentum sampling
179        G4double Pt2ofNuclearDestruction;       // Pt2
180        G4double MaxPt2ofNuclearDestruction;    // Max Pt2
181
182};
183
184// --------------------------------------------------------------------
185inline  void G4FTFParameters::SethNcmsEnergy(const G4double s)
186             {FTFhNcmsEnergy = s;}
187
188// --------- Set geometrical parameteres ------------------------------
189inline  void G4FTFParameters::SetTotalCrossSection(const G4double Xtotal)
190             {FTFXtotal = Xtotal;}
191
192inline  void G4FTFParameters::SetElastisCrossSection(const G4double Xelastic)
193             {FTFXelastic = Xelastic;}
194
195inline  void G4FTFParameters::SetInelasticCrossSection(const G4double Xinelastic)
196             {FTFXinelastic = Xinelastic;}
197
198inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double Xtotal, 
199                                                           const G4double Xelastic)
200                 { 
201                  if(Xtotal==0.) {ProbabilityOfElasticScatt = 0.;}
202                  else           {ProbabilityOfElasticScatt = Xelastic/Xtotal;};
203                 } 
204
205inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double aValue)
206             {ProbabilityOfElasticScatt = aValue;}
207
208inline  void G4FTFParameters::SetRadiusOfHNinteractions2(const G4double Radius2)
209             {RadiusOfHNinteractions2 = Radius2;}
210
211inline  void G4FTFParameters::SetSlope(const G4double Slope)
212             {FTFSlope = 12.84/Slope;} // Slope is in GeV^-2, FTFSlope in fm^-2
213
214inline  void G4FTFParameters::SetGamma0(const G4double Gamma0)
215             {FTFGamma0 = Gamma0;}
216
217// --------- Set parameters of elastic scattering ---------------------
218inline  void G4FTFParameters::SetAvaragePt2ofElasticScattering(const G4double aPt2)
219                 {
220AvaragePt2ofElasticScattering = aPt2;}
221
222// --------- Set parameters of excitations ----------------------------
223inline  void G4FTFParameters::SetMagQuarkExchange(const G4double aValue)
224             {MagQuarkExchange = aValue;}
225inline  void G4FTFParameters::SetSlopeQuarkExchange(const G4double aValue)
226             {SlopeQuarkExchange = aValue;}
227inline  void G4FTFParameters::SetDeltaProbAtQuarkExchange(const G4double aValue)
228             {DeltaProbAtQuarkExchange = aValue;}
229
230inline  void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)
231             {ProjMinDiffMass = aValue*GeV;}
232inline  void G4FTFParameters::SetProjMinNonDiffMass(const G4double aValue)
233             {ProjMinNonDiffMass = aValue*GeV;}
234inline  void G4FTFParameters::SetProbabilityOfProjDiff(const G4double aValue)
235             {ProbabilityOfProjDiff = aValue;}
236
237inline  void G4FTFParameters::SetTarMinDiffMass(const G4double aValue)
238             {TarMinDiffMass = aValue*GeV;}
239inline  void G4FTFParameters::SetTarMinNonDiffMass(const G4double aValue)
240             {TarMinNonDiffMass = aValue*GeV;}
241inline  void G4FTFParameters::SetProbabilityOfTarDiff(const G4double aValue)
242             {ProbabilityOfTarDiff = aValue;}
243
244inline  void G4FTFParameters::SetAveragePt2(const G4double aValue)
245             {AveragePt2 = aValue*GeV*GeV;}
246
247// --------- Set parameters of a string kink --------------------------------
248inline  void G4FTFParameters::SetPt2Kink(const G4double aValue) 
249             {Pt2kink = aValue;}
250
251inline  void G4FTFParameters::SetQuarkProbabilitiesAtGluonSplitUp(
252                                                 const G4double Puubar,
253                                                 const G4double Pddbar,
254                                                 const G4double Pssbar )
255             {
256              QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar); 
257              QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar+Pddbar);
258              QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar+Pddbar+Pssbar);
259             }
260
261// --------- Set parameters of nuclear destruction--------------------
262inline  void G4FTFParameters::SetCofNuclearDestruction(const G4double aValue)
263             {CofNuclearDestruction = aValue;}
264inline  void G4FTFParameters::SetR2ofNuclearDestruction(const G4double aValue)
265             {R2ofNuclearDestruction = aValue;}
266
267inline  void G4FTFParameters::SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
268             {ExcitationEnergyPerWoundedNucleon = aValue;}
269
270inline  void G4FTFParameters::SetDofNuclearDestruction(const G4double aValue)
271             {DofNuclearDestruction = aValue;}
272inline  void G4FTFParameters::SetPt2ofNuclearDestruction(const G4double aValue)
273             {Pt2ofNuclearDestruction =aValue;}
274inline  void G4FTFParameters::SetMaxPt2ofNuclearDestruction(const G4double aValue)
275             {MaxPt2ofNuclearDestruction = aValue;}
276
277// --------- Get geometrical parameteres ------------------------------
278inline  G4double G4FTFParameters::GetTotalCrossSection()     {return FTFXtotal;}
279inline  G4double G4FTFParameters::GetElasticCrossSection()   {return FTFXelastic;}
280inline  G4double G4FTFParameters::GetInelasticCrossSection() {return FTFXinelastic;}
281
282inline  G4double G4FTFParameters::GetSlope()                 {return FTFSlope;}
283
284inline  G4double G4FTFParameters::GetProbabilityOfInteraction(const G4double impactsquare)
285                 {
286                  if(RadiusOfHNinteractions2 > impactsquare) {return 1.;}
287                  else                                       {return 0.;}
288                 } 
289
290inline  G4double G4FTFParameters::GetProbabilityOfElasticScatt()
291                 {return ProbabilityOfElasticScatt;}
292
293inline  G4double G4FTFParameters::GetInelasticProbability( const G4double impactsquare)
294        {
295         G4double Gamma = GammaElastic(impactsquare);
296         return 2 * Gamma - Gamma *Gamma;
297        }
298
299// --------- Get parameters of elastic scattering ---------------------
300inline  G4double G4FTFParameters::GetAvaragePt2ofElasticScattering()
301                 {return AvaragePt2ofElasticScattering;}
302
303// --------- Get parameters of excitations ---------------------------
304inline  G4double G4FTFParameters::GetMagQuarkExchange()       {return MagQuarkExchange;}
305inline  G4double G4FTFParameters::GetSlopeQuarkExchange()     {return SlopeQuarkExchange;}
306inline  G4double G4FTFParameters::GetDeltaProbAtQuarkExchange()
307                                                              {return DeltaProbAtQuarkExchange;}
308
309
310inline  G4double G4FTFParameters::GetProjMinDiffMass()        {return ProjMinDiffMass;}
311inline  G4double G4FTFParameters::GetProjMinNonDiffMass()     {return ProjMinNonDiffMass;}
312inline  G4double G4FTFParameters::GetProbabilityOfProjDiff()  {return ProbabilityOfProjDiff;} 
313
314inline  G4double G4FTFParameters::GetTarMinDiffMass()         {return TarMinDiffMass;}
315inline  G4double G4FTFParameters::GetTarMinNonDiffMass()      {return TarMinNonDiffMass;}
316inline  G4double G4FTFParameters::GetProbabilityOfTarDiff()   {return ProbabilityOfTarDiff;}
317
318inline  G4double G4FTFParameters::GetAveragePt2()             {return AveragePt2;}
319
320// --------- Get parameters of a string kink --------------------------
321inline  G4double G4FTFParameters::GetPt2Kink()                {return Pt2kink;}
322inline  std::vector<G4double> 
323                 G4FTFParameters::GetQuarkProbabilitiesAtGluonSplitUp() 
324                                  {return QuarkProbabilitiesAtGluonSplitUp;}
325
326// --------- Get parameters of nuclear destruction---------------------
327inline  G4double G4FTFParameters::GetCofNuclearDestruction(){return CofNuclearDestruction;}
328inline  G4double G4FTFParameters::GetR2ofNuclearDestruction(){return R2ofNuclearDestruction;}
329
330inline  G4double G4FTFParameters::GetExcitationEnergyPerWoundedNucleon()
331            {return ExcitationEnergyPerWoundedNucleon;}
332
333
334inline  G4double G4FTFParameters::GetDofNuclearDestruction()
335                 {return DofNuclearDestruction;}
336inline  G4double G4FTFParameters::GetPt2ofNuclearDestruction(){return Pt2ofNuclearDestruction;}
337inline  G4double G4FTFParameters::GetMaxPt2ofNuclearDestruction()
338                 {return MaxPt2ofNuclearDestruction;}
339#endif
Note: See TracBrowser for help on using the repository browser.