69 if(kineticEnergy <= 0.0) {
return 0.0; }
72 if (kineticEnergy > thEnergy) { kineticEnergy = thEnergy; }
75 G4double a13 = std::pow(a,-0.3333333333);
78 G4double alog10E = std::log10(kineticEnergy);
80 const G4double nuleonRadius=1.36E-15;
81 const G4double fac=CLHEP::pi*nuleonRadius*nuleonRadius;
86 if(nOfNeutrons > 1) { fac2=std::log((
G4double(nOfNeutrons))); }
87 G4double crossSection = 1.0E31*fac*fac2*(1. + 1./a13 - fac1);
90 crossSection *= (1 - 0.15*std::exp(-kineticEnergy))/(1.0 - 0.0007*a);
97 G4double ff4= 1.0 - (1.0/(1+std::exp(-8*ff1*(alog10E + 1.37*ff2))));
99 crossSection *= (1 + ff3*ff4);
103 ff1=1. - 1./a - 0.001*
a;
104 ff2=1.17 - 2.7/a - 0.0014*
a;
106 ff4=-8.*ff1*(alog10E + 2.0*ff2);
108 crossSection *=
millibarn/(1. + std::exp(ff4));