41 #ifndef G4NuclNuclDiffuseElastic_h
42 #define G4NuclNuclDiffuseElastic_h 1
403 if( std::fabs(x) < 0.01 )
405 df = 1./(1. + x/f2 + x*x/
f3 + x*x*x/
f4);
423 if( std::fabs(x) < 0.01 )
427 result = 2. - x2 + x2*x2/6.;
446 fBeta = a/std::sqrt(1+a*a);
519 G4double sinHalfTheta = std::sin(0.5*theta);
520 G4double sinHalfTheta2 = sinHalfTheta*sinHalfTheta;
528 G4double xsc = ch2/((sinHalfTheta2+am)*(sinHalfTheta2+am));
539 G4double sinHalfTheta = std::sin(0.5*theta);
540 G4double sinHalfTheta2 = sinHalfTheta*sinHalfTheta;
623 result += 1./z1 - 1./z3 +1./z5 -1./z7;
638 tmp = t*std::exp(-z*z-1.26551223+t*(1.00002368+t*(0.37409196+t*(0.09678418+
639 t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+
640 t*(-0.82215223+t*0.17087277)))))))));
642 if( x >= 0.) result = 1. -
tmp;
643 else result = 1. +
tmp;
725 for( n = 1; n <= nMax; n++)
735 sum *= 2.*std::exp(-z*z)/std::sqrt(
CLHEP::pi);
747 result *= std::cos(2.*x*fReZ);
758 result *= std::sin(2.*x*fReZ);
801 G4double sinHalfTheta = std::sin(0.5*theta);
802 G4double sinHalfTheta2 = sinHalfTheta*sinHalfTheta;
803 sinHalfTheta2 +=
fAm;
821 G4double out = ca.real()*ca.real() + ca.imag()*ca.imag();
849 return gammalog.imag();
874 G4double result = 0., argument = 0.;
879 argument = fProfileDelta*dTheta;
911 G4double result = 0., argument = 0.;
913 if(
std::abs(dTheta) < 0.001) result = 1.;
918 result /= std::sinh(result);
994 G4double mod2 = out.real()*out.real() + out.imag()*out.imag();
1007 G4double sindTheta = std::sin(dTheta);
1014 G4double out = 0.5*( cosFresnel*cosFresnel + sinFresnel*sinFresnel );
1049 G4double mod2 = out.real()*out.real() + out.imag()*out.imag();
1061 G4double mod2 = out.real()*out.real() + out.imag()*out.imag();
1072 G4double mod2 = out.real()*out.real() + out.imag()*out.imag();
1084 G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
1085 G4double sMand = mp*mp + mt*mt + 2*Elab*mt ;