70 #ifdef G4MULTITHREADED
140 G4cout <<
"G4BGGNucleonInelasticXS::GetCrossSection for "
143 <<
" in nucleus Z= " << Z <<
" A= " <<
theA[
Z]
144 <<
" XS(b)= " << cross/
barn
165 G4cout <<
"G4BGGNucleonInelasticXS::GetIsoCrossSection for "
168 <<
" in nucleus Z= " << Z <<
" A= " <<
theA[
Z]
169 <<
" XS(b)= " << cross/
barn
184 ed <<
"This BGG cross section is applicable only to nucleons and not to "
186 G4Exception(
"G4BGGNucleonInelasticXS::BuildPhysicsTable",
"had001",
198 #ifdef G4MULTITHREADED
203 #ifdef G4MULTITHREADED
221 G4cout <<
"### G4BGGNucleonInelasticXS::Initialise for "
224 for(
G4int iz=2; iz<93; ++iz) {
235 for(
G4int iz=2; iz<93; ++iz) {
249 for(
G4int iz=2; iz<93; ++iz) {
254 for(
G4int iz=2; iz<93; ++iz) {
273 if(kinEnergy <= 0.0) {
return res; }
286 G4double ff3 = 0.8 + 18./aa - 0.002*aa;
287 res *= (1.0 + ff3*(1.0 - (1.0/(1+
G4Exp(-ff1*(elog + ff2))))));
288 ff1 = 8. - 8./aa - 0.008*aa;
289 ff2 = 2.34 - 5.4/aa - 0.0028*aa;
290 res /= (1.0 +
G4Exp(-ff1*(elog + ff2)));
294 G4double p3 = 0.6 + 13./aa - 0.0005*aa;
296 G4double p5 = 1.36 + 1.8/aa + 0.0005*aa;
297 G4double p6 = 1. + 200./aa + 0.02*aa;
298 G4double p7 = 3.0 - (aa-70.)*(aa-200.)/11000.;
303 res = (1.+p3*firstexp/(1. + firstexp))/(1. + secondexp);
312 outFile <<
"The Barashenkov-Glauber-Gribov cross section calculates inelastic\n"
313 <<
"scattering of protons and neutrons from nuclei using the\n"
314 <<
"Barashenkov parameterization below 91 GeV and the Glauber-Gribov\n"
315 <<
"parameterization above 91 GeV. It uses the G4HadronNucleonXsc\n"
316 <<
"cross section component for hydrogen targets, and the\n"
317 <<
"G4ComponentGGHadronNucleusXsc component for other targets.\n";