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

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