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 const G4double tau = kinEnergy/CLHEP::electron_mass_c2;
84
85 if(tau<taul)
86 {
92 +(0.5+0.25*tsq+(1.+2.*taul)*log05)/(t1*t1);
93 dEdx =
Z*(
G4Log(2.*taul+4.)-2.*ionpotlog+f)/beta2;
94 dEdx *= taul12/std::sqrt(tau);
95 }
96 else
97 {
103 +(0.5+0.25*tsq+(1.+2.*tau)*log05)/(t1*t1);
104 dEdx =
Z*(
G4Log(2.*tau+4.)-2.*ionpotlog+f)/beta2;
105
106
107 G4double cbrem = (cbr1+cbr2*
Z)*(cbr3+cbr4*
G4Log(kinEnergy/Thigh));
108 dEdx +=
Z*(
Z+1)*cbrem*bremfactor*tau/beta2;
109 }
110
111 return dEdx*CLHEP::twopi_mc2_rcl2;
112}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4Pow * GetInstance()
G4double logZ(G4int Z) const