aboutsummaryrefslogtreecommitdiff
path: root/src/muon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/muon.c')
-rw-r--r--src/muon.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/muon.c b/src/muon.c
index 0279984..9a539de 100644
--- a/src/muon.c
+++ b/src/muon.c
@@ -216,9 +216,9 @@ double get_dEdx(double T, double rho)
return gsl_spline_eval(spline_dEdx, T, acc_dEdx)/rho;
}
-double get_expected_charge(double x, double T, double *pos, double *dir, double *pmt_pos, double *pmt_normal, double r)
+double get_expected_charge(double x, double T, double T0, double *pos, double *dir, double *pmt_pos, double *pmt_normal, double r)
{
- double pmt_dir[3], cos_theta, n, wavelength0, omega, theta0, E, p, beta, z, rho, R;
+ double pmt_dir[3], cos_theta, n, wavelength0, omega, theta0, E, p, beta, z, rho, R, E0, p0, beta0;
z = 1.0;
@@ -253,8 +253,13 @@ double get_expected_charge(double x, double T, double *pos, double *dir, double
if (beta < 1/n) return 0;
+ /* Calculate total energy */
+ E0 = T0 + MUON_MASS;
+ p0 = sqrt(E0*E0 - MUON_MASS*MUON_MASS);
+ beta0 = p0/E0;
+
/* FIXME: is this formula valid for muons? */
- theta0 = get_scattering_rms(x,p,beta,z,rho);
+ theta0 = get_scattering_rms(x,p0,beta0,z,rho);
/* FIXME: add angular response and scattering/absorption. */
return 2*omega*2*M_PI*FINE_STRUCTURE_CONSTANT*z*z*(1-(1/(beta*beta*n*n)))*get_probability(beta, cos_theta, theta0)/(sqrt(2*M_PI)*theta0);