105   G4double Mproj = particle->GetPDGMass();
 
  115   if(
Z == 1 && 
A == 1)       theDef = theProton;
 
  116   else if (
Z == 1 && 
A == 2) theDef = theDeuteron;
 
  119   else if (
Z == 2 && 
A == 4) theDef = theAlpha;
 
  138   fTmax = 4.0*ptot*ptot;  
 
  140   if(Plab/std::abs(particle->GetBaryonNumber()) < 100.*
MeV)    
 
  143   G4double  Z1 = particle->GetPDGCharge();
 
  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);
 
static G4Pow * GetInstance()
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
G4double BesselOneByArg(G4double z)
 
static constexpr double twopi
 
G4double CalculateParticleBeta(const G4ParticleDefinition *particle, G4double momentum)
 
G4double GetAntiHadronNucleonTotCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
 
G4double Z13(G4int Z) const 
 
double A(double temperature)
 
static G4Triton * Triton()
 
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 DampFactor(G4double z)
 
G4double energy(const ThreeVector &p, const G4double m)
 
static constexpr double GeV
 
static constexpr double MeV
 
static constexpr double pi
 
G4double CalculateZommerfeld(G4double beta, G4double Z1, G4double Z2)
 
G4double GetcosTeta1(G4double plab, G4int A)
 
static constexpr double millibarn