82 G4double residEnergy = totalEnergy - pairEnergy;
84 G4double massratio2 = massratio*massratio ;
90 if (residEnergy <= c3*
z13)
return cross;
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; }
113 G4double a0 = totalEnergy*residEnergy;
114 G4double a1 = pairEnergy*pairEnergy/a0;
120 G4double tmnexp = alf/(1. + rta3) + del*rta3;
121 if(tmnexp >= 1.0)
return cross;
127 for (
G4int i=0; i<8; i++)
139 G4double yed = 2.*(1.+3.*bet)*log(3.+xii)-a6-a1*(2.-a6) ;
141 G4double ale=log(bbb/
z13*sqrt(xi1*ye1)/(1.+screen*ye1)) ;
142 G4double cre = 0.5*log(1.+2.25*
z23*xi1*ye1/massratio2) ;
145 if (xi <= 1.e3) be = ((2.+a6)*(1.+bet)+xi*a9)*log(1.+xii)+(a5-bet)/xi1-a9;
146 else be = (3.-a6+a1*a7)/(2.*xi);
149 if (
fe < 0.)
fe = 0. ;
152 G4double ymd = a7*(1.5+a1)*log(3.+xi)+1.-1.5*a6 ;
154 G4double alm_crm = log(bbb*massratio/(1.5*
z23*(1.+screen*ym1)));
159 bm = (a7*(1.+1.5*bet)-a10*xii)*log(xi1)+xi*(a5-bet)/xi1+a10;
161 bm = (5.-a6+bet*a9)*(xi/2.);
165 if ( fm < 0.) fm = 0. ;
167 sum +=
wgi[i]*a4*(
fe+fm/massratio2);
170 cross = -tmn*sum*
factorForCross*z2*residEnergy/(totalEnergy*pairEnergy);
void SetCurrentElement(G4double Z)
virtual ~G4hPairProductionModel()
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, G4double pairEnergy)
G4hPairProductionModel(const G4ParticleDefinition *p=0, const G4String &nam="hPairProd")