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

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

fichier ajoutes

File size: 9.9 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.2 2008/06/13 12:49:23 vuzhinsk Exp $
30// GEANT4 tag $Name: geant4-09-02-ref-02 $
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 SetProjMinDiffMass(const G4double aValue); // Uzhi 19.04.08
63        void SetProjMinNonDiffMass(const G4double aValue);
64        void SetProbabilityOfProjDiff(const G4double aValue);
65
66        void SetTarMinDiffMass(const G4double aValue);  // Uzhi 19.04.08
67        void SetTarMinNonDiffMass(const G4double aValue);
68        void SetProbabilityOfTarDiff(const G4double aValue);
69
70        void SetAveragePt2(const G4double aValue);
71
72   // Perevod mass*GeV Pt2*GeV*GeV
73
74// --------- Get geometrical parameteres -----------------------------
75        G4double GetTotalCrossSection();
76        G4double GetElasticCrossSection();
77        G4double GetInelasticCrossSection();
78        G4double GetProbabilityOfElasticScatt();
79
80        G4double GetSlope();
81
82        G4double GetProbabilityOfInteraction(const G4double impactsquare);
83        G4double GetInelasticProbability(const G4double impactsquare);
84
85// --------- Get parameters of elastic scattering --------------------
86        G4double GetAvaragePt2ofElasticScattering();
87
88// --------- Get parameters of excitations ---------------------------
89        G4double GetProjMinDiffMass(); // Uzhi 19.04.08
90        G4double GetProjMinNonDiffMass();
91        G4double GetProbabilityOfProjDiff();
92
93        G4double GetTarMinDiffMass();  // Uzhi 19.04.08
94        G4double GetTarMinNonDiffMass();
95        G4double GetProbabilityOfTarDiff();
96
97
98        G4double GetAveragePt2();
99//  private:
100
101        G4FTFParameters();
102
103// ------------ Initial energy of hN interactions -------------------- 
104        G4double FTFhNcmsEnergy;                // Initial hN CMS energy
105
106// ------------ Geometrical parameteres ------------------------------
107        G4double FTFXtotal;                     // Total X in mb
108        G4double FTFXelastic;                   // Elastic X in mb
109        G4double FTFXinelastic;                 // Inelastic X in mb
110        G4double ProbabilityOfElasticScatt;     // Xel/Xtot
111        G4double RadiusOfHNinteractions2;       // Xtot/pi, in fn^2
112        G4double FTFSlope;                      // in fm^-1
113        G4double AvaragePt2ofElasticScattering; // in MeV^2
114        G4double FTFGamma0;
115
116// --------- Parameters of excitations -------------------------------
117        G4double ProjMinDiffMass; // Uzhi 19.04.08
118        G4double ProjMinNonDiffMass;
119        G4double ProbabilityOfProjDiff;
120
121        G4double TarMinDiffMass; 
122        G4double TarMinNonDiffMass;
123        G4double ProbabilityOfTarDiff;
124
125        G4double AveragePt2;
126};
127
128// --------------------------------------------------------------------
129inline  void G4FTFParameters::SethNcmsEnergy(const G4double s)
130             {FTFhNcmsEnergy = s;}
131
132// --------- Set geometrical parameteres ------------------------------
133inline  void G4FTFParameters::SetTotalCrossSection(const G4double Xtotal)
134             {FTFXtotal = Xtotal;}
135
136inline  void G4FTFParameters::SetElastisCrossSection(const G4double Xelastic)
137             {FTFXelastic = Xelastic;}
138
139inline  void G4FTFParameters::SetInelasticCrossSection(const G4double Xinelastic)
140             {FTFXinelastic = Xinelastic;}
141
142inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double Xtotal, 
143                                                           const G4double Xelastic)
144                 { 
145                  if(Xtotal==0.) {ProbabilityOfElasticScatt = 0.;}
146                  else           {ProbabilityOfElasticScatt = Xelastic/Xtotal;};
147                 } 
148
149inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double aValue)
150             {ProbabilityOfElasticScatt = aValue;}
151
152inline  void G4FTFParameters::SetRadiusOfHNinteractions2(const G4double Radius2)
153             {RadiusOfHNinteractions2 = Radius2;}
154
155inline  void G4FTFParameters::SetSlope(const G4double Slope)
156             {FTFSlope = 12.84/Slope;} // Slope is in GeV^-2, FTFSlope in fm^-2
157
158inline  void G4FTFParameters::SetGamma0(const G4double Gamma0)
159             {FTFGamma0 = Gamma0;}
160
161// --------- Set parameters of elastic scattering ---------------------
162inline  void G4FTFParameters::SetAvaragePt2ofElasticScattering(const G4double aPt2)
163                 {
164//G4cout<<"Pt2 El "<<aPt2<<" "<<std::sqrt(aPt2)<<G4endl;
165//G4int Uzhi; G4cin>>Uzhi;
166AvaragePt2ofElasticScattering = aPt2;}
167
168// --------- Set parameters of excitations ----------------------------
169inline  void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)   // Uzhi 19.04.08
170             {ProjMinDiffMass = aValue*GeV;}
171inline  void G4FTFParameters::SetProjMinNonDiffMass(const G4double aValue)
172             {ProjMinNonDiffMass = aValue*GeV;}
173inline  void G4FTFParameters::SetProbabilityOfProjDiff(const G4double aValue)
174             {ProbabilityOfProjDiff = aValue;}
175
176inline  void G4FTFParameters::SetTarMinDiffMass(const G4double aValue)  // Uzhi 19.04.08
177             {TarMinDiffMass = aValue*GeV;}
178inline  void G4FTFParameters::SetTarMinNonDiffMass(const G4double aValue)
179             {TarMinNonDiffMass = aValue*GeV;}
180inline  void G4FTFParameters::SetProbabilityOfTarDiff(const G4double aValue)
181             {ProbabilityOfTarDiff = aValue;}
182
183inline  void G4FTFParameters::SetAveragePt2(const G4double aValue)
184             {AveragePt2 = aValue*GeV*GeV;}
185
186// --------- Get geometrical parameteres ------------------------------
187inline  G4double G4FTFParameters::GetTotalCrossSection()     {return FTFXtotal;}
188inline  G4double G4FTFParameters::GetElasticCrossSection()   {return FTFXelastic;}
189inline  G4double G4FTFParameters::GetInelasticCrossSection() {return FTFXinelastic;}
190
191inline  G4double G4FTFParameters::GetSlope()                 {return FTFSlope;}
192
193inline  G4double G4FTFParameters::GetProbabilityOfInteraction(const G4double impactsquare)
194                 {
195                  if(RadiusOfHNinteractions2 > impactsquare) {return 1.;}
196                  else                                       {return 0.;}
197                 } 
198
199inline  G4double G4FTFParameters::GetProbabilityOfElasticScatt()
200                 {return ProbabilityOfElasticScatt;}
201
202inline  G4double G4FTFParameters::GetInelasticProbability( const G4double impactsquare)
203        {
204         G4double Gamma = GammaElastic(impactsquare);
205         return 2 * Gamma - Gamma *Gamma;
206        }
207
208// --------- Get parameters of elastic scattering ---------------------
209inline  G4double G4FTFParameters::GetAvaragePt2ofElasticScattering()
210                 {return AvaragePt2ofElasticScattering;}
211
212// --------- Get parameters of excitations ---------------------------
213inline  G4double G4FTFParameters::GetProjMinDiffMass()        {return ProjMinDiffMass;}
214inline  G4double G4FTFParameters::GetProjMinNonDiffMass()     {return ProjMinNonDiffMass;}
215inline  G4double G4FTFParameters::GetProbabilityOfProjDiff()  {return ProbabilityOfProjDiff;} 
216
217inline  G4double G4FTFParameters::GetTarMinDiffMass()         {return TarMinDiffMass;}
218inline  G4double G4FTFParameters::GetTarMinNonDiffMass()      {return TarMinNonDiffMass;}
219inline  G4double G4FTFParameters::GetProbabilityOfTarDiff()   {return ProbabilityOfTarDiff;}
220
221inline  G4double G4FTFParameters::GetAveragePt2()             {return AveragePt2;}
222
223#endif
Note: See TracBrowser for help on using the repository browser.