Tabulated representation of a muon-calibrated muon and neutrino flux model
Project description
daemonflux: DAta-drivEn and MuOn-calibrated Neutrino flux
Daemonflux is a tabulated/splined version of the an atmospheric flux model calibrated on muon spectrometer data. For the details about how daemonflux is built and calibrated to muon data the following publication.
@article{Yanez:2023lsy,
author = "Ya\~nez, Juan Pablo and Fedynitch, Anatoli",
title = "{daemonflux: DAta-drivEn MuOn-calibrated Neutrino Flux}",
eprint = "2303.00022",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
month = "2",
year = "2023"
}
Requirements
Python > 3.7
,numpy
,scipy
matplotlib
for examples
Installation
a) From PyPi:
pip install daemonflux
b) From source in editable mode, so the package gets updated after each git pull
:
$ git clone https://github.com/mceq-project/daemonflux
$ cd daemonflux
$ python3 -m pip install -e .
Quickstart
To see more features and a detailed example, refer to the example notebook. In summary, the process of calculating calibrated fluxes from the provided tables is as follows:
from daemonflux import Flux
import numpy as np
import matplotlib.pyplot as plt
daemonflux = Flux(location='generic')
egrid = np.logspace(0,5) # Energy in GeV
fl = daemonflux.flux(egrid, '15', 'numuflux')
err = daemonflux.error(egrid, '15', 'numuflux')
plt.loglog(egrid, fl, color='k')
plt.fill_between(egrid, fl + err, fl - err,
color='r', alpha=.3, label=r'1$\sigma$ error')
...
Resulting in the following figure:
Explanation of quantities and units
For neutrinos, the methods Flux.flux
and Flux.error
return values in the units of $(E/\text{GeV})^3/(\text{GeV }\text{s }\text{sr }\text{cm}^2)$, i.e. multiplied by $E^3$. For muon quantities are reported as a function of total momentum instead of energy, i.e. the units are $(p/\text{(GeV/c)})^3/(\text{(GeV/c) } \text{s }\text{sr }\text{cm}^2)$. Natural units $\hbar=c=1$ are used everywhere.
The quantities are:
- muons:
muflux
,muratio
,mu+
,mu-
, - muon neutrinos:
numuflux
,numuratio
,numu
,antinumu
,flavorratio
- electron neutrinos:
nueflux
,nueratio
,nue
,antinue
,flavorratio
Those titled XXXflux are the sum of particle and antiparticle fluxes numuflux = numu + antinumu
, the ratio is numuratio = numu/antinumu
, and the is defined as flavorratio = (numu + antinumu)/(nue + antinue)
.
The total_
quantities, such as total_muflux
, represent the total flux, which includes both conventional and prompt atmospheric fluxes. However, unlike the conventional flux, the prompt flux is not calibrated using the daemonflux method, as surface muons are not sensitive to prompt fluxes. As a result, the prompt component does not include correction parameters or errors. It is important to note, however, that the conventional part of the flux remains calibrated, so the total_ flux is simply the sum of the calibrated conventional and uncalibrated prompt fluxes.
LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for daemonflux-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cdf02f859296f5300f87018d5ce560291be925a8c33db736520a0421bb3292d |
|
MD5 | 9ecf168f3ffbac67bdfe278e79df1b4e |
|
BLAKE2b-256 | a46dd079e84c45f8c2aa19aeac98e85d651d682861b631321cef6f1d6ea16f55 |