diff options
Diffstat (limited to 'solid_angle.c')
-rw-r--r-- | solid_angle.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/solid_angle.c b/solid_angle.c index 6959e2d..f89d65e 100644 --- a/solid_angle.c +++ b/solid_angle.c @@ -9,7 +9,7 @@ double get_solid_angle(double *pos, double *pmt, double *n, double r) * * See http://www.umich.edu/~ners312/CourseLibrary/SolidAngleOfADiskOffAxis.pdf. */ double dir[3]; - double L, r0, R, a, k, Rmax, K, P; + double L, r0, R, a2, k, Rmax, K, P; dir[0] = pos[0] - pmt[0]; dir[1] = pos[1] - pmt[1]; @@ -19,17 +19,17 @@ double get_solid_angle(double *pos, double *pmt, double *n, double r) R = sqrt(dir[0]*dir[0] + dir[1]*dir[1] + dir[2]*dir[2]); r0 = sqrt(R*R - L*L); - a = 4*r0*r/pow(r0+r,2); + a2 = 4*r0*r/pow(r0+r,2); Rmax = sqrt(L*L + (r0+r)*(r0+r)); k = sqrt(4*r0*r/(L*L + pow(r0+r,2))); if (r0 <= r) { K = gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE); - P = gsl_sf_ellint_Pcomp(k, a, GSL_PREC_DOUBLE); + P = gsl_sf_ellint_Pcomp(k, a2, GSL_PREC_DOUBLE); return 2*M_PI - 2*L*K/Rmax + (2*L/Rmax)*(r0-r)*P/(r0+r); } else { K = gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE); - P = gsl_sf_ellint_Pcomp(k, a, GSL_PREC_DOUBLE); + P = gsl_sf_ellint_Pcomp(k, a2, GSL_PREC_DOUBLE); return -2*L*K/Rmax + (2*L/Rmax)*(r0-r)*P/(r0+r); } } |