36 pomeron_Alpha(0), pomeron_Alpha_Hard(0), pomeron_Alphaprime(0),
37 pomeron_C(0), pomeron_Gamma(0), pomeron_Gamma_Hard(0),
38 pomeron_Rsquare(0), pomeron_S(0)
52 else if (Encoding/100== 3 || Encoding/10 == 3)
110 return SigP(S) * FZ2;
116 return SigP(S)/pomeron_C *(Expand(Z(S)/2) - Expand(Z(S)));
134 return 2/pomeron_C*(1-std::exp(-1*Eikonal(S,impactsquare)));
140 return (pomeron_C-1)/pomeron_C *
148 return (1-std::exp(-2*Eikonal(S,impactsquare)))/pomeron_C;
170 return std::exp(-2*Eikonal(S,impactsquare))/pomeron_C*
171 std::pow(2*Eikonal(S,impactsquare),nPomerons)/factorial;
177 pomeron_Gamma=agam/
GeV/
GeV;
183 void G4PomeronCrossSection::InitForNucleon()
189 pomeron_Gamma= (2.6+3.96)/GeV/
GeV;
191 pomeron_Rsquare= 3.56/GeV/
GeV;
193 pomeron_Alpha= 0.9808;
194 pomeron_Alphaprime= 0.25/GeV/
GeV;
195 pomeron_Gamma_Hard = 0.0002/GeV/
GeV;
197 pomeron_Alpha_Hard = 1.47;
200 void G4PomeronCrossSection::InitForPion()
204 pomeron_Gamma= 2.17/GeV/
GeV;
206 pomeron_Rsquare= 2.36/GeV/
GeV;
207 pomeron_Alpha= 1.0808;
208 pomeron_Alphaprime= 0.25/GeV/
GeV;
209 pomeron_Gamma_Hard = 0.0002/GeV/
GeV;
210 pomeron_Alpha_Hard = 1.47;
213 void G4PomeronCrossSection::InitForKaon()
217 pomeron_Gamma= 1.92/GeV/
GeV;
219 pomeron_Rsquare= 1.96/GeV/
GeV;
220 pomeron_Alpha= 1.0808;
221 pomeron_Alphaprime= 0.25/GeV/
GeV;
222 pomeron_Gamma_Hard = 0.0002/GeV/
GeV;
223 pomeron_Alpha_Hard = 1.47;
226 void G4PomeronCrossSection::InitForGamma()
230 pomeron_Gamma= 2.07/GeV/
GeV;
232 pomeron_Rsquare= 2.16/GeV/
GeV;
233 pomeron_Alpha= 1.0808;
234 pomeron_Alphaprime= 0.25/GeV/
GeV;
235 pomeron_Gamma_Hard = 0.0002/GeV/
GeV;
236 pomeron_Alpha_Hard = 1.47;
244 for (
G4int j=2; j<21; j++ )
246 current *= -z *(j-1)/
sqr(j);
254 return pomeron_Gamma *std::pow(S/pomeron_S, pomeron_Alpha -1);
259 return 2*pomeron_C * Power(S) / Lambda(S);
264 return pomeron_Rsquare+pomeron_Alphaprime*std::log(S/pomeron_S);
275 return Z(S)/2 * std::exp(-impactsquare/(4*Lambda(S)*
hbarc_squared));
280 return pomeron_Gamma *std::pow(S/pomeron_S, pomeron_Alpha -1);
285 return pomeron_Gamma_Hard*std::pow(S/pomeron_S, pomeron_Alpha_Hard -1);
290 return pomeron_Rsquare+pomeron_Alphaprime*std::log(S/pomeron_S);
295 return pomeron_Rsquare;
300 return 2*pomeron_C*PowerHard(S) / LambdaSoft(S);
305 return 2*pomeron_C*PowerHard(S)/LambdaHard(S);
310 return Zsoft(S)/2*std::exp(-impactsquare/LambdaSoft(S)/
hbarc_squared/4);
315 return Zhard(S)/2*std::exp(-impactsquare/LambdaHard(S)/
hbarc_squared/4);
static G4Pow * GetInstance()
G4double GetCutPomeronProbability(const G4double s, const G4double impactsquare, const G4int nPomerons)
G4double SoftEikonal(G4double s, G4double impactsquare)
G4double GetTotalCrossSection(const G4double s)
G4double GetInelasticProbability(const G4double s, const G4double impactsquare)
G4int GetPDGEncoding() const
G4double GetTotalProbability(const G4double s, const G4double impactsquare)
G4PomeronCrossSection(const G4ParticleDefinition *)
G4double factorial(G4int Z) const
G4double GetDiffractiveCrossSection(const G4double s)
G4double GetElasticProbability(const G4double s, const G4double impactsquare)
G4double GetElasticCrossSection(const G4double s)
G4double GetNondiffractiveProbability(const G4double s, const G4double impactsquare)
G4double GetDiffractiveProbability(const G4double s, const G4double impactsquare)
G4double GetInelasticCrossSection(const G4double s)
void Setgamma(const G4double agam)
G4double HardEikonal(G4double s, G4double impactsquare)
G4int GetBaryonNumber() const