115   if(Z == 1 && A == 1)       theDef = theProton;
 
  116   else if (Z == 1 && A == 2) theDef = theDeuteron;
 
  118   else if (Z == 2 && A == 3) theDef = 
G4He3::He3();
 
  119   else if (Z == 2 && A == 4) theDef = theAlpha;
 
  138   fTmax = 4.0*ptot*ptot;  
 
  152   G4double  XsCoulomb = 
sqr(n/fWaveVector)*
pi*(1+ctet1)/(1.+Am)/(1.+2.*Am-ctet1); 
 
  153   XsCoulomb=XsCoulomb*0.38938e+6;
 
  163   G4double CoulombProb =  XsCoulomb/(XsCoulomb+XsElastHad);
 
  175    G4double par1 = 2.*(1.+Am)/(1.+ctet1);
 
  179    G4double cosThetaCMS = (par1*ctet1- Ksi*(1.+2.*Am))/(par1-Ksi);
 
  183    G4double PtProjCMS = ptot*std::sqrt(1.0 - cosThetaCMS*cosThetaCMS);
 
  184    G4double PtX= PtProjCMS * std::cos(phi);
 
  185    G4double PtY= PtProjCMS * std::sin(phi);
 
  188    Fproj.
setE(std::sqrt(PtX*PtX+PtY*PtY+PtZ*PtZ+Mproj*Mproj));    
 
  189    T =  -(Pproj-Fproj).mag2();      
 
  207    if((A>=12.) && (A<27) ) fRa=fRa*0.85;
 
  208    if((A>=27.) && (A<48) ) fRa=fRa*0.90;
 
  209    if((A>=48.) && (A<65) ) fRa=fRa*0.95;
 
  214    if  ((theParticle == theAProton) || (theParticle == theANeutron))  
 
  216     if(theDef == theProton)
 
  223      { rho = 1.3347-10.342*Plab/1000.+22.277*Plab/1000.*Plab/1000.-
 
  224       13.634*Plab/1000.*Plab/1000.*Plab/1000. ;}
 
  225      if((Plab < 5500.)&&(Plab >= 610.) )
 
  227      if((Plab >= 5500.)&&(Plab < 12300.) )
 
  230      { rho = 0.135-2.26/(std::sqrt(S)) ;}
 
  232      Ref2 = 0.35 + 0.9/std::sqrt(std::sqrt(S-4.*0.88))+0.04*
