69 outFile <<
"G4HadronElastic is the base class for all hadron-nucleus\n"
70 <<
"elastic scattering models except HP.\n"
71 <<
"By default it uses the Gheisha two-exponential momentum\n"
72 <<
"transfer parameterization. The model is fully relativistic\n"
73 <<
"as opposed to the original Gheisha model which was not.\n"
74 <<
"This model may be used for all long-lived hadrons at all\n"
75 <<
"incident energies but fit the data only for relativistic scattering.\n";
99 G4double plab = std::sqrt(ekin*(ekin + 2.0*m1));
102 G4cout <<
"G4HadronElastic: "
104 <<
" Plab(GeV/c)= " << plab/
GeV
105 <<
" Ekin(MeV) = " << ekin/
MeV
106 <<
" scattered off Z= " << Z
115 G4double momentumCMS = plab*mass2/std::sqrt(m1*m1 + mass2*mass2 + 2.*mass2*e1);
129 ed <<
GetModelName() <<
" wrong sampling t= " << t <<
" tmax= " << pLocalTmax
131 <<
" ekin=" << ekin <<
" MeV"
132 <<
" off (Z,A)=(" << Z <<
"," << A <<
") - will be resampled" <<
G4endl;
143 if (cost > 1.0) { cost = 1.0; }
144 else if(cost < -1.0) { cost = -1.0; }
146 G4double sint = std::sqrt((1.0-cost)*(1.0+cost));
149 G4cout <<
" t= " << t <<
" tmax(GeV^2)= " << pLocalTmax/(
GeV*
GeV)
150 <<
" Pcms(GeV)= " << momentumCMS/
GeV <<
" cos(t)=" << cost
151 <<
" sin(t)=" << sint <<
G4endl;
154 momentumCMS*sint*std::sin(phi),
156 std::sqrt(momentumCMS*momentumCMS + m1*m1));
162 G4cout <<
"G4HadronElastic: m= " << m1 <<
" Efin(MeV)= " << eFinal
163 <<
" 4-M Final: " << nlv1
177 G4cout <<
"Recoil: " <<
" m= " << mass2 <<
" Erec(MeV)= " << erec
185 if(Z == 1 && A == 1) { theDef =
theProton; }
186 else if (Z == 1 && A == 2) { theDef =
theDeuteron; }
188 else if (Z == 2 && A == 3) { theDef =
G4He3::He3(); }
189 else if (Z == 2 && A == 4) { theDef =
theAlpha; }
210 const G4double z07in13 = std::pow(0.7, 0.3333333333);
219 if(mom >= plabLowLimit){
220 bb = 14.5*g4pow->
Z23(A);
222 cc = 0.075*g4pow->
Z13(A)/dd;
226 bb = 29.*z07in13*z07in13*g4pow->
Z23(A);
228 cc = 0.04*g4pow->
Z13(A)/dd;
229 aa = g4pow->
powZ(A, 1.63)/
bb;
232 bb = 14.5*g4pow->
Z23(A);
235 cc = 1.4*g4pow->
Z13(A)/dd;
240 if(mom >= plabLowLimit){
241 bb = 60.*z07in13*g4pow->
Z13(A);
244 cc = 4.*g4pow->
powZ(A,0.4)/dd;
246 bb = 120.*z07in13*g4pow->
Z13(A);
248 aa = 2.*g4pow->
powZ(A,1.33)/
bb;
249 cc = 4.*g4pow->
powZ(A,0.4)/dd;
252 bb = 60.*g4pow->
Z13(A);
254 aa = g4pow->
powZ(A,1.33)/
bb;
255 cc = 0.2*g4pow->
powZ(A,0.4)/dd;
282 static const G4double lBarCof1S = 0.88;
283 static const G4double lBarCof2S = 0.76;
284 static const G4double lBarCof3S = 0.64;
285 static const G4double lBarCof1C = 0.784378;
286 static const G4double lBarCofSC = 0.664378;
287 static const G4double lBarCof2SC = 0.544378;
288 static const G4double lBarCof1B = 0.740659;
289 static const G4double lBarCofSB = 0.620659;
290 static const G4double lBarCof2SB = 0.500659;
292 if( pdg == 3122 || pdg == 3222 || pdg == 3112 || pdg == 3212 )
296 }
else if( pdg == 3322 || pdg == 3312 )
300 else if( pdg == 3324)
304 else if( pdg == 4122 || pdg == 4212 || pdg == 4222 || pdg == 4112 )
308 else if( pdg == 4332 )
312 else if( pdg == 4232 || pdg == 4132 )
316 else if( pdg == 5122 || pdg == 5222 || pdg == 5112 || pdg == 5212 )
320 else if( pdg == 5332 )
324 else if( pdg == 5132 || pdg == 5232 )
329 static const G4double lMesCof1S = 0.82;
330 static const G4double llMesCof1C = 0.676568;
331 static const G4double llMesCof1B = 0.610989;
332 static const G4double llMesCof2C = 0.353135;
333 static const G4double llMesCof2B = 0.221978;
334 static const G4double llMesCofSC = 0.496568;
335 static const G4double llMesCofSB = 0.430989;
336 static const G4double llMesCofCB = 0.287557;
337 static const G4double llMesCofEtaP = 0.88;
338 static const G4double llMesCofEta = 0.76;
340 if( pdg == 321 || pdg == 311 || pdg == 310 )
344 else if( pdg == 511 || pdg == 521 )
348 else if(pdg == 421 || pdg == 411 )
352 else if( pdg == 531 )
356 else if( pdg == 541 )
364 else if(pdg == 441 || pdg == 443 )
378 coeff = llMesCofEtaP;