78 static const G4double g1tf = 1.95e-5 ;
79 static const G4double g2tf = 5.3e-5 ;
84 G4double residEnergy = totalEnergy - pairEnergy;
86 G4double massratio2 = massratio*massratio ;
90 if (residEnergy <= c3*
z13) {
return cross; }
92 G4double c7 = 4.*CLHEP::electron_mass_c2;
96 if (a3 <= 0.) {
return cross; }
100 if( Z < 1.5 ) { bbb = bbbh ; g1 = g1h ; g2 = g2h ; }
101 else { bbb = bbbtf; g1 = g1tf; g2 = g2tf; }
105 0.073*
G4Log(totalEnergy/(particleMass+g1*
z23*totalEnergy))-0.26;
109 0.058*
G4Log(totalEnergy/(particleMass+g2*z13*totalEnergy))-0.14;
115 G4double a0 = totalEnergy*residEnergy;
116 G4double a1 = pairEnergy*pairEnergy/a0;
122 G4double tmnexp = alf/(1. + rta3) + del*rta3;
123 if(tmnexp >= 1.0) {
return cross; }
129 for (
G4int i=0; i<8; i++)
148 be = ((2.+a6)*(1.+bet)+xi*a9)*
G4Log(1.+xii)+(a5-bet)/xi1-a9;
150 be = (3.-a6+a1*a7)/(2.*xi);
153 if ( fe < 0.) { fe = 0.; }
163 bm = (a7*(1.+1.5*bet)-a10*xii)*
G4Log(xi1)+xi*(a5-bet)/xi1+a10;
165 bm = (5.-a6+bet*a9)*(xi/2.);
169 if ( fm < 0.) { fm = 0.; }
171 sum +=
wgi[i]*a4*(fe+fm/massratio2);
174 cross = -tmn*sum*
factorForCross*z2*residEnergy/(totalEnergy*pairEnergy);
G4hPairProductionModel(const G4ParticleDefinition *p=0, const G4String &nam="hPairProd")
static const G4double xgi[8]
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, G4double pairEnergy)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
virtual ~G4hPairProductionModel()
static const G4double wgi[8]