G4Log(S) ;
 
  233      ceff2 = 0.375 - 2./S + 0.44/(
sqr(S-4.)+1.5) ;
 
  250     {  Ref2 = fRa*fRa +2.48*0.01*sig_pbarp*fRa - 2.23e-6*sig_pbarp*sig_pbarp*fRa*fRa; 
 
  251        ceff2 = 0.16+3.3e-4*sig_pbarp+0.35*
G4Exp(-0.03*sig_pbarp);
 
  254     {  Ref2 = fRa*fRa -0.46 +0.03*sig_pbarp - 2.98e-6*sig_pbarp*sig_pbarp;
 
  255        ceff2= 0.078 + 6.657e-4*sig_pbarp + 0.3359*
G4Exp(-0.03*sig_pbarp);
 
  258     {  Ref2 = fRa*fRa - 1.36 + 0.025 * sig_pbarp - 3.69e-7 * sig_pbarp*sig_pbarp;
 
  259        ceff2 = 0.149 + 7.091e-04*sig_pbarp + 0.3743*
G4Exp(-0.03*sig_pbarp);
 
  262     {  Ref2 = fRa*fRa - 1.36 + 0.025 * sig_pbarp - 3.69e-7 * sig_pbarp*sig_pbarp;
 
  263        ceff2 = 0.149 + 7.091e-04*sig_pbarp + 0.3743*
G4Exp(-0.03*sig_pbarp);
 
  267        Ref2 = fRa*fRa - 0.28 + 0.019 * sig_pbarp + 2.06e-6 * sig_pbarp*sig_pbarp;  
 
  268        ceff2 = 0.297 + 7.853e-04*sig_pbarp + 0.2899*
G4Exp(-0.03*sig_pbarp);
 
  272    if (theParticle == theADeuteron)
 
  275     Ref2 = XstotalHad/10./2./
pi ;
 
  278      ceff2 = 0.38 + 2.0e-4 *sig_pbarp + 0.5 * 
G4Exp(-0.03*sig_pbarp);
 
  280     if(theDef == theProton)
 
  282      ceff2 = 0.297 + 7.853e-04*sig_pbarp + 0.2899*
G4Exp(-0.03*sig_pbarp);
 
  284     if(theDef == theDeuteron)
 
  286      ceff2 = 0.65 + 3.0e-4*sig_pbarp + 0.55 * 
G4Exp(-0.03*sig_pbarp);
 
  290      ceff2 = 0.57 + 2.5e-4*sig_pbarp + 0.65 * 
G4Exp(-0.02*sig_pbarp);
 
  292     if(theDef == theAlpha)
 
  294      ceff2 = 0.40 + 3.5e-4 *sig_pbarp + 0.45 * 
G4Exp(-0.02*sig_pbarp);
 
  298    if( (theParticle ==theAHe3) || (theParticle ==theATriton) )
 
  301     Ref2 = XstotalHad/10./2./
pi ;
 
  304      ceff2 = 0.26 + 2.2e-4*sig_pbarp + 0.33*
G4Exp(-0.03*sig_pbarp);
 
  306     if(theDef == theProton)
 
  308      ceff2 = 0.149 + 7.091e-04*sig_pbarp + 0.3743*
G4Exp(-0.03*sig_pbarp);         
 
  310     if(theDef == theDeuteron)
 
  312      ceff2 = 0.57 + 2.5e-4*sig_pbarp + 0.65 * 
G4Exp(-0.02*sig_pbarp);
 
  316      ceff2 = 0.39 + 2.7e-4*sig_pbarp + 0.7 * 
G4Exp(-0.02*sig_pbarp);
 
  318     if(theDef == theAlpha)
 
  320      ceff2 = 0.24 + 3.5e-4*sig_pbarp + 0.75 * 
G4Exp(-0.03*sig_pbarp);
 
  325    if (theParticle == theAAlpha)
 
  328     Ref2 = XstotalHad/10./2./
pi ;
 
  331      ceff2 = 0.22 + 2.0e-4*sig_pbarp + 0.2 * 
G4Exp(-0.03*sig_pbarp);
 
  333     if(theDef == theProton)
 
  335      ceff2= 0.078 + 6.657e-4*sig_pbarp + 0.3359*
G4Exp(-0.03*sig_pbarp);   
 
  337     if(theDef == theDeuteron)  
 
  339      ceff2 = 0.40 + 3.5e-4 *sig_pbarp + 0.45 * 
G4Exp(-0.02*sig_pbarp);
 
  343      ceff2 = 0.24 + 3.5e-4*sig_pbarp + 0.75 * 
G4Exp(-0.03*sig_pbarp);   
 
  345     if(theDef == theAlpha)   
 
  347      ceff2 = 0.17 + 3.5e-4*sig_pbarp + 0.45 * 
G4Exp(-0.03*sig_pbarp);
 
  351    fRef=std::sqrt(Ref2);
 
  352    fceff = std::sqrt(ceff2);     
 
  358    const G4int maxNumberOfLoops = 10000;
 
  359    G4int loopCounter = 0;
 
  367     BracFunct = BracFunct * Q * 
sqr(
sqr(fRef));   
 
  370            ++loopCounter < maxNumberOfLoops );  
 
  371    if ( loopCounter >= maxNumberOfLoops ) {
 
  380    G4double cosTet=1.0-T/(2.*ptot*ptot);
 
  381    if(cosTet >  1.0 ) cosTet= 1.;          
 
  382    if(cosTet < -1.0 ) cosTet=-1.;          
 
  383    fTetaCMS=std::acos(cosTet);
 
  397   if(!(T < 0.0 || T >= 0.0))
 
  401       G4cout << 
"G4DiffuseElastic:WARNING: A = " << A
 
  402              << 
" mom(GeV)= " << plab/
GeV 
  403              << 
" S-wave will be sampled" 
  412    G4double cosTet=1.0-T/(2.*fptot*fptot);
 
  413    if(cosTet >  1.0 ) cosTet= 1.;          
 
  414    if(cosTet < -1.0 ) cosTet=-1.;          
 
  415    fTetaCMS=std::acos(cosTet); 
 
  433   if(!(T < 0.0 || T >= 0.0))
 
  437       G4cout << 
"G4DiffuseElastic:WARNING: A = " << A
 
  438              << 
" mom(GeV)= " << plab/
GeV 
  439              << 
" S-wave will be sampled" 
  448   if(fTmax > 0.) {cost = 1. - 2.0*T/fTmax;}             
 
  456   else if( cost <= -1.0)
 
  463     sint = std::sqrt((1.0-cost)*(1.0+cost));
 
  487  if( std::fabs(x) < 0.01 )
 
  507   fBeta         = a/std::sqrt(1+a*a);
 
  543   G4double modvalue, value2, fact1, fact2, arg, shift, bessel;
 
  545   modvalue = std::fabs(value);
 
  549     value2 = value*
value;
 
  551     fact1  = 57568490574.0 + value2*(-13362590354.0
 
  552                            + value2*( 651619640.7  
 
  553                            + value2*(-11214424.18
 
  554                            + value2*( 77392.33017
 
  555                            + value2*(-184.9052456   ) ) ) ) );
 
  557     fact2  = 57568490411.0 + value2*( 1029532985.0
 
  558                            + value2*( 9494680.718
 
  559                            + value2*(59272.64853
 
  560                            + value2*(267.8532712
 
  561                            + value2*1.0               ) ) ) );
 
  563     bessel = fact1/fact2;
 
  571     shift  = modvalue-0.785398164;
 
  573     fact1  = 1.0 + value2*(-0.1098628627e-2
 
  574                  + value2*(0.2734510407e-4
 
  575                  + value2*(-0.2073370639e-5
 
  576                  + value2*0.2093887211e-6    ) ) );
 
  577   fact2  = -0.1562499995e-1 + value2*(0.1430488765e-3
 
  578                               + value2*(-0.6911147651e-5
 
  579                               + value2*(0.7621095161e-6
 
  580                               - value2*0.934945152e-7    ) ) );
 
  582     bessel = std::sqrt(0.636619772/modvalue)*(std::cos(shift)*fact1 - arg*std::sin(shift)*fact2);
 
  594   G4double modvalue, value2, fact1, fact2, arg, shift, bessel;
 
  596   modvalue = std::fabs(value);
 
  598   if ( modvalue < 8.0 )
 
  600     value2 = value*
value;
 
  601     fact1  = value*(72362614232.0 + value2*(-7895059235.0
 
  602                                   + value2*( 242396853.1
 
  603                                   + value2*(-2972611.439
 
  604                                   + value2*( 15704.48260
 
  605                                   + value2*(-30.16036606  ) ) ) ) ) );
 
  607     fact2  = 144725228442.0 + value2*(2300535178.0
 
  608                             + value2*(18583304.74
 
  609                             + value2*(99447.43394
 
  610                             + value2*(376.9991397
 
  611                             + value2*1.0             ) ) ) );
 
  612     bessel = fact1/fact2;
 
  619     shift  = modvalue - 2.356194491;
 
  621     fact1  = 1.0 + value2*( 0.183105e-2
 
  622                  + value2*(-0.3516396496e-4
 
  623                  + value2*(0.2457520174e-5
 
  624                  + value2*(-0.240337019e-6          ) ) ) );
 
  626     fact2 = 0.04687499995 + value2*(-0.2002690873e-3
 
  627                           + value2*( 0.8449199096e-5
 
  628                           + value2*(-0.88228987e-6
 
  629                           + value2*0.105787412e-6       ) ) );
 
  631     bessel = std::sqrt( 0.636619772/modvalue)*(std::cos(shift)*fact1 - arg*std::sin(shift)*fact2);
 
  632     if (value < 0.0) bessel = -bessel;
 
  643   if( std::fabs(x) < 0.01 )
 
  647    result = (2.- x2 + x2*x2/6.)/4.;
 
  666   if(cteta1 < -1.) cteta1 = -1.0;
 
G4double G4ParticleHPJENDLHEData::G4double result
 
static G4Pow * GetInstance()
 
static G4AntiHe3 * AntiHe3()
 
Hep3Vector boostVector() const 
 
virtual ~G4AntiNuclElastic()
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
virtual G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
static constexpr double Bohr_radius
 
static G4AntiDeuteron * AntiDeuteron()
 
static constexpr double hbarc
 
G4double BesselOneByArg(G4double z)
 
static G4AntiAlpha * AntiAlpha()
 
static constexpr double twopi
 
G4double CalculateParticleBeta(const G4ParticleDefinition *particle, G4double momentum)
 
G4double GetAntiHadronNucleonTotCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
 
G4GLOB_DLL std::ostream G4cout
 
G4double Z13(G4int Z) const 
 
double A(double temperature)
 
const XML_Char int const XML_Char * value
 
static G4AntiProton * AntiProton()
 
HepLorentzVector & boost(double, double, double)
 
static G4Triton * Triton()
 
static G4Proton * Proton()
 
static G4Neutron * Neutron()
 
static G4Deuteron * Deuteron()
 
G4double SampleThetaLab(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
G4double G4Log(G4double x)
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
G4double BesselJzero(G4double z)
 
G4double CalculateAm(G4double momentum, G4double n, G4double Z)
 
G4double GetPDGMass() const 
 
G4double SampleThetaCMS(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
G4double A13(G4double A) const 
 
G4double DampFactor(G4double z)
 
G4double energy(const ThreeVector &p, const G4double m)
 
G4double BesselJone(G4double z)
 
static constexpr double GeV
 
G4double Z23(G4int Z) const 
 
static constexpr double MeV
 
static constexpr double pi
 
G4double CalculateZommerfeld(G4double beta, G4double Z1, G4double Z2)
 
static G4AntiTriton * AntiTriton()
 
static constexpr double fine_structure_const
 
static constexpr double fermi
 
G4double GetPDGCharge() const 
 
G4double GetcosTeta1(G4double plab, G4int A)
 
static G4AntiNeutron * AntiNeutron()
 
static constexpr double millibarn
 
G4int GetBaryonNumber() const