15 namespace ActsFatras {
40 template <
typename generator_t>
47 double sigma2 = sigma *
sigma;
50 std::normal_distribution<double> gaussDist(0., 1.);
52 std::uniform_real_distribution<double> uniformDist(0., 1.);
59 double beta2inv = 1 + mOverP * mOverP;
61 double log_dprime = std::log(dprime);
63 double log_dprimeprime =
64 std::log(std::pow(slab.
material().
Z(), 2.0 / 3.0) * dprime);
80 sigma2 = 225. * dprime /
84 if (uniformDist(generator) < epsilon) {
85 sigma2 *= (1. - (1. - epsilon) * sigma1square) / epsilon;
88 return M_SQRT2 * std::sqrt(sigma2) * gaussDist(generator);