977   HadrEnergy = std::sqrt(hMass2 + hLabMomentum2);
 
  979   G4double sHadr = 2.*HadrEnergy*protonM+protonM2+hMass2;
 
  981   G4double Ecm   = 0.5*(sHadr-hMass2+protonM2)/sqrS;
 
  982   MomentumCM     = std::sqrt(Ecm*Ecm-protonM2);
 
  985     G4cout << 
"GetHadrVall.: Z= " << 
Z << 
" iHadr= " << iHadron 
 
  986        << 
" E(GeV)= " << HadrEnergy << 
" sqrS= " << sqrS
 
  987        << 
" plab= " << hLabMomentum   
 
  988        <<
"  E - m  "<<HadrEnergy - hMass<< 
G4endl;
 
 1000       if(hLabMomentum > 10)
 
 1001     TotP = TotN = 7.5*logE - 40.12525 + 103*
G4Exp(-
G4Log(sHadr)*0.165);
 
 1010       if( hLabMomentum > 1.4 )
 
 1011         TotN = 33.3+15.2*(hLabMomentum2-1.35)/
 
 1014       else if(hLabMomentum > 0.8)
 
 1017           TotN = 33.0 + 25.5*A0*A0;  
 
 1022           TotN = 33.0 + 30.*A0*A0*A0*A0;
 
 1027         if(hLabMomentum >= 1.05)
 
 1029         TotP = 39.0+75.*(hLabMomentum-1.2)/
 
 1030           (hLabMomentum2*hLabMomentum+0.15);
 
 1033         else if(hLabMomentum >= 0.7)
 
 1036          TotP = 23.0 + 40.*A0*A0;
 
 1046       HadrTot = 0.5*(TotP+TotN);
 
 1049       if(hLabMomentum >= 2.)       HadrSlope = 5.44 + 0.88*logS;
 
 1051       else if(hLabMomentum >= 0.5) HadrSlope = 3.73*hLabMomentum-0.37;
 
 1053       else                         HadrSlope = 1.5;
 
 1056       if(hLabMomentum >= 1.2)
 
 1057     HadrReIm  = 0.13*(logS - 5.8579332)*
G4Exp(-
G4Log(sHadr)*0.18);
 
 1059       else if(hLabMomentum >= 0.6) 
 
 1060     HadrReIm = -75.5*(
G4Exp(
G4Log(hLabMomentum)*0.25)-0.95)/
 
 1064     HadrReIm = 15.5*hLabMomentum/(27*hLabMomentum2*hLabMomentum+2);
 
 1069       if( iHadrCode == 3122)
 
 1075       else if( iHadrCode == 3222)
 
 1081       else if(iHadrCode == 3112 || iHadrCode == 3212 )
 
 1087       else if( iHadrCode == 3312 || iHadrCode == 3322 )
 
 1093       else if( iHadrCode == 3334)
 
 1104       HadrTot   = 5.2+5.2*logE + 123.2/sqrS;     
 
 1105       HadrSlope = 8.32+0.57*logS;                
 
 1107       if( HadrEnergy < 1000 )
 
 1108     HadrReIm  = 0.06*(sqrS-2.236)*(sqrS-14.14)*
G4Exp(-
G4Log(sHadr)*0.8);
 
 1110     HadrReIm  = 0.6*(logS - 5.8579332)*
G4Exp(-
G4Log(sHadr)*0.25);
 
 1115       if( iHadrCode == -3122)
 
 1121       else if( iHadrCode == -3222)
 
 1127       else if(iHadrCode == -3112 || iHadrCode == -3212 )
 
 1133       else if( iHadrCode == -3312 || iHadrCode == -3322 )
 
 1139       else if( iHadrCode == -3334)
 
 1150       if(hLabMomentum >= 3.5)
 
 1151     TotP = 10.6+2.*logE + 25.*
