41 Alphaprime_pomeron = 0.22/GeV/GeV;
42 S0_pomeron = 1.0*GeV*GeV;
44 Alpha_pomeronHard = 1.47;
45 Gamma_pomeronHard = 0.0/GeV/GeV;
48 G4int absPDGcode = std::abs(PDGcode);
53 G4double C_pomeron_N = std::sqrt(C_pomeron_NN);
55 G4double Gamma_pomeron_NN = 2.14/GeV/GeV;
56 G4double Gamma_pomeron_N = std::sqrt(Gamma_pomeron_NN);
57 G4double Gamma_pomeron_Pr(0.), Gamma_pomeron_Tr(0.);
59 G4double Rsquare_pomeron_NN = 3.30/GeV/GeV;
60 G4double Rsquare_pomeron_N = Rsquare_pomeron_NN/2.;
61 G4double Rsquare_pomeron_Pr(0.), Rsquare_pomeron_Tr(0.);
66 static const G4double lBarCof1S = 0.88;
67 static const G4double lBarCof2S = 0.76;
68 static const G4double lBarCof3S = 0.64;
69 static const G4double lBarCof1C = 0.784378;
70 static const G4double lBarCofSC = 0.664378;
71 static const G4double lBarCof2SC = 0.544378;
72 static const G4double lBarCof1B = 0.740659;
73 static const G4double lBarCofSB = 0.620659;
74 static const G4double lBarCof2SB = 0.500659;
78 static const G4double llMesCof1C = 0.676568;
79 static const G4double llMesCof1B = 0.610989;
80 static const G4double llMesCof2C = 0.353135;
81 static const G4double llMesCof2B = 0.221978;
82 static const G4double llMesCofSC = 0.496568;
83 static const G4double llMesCofSB = 0.430989;
84 static const G4double llMesCofCB = 0.287557;
85 static const G4double llMesCofEtaP = 0.88;
86 static const G4double llMesCofEta = 0.76;
89 if ( absPDGcode > 1000 ) {
91 Cpr_pomeron = C_pomeron_N;
92 Ctr_pomeron = C_pomeron_N;
93 C_pomeron = Cpr_pomeron*Ctr_pomeron;
95 Gamma_pomeron_Pr = Gamma_pomeron_N;
96 Gamma_pomeron_Tr = Gamma_pomeron_N;
97 Gamma_pomeron = Gamma_pomeron_Pr * Gamma_pomeron_Tr;
99 Rsquare_pomeron_Pr = Rsquare_pomeron_N;
100 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
101 Rsquare_pomeron = Rsquare_pomeron_Pr + Rsquare_pomeron_Tr;
103 Freggeon_Alpha = 0.7;
104 Freggeon_Alphaprime = 0.8/GeV/GeV;
105 Freggeon_Gamma =
sqr(2.871)/GeV/GeV;
106 Freggeon_Rsquare = 2*0.916/GeV/GeV;
110 Wreggeon_Alpha = 0.4;
111 Wreggeon_Alphaprime = 0.9/GeV/GeV;
112 Wreggeon_Gamma =
sqr(2.241)/GeV/GeV;
113 Wreggeon_Rsquare = 2*0.945/GeV/GeV *0.5;
115 if (PDGcode > 0) WParity = -1;
116 if (PDGcode < 0) WParity = +1;
119 if ( PDGcode == 3122 || PDGcode == 3222 ||
120 PDGcode == 3112 || PDGcode == 3212 ||
121 PDGcode ==-3122 || PDGcode ==-3222 ||
122 PDGcode ==-3112 || PDGcode ==-3212 ) {
125 if ( PDGcode == 3312 || PDGcode == 3322 ||
126 PDGcode ==-3312 || PDGcode ==-3322 ) {
129 if ( PDGcode == 3334 || PDGcode ==-3334 ) {
132 if ( PDGcode == 4122 || PDGcode ==-4122 ||
133 PDGcode == 4222 || PDGcode ==-4222 ||
134 PDGcode == 4212 || PDGcode ==-4212 ||
135 PDGcode == 4112 || PDGcode ==-4112 ) {
138 if ( PDGcode == 4332 || PDGcode ==-4332 ) {
141 if ( PDGcode == 4232 || PDGcode == 4132 ||
142 PDGcode ==-4232 || PDGcode ==-4132 ) {
145 if ( PDGcode == 5122 || PDGcode ==-5122 ||
146 PDGcode == 5222 || PDGcode ==-5222 ||
147 PDGcode == 5112 || PDGcode ==-5112 ||
148 PDGcode == 5212 || PDGcode ==-5212 ) {
151 if ( PDGcode == 5332 || PDGcode ==-5332 ) {
154 if ( PDGcode == 5132 || PDGcode == 5232 ||
155 PDGcode ==-5132 || PDGcode ==-5232 ) {
160 Gamma_pomeron_Pr *= coeff;
162 }
else if ( absPDGcode == 211 || PDGcode == 111 || absPDGcode >= 400 ) {
165 Ctr_pomeron = C_pomeron_N;
166 C_pomeron = Cpr_pomeron*Ctr_pomeron;
168 Gamma_pomeron_Pr = 0.89/GeV;
169 Gamma_pomeron_Tr = Gamma_pomeron_N;
170 Gamma_pomeron = Gamma_pomeron_Pr * Gamma_pomeron_Tr;
172 Rsquare_pomeron_Pr = 0.5/GeV/GeV;
173 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
174 Rsquare_pomeron = Rsquare_pomeron_Pr + Rsquare_pomeron_Tr;
176 Freggeon_Alpha = 0.7;
177 Freggeon_Alphaprime = 0.8/GeV/GeV;
178 Freggeon_Gamma = 3.524/GeV/GeV;
179 Freggeon_Rsquare = 1.0/GeV/GeV;
183 Wreggeon_Alpha = 0.5;
184 Wreggeon_Gamma = 0.56/GeV/GeV;
185 Wreggeon_Rsquare = 9.19/GeV/GeV;
186 Wreggeon_Alphaprime = 0.9/GeV/GeV;
188 if (PDGcode > 0) WParity = -1;
189 if (PDGcode < 0) WParity = +1;
192 if ( PDGcode == 511 || PDGcode ==-511 ||
193 PDGcode == 521 || PDGcode ==-521 ) {
196 if ( PDGcode == 421 || PDGcode ==-421 ||
197 PDGcode == 411 || PDGcode ==-411 ) {
200 if ( PDGcode == 531 || PDGcode ==-531 ) {
203 if ( PDGcode == 541 || PDGcode ==-541 ) {
206 if ( PDGcode == 431 || PDGcode ==-431 ) {
209 if ( PDGcode == 441 || PDGcode == 443 ) {
212 if ( PDGcode == 553 ) {
215 if ( PDGcode == 221 ) {
218 if ( PDGcode == 331 ) {
219 coeff = llMesCofEtaP;
223 Gamma_pomeron_Pr *= coeff;
225 }
else if ( absPDGcode == 321 || absPDGcode == 311 ||
226 PDGcode == 130 || PDGcode == 310 ) {
229 Ctr_pomeron = C_pomeron_N;
230 C_pomeron = Cpr_pomeron*Ctr_pomeron;
232 Gamma_pomeron_Pr = 0.90/GeV;
233 Gamma_pomeron_Tr = Gamma_pomeron_N;
234 Gamma_pomeron = Gamma_pomeron_Pr * Gamma_pomeron_Tr;
236 Rsquare_pomeron_Pr = 0.31/GeV/GeV;
237 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
238 Rsquare_pomeron = Rsquare_pomeron_Pr + Rsquare_pomeron_Tr;
240 Freggeon_Alpha = 0.7;
241 Freggeon_Alphaprime = 0.8/GeV/GeV;
242 Freggeon_Gamma = 1.32/GeV/GeV;
243 Freggeon_Rsquare = 0.5/GeV/GeV;
248 Wreggeon_Alpha = 0.4;
249 Wreggeon_Alphaprime = 0.9 /GeV/GeV;
250 Wreggeon_Gamma = 1.68/GeV/GeV;
251 Wreggeon_Rsquare = 9.19/GeV/GeV;
254 if (PDGcode > 0) WParity = -1;
255 if (PDGcode < 0) WParity = +1;
257 }
else if ( absPDGcode == 22 ) {
260 Ctr_pomeron = C_pomeron_N;
261 C_pomeron = Cpr_pomeron*Ctr_pomeron;
263 Gamma_pomeron_Pr = 0.0035/GeV;
264 Gamma_pomeron_Tr = Gamma_pomeron_N;
265 Gamma_pomeron = Gamma_pomeron_Pr * Gamma_pomeron_Tr;
267 Rsquare_pomeron_Pr = 0.51/GeV/GeV;
268 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
269 Rsquare_pomeron = Rsquare_pomeron_Pr + Rsquare_pomeron_Tr;
271 Freggeon_Alpha = 0.7;
272 Freggeon_Alphaprime = 0.8/GeV/GeV;
273 Freggeon_Gamma = 0.011/GeV/GeV;
274 Freggeon_Rsquare = 0.5/GeV/GeV;
279 Wreggeon_Alphaprime = 0.9/GeV/GeV;
280 Wreggeon_Gamma = 0.01/GeV/GeV;
281 Wreggeon_Rsquare = 1.0/GeV/GeV;
287 Cpr_pomeron = C_pomeron_N;
288 Ctr_pomeron = C_pomeron_N;
289 C_pomeron = Cpr_pomeron*Ctr_pomeron;
291 Gamma_pomeron_Pr = Gamma_pomeron_N;
292 Gamma_pomeron_Tr = Gamma_pomeron_N;
293 Gamma_pomeron = Gamma_pomeron_Pr * Gamma_pomeron_Tr;
295 Rsquare_pomeron_Pr = Rsquare_pomeron_N;
296 Rsquare_pomeron_Tr = Rsquare_pomeron_N;
297 Rsquare_pomeron = Rsquare_pomeron_Pr + Rsquare_pomeron_Tr;
299 Freggeon_Alpha = 0.723;
300 Freggeon_Gamma = 8.801/GeV/GeV;
301 Freggeon_Rsquare = 0.396/GeV/GeV;
302 Freggeon_Alphaprime = 1.324/GeV/GeV;
306 Wreggeon_Alpha = 0.353;
307 Wreggeon_Gamma = 8.516/GeV/GeV;
308 Wreggeon_Rsquare = 24.40/GeV/GeV;
309 Wreggeon_Alphaprime = 1.5/GeV/GeV;
316 Xtotal =0.; XtotalP=0.; XtotalR=0.;
317 Xelastic=0.; Xpr_Diff=0.; Xtr_Diff=0.; XDDiff=0.;
318 Xinel =0.; Xnd=0.; XndP=0.; XndR=0.;
346 Xtotal =0.; XtotalP=0.; XtotalR=0.;
347 Xelastic=0.; Xpr_Diff=0.; Xtr_Diff=0.; XDDiff=0.;
G4double XDiff=0.;
348 Xinel =0.; Xnd=0.; XndP=0.; XndR=0.;
350 G4double AmplitudeP(0.), AmplitudeR(0.);
357 G4double chiP(0.), chiR(0.), chiRin(0.);
359 for(
G4int i=0; i<10000;i++)
366 AmplitudeP = (1.0/C_pomeron)*(1.0 -
G4Exp(-chiP))*
G4Exp(-chiR);
367 AmplitudeR = (1.0 -
G4Exp(-chiR));
369 Xtotal += 2 * (AmplitudeP + AmplitudeR) *
B * dB;
370 XtotalP += 2 * (AmplitudeP + 0. ) *
B * dB;
371 XtotalR += 2 * (0. + AmplitudeR) *
B * dB;
373 Xelastic +=
sqr(AmplitudeP + AmplitudeR) *
B * dB;
374 Xpr_Diff += (Cpr_pomeron - 1.0) *
sqr(AmplitudeP) *
B * dB;
375 Xtr_Diff += (Ctr_pomeron - 1.0) *
sqr(AmplitudeP) *
B * dB;
376 XDiff += (Cpr_pomeron - 1.0) * (Ctr_pomeron - 1.0) *
sqr(AmplitudeP) *
B * dB;
379 AmplitudeP = (1.0/C_pomeron)*(1.0 -
G4Exp(-chiPin))*
G4Exp(-chiRin);
380 AmplitudeR = (1.0 -
G4Exp(-chiRin));
382 Xnd += (AmplitudeP + AmplitudeR) *
B * dB;
383 XndP += (AmplitudeP + 0. ) *
B * dB;
384 XndR += (0. + AmplitudeR) *
B * dB;
387 Xtotal *=twopi; XtotalP *=twopi; XtotalR *=twopi;
388 Xelastic *=twopi; Xpr_Diff *=twopi; Xtr_Diff *=twopi; XDiff *=twopi;
389 Xinel = Xtotal - Xelastic;
392 Xnd *=twopi; XndP *=twopi; XndR *=twopi;
393 XDDiff = XDiff-Xpr_Diff-Xtr_Diff;
407 G4double R2 = Rsquare_pomeron + Alphaprime_pomeron *
G4Log(Sint/S0_pomeron);
408 G4double Eikonal = Mult * C_pomeron * Gamma_pomeron/R2 *
417 G4double R2F = Freggeon_Rsquare + Freggeon_Alphaprime *
G4Log(Sint/S0_pomeron);
418 G4double R2W = Wreggeon_Rsquare + Wreggeon_Alphaprime *
G4Log(Sint/S0_pomeron);
420 G4double Eikonal = Mult * FParity * Freggeon_C * Freggeon_Gamma/R2F *
424 Eikonal+= Mult * WParity * Wreggeon_C * Wreggeon_Gamma/R2W *
462 if (
B > 2.* fermi ) { Pint=0.; Pprd=0.; Ptrd=0.; Pdd=0.; Pnd=0.; Pnvr=0.;
return;}
471 G4double AmplitudeP = (1.0/C_pomeron)*(1.0 -
G4Exp(-chiP))*Exp_ChiR;
472 G4double AmplitudeR = (1.0 - Exp_ChiR);
474 G4double AmplitudeP2, Apr_Diff, Atr_Diff, ADiff;
477 AmplitudeP2 =
sqr(AmplitudeP);
478 Apr_Diff = (Cpr_pomeron - 1.0) * AmplitudeP2;
479 Atr_Diff = (Ctr_pomeron - 1.0) * AmplitudeP2;
480 ADiff = (Cpr_pomeron - 1.0) * (Ctr_pomeron - 1.0) * AmplitudeP2;
483 Exp_ChiR =
G4Exp(-chiRin);
484 AmplitudeP = (1.0/C_pomeron)*(1.0 -
G4Exp(-chiPin))*Exp_ChiR;
485 AmplitudeR = (1.0 - Exp_ChiR);
489 And = (AmplitudeP + AmplitudeR);
490 AndP = (AmplitudeP + 0. );
491 AndR = (0. + AmplitudeR);
496 Pint = Apr_Diff + Atr_Diff + ADiff + And;
497 Pprd = Apr_Diff/Pint;
498 Ptrd = Atr_Diff/Pint;
503 else if ( Mode == WITHOUT_R)
505 Pint = Apr_Diff + Atr_Diff + ADiff + AndP;
506 Pprd = Apr_Diff/Pint;
507 Ptrd = Atr_Diff/Pint;
514 Pint = Atr_Diff + AndP;
516 Ptrd = Atr_Diff/Pint;
527 if ( chiPin < 0.001 )
return 0;
G4double S(G4double temp)
G4double B(G4double temperature)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
G4int GetPDGEncoding() const
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
G4double Chi_reggeon(G4double Mult, G4double B)
G4Reggeons(const G4ParticleDefinition *)
G4double Get_Cprojectile()
G4double Chi_pomeron(G4double Mult, G4double B)
void GetProbabilities(G4double B, G4int Mode, G4double &Pint, G4double &Pprd, G4double &Ptrd, G4double &Pdd, G4double &Pnd, G4double &Pnvr)