#ifndef MUON_H #define MUON_H #include /* for size_t */ #define EULER_CONSTANT 0.57721 typedef struct muon_energy { double *x; double *T; size_t n; } muon_energy; muon_energy *muon_init_energy(double T0, double rho, size_t n); double muon_get_energy(double x, muon_energy *m); void muon_free_energy(muon_energy *m); double get_range(double T, double rho); double get_dEdx(double T, double rho); double get_expected_reflected_charge(double x, double T, double theta0, 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); #endif