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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* Copyright (c) 2019, Anthony Latorre <tlatorre at uchicago>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef MUON_H
#define MUON_H
#include <stddef.h> /* for size_t */
#define EULER_CONSTANT 0.57721
/* Number of photons in the range 200 nm - 800 nm generated per MeV of energy
* lost to radiation for electrons.
*
* FIXME: This is just a rough estimate, should use an energy dependent
* quantity from simulation.
*
* FIXME: Actually determine what this is. */
#define MUON_PHOTONS_PER_MEV 7368.0
double muon_get_max_energy(void);
double muon_get_shower_photons(double T0, double rad);
void muon_get_position_distribution_parameters(double T0, double *a, double *b);
double muon_get_angular_distribution_alpha(double T0);
double muon_get_angular_distribution_beta(double T0);
void muon_get_delta_ray_distribution_parameters(double T0, double *a, double *b);
double muon_get_delta_ray_photons(double T0);
double muon_get_range(double T, double rho);
double muon_get_dEdx_rad(double T, double rho);
double muon_get_dEdx(double T, double rho);
#endif
|