aboutsummaryrefslogtreecommitdiff
path: root/src/muon.h
blob: 8e1d39e6a36f4ed2c10a5b62b543e3e7b4f230b8 (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
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