49 G4int absPDGcode = std::abs(PDGcode);
54 G4double C_pomeron_N = std::sqrt(C_pomeron_NN);
57 G4double Gamma_pomeron_N = std::sqrt(Gamma_pomeron_NN);
58 G4double Gamma_pomeron_Pr(0.), Gamma_pomeron_Tr(0.);
61 G4double Rsquare_pomeron_N = Rsquare_pomeron_NN/2.;
62 G4double Rsquare_pomeron_Pr(0.), Rsquare_pomeron_Tr(0.);
65 if( absPDGcode > 1000 ) {
70 Gamma_pomeron_Pr = Gamma_pomeron_N;
71 Gamma_pomeron_Tr = Gamma_pomeron_N;
74 Rsquare_pomeron_Pr = Rsquare_pomeron_N;
75 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
93 else if ( absPDGcode == 211 || PDGcode == 111 ) {
98 Gamma_pomeron_Pr = 0.89/
GeV;
99 Gamma_pomeron_Tr = Gamma_pomeron_N;
102 Rsquare_pomeron_Pr = 0.5/GeV/
GeV;
103 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
121 else if ( absPDGcode == 321 || absPDGcode == 311 ||
122 PDGcode == 130 || PDGcode == 310 ) {
128 Gamma_pomeron_Pr = 1.312/
GeV;
129 Gamma_pomeron_Tr = Gamma_pomeron_N;
132 Rsquare_pomeron_Pr = 0.31/GeV/
GeV;
133 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
150 else if ( absPDGcode == 22 ) {
156 Gamma_pomeron_Pr = 1.415/GeV/
GeV;
157 Gamma_pomeron_Tr = Gamma_pomeron_N;
160 Rsquare_pomeron_Pr = 0.51/GeV/
GeV;
161 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
183 Gamma_pomeron_Pr = Gamma_pomeron_N;
184 Gamma_pomeron_Tr = Gamma_pomeron_N;
187 Rsquare_pomeron_Pr = Rsquare_pomeron_N;
188 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
230 G4double AmplitudeP(0.), AmplitudeR(0.);
237 G4double chiP(0.), chiR(0.), chiRin(0.);
239 for(
G4int i=0; i<10000;i++)
247 AmplitudeR = (1.0 -
G4Exp(-chiR));
249 Xtotal += 2 * (AmplitudeP + AmplitudeR) * B * dB;
250 XtotalP += 2 * (AmplitudeP + 0. ) * B * dB;
251 XtotalR += 2 * (0. + AmplitudeR) * B * dB;
260 AmplitudeR = (1.0 -
G4Exp(-chiRin));
262 Xnd += (AmplitudeP + AmplitudeR) * B * dB;
263 XndP += (AmplitudeP + 0. ) * B * dB;
264 XndR += (0. + AmplitudeR) * B * dB;
338 if( B > 2.*
fermi ) { Pint=0.; Pprd=0.; Ptrd=0.; Pdd=0.; Pnd=0.; Pnvr=0.;
return;}
348 G4double AmplitudeR = (1.0 - Exp_ChiR);
350 G4double AmplitudeP2, Apr_Diff, Atr_Diff, ADiff;
353 AmplitudeP2 =
sqr(AmplitudeP);
359 Exp_ChiR =
G4Exp(-chiRin);
361 AmplitudeR = (1.0 - Exp_ChiR);
365 And = (AmplitudeP + AmplitudeR);
366 AndP = (AmplitudeP + 0. );
367 AndR = (0. + AmplitudeR);
372 Pint = Apr_Diff + Atr_Diff + ADiff + And;
373 Pprd = Apr_Diff/Pint;
374 Ptrd = Atr_Diff/Pint;
383 Pint = Apr_Diff + Atr_Diff + ADiff + AndP;
384 Pprd = Apr_Diff/Pint;
385 Ptrd = Atr_Diff/Pint;
392 Pint = Atr_Diff + AndP;
394 Ptrd = Atr_Diff/Pint;
405 if(
chiPin < 0.001 )
return 0;
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
G4double Get_Cprojectile()
G4double Gamma_pomeronHard
G4double Freggeon_Rsquare
static constexpr double fermi
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
static constexpr double twopi
G4Reggeons(const G4ParticleDefinition *)
G4double Freggeon_Alphaprime
G4double Alphaprime_pomeron
G4int GetPDGEncoding() const
G4double Chi_pomeron(G4double Mult, G4double B)
G4double Chi_reggeon(G4double Mult, G4double B)
static constexpr double hbarc_squared
double B(double temperature)
G4double Wreggeon_Alphaprime
typedef void(XMLCALL *XML_ElementDeclHandler)(void *userData
static constexpr double GeV
G4double Wreggeon_Rsquare
void GetProbabilities(G4double B, G4int Mode, G4double &Pint, G4double &Pprd, G4double &Ptrd, G4double &Pdd, G4double &Pnd, G4double &Pnvr)
G4double Alpha_pomeronHard