blob: a3eb2d5860fbbdd14fc25c7fa68a53f0b0cc0d35 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include "pdg.h"
#include "math.h"
#include "sno.h"
double get_scattering_rms(double x, double p, double beta, double z)
{
/* 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).
*
* Update: MicroBooNE uses this formula for muons in this paper:
* https://arxiv.org/abs/1703.06187.
*
* 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*WATER_DENSITY/RADIATION_LENGTH)*(1+0.038*log((x*z*z)/(RADIATION_LENGTH*beta*beta/WATER_DENSITY)));
}
|