69{
70 const G4double cbr1=0.02, cbr2=-5.7e-5, cbr3=1., cbr4=0.072;
71 const G4double Tlow=10.*CLHEP::keV, Thigh=1.*CLHEP::GeV;
72 const G4double taul = Tlow/CLHEP::electron_mass_c2;
74 const G4double taul12 = std::sqrt(taul);
76
79 1.6e-5*CLHEP::MeV*
G4Exp(0.9*Zlog)/CLHEP::electron_mass_c2;
81
82 G4double tau = kinEnergy/CLHEP::electron_mass_c2;
84
85
86 if(tau<taul)
87 {
93 (6.*taul+1.5*tsq-taul*(1.-tsq/3.)/t2
94 -tsq*(0.5-tsq/12.)/(t2*t2))/(t1*t1);
95 dEdx = (
G4Log(2.*taul+4.)-2.*ionpotlog+f)/beta2;
96 dEdx *= Z*taul12/std::sqrt(tau);
97 }
98 else
99 {
104 G4double f = 2.*
G4Log(tau) - (6.*tau+1.5*tsq-tau*(1.-tsq/3.)/t2
105 -tsq*(0.5-tsq/12.)/(t2*t2))/(t1*t1);
106 dEdx = Z*(
G4Log(2.*tau+4.)-2.*ionpotlog+f)/beta2;
107
108
110 * (cbr3+cbr4*
G4Log(kinEnergy/Thigh));
111 dEdx += cbrem*Z*(Z+1.)*bremfactor*tau/beta2;
112 }
113 return dEdx*CLHEP::twopi_mc2_rcl2;
114}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4Pow * GetInstance()
G4double logZ(G4int Z) const