16 namespace ActsFatras {
41 template <
typename generator_t>
47 slab, particle.
pdg(), particle.
mass(),
49 double sigma2 = sigma * sigma;
52 std::normal_distribution<double> gaussDist(0., 1.);
54 std::uniform_real_distribution<double> uniformDist(0., 1.);
61 double beta2inv = 1 + mOverP * mOverP;
63 double log_dprime = std::log(dprime);
65 double log_dprimeprime =
66 std::log(std::pow(slab.
material().
Z(), 2.0 / 3.0) * dprime);
86 if (uniformDist(generator) <
epsilon) {
90 return M_SQRT2 * std::sqrt(sigma2) * gaussDist(generator);