From 24c8bcfe7f76b20124e2862ea050f815c0f768e7 Mon Sep 17 00:00:00 2001 From: tlatorre Date: Tue, 14 Aug 2018 10:08:27 -0500 Subject: move everything to src directory --- src/pdg.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/pdg.c (limited to 'src/pdg.c') diff --git a/src/pdg.c b/src/pdg.c new file mode 100644 index 0000000..d6a2161 --- /dev/null +++ b/src/pdg.c @@ -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))); +} -- cgit