G4Exp(-
G4Log(HadrEnergy)*0.43); 
 
 1153       else if(hLabMomentum >= 1.15)
 
 1155           G4double x = (hLabMomentum - 2.55)/0.55; 
 
 1156       G4double y = (hLabMomentum - 1.47)/0.225;
 
 1157       TotP = 3.2*
G4Exp(-x*x) + 12.*
G4Exp(-y*y) + 27.5;
 
 1160       else if(hLabMomentum >= 0.4)
 
 1162     TotP  = 88*(logE+0.2877)*(logE+0.2877)+14.0;
 
 1167       G4double x = (hLabMomentum - 0.29)/0.085;
 
 1168       TotP = 20. + 180.*
G4Exp(-x*x);
 
 1172       if(hLabMomentum >= 3.0 )
 
 1173     TotN = 10.6 + 2.*logE + 30.*
G4Exp(-
G4Log(HadrEnergy)*0.43); 
 
 1175       else if(hLabMomentum >= 1.3) 
 
 1178           G4double y = (hLabMomentum - 1.4)/0.12;
 
 1179       TotN = 36.1+0.079 - 4.313*logE + 3.*
G4Exp(-x*x) + 
 
 1182       else if(hLabMomentum >= 0.65)
 
 1184           G4double x = (hLabMomentum - 0.72)/0.06;
 
 1185           G4double y = (hLabMomentum - 1.015)/0.075;
 
 1186       TotN = 36.1 + 10.*
G4Exp(-x*x) + 24*
G4Exp(-y*y);
 
 1188       else if(hLabMomentum >= 0.37)
 
 1191       TotN = 26. + 110.*x*
x;
 
 1195           G4double x = (hLabMomentum - 0.29)/0.07;
 
 1196       TotN = 28.0 + 40.*
G4Exp(-x*x);
 
 1198       HadrTot = (TotP+TotN)/2;
 
 1200       HadrSlope = 7.28+0.245*logS;        
 
 1201       HadrReIm  = 0.2*(logS - 4.6051702)*
G4Exp(-
G4Log(sHadr)*0.15);
 
 1210       HadrTot   = 10.6+1.8*logE + 9.0*
G4Exp(-
G4Log(HadrEnergy)*0.55);  
 
 1211       if(HadrEnergy>100) HadrSlope = 15.0;
 
 1212       else HadrSlope = 1.0+1.76*logS - 2.84/sqrS;   
 
 1214       HadrReIm  = 0.4*(sHadr-20)*(sHadr-150)*
G4Exp(-
G4Log(sHadr+50)*2.1);
 
 1221        HadrTot   = 10+1.8*logE + 25./sqrS; 
 
 1222        HadrSlope = 6.98+0.127*logS;         
 
 1223        HadrReIm  = 0.4*(sHadr-20)*(sHadr-20)*
G4Exp(-
G4Log(sHadr+50)*2.1);
 
 1230     G4cout << 
"HadrTot= " << HadrTot << 
" HadrSlope= " << HadrSlope
 
 1231        << 
" HadrReIm= " << HadrReIm << 
" DDSect2= " << DDSect2
 
 1232        << 
