diff options
Diffstat (limited to 'pdg.c')
-rw-r--r-- | pdg.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -0,0 +1,23 @@ +#include "pdg.h" +#include "math.h" + +double get_scattering_rms(double x, double p, double beta, double z, double rho) +{ + /* Returns the RMS width of the scattering angle for a particle deflected + * by many small-angle scatters after a distance `x`. `p` is the momentum + * of the particle in MeV, `beta` is the speed of the particle in units of + * the speed of light, `z` is the charge of the particle in units of the + * electron charge, and `rho` is the density of the water in units of + * g/cm^3. + * + * `x` should be in cm. + * + * Note: I'm not sure if this will work for particles other than electrons + * since the radiation length is only discussed in terms of an + * electromagnetic shower induced by electrons (see Section 33.4.2). + * + * See Equation 33.15 in + * http://pdg.lbl.gov/2018/reviews/rpp2018-rev-passage-particles-matter.pdf. */ + if (x == 0.0) return 0.0; + return (13.6/(beta*p))*z*sqrt(x*rho/RADIATION_LENGTH)*(1+0.038*log((x*z*z)/(RADIATION_LENGTH*beta*beta/rho))); +} |