42   fLowerLimit( 0.03 * 
MeV ),
 
   43   fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0)
 
   86   outFile << 
"G4HadronNucleonXsc calculates the total, inelastic and elastic\n" 
   87           << 
"hadron-nucleon cross sections using several different\n" 
   88           << 
"parameterizations within the Glauber-Gribov approach. It is\n" 
   89           << 
"valid for all incident gammas and long-lived hadrons at\n" 
   90           << 
"energies above 30 keV.  This is a cross section component which\n" 
   91           << 
"is to be used to build a cross section data set.\n"; 
 
  110   G4bool applicable = 
false;
 
  129          theParticle == 
thePiMinus       ) )    ) applicable = 
true;
 
  156   proj_momentum /= 
GeV;
 
  163   if(theParticle == 
theGamma && pORn ) 
 
  165     xsection = (0.0677*std::pow(sMand,0.0808) + 0.129*std::pow(sMand,-0.4525));
 
  169     xsection = (21.70*std::pow(sMand,0.0808) + 56.08*std::pow(sMand,-0.4525));
 
  171   else if(theParticle == 
theProton && pORn ) 
 
  173     xsection = (21.70*std::pow(sMand,0.0808) + 56.08*std::pow(sMand,-0.4525));
 
  180     xsection = ( 21.70*std::pow(sMand,0.0808) + 98.39*std::pow(sMand,-0.4525));
 
  182   else if(theParticle == 
thePiPlus && pORn ) 
 
  184     xsection = (13.63*std::pow(sMand,0.0808) + 27.56*std::pow(sMand,-0.4525));
 
  189     xsection = (13.63*std::pow(sMand,0.0808) + 36.02*std::pow(sMand,-0.4525));
 
  191   else if(theParticle == 
theKPlus && pORn ) 
 
  193     xsection = (11.82*std::pow(sMand,0.0808) + 8.15*std::pow(sMand,-0.4525));
 
  195   else if(theParticle == 
theKMinus && pORn ) 
 
  197     xsection = (11.82*std::pow(sMand,0.0808) + 26.36*std::pow(sMand,-0.4525));
 
  201     xsection = (21.70*std::pow(sMand,0.0808) + 56.08*std::pow(sMand,-0.4525));
 
  225   G4int Zt=1, Nt=1, At=1;
 
  253       xsection = Zt*( 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
  254                  + 40.15*std::pow(sMand,-eta1) - 30.*std::pow(sMand,-eta2));
 
  258       xsection  = Nt*( 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
  259                       + 42.53*std::pow(sMand,-eta1) - 33.34*std::pow(sMand,-eta2)); 
 
  266       xsection  = Zt*( 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
  267                           + 42.53*std::pow(sMand,-eta1) - 33.34*std::pow(sMand,-eta2));
 
  271       xsection = Nt*( 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
  272                           + 40.15*std::pow(sMand,-eta1) - 30.*std::pow(sMand,-eta2));
 
  279       xsection  = Zt*( 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
  280                           + 42.53*std::pow(sMand,-eta1) + 33.34*std::pow(sMand,-eta2));
 
  284       xsection = Nt*( 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
  285                           + 40.15*std::pow(sMand,-eta1) + 30.*std::pow(sMand,-eta2));
 
  288   else if(theParticle == 
thePiPlus && pORn ) 
 
  290     xsection  = At*( 20.86 + B*std::pow(std::log(sMand/s0),2.) 
 
  291                           + 19.24*std::pow(sMand,-eta1) - 6.03*std::pow(sMand,-eta2));
 
  295     xsection  = At*( 20.86 + B*std::pow(std::log(sMand/s0),2.) 
 
  296                           + 19.24*std::pow(sMand,-eta1) + 6.03*std::pow(sMand,-eta2));
 
  302       xsection  = Zt*( 17.91 + B*std::pow(std::log(sMand/s0),2.) 
 
  303                           + 7.14*std::pow(sMand,-eta1) - 13.45*std::pow(sMand,-eta2));
 
  307       xsection = Nt*( 17.87 + B*std::pow(std::log(sMand/s0),2.) 
 
  308                           + 5.17*std::pow(sMand,-eta1) - 7.23*std::pow(sMand,-eta2));
 
  315       xsection  = Zt*( 17.91 + B*std::pow(std::log(sMand/s0),2.) 
 
  316                           + 7.14*std::pow(sMand,-eta1) + 13.45*std::pow(sMand,-eta2));
 
  320       xsection = Nt*( 17.87 + B*std::pow(std::log(sMand/s0),2.) 
 
  321                           + 5.17*std::pow(sMand,-eta1) + 7.23*std::pow(sMand,-eta2) );
 
  324   else if(theParticle == 
theSMinus && pORn ) 
 
  326     xsection  = At*( 35.20 + B*std::pow(std::log(sMand/s0),2.) 
 
  327                           - 199.*std::pow(sMand,-eta1) + 264.*std::pow(sMand,-eta2) );
 
  329   else if(theParticle == 
theGamma && pORn ) 
 
  331     xsection  = At*( 0.0 + B*std::pow(std::log(sMand/s0),2.) 
 
  332                           + 0.032*std::pow(sMand,-eta1) - 0.0*std::pow(sMand,-eta2) );
 
  339       xsection  = Zt*( 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
  340                        + 42.53*std::pow(sMand,-eta1) - 33.34*std::pow(sMand,-eta2) );
 
  344       xsection = Nt*( 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
  345                       + 40.15*std::pow(sMand,-eta1) - 30.*std::pow(sMand,-eta2));
 
  416       fElasticXsc = 6.5 + 0.308*std::pow(std::log(sMand/400.),1.65) + 9.19*std::pow(sMand,-0.458);
 
  421     else if( pLab >= 100.)
 
  424       A0 = 100. - B0*std::log(3.0e7);
 
  426       xsection = A0 + B0*std::log(pE) - 11
 
  428                   + 103*std::pow(sMand,-0.165);        
 
  430       fElasticXsc = 5.53 + 0.308*std::pow(std::log(sMand/28.9),1.1) + 9.19*std::pow(sMand,-0.458);
 
  434     else if( pLab >= 10.)
 
  437         A0 = 100. - B0*std::log(3.0e7);
 
  439         xsection = A0 + B0*std::log(pE) - 11
 
  440                   + 103*std::pow(2*0.93827*pE + pM*pM+
 
  441                      0.93827*0.93827,-0.165);        
 
  443       fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  451           hnXsc = 23 + 50*( std::pow( std::log(0.73/pLab), 3.5 ) );
 
  454         else if( pLab < 0.73 )
 
  456           hnXsc = 23 + 50*( std::pow( std::log(0.73/pLab), 3.5 ) );
 
  459         else if( pLab < 1.05  )
 
  461           hnXsc = 23 + 40*(std::log(pLab/0.73))*
 
  462                          (std::log(pLab/0.73));
 
  464                          (std::log(pLab/0.73));
 
  468           hnXsc = 39.0+75*(pLab - 1.2)/(std::pow(pLab,3.0) + 0.15);
 
  470           fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  478           hpXsc = 4100+30*std::pow(std::log(1.3/pLab),3.6); 
 
  481         else if( pLab < 0.8 )
 
  483           hpXsc = 33+30*std::pow(std::log(pLab/1.3),4.0);
 
  486         else if( pLab < 1.05 )
 
  488           hpXsc = 33+30*std::pow(std::log(pLab/0.95),2.0);
 
  489           fElasticXsc =  6 + 52/( std::log(0.511/pLab)*std::log(0.511/pLab) + 1.6 );
 
  491         else if( pLab < 1.4 )
 
  493           hpXsc = 33+30*std::pow(std::log(pLab/0.95),2.0);
 
  494           fElasticXsc =  6 + 52/( std::log(0.511/pLab)*std::log(0.511/pLab) + 1.6 );
 
  498           hpXsc = 33.3 + 20.8*(std::pow(pLab,2.0) - 1.35)/(std::pow(pLab,2.50) + 0.95);
 
  500           fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  506   else if( theParticle == 
theProton && pORn ) 
 
  512       fElasticXsc = 6.5 + 0.308*std::pow(std::log(sMand/400.),1.65) + 9.19*std::pow(sMand,-0.458);
 
  516     else if( pLab >= 100.)
 
  519       A0 = 100. - B0*std::log(3.0e7);
 
  521       xsection = A0 + B0*std::log(pE) - 11 + 103*std::pow(sMand,-0.165);        
 
  523       fElasticXsc = 5.53 + 0.308*std::pow(std::log(sMand/28.9),1.1) + 9.19*std::pow(sMand,-0.458);
 
  527     else if( pLab >= 10.)
 
  530       A0 = 100. - B0*std::log(3.0e7);
 
  532       xsection = A0 + B0*std::log(pE) - 11 + 103*std::pow(sMand,-0.165);        
 
  534       fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  546           hpXsc = 23 + 50*( std::pow( std::log(0.73/pLab), 3.5 ) );
 
  549         else if( pLab < 0.73 )
 
  551           hpXsc = 23 + 50*( std::pow( std::log(0.73/pLab), 3.5 ) );
 
  554         else if( pLab < 1.05  )
 
  556           hpXsc = 23 + 40*(std::log(pLab/0.73))*
 
  557                          (std::log(pLab/0.73));
 
  559                          (std::log(pLab/0.73));
 
  563           hpXsc = 39.0+75*(pLab - 1.2)/(std::pow(pLab,3.0) + 0.15);
 
  565           fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  573           hnXsc = 4100+30*std::pow(std::log(1.3/pLab),3.6); 
 
  576         else if( pLab < 0.8 )
 
  578           hnXsc = 33+30*std::pow(std::log(pLab/1.3),4.0);
 
  581         else if( pLab < 1.05 )
 
  583           hnXsc = 33+30*std::pow(std::log(pLab/0.95),2.0);
 
  584           fElasticXsc =  6 + 52/( std::log(0.511/pLab)*std::log(0.511/pLab) + 1.6 );
 
  586         else if( pLab < 1.4 )
 
  588           hnXsc = 33+30*std::pow(std::log(pLab/0.95),2.0);
 
  589           fElasticXsc =  6 + 52/( std::log(0.511/pLab)*std::log(0.511/pLab) + 1.6 );
 
  593           hnXsc = 33.3 + 20.8*(std::pow(pLab,2.0) - 1.35)/(std::pow(pLab,2.50) + 0.95);
 
  595           fElasticXsc =  6 + 20/( (logP-0.182)*(logP-0.182) + 1.0 );
 
  605       xsection  = 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
  606                           + 42.53*std::pow(sMand,-eta1) + 33.34*std::pow(sMand,-eta2);
 
  610       xsection = 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
  611                           + 40.15*std::pow(sMand,-eta1) + 30.*std::pow(sMand,-eta2);
 
  615   else if( theParticle == 
thePiPlus && pORn ) 
 
  621         hpXsc       = 10./((logP + 1.273)*(logP + 1.273) + 0.05);
 
  624       else if( pLab < 0.4 )
 
  626         hpXsc       = 14./( (logP + 1.273)*(logP + 1.273) + 0.07);
 
  629       else if( pLab < 0.68 )
 
  631         hpXsc       = 14./( (logP + 1.273)*(logP + 1.273) + 0.07);
 
  634       else if( pLab < 0.85 )
 
  636         G4double Ex4 = 88*(std::log(pLab/0.77))*(std::log(pLab/0.77));
 
  640       else if( pLab < 1.15 )
 
  642         G4double Ex4 = 88*(std::log(pLab/0.77))*(std::log(pLab/0.77));
 
  645         fElasticXsc = 6.0 + 1.4/(( pLab - 1.4)*( pLab - 1.4) + 0.1);
 
  649         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  650         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  651         hpXsc        = Ex1 + Ex2 + 27.5;
 
  652         fElasticXsc = 6.0 + 1.4/(( pLab - 1.4)*( pLab - 1.4) + 0.1);
 
  654       else if( pLab < 2.0 ) 
 
  656         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  657         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  658         hpXsc        = Ex1 + Ex2 + 27.5;
 
  659         fElasticXsc = 3.0 + 1.36/( (logP - 0.336)*(logP - 0.336) + 0.08);    
 
  661       else if( pLab < 3.5 ) 
 
  663         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  664         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  665         hpXsc        = Ex1 + Ex2 + 27.5;
 
  666         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  668       else if( pLab < 200. ) 
 
  670         hpXsc = 10.6 + 2.*std::log(pE) + 25*std::pow(pE, -0.43 ); 
 
  672         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  677         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  685         hnXsc       = 0.288/((pLab - 0.28)*(pLab - 0.28) + 0.004);
 
  686         fElasticXsc = 1.8/((logP + 1.273)*(logP + 1.273) + 0.07);
 
  688       else if( pLab < 0.395676 ) 
 
  690         hnXsc       = 0.648/((pLab - 0.28)*(pLab - 0.28) + 0.009);
 
  691         fElasticXsc = 0.257/((pLab - 0.28)*(pLab - 0.28) + 0.01);
 
  693       else if( pLab < 0.5 )
 
  695         hnXsc       = 26 + 110*(std::log(pLab/0.48))*(std::log(pLab/0.48));
 
  698       else if( pLab < 0.65 )
 
  700         hnXsc       = 26 + 110*(std::log(pLab/0.48))*(std::log(pLab/0.48));
 
  701         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  703       else if( pLab < 0.72 )
 
  705         hnXsc = 36.1 + 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  706                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  707         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  709       else if( pLab < 0.88 )
 
  711         hnXsc = 36.1 + 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  712                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  713         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  715       else if( pLab < 1.03 )
 
  717         hnXsc = 36.1 + 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  718                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  719         fElasticXsc = 2.0 + 0.4/((pLab - 1.03)*(pLab - 1.03) + 0.016);
 
  721       else if( pLab < 1.15 )
 
  723         hnXsc = 36.1 + 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  724                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  725         fElasticXsc = 2.0 + 0.4/((pLab - 1.03)*(pLab - 1.03) + 0.016);
 
  727       else if( pLab < 1.3 )
 
  729         hnXsc = 36.1 + 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  730                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  733       else if( pLab < 2.6 ) 
 
  735         hnXsc = 36.1 + 0.079-4.313*std::log(pLab)+
 
  736                 3*std::exp(-(pLab-2.1)*(pLab-2.1)/0.4/0.4)+
 
  737                 1.5*std::exp(-(pLab-1.4)*(pLab-1.4)/0.12/0.12);
 
  740       else if( pLab < 20. ) 
 
  742         hnXsc = 36.1 + 0.079 - 4.313*std::log(pLab)+
 
  743                 3*std::exp(-(pLab-2.1)*(pLab-2.1)/0.4/0.4)+
 
  744                 1.5*std::exp(-(pLab-1.4)*(pLab-1.4)/0.12/0.12);
 
  761         hnXsc       = 10./((logP + 1.273)*(logP + 1.273) + 0.05);
 
  764       else if( pLab < 0.4 )
 
  766         hnXsc       = 14./( (logP + 1.273)*(logP + 1.273) + 0.07);
 
  769       else if( pLab < 0.68 )
 
  771         hnXsc       = 14./( (logP + 1.273)*(logP + 1.273) + 0.07);
 
  774       else if( pLab < 0.85 )
 
  776         G4double Ex4 = 88*(std::log(pLab/0.77))*(std::log(pLab/0.77));
 
  780       else if( pLab < 1.15 )
 
  782         G4double Ex4 = 88*(std::log(pLab/0.77))*(std::log(pLab/0.77));
 
  785         fElasticXsc = 6.0 + 1.4/(( pLab - 1.4)*( pLab - 1.4) + 0.1);
 
  789         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  790         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  791         hnXsc        = Ex1 + Ex2 + 27.5;
 
  792         fElasticXsc = 6.0 + 1.4/(( pLab - 1.4)*( pLab - 1.4) + 0.1);
 
  794       else if( pLab < 2.0 ) 
 
  796         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  797         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  798         hnXsc        = Ex1 + Ex2 + 27.5;
 
  799         fElasticXsc = 3.0 + 1.36/( (logP - 0.336)*(logP - 0.336) + 0.08);    
 
  801       else if( pLab < 3.5 ) 
 
  803         G4double Ex1 = 3.2*std::exp(-(pLab-2.55)*(pLab-2.55)/0.55/0.55);
 
  804         G4double Ex2 = 12*std::exp(-(pLab-1.47)*(pLab-1.47)/0.225/0.225);
 
  805         hnXsc        = Ex1 + Ex2 + 27.5;
 
  806         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  808       else if( pLab < 200. ) 
 
  810         hnXsc = 10.6 + 2.*std::log(pE) + 25*std::pow(pE, -0.43 ); 
 
  811         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  816         fElasticXsc = 3.0 + 6.20/( (logP - 0.336)*(logP - 0.336) + 0.8);    
 
  824         hpXsc       = 0.288/((pLab - 0.28)*(pLab - 0.28) + 0.004);
 
  825         fElasticXsc = 1.8/((logP + 1.273)*(logP + 1.273) + 0.07);
 
  827       else if( pLab < 0.395676 ) 
 
  829         hpXsc       = 0.648/((pLab - 0.28)*(pLab - 0.28) + 0.009);
 
  830         fElasticXsc = 0.257/((pLab - 0.28)*(pLab - 0.28) + 0.01);
 
  832       else if( pLab < 0.5 )
 
  834         hpXsc       = 26 + 110*(std::log(pLab/0.48))*(std::log(pLab/0.48));
 
  837       else if( pLab < 0.65 )
 
  839         hpXsc       = 26 + 110*(std::log(pLab/0.48))*(std::log(pLab/0.48));
 
  840         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  842       else if( pLab < 0.72 )
 
  845                 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  846                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  847         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  849       else if( pLab < 0.88 )
 
  852                 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  853                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  854         fElasticXsc = 0.95/((pLab - 0.72)*(pLab - 0.72) + 0.049);
 
  856       else if( pLab < 1.03 )
 
  859                 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  860                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  861         fElasticXsc = 2.0 + 0.4/((pLab - 1.03)*(pLab - 1.03) + 0.016);
 
  863       else if( pLab < 1.15 )
 
  866                 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  867                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  868         fElasticXsc = 2.0 + 0.4/((pLab - 1.03)*(pLab - 1.03) + 0.016);
 
  870       else if( pLab < 1.3 )
 
  873                 10*std::exp(-(pLab-0.72)*(pLab-0.72)/0.06/0.06)+
 
  874                 24*std::exp(-(pLab-1.015)*(pLab-1.015)/0.075/0.075);
 
  877       else if( pLab < 2.6 ) 
 
  879         hpXsc = 36.1+0.079-4.313*std::log(pLab)+
 
  880                 3*std::exp(-(pLab-2.1)*(pLab-2.1)/0.4/0.4)+
 
  881                 1.5*std::exp(-(pLab-1.4)*(pLab-1.4)/0.12/0.12);
 
  892   else if( (theParticle == 
theKMinus || theParticle == 
theK0S) && proton )   
 
  896       G4double psp = pLab*std::sqrt(pLab);
 
  900     else if( pLab > pMax )
 
  902       G4double ld  = std::log(pLab) - minLogP;
 
  909       G4double ld  = std::log(pLab) - minLogP;
 
  927       fElasticXsc  = 5.2/psp + (1.1*cofLogE*ld2 + 2.23)/(1. - .7/sp + .075/p4) 
 
  928                      + .004/md + 0.005/hd1+ 0.01/hd2 +.15/hd; 
 
  930       fTotalXsc    = 14./psp + (1.1*cofLogT*ld2 + 19.5)/(1. - .21/sp + .52/p4) 
 
  931                      + .006/md  + 0.01/hd1+ 0.02/hd2 + .20/hd ;
 
  938       G4double ld  = std::log(pLab) - minLogP;
 
  949       G4double LogPlab = std::log( pLab );
 
  950       G4double sqrLogPlab = LogPlab * LogPlab;
 
  953                      5.0 +  8.1*std::pow(pLab,-1.8 ) + 0.16*sqrLogPlab - 1.3*LogPlab + .15/hd;
 
  956                      25.2 +  0. *std::pow(pLab, 0.  ) + 0.38*sqrLogPlab - 2.9*LogPlab                
 
  961   else if(  (theParticle == 
theKPlus || theParticle == 
theK0L) && proton  )  
 
  971     else if( pLab > pMax )
 
  973       G4double ld  = std::log(pLab) - minLogP;
 
  980       G4double ld  = std::log(pLab) - minLogP;
 
  989       fElasticXsc  = LE + (cofLogE*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
 
  990       fTotalXsc    = LE + (cofLogT*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 2.6/md;
 
 1002     else if( pLab > pMax )
 
 1004       G4double ld  = std::log(pLab) - minLogP;
 
 1011       G4double ld  = std::log(pLab) - minLogP;
 
 1018       fElasticXsc  = (cofLogE*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
 
 1019       fTotalXsc    = (cofLogT*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 4.6/md;
 
 1022   else if( theParticle == 
theSMinus && pORn ) 
 
 1024     xsection  = 35.20 + B*std::pow(std::log(sMand/s0),2.) 
 
 1025                           - 199.*std::pow(sMand,-eta1) + 264.*std::pow(sMand,-eta2);
 
 1027   else if( theParticle == 
theGamma && pORn ) 
 
 1029     xsection  = 0.0 + B*std::pow(std::log(sMand/s0),2.) 
 
 1030                           + 0.032*std::pow(sMand,-eta1) - 0.0*std::pow(sMand,-eta2);
 
 1037       xsection  = 35.45 + B*std::pow(std::log(sMand/s0),2.) 
 
 1038                           + 42.53*std::pow(sMand,-eta1) - 33.34*std::pow(sMand,-eta2);
 
 1042       xsection += 35.80 + B*std::pow(std::log(sMand/s0),2.) 
 
 1043                           + 40.15*std::pow(sMand,-eta1) - 30.*std::pow(sMand,-eta2);
 
 1075   G4double LogPlab = std::log( pLab );
 
 1076   G4double sqrLogPlab = LogPlab * LogPlab;
 
 1094       G4double psp = pLab*std::sqrt(pLab);
 
 1098     else if( pLab > pMax )
 
 1100       G4double ld  = std::log(pLab) - minLogP;
 
 1107       G4double ld  = std::log(pLab) - minLogP;
 
 1118       fElasticXsc  = 5.2/psp + (cofLogE*ld2 + 2.23)/(1. - .7/sp + .075/p4) 
 
 1120       fTotalXsc    = 14./psp + (1.1*cofLogT*ld2 + 19.5)/(1. - .21/sp + .52/p4) 
 
 1129       G4double ld  = std::log(pLab) - minLogP;
 
 1141                      5.0 +  8.1*std::pow(pLab,-1.8 ) + 0.16*sqrLogPlab - 1.3*LogPlab + .15/hd;
 
 1144                      25.2 +  0. *std::pow(pLab, 0.  ) + 0.38*sqrLogPlab - 2.9*LogPlab                
 
 1149   else if(  (theParticle == 
theKPlus || theParticle == 
theK0L) && proton )  
 
 1160     else if( pLab > pMax )
 
 1162       G4double ld  = std::log(pLab) - minLogP;
 
 1169       G4double ld  = std::log(pLab) - minLogP;
 
 1178       fElasticXsc  = LE + (cofLogE*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
 
 1179       fTotalXsc    = (cofLogT*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 7.6/md; 
 
 1191     else if( pLab > pMax )
 
 1193       G4double ld  = std::log(pLab) - minLogP;
 
 1200       G4double ld  = std::log(pLab) - minLogP;
 
 1207       fElasticXsc  = (cofLogE*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
 
 1208       fTotalXsc    = (cofLogT*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 7.6/md;
 
 1238   G4int absPDGcode = std::abs(PDGcode);
 
 1247   G4double LogPlab = std::log( Plab );
 
 1248   G4double sqrLogPlab = LogPlab * LogPlab;
 
 1255   if( absPDGcode > 1000 && pORn )  
 
 1259       fTotalXsc   = 48.0 +  0. *std::pow(Plab, 0.  ) + 0.522*sqrLogPlab - 4.51*LogPlab;
 
 1260       fElasticXsc = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
 
 1264       fTotalXsc   = 47.3 +  0. *std::pow(Plab, 0.  ) + 0.513*sqrLogPlab - 4.27*LogPlab;
 
 1265       fElasticXsc = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
 
 1268   else if( PDGcode ==  211  && pORn )  
 
 1272       fTotalXsc  = 16.4 + 19.3 *std::pow(Plab,-0.42) + 0.19 *sqrLogPlab - 0.0 *LogPlab;
 
 1273       fElasticXsc =  0.0 + 11.4*std::pow(Plab,-0.40) + 0.079*sqrLogPlab - 0.0 *LogPlab;
 
 1277       fTotalXsc   =  33.0 + 14.0 *std::pow(Plab,-1.36) + 0.456*sqrLogPlab - 4.03*LogPlab;
 
 1278       fElasticXsc = 1.76 + 11.2*std::pow(Plab,-0.64) + 0.043*sqrLogPlab - 0.0 *LogPlab;
 
 1281   else if( PDGcode == -211  && pORn )  
 
 1285       fTotalXsc   = 33.0 + 14.0 *std::pow(Plab,-1.36) + 0.456*sqrLogPlab - 4.03*LogPlab;
 
 1286       fElasticXsc = 1.76 + 11.2*std::pow(Plab,-0.64) + 0.043*sqrLogPlab - 0.0 *LogPlab;
 
 1290       fTotalXsc   = 16.4 + 19.3 *std::pow(Plab,-0.42) + 0.19 *sqrLogPlab - 0.0 *LogPlab;
 
 1291       fElasticXsc =  0.0 + 11.4*std::pow(Plab,-0.40) + 0.079*sqrLogPlab - 0.0 *LogPlab;
 
 1294   else if( PDGcode ==  111  && pORn )  
 
 1298       fTotalXsc   = (16.4 + 19.3 *std::pow(Plab,-0.42) + 0.19 *sqrLogPlab - 0.0 *LogPlab +   
 
 1299                         33.0 + 14.0 *std::pow(Plab,-1.36) + 0.456*sqrLogPlab - 4.03*LogPlab)/2; 
 
 1301       fElasticXsc = ( 0.0 + 11.4*std::pow(Plab,-0.40) + 0.079*sqrLogPlab - 0.0 *LogPlab +    
 
 1302                          1.76 + 11.2*std::pow(Plab,-0.64) + 0.043*sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1307       fTotalXsc   = (33.0 + 14.0 *std::pow(Plab,-1.36) + 0.456*sqrLogPlab - 4.03*LogPlab +   
 
 1308                         16.4 + 19.3 *std::pow(Plab,-0.42) + 0.19 *sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1309       fElasticXsc = ( 1.76 + 11.2*std::pow(Plab,-0.64) + 0.043*sqrLogPlab - 0.0 *LogPlab +   
 
 1310                          0.0  + 11.4*std::pow(Plab,-0.40) + 0.079*sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1313   else if( PDGcode == 321  && pORn )    
 
 1317       fTotalXsc   = 18.1 +  0. *std::pow(Plab, 0.  ) + 0.26 *sqrLogPlab - 1.0 *LogPlab;
 
 1318       fElasticXsc =  5.0 +  8.1*std::pow(Plab,-1.8 ) + 0.16 *sqrLogPlab - 1.3 *LogPlab;
 
 1322       fTotalXsc   = 18.7 +  0. *std::pow(Plab, 0.  ) + 0.21 *sqrLogPlab - 0.89*LogPlab;
 
 1323       fElasticXsc =  7.3 +  0. *std::pow(Plab,-0.  ) + 0.29 *sqrLogPlab - 2.4 *LogPlab;
 
 1326   else if( PDGcode ==-321  && pORn )  
 
 1330       fTotalXsc   = 32.1 +  0. *std::pow(Plab, 0.  ) + 0.66*sqrLogPlab - 5.6*LogPlab;
 
 1331       fElasticXsc =  7.3 +  0. *std::pow(Plab,-0.  ) + 0.29*sqrLogPlab - 2.4*LogPlab;
 
 1335       fTotalXsc   = 25.2 +  0. *std::pow(Plab, 0.  ) + 0.38*sqrLogPlab - 2.9*LogPlab;
 
 1336       fElasticXsc =  5.0 +  8.1*std::pow(Plab,-1.8 ) + 0.16*sqrLogPlab - 1.3*LogPlab;
 
 1339   else if( PDGcode == 311  && pORn )  
 
 1343       fTotalXsc   = ( 18.1 +  0. *std::pow(Plab, 0.  ) + 0.26 *sqrLogPlab - 1.0 *LogPlab +   
 
 1344                         32.1 +  0. *std::pow(Plab, 0.  ) + 0.66 *sqrLogPlab - 5.6 *LogPlab)/2; 
 
 1345       fElasticXsc = (  5.0 +  8.1*std::pow(Plab,-1.8 ) + 0.16 *sqrLogPlab - 1.3 *LogPlab +   
 
 1346                          7.3 +  0. *std::pow(Plab,-0.  ) + 0.29 *sqrLogPlab - 2.4 *LogPlab)/2; 
 
 1350       fTotalXsc   = ( 18.7 +  0. *std::pow(Plab, 0.  ) + 0.21 *sqrLogPlab - 0.89*LogPlab +   
 
 1351                          25.2 +  0. *std::pow(Plab, 0.  ) + 0.38 *sqrLogPlab - 2.9 *LogPlab)/2; 
 
 1352       fElasticXsc = (  7.3 +  0. *std::pow(Plab,-0.  ) + 0.29 *sqrLogPlab - 2.4 *LogPlab +   
 
 1353                          5.0 +  8.1*std::pow(Plab,-1.8 ) + 0.16 *sqrLogPlab - 1.3 *LogPlab)/2; 
 
 1360       fTotalXsc   = 48.0 +  0. *std::pow(Plab, 0.  ) + 0.522*sqrLogPlab - 4.51*LogPlab;
 
 1361       fElasticXsc = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
 
 1365       fTotalXsc   = 47.3 +  0. *std::pow(Plab, 0.  ) + 0.513*sqrLogPlab - 4.27*LogPlab;
 
 1366       fElasticXsc = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
 
 1385   G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
 
 1386   G4double Ecm  = std::sqrt ( mp * mp + mt * mt + 2 * Elab * mt );
 
 1402   G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
 
 1403   G4double sMand  = mp*mp + mt*mt + 2*Elab*mt ;
 
 1423   else                                               pR = 0.500*
fermi;
 
 1435   G4double totEcm  = std::sqrt(pM*pM + tM*tM + 2.*pElab*tM);
 
 1439   G4double bC    = fine_structure_const*hbarc*pZ*tZ;
 
 1446   if( totTcm <= bC ) ratio = 0.;
 
 1447   else               ratio = 1. - bC/totTcm;
 
 1450   if( ratio < 0.) ratio = 0.;
 
 1476   for( i = 0; i < iMax; i++)
 
 1492   for( i = 0; i < iMax; i++)
 
 1507   for( i = 0; i < iMax; i++)
 
 1523   for( i = 0; i < iMax; i++)
 
 1538 0.000000e+00, 1.592400e-01, 3.184700e-01, 7.961800e-01, 1.433120e+00, 2.070060e+00, 
 
 1539 2.866240e+00, 3.582800e+00, 4.378980e+00, 5.015920e+00, 5.573250e+00, 6.449040e+00, 
 
 1540 7.404460e+00, 8.200640e+00, 8.837580e+00, 9.713380e+00, 1.027070e+01, 1.090764e+01, 
 
 1541 1.130573e+01, 1.170382e+01, 1.242038e+01, 1.281847e+01, 1.321656e+01, 1.337580e+01, 
 
 1542 1.345541e+01, 1.329618e+01, 1.265924e+01, 1.242038e+01, 1.250000e+01, 1.305732e+01, 
 
 1543 1.369427e+01, 1.425159e+01, 1.544586e+01, 1.648089e+01, 1.751592e+01, 1.791401e+01, 
 
 1544 1.791401e+01, 1.775478e+01, 1.751592e+01, 1.735669e+01, 1.719745e+01, 1.711783e+01, 
 
 1545 1.703822e+01, 1.695860e+01, 1.695860e+01, 1.695860e+01, 1.695860e+01, 1.687898e+01, 
 
 1546 1.687898e+01, 1.703822e+01, 1.719745e+01, 1.735669e+01, 1.751592e+01, 1.767516e+01, 
 
 1547 1.783439e+01, 1.799363e+01, 1.815287e+01, 1.839172e+01, 1.855095e+01, 1.871019e+01, 
 
 1548 1.886943e+01, 1.918790e+01, 1.942675e+01, 1.966561e+01, 2.006369e+01, 2.054140e+01 
 
 1553 2.100000e+00, 2.180770e+00, 2.261540e+00, 2.396150e+00, 2.476920e+00, 2.557690e+00, 
 
 1554 2.557690e+00, 2.584620e+00, 2.638460e+00, 2.665380e+00, 2.719230e+00, 2.746150e+00, 
 
 1555 2.800000e+00, 2.853850e+00, 2.934620e+00, 3.042310e+00, 3.150000e+00, 3.311540e+00, 
 
 1556 3.446150e+00, 3.607690e+00, 3.930770e+00, 4.226920e+00, 4.361540e+00, 4.846150e+00, 
 
 1557 4.980770e+00, 5.088460e+00, 5.465380e+00, 5.653850e+00, 5.950000e+00, 6.084620e+00, 
 
 1558 6.246150e+00, 6.300000e+00, 6.380770e+00, 6.515380e+00, 6.730770e+00, 6.838460e+00, 
 
 1559 7.000000e+00, 7.161540e+00, 7.323080e+00, 7.457690e+00, 7.619230e+00, 7.780770e+00, 
 
 1560 7.915380e+00, 8.130770e+00, 8.265380e+00, 8.453850e+00, 8.642310e+00, 8.803850e+00, 
 
 1561 9.019230e+00, 9.234620e+00, 9.530770e+00, 9.773080e+00, 1.001538e+01, 1.017692e+01, 
 
 1562 1.033846e+01, 1.058077e+01, 1.082308e+01, 1.098462e+01, 1.114615e+01, 1.138846e+01, 
 
 1563 1.160385e+01, 1.173846e+01, 1.192692e+01, 1.216923e+01, 1.238461e+01, 1.257308e+01 
 
 1567 3.980900e-01, 3.184700e-01, 3.184700e-01, 3.980900e-01, 3.980900e-01, 3.980900e-01, 
 
 1568 3.980900e-01, 3.980900e-01, 3.980900e-01, 4.777100e-01, 3.980900e-01, 3.980900e-01, 
 
 1569 4.777100e-01, 5.573200e-01, 1.035030e+00, 1.512740e+00, 2.149680e+00, 2.786620e+00, 
 
 1570 3.503180e+00, 4.219750e+00, 5.015920e+00, 5.652870e+00, 6.289810e+00, 7.245220e+00, 
 
 1571 8.121020e+00, 8.837580e+00, 9.633760e+00, 1.042994e+01, 1.114650e+01, 1.194268e+01, 
 
 1572 1.265924e+01, 1.329618e+01, 1.393312e+01, 1.449045e+01, 1.496815e+01, 1.552548e+01, 
 
 1573 1.592357e+01, 1.664013e+01, 1.727707e+01, 1.783439e+01, 1.831210e+01, 1.902866e+01, 
 
 1574 1.902866e+01, 1.878981e+01, 1.847134e+01, 1.831210e+01, 1.807325e+01, 1.791401e+01, 
 
 1575 1.783439e+01, 1.767516e+01, 1.759554e+01, 1.743631e+01, 1.743631e+01, 1.751592e+01, 
 
 1576 1.743631e+01, 1.735669e+01, 1.751592e+01, 1.759554e+01, 1.767516e+01, 1.783439e+01, 
 
 1577 1.783439e+01, 1.791401e+01, 1.815287e+01, 1.823248e+01, 1.847134e+01, 1.878981e+01, 
 
 1578 1.894905e+01, 1.902866e+01, 1.934713e+01, 1.966561e+01, 1.990446e+01, 2.014331e+01, 
 
 1579 2.030255e+01, 2.046178e+01, 2.085987e+01 
 
 1583 2.692000e-02, 1.615400e-01, 2.961500e-01, 4.576900e-01, 6.461500e-01, 7.538500e-01, 
 
 1584 8.884600e-01, 1.103850e+00, 1.211540e+00, 1.400000e+00, 1.561540e+00, 1.776920e+00, 
 
 1585 1.992310e+00, 2.126920e+00, 2.342310e+00, 2.423080e+00, 2.557690e+00, 2.692310e+00, 
 
 1586 2.800000e+00, 2.988460e+00, 3.203850e+00, 3.365380e+00, 3.500000e+00, 3.688460e+00, 
 
 1587 3.850000e+00, 4.011540e+00, 4.173080e+00, 4.415380e+00, 4.630770e+00, 4.873080e+00, 
 
 1588 5.061540e+00, 5.276920e+00, 5.492310e+00, 5.707690e+00, 5.896150e+00, 6.030770e+00, 
 
 1589 6.138460e+00, 6.219230e+00, 6.273080e+00, 6.326920e+00, 6.407690e+00, 6.650000e+00, 
 
 1590 6.784620e+00, 7.026920e+00, 7.242310e+00, 7.350000e+00, 7.484620e+00, 7.619230e+00, 
 
 1591 7.807690e+00, 7.915380e+00, 8.050000e+00, 8.211540e+00, 8.453850e+00, 8.588460e+00, 
 
 1592 8.830770e+00, 9.073080e+00, 9.288460e+00, 9.476920e+00, 9.665380e+00, 9.826920e+00, 
 
 1593 1.004231e+01, 1.031154e+01, 1.052692e+01, 1.071538e+01, 1.095769e+01, 1.120000e+01, 
 
 1594 1.138846e+01, 1.155000e+01, 1.176538e+01, 1.190000e+01, 1.214231e+01, 1.222308e+01, 
 
 1595 1.238461e+01, 1.246538e+01, 1.265385e+01 
 
 1599 1.136585e+02, 9.749129e+01, 9.275262e+01, 8.885017e+01, 8.334146e+01, 7.955401e+01, 
 
 1600 7.504530e+01, 7.153658e+01, 6.858537e+01, 6.674913e+01, 6.525784e+01, 6.448781e+01, 
 
 1601 6.360279e+01, 6.255401e+01, 6.127526e+01, 6.032404e+01, 5.997910e+01, 5.443554e+01, 
 
 1602 5.376307e+01, 5.236934e+01, 5.113937e+01, 5.090941e+01, 4.967944e+01, 4.844948e+01, 
 
 1603 4.705575e+01, 4.638327e+01, 4.571080e+01, 4.475958e+01, 4.397213e+01, 4.257840e+01, 
 
 1604 4.102090e+01, 4.090592e+01, 3.906969e+01, 3.839721e+01, 3.756097e+01, 3.644599e+01, 
 
 1605 3.560976e+01, 3.533101e+01, 3.533101e+01, 3.644599e+01, 3.811847e+01, 3.839721e+01, 
 
 1606 3.979094e+01, 4.090592e+01, 4.257840e+01, 4.341463e+01, 4.425087e+01, 4.564460e+01, 
 
 1607 4.759582e+01, 4.703833e+01, 4.843206e+01, 4.787457e+01, 4.452962e+01, 4.202090e+01, 
 
 1608 4.034843e+01, 3.839721e+01, 3.616725e+01, 3.365854e+01, 3.170732e+01, 3.087108e+01, 
 
 1609 3.170732e+01, 3.254355e+01, 3.310104e+01, 3.254355e+01, 3.142857e+01, 3.059233e+01, 
 
 1610 2.947735e+01, 2.891986e+01, 2.836237e+01, 2.752613e+01, 2.696864e+01, 2.641115e+01, 
 
 1611 2.501742e+01, 2.473868e+01, 2.418118e+01, 2.362369e+01, 2.334495e+01, 2.278746e+01, 
 
 1612 2.250871e+01, 2.222997e+01, 2.167247e+01, 2.139373e+01, 2.139373e+01, 2.139373e+01, 
 
 1613 2.111498e+01, 2.083624e+01, 2.055749e+01, 2.083624e+01, 2.055749e+01, 2.083624e+01, 
 
 1614 2.083624e+01, 2.055749e+01, 2.055749e+01, 2.055749e+01, 2.027875e+01, 2.000000e+01, 
 
 1615 2.055749e+01, 2.027875e+01, 2.083624e+01, 2.083624e+01, 2.055749e+01, 2.083624e+01, 
 
 1616 2.083624e+01, 2.083624e+01, 2.139373e+01, 2.139373e+01
 
 1620 4.017980e+00, 4.125840e+00, 4.179780e+00, 4.251690e+00, 4.287640e+00, 4.341570e+00, 
 
 1621 4.395510e+00, 4.467420e+00, 4.503370e+00, 4.575280e+00, 4.683150e+00, 4.737080e+00, 
 
 1622 4.773030e+00, 4.826970e+00, 4.880900e+00, 4.916850e+00, 4.952810e+00, 4.988760e+00, 
 
 1623 4.988760e+00, 5.006740e+00, 5.006740e+00, 5.042700e+00, 5.078650e+00, 5.114610e+00, 
 
 1624 5.132580e+00, 5.150560e+00, 5.186520e+00, 5.204490e+00, 5.276400e+00, 5.348310e+00, 
 
 1625 5.366290e+00, 5.384270e+00, 5.456180e+00, 5.564040e+00, 5.600000e+00, 5.671910e+00, 
 
 1626 5.743820e+00, 5.833710e+00, 5.905620e+00, 5.977530e+00, 6.085390e+00, 6.085390e+00, 
 
 1627 6.157300e+00, 6.175280e+00, 6.211240e+00, 6.229210e+00, 6.247190e+00, 6.337080e+00, 
 
 1628 6.391010e+00, 6.516850e+00, 6.462920e+00, 6.498880e+00, 6.570790e+00, 6.606740e+00, 
 
 1629 6.660670e+00, 6.678650e+00, 6.696630e+00, 6.732580e+00, 6.804490e+00, 6.876400e+00, 
 
 1630 6.948310e+00, 7.020220e+00, 7.074160e+00, 7.182020e+00, 7.235960e+00, 7.289890e+00, 
 
 1631 7.397750e+00, 7.523600e+00, 7.631460e+00, 7.757300e+00, 7.901120e+00, 8.062920e+00, 
 
 1632 8.260670e+00, 8.386520e+00, 8.530340e+00, 8.674160e+00, 8.817980e+00, 8.943820e+00, 
 
 1633 9.087640e+00, 9.267420e+00, 9.429210e+00, 9.573030e+00, 9.698880e+00, 9.896630e+00, 
 
 1634 1.002247e+01, 1.016629e+01, 1.031011e+01, 1.048989e+01, 1.063371e+01, 1.077753e+01, 
 
 1635 1.095730e+01, 1.108315e+01, 1.120899e+01, 1.135281e+01, 1.149663e+01, 1.162247e+01, 
 
 1636 1.174831e+01, 1.187416e+01, 1.200000e+01, 1.212584e+01, 1.221573e+01, 1.234157e+01, 
 
 1637 1.239551e+01, 1.250337e+01, 1.261124e+01, 1.273708e+01 
 
 1641 2.621810e+01, 2.741123e+01, 2.868413e+01, 2.963889e+01, 3.067343e+01, 3.178759e+01, 
 
 1642 3.282148e+01, 3.417466e+01, 3.536778e+01, 3.552620e+01, 3.544576e+01, 3.496756e+01, 
 
 1643 3.433030e+01, 3.401166e+01, 3.313537e+01, 3.257772e+01, 3.178105e+01, 3.138264e+01, 
 
 1644 3.074553e+01, 2.970952e+01, 2.891301e+01, 2.827542e+01, 2.787700e+01, 2.715978e+01, 
 
 1645 2.660181e+01, 2.612394e+01, 2.564574e+01, 2.516721e+01, 2.421098e+01, 2.365235e+01, 
 
 1646 2.317366e+01, 2.261437e+01, 2.237389e+01, 2.205427e+01, 2.181395e+01, 2.165357e+01, 
 
 1647 2.149335e+01, 2.133297e+01, 2.109232e+01, 2.093128e+01, 2.069030e+01, 2.052992e+01, 
 
 1648 2.028927e+01, 2.012824e+01, 1.996737e+01, 1.996590e+01, 1.988530e+01, 1.964432e+01, 
 
 1649 1.948361e+01, 1.940236e+01, 1.940040e+01, 1.931882e+01, 1.947593e+01, 1.947429e+01, 
 
 1650 1.939320e+01, 1.939157e+01, 1.946922e+01, 1.962715e+01, 1.970481e+01, 1.970301e+01, 
 
 1651 1.993958e+01, 2.009669e+01, 2.025380e+01, 2.033178e+01, 2.049003e+01, 2.064747e+01, 
 
 1652 2.080540e+01, 2.096333e+01 
 
 1656 5.708500e+00, 5.809560e+00, 5.896270e+00, 5.954120e+00, 5.997630e+00, 6.041160e+00, 
 
 1657 6.142160e+00, 6.171410e+00, 6.272470e+00, 6.344390e+00, 6.416230e+00, 6.459180e+00, 
 
 1658 6.487690e+00, 6.501940e+00, 6.544740e+00, 6.573280e+00, 6.616110e+00, 6.644710e+00, 
 
 1659 6.658840e+00, 6.744700e+00, 6.773150e+00, 6.830410e+00, 6.859010e+00, 6.916240e+00, 
 
 1660 6.973530e+00, 6.987730e+00, 7.030670e+00, 7.102360e+00, 7.173880e+00, 7.288660e+00, 
 
 1661 7.374720e+00, 7.547000e+00, 7.690650e+00, 7.791150e+00, 7.920420e+00, 8.020980e+00, 
 
 1662 8.107160e+00, 8.207720e+00, 8.365740e+00, 8.523790e+00, 8.710560e+00, 8.811110e+00, 
 
 1663 8.969140e+00, 9.127190e+00, 9.270860e+00, 9.400230e+00, 9.486440e+00, 9.673210e+00, 
 
 1664 9.802510e+00, 9.946220e+00, 1.011870e+01, 1.029116e+01, 1.047808e+01, 1.062181e+01, 
 
 1665 1.075114e+01, 1.089488e+01, 1.106739e+01, 1.118244e+01, 1.135496e+01, 1.151307e+01, 
 
 1666 1.171439e+01, 1.190130e+01, 1.208822e+01, 1.223199e+01, 1.231829e+01, 1.247646e+01, 
 
 1667 1.259150e+01, 1.270655e+01 
 
G4ParticleDefinition * thePiMinus
 
G4ParticleDefinition * theXiMinus
 
void PutValues(size_t binNumber, G4double binValue, G4double dataValue)
 
G4ParticleDefinition * theXi0
 
virtual ~G4HadronNucleonXsc()
 
G4double GetCoulombBarrier(const G4DynamicParticle *aParticle, const G4ParticleDefinition *nucleon)
 
G4ParticleDefinition * theS0
 
static G4AntiOmegaMinus * AntiOmegaMinus()
 
G4LPhysicsFreeVector fKpNeutronTotXscVector
 
G4double GetKineticEnergy() const 
 
G4ParticleDefinition * theNeutron
 
G4double GetTotalEnergy() const 
 
G4ParticleDefinition * theAProton
 
G4LPhysicsFreeVector fKmProtonTotXscVector
 
G4ParticleDefinition * theK0S
 
G4ParticleDefinition * theT
 
static const G4double fKmNeutronTotTkin[68]
 
static G4OmegaMinus * OmegaMinus()
 
static G4KaonZeroLong * KaonZeroLong()
 
G4int GetPDGEncoding() const 
 
G4ParticleDefinition * GetDefinition() const 
 
static G4AntiSigmaPlus * AntiSigmaPlus()
 
G4ParticleDefinition * theANeutron
 
static G4SigmaZero * SigmaZero()
 
static G4KaonMinus * KaonMinus()
 
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4ParticleDefinition *)
 
static const G4double fKpNeutronTotXsc[75]
 
static G4AntiSigmaMinus * AntiSigmaMinus()
 
static G4XiZero * XiZero()
 
G4ParticleDefinition * theASMinus
 
static const G4double fKmNeutronTotXsc[68]
 
G4ParticleDefinition * theK0L
 
G4double GetKaonNucleonXscGG(const G4DynamicParticle *, const G4ParticleDefinition *)
 
static G4KaonZeroShort * KaonZeroShort()
 
G4bool nucleon(G4int ityp)
 
static G4AntiProton * AntiProton()
 
G4LPhysicsFreeVector fKmNeutronTotXscVector
 
G4ParticleDefinition * theAXi0
 
G4double CalculateEcmValue(const G4double, const G4double, const G4double)
 
static const G4double fKmProtonTotTkin[106]
 
static const G4double fKpProtonTotTkin[66]
 
static G4XiMinus * XiMinus()
 
G4ParticleDefinition * theSMinus
 
static G4AntiXiMinus * AntiXiMinus()
 
static G4Triton * Triton()
 
static G4Proton * Proton()
 
static G4PionPlus * PionPlus()
 
virtual G4bool IsIsoApplicable(const G4DynamicParticle *aDP, G4int Z, G4int A)
 
G4ParticleDefinition * theProton
 
G4ParticleDefinition * theHe3
 
void CrossSectionDescription(std::ostream &) const 
 
G4ParticleDefinition * theAS0
 
const G4double fLowerLimit
 
static G4Neutron * Neutron()
 
static const G4double fKmProtonTotXsc[106]
 
static const G4double A[nN]
 
static G4PionZero * PionZero()
 
G4ParticleDefinition * theOmega
 
static G4Deuteron * Deuteron()
 
G4ParticleDefinition * theSPlus
 
G4double GetHadronNucleonXscVU(const G4DynamicParticle *, const G4ParticleDefinition *)
 
static G4SigmaMinus * SigmaMinus()
 
G4ParticleDefinition * theA
 
G4LPhysicsFreeVector fKpProtonTotXscVector
 
virtual G4bool IsApplicable(const G4DynamicParticle *aDP, const G4Element *)
 
G4double GetPDGMass() const 
 
static G4AntiLambda * AntiLambda()
 
G4ParticleDefinition * theAXiMinus
 
static const G4double fKpNeutronTotTkin[75]
 
static G4PionMinus * PionMinus()
 
static G4AntiSigmaZero * AntiSigmaZero()
 
G4ParticleDefinition * theGamma
 
static const double millibarn
 
static G4AntiXiZero * AntiXiZero()
 
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
 
static G4SigmaPlus * SigmaPlus()
 
G4ParticleDefinition * theKPlus
 
static G4Lambda * Lambda()
 
G4ParticleDefinition * theKMinus
 
G4ParticleDefinition * theAOmega
 
void InitialiseKaonNucleonTotXsc()
 
G4ParticleDefinition * theAntiL
 
static G4KaonPlus * KaonPlus()
 
static const G4double fKpProtonTotXsc[66]
 
G4double GetPDGCharge() const 
 
G4ParticleDefinition * theASPlus
 
G4double GetHadronNucleonXscEL(const G4DynamicParticle *, const G4ParticleDefinition *)
 
static const double fermi
 
static G4AntiNeutron * AntiNeutron()
 
G4ParticleDefinition * thePiZero
 
G4ThreeVector GetMomentum() const 
 
G4ParticleDefinition * theD
 
G4ParticleDefinition * thePiPlus
 
G4ParticleDefinition * theL
 
G4double CalcMandelstamS(const G4double, const G4double, const G4double)