" DDSect3= " << DDSect3 << 
G4endl;
 
 1238   Coeff0 = Coeff1 = Coeff2 = 0.0;
 
 1239   Slope0 = Slope1 = 1.0;
 
 1243   static const G4double EnP0[6]={1.5,3.0,5.0,9.0,14.0,19.0};
 
 1244   static const G4double C0P0[6]={0.15,0.02,0.06,0.08,0.0003,0.0002};
 
 1245   static const G4double C1P0[6]={0.05,0.02,0.03,0.025,0.0,0.0};
 
 1246   static const G4double B0P0[6]={1.5,2.5,3.0,4.5,1.4,1.25};
 
 1247   static const G4double B1P0[6]={5.0,1.0,3.5,4.0,4.8,4.8};
 
 1250   static const G4double EnN[5]={1.5,5.0,10.0,14.0,20.0};
 
 1251   static const G4double C0N[5]={0.0,0.0,0.02,0.02,0.01};
 
 1252   static const G4double C1N[5]={0.06,0.008,0.0015,0.001,0.0003};
 
 1253   static const G4double B0N[5]={1.5,2.5,3.8,3.8,3.5};
 
 1254   static const G4double B1N[5]={1.5,2.2,3.6,4.5,4.8};
 
 1257   static const G4double EnP[2]={1.5,4.0};
 
 1258   static const G4double C0P[2]={0.001,0.0005};
 
 1259   static const G4double C1P[2]={0.003,0.001};
 
 1260   static const G4double B0P[2]={2.5,4.5};
 
 1261   static const G4double B1P[2]={1.0,4.0};
 
 1264   static const G4double EnPP[4]={1.0,2.0,3.0,4.0};
 
 1265   static const G4double C0PP[4]={0.0,0.0,0.0,0.0};
 
 1266   static const G4double C1PP[4]={0.15,0.08,0.02,0.01};
 
 1267   static const G4double B0PP[4]={1.5,2.8,3.8,3.8};
 
 1268   static const G4double B1PP[4]={0.8,1.6,3.6,4.6};
 
 1271   static const G4double EnPPN[4]={1.0,2.0,3.0,4.0};
 
 1272   static const G4double C0PPN[4]={0.0,0.0,0.0,0.0};
 
 1273   static const G4double C1PPN[4]={0.0,0.0,0.0,0.0};
 
 1274   static const G4double B0PPN[4]={1.5,2.8,3.8,3.8};
 
 1275   static const G4double B1PPN[4]={0.8,1.6,3.6,4.6};
 
 1278   static const G4double EnK[4]={1.4,2.33,3.0,5.0};
 
 1279   static const G4double C0K[4]={0.0,0.0,0.0,0.0};
 
 1280   static const G4double C1K[4]={0.01,0.007,0.005,0.003};
 
 1281   static const G4double B0K[4]={1.5,2.0,3.8,3.8};
 
 1282   static const G4double B1K[4]={1.6,1.6,1.6,1.6};
 
 1285   static const G4double EnKM[2]={1.4,4.0};
 
 1286   static const G4double C0KM[2]={0.006,0.002};
 
 1287   static const G4double C1KM[2]={0.00,0.00};
 
 1288   static const G4double B0KM[2]={2.5,3.5};
 
 1289   static const G4double B1KM[2]={1.6,1.6};
 
 1295       if(hLabMomentum <BoundaryP[0])
 
 1298       Coeff2 = 0.8/hLabMomentum/hLabMomentum;
 
 1303       if(hLabMomentum < BoundaryP[1])
 
 1306       Coeff2 = 0.8/hLabMomentum/hLabMomentum;
 
 1311       if(hLabMomentum <  BoundaryP[2])
 
 1317       if(hLabMomentum < BoundaryP[3])
 
 1320       Coeff2 = 0.02/hLabMomentum;
 
 1325       if(hLabMomentum < BoundaryP[4])
 
 1328       Coeff2 = 0.02/hLabMomentum;
 
 1333       if(hLabMomentum < BoundaryP[5])
 
 1336       if(hLabMomentum < 1) Coeff2 = 0.34;
 
 1337       else  Coeff2 = 0.34/hLabMomentum2/hLabMomentum;
 
 1341       if(hLabMomentum < BoundaryP[6])
 
 1344       if(hLabMomentum < 1) Coeff2 = 0.01;
 
 1345       else  Coeff2 = 0.01/hLabMomentum2/hLabMomentum;
 
 1350     G4cout<<
"  HadrVal : Plasb  "<<hLabMomentum
 
 1351       <<
"  iHadron  "<<iHadron<<
"  HadrTot  "<<HadrTot<<
G4endl;
 
G4GLOB_DLL std::ostream G4cout
 
G4double G4Log(G4double x)
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
void InterpolateHN(G4int n, const G4double EnP[], const G4double C0P[], const G4double C1P[], const G4double B0P[], const G4double B1P[])