15using CLHEP::classic_electr_radius;
16using CLHEP::electron_mass_c2;
18using CLHEP::c_squared;
21 const double beta,
const double z) {
23 const double beta2 = beta * beta;
25 const double gamma2 = gamma * gamma;
26 const double coef1 = 4 * pi * classic_electr_radius * classic_electr_radius *
27 electron_mass_c2 * Avogadro;
28 const double coef2 = z * z * ratio_Z_to_A / beta2;
30 log(2. * electron_mass_c2 * beta2 * gamma2 / I_eff) - beta2;
31 return coef1 * coef2 * sum;
35 const double I_eff,
const double gamma_1,
38 const double beta =
lorbeta(gamma_1);
39 const double beta2 = beta * beta;
40 const double gamma = gamma_1 + 1.0;
41 const double gamma2 = gamma * gamma;
42 const double coef1 = 4 * pi * classic_electr_radius * classic_electr_radius *
45 const double coef2 = z * z * ratio_Z_to_A / beta2;
47 log(2. * electron_mass_c2 * beta2 * gamma2 / I_eff) - beta2;
48 return coef1 * coef2 * sum;
52 const double ratio_Z_to_A,
const double I_eff,
const double m,
53 const double gamma_1,
const double ecut,
const double z) {
55 const double beta =
lorbeta(gamma_1);
56 const double beta2 = beta * beta;
57 const double gamma = gamma_1 + 1.0;
58 const double gamma2 = gamma * gamma;
59 const double coef1 = twopi * classic_electr_radius * classic_electr_radius *
62 const double coef2 = z * z * ratio_Z_to_A / beta2;
63 const double mrat = electron_mass_c2 / (m * c_squared);
64 const double emax = 2.0 * electron_mass_c2 * beta2 * gamma2 /
65 (1.0 + 2.0 * gamma * mrat + mrat * mrat);
68 sum = log(2.0 * electron_mass_c2 * beta2 * gamma2 * emax /
pow(I_eff, 2)) -
71 sum = log(2.0 * electron_mass_c2 * beta2 * gamma2 * ecut /
pow(I_eff, 2)) -
72 beta2 * (1.0 + ecut / emax);
74 return coef1 * coef2 * sum;
double Bethe_Bloch_energy_loss_gamma_1(const double ratio_Z_to_A, const double I_eff, const double gamma_1, const double z)
Safer version, using gamma - 1 instead of beta.
double lorbeta(const double gamma_1)
as function of .
DoubleAc pow(const DoubleAc &f, double p)
double Bethe_Bloch_energy_loss(const double ratio_Z_to_A, const double I_eff, const double beta, const double z)
double lorgamma_1(double beta)
as function of .
double Bethe_Bloch_restricted_energy_loss_gamma_1(const double ratio_Z_to_A, const double I_eff, const double m, const double gamma_1, const double ecut, const double z)