Skip to main content

A simulator for neutrino propagation through the earth.

Project description

Propagate neutrinos through the earth.

A python package and command line utility, including fortran for performance with openMP.

Documentation (WIP): https://nupyprop.readthedocs.io/en/latest/

Note: While the documentation is currently WIP, users and developers should consult the nuPyProp tutorial repository for visualizing output from the code and creating user-defined models.

Installation

with pip

python3 -m pip install nupyprop

with conda

We recommend installing nupyprop into a conda environment like so. In this example the name of the environment is “nupyprop”

conda create -n nupyprop -c conda-forge -c nuspacesim nupyprop
conda activate nupyprop

Usage

nupyprop --help

Example for running tau propagation for 107 GeV neutrinos at 10 degrees with 107 neutrinos injected with stochastic energy loss & with all other parameters as defaults:

nupyprop -e 7 -a 10 -t stochastic -s 1e7

Run parameters are defined in run.py. Different switches are described as follows:

  1. -e or --energy: incoming neutrino energy in log_10(GeV). Works for single energy or multiple energies. For multiple energies, separate energies with commas eg. 7,8,9,10,11. Default energies are 107,107.25,107.5,…1011 GeV.

  2. -a or --angle: slant Earth angles in degrees. Works for single angle or multiple angles. For multiple angles, separate angles with commas eg. 1,3,5,7,10. Default angles are 1->35 degrees, in steps of 1 degree.

  3. -i or --idepth: depth of ice/water in km. Default value is 4 km.

  4. -l or --lepton: flavor of lepton used to propagate. Can be either muon or tau. Default is tau.

  5. -n or --nu_type: type of neutrino matter. Can be either neutrino or anti-neutrino. Default is neutrino.

  6. -t or --energy_loss: energy loss type for lepton - can be stochastic or continuous. Default is stochastic.

  7. -x or --xc_model: neutrino/anti-neutrino cross-section model used. Can be from the pre-defined set of models (see xc-table) or custom. Default is ct18nlo.

  8. -p or --pn_model: photonuclear interaction energy loss model used. Can be from the pre-defined set of models (see pn-table) or custom. Default is allm.

  9. -f or --fac_nu: rescaling factor for BSM cross-sections. Default is 1.

  10. -s or --stats: statistics or no. of injected neutrinos. Default is 1e7 neutrinos.

  11. -c or --cdf_only: If set to yes, the output file will not contain outgoing lepton energies, and will only contain exit probabilities and binned outgoing energy CDF values. Default is no.

  12. -htc or --htc_mode: High throughput computing mode. If set to yes, the code will be optimized to run in high throughput computing mode. Default is no.

Viewing output results: output_*.h5 will contain the results of the code after it has finished running. In the terminal, run vitables (optional dependency) and open the output_*.h5 file to view the output results.

output_*.h5 naming convention is as follows: output_A_B_C_D_E_F_G, where

A = Neutrino type: nu is for neutrino & anu is for anti-neutrino.
B = Lepton_type: tau is for tau leptons & muon is for muons.
C = idepth: depth of water layer, in km.
D = Neutrino (or anti-neutrino) cross-section model.
E = Charged lepton photonuclear energy loss model.
F = Energy loss type: can be stochastic or continuous.
G = Statistics (ie. no. of neutrinos/anti-neutrinos injected).

Model Tables

Neutrino/Anti-Neutrino Cross-Section Model

Reference

Abramowicz, Levin, Levy, Maor (ALLM)

hep-ph/9712415, Phys. Rev. D 81, 114012

Block, Durand, Ha, McKay (BDHM)

Phys. Rev. D 89, 094027, Phys. Rev. D 81, 114012

CTEQ18-NLO

Phys. Rev. D 103, 014013, Phys. Rev. D 81, 114012

Connolly, Thorne, Waters (CTW)

Phys. Rev. D 83, 113009

nCTEQ15

Phys. Rev. D 93, 085037, Phys. Rev. D 81, 114012

User Defined

See nuPyProp tutorial repository

Charged Lepton Photonuclear Energy Loss Model

Reference

Abramowicz, Levin, Levy, Maor (ALLM)

hep-ph/9712415, Phys. Rev. D 63, 094020

Bezrukov-Bugaev (BB)

Yad. Fiz. 33, 1195, Phys. Rev. D 63, 094020

Block, Durand, Ha, McKay (BDHM)

Phys. Rev. D 89, 094027, Phys. Rev. D 63, 094020

Capella, Kaidalov, Merino, Tran (CKMT)

Eur. Phys. J. C 10, 153 Phys. Rev. D 63, 094020

User Defined

See nuPyProp tutorial repository

Code Execution Timing Tables

Charged Lepton

Energy Loss Type

E|nu| [GeV]

Angles

N|nu|;;in

Time (hrs)

τ

Stochastic

107

1-35

108

1.07*, 0.26***

τ

Continuous

107

1-35

108

0.88*

τ

Stochastic

108

1-35

108

6.18*, 1.53***

τ

Continuous

108

1-35

108

5.51*

τ

Stochastic

109

1-35

108

27.96*, 5.08***

τ

Continuous

109

1-35

108

19.11*

τ

Stochastic

1010

1-35

108

49.80*, 12.43***

τ

Continuous

1010

1-35

108

35.59*

τ

Stochastic

1011

1-35

108

12.73***

τ

Continuous

1011

1-35

108

Charged Lepton

Energy Loss Type

E|nu| [GeV]

Angles

N|nu|;;in

Time (hrs)

μ

Stochastic

106

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

106

1,2,3,5,7,10,12,15,17,20,25,30,35

108

0.95*

μ

Stochastic

107

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

107

1,2,3,5,7,10,12,15,17,20,25,30,35

108

3.19*

μ

Stochastic

108

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

108

1,2,3,5,7,10,12,15,17,20,25,30,35

108

5.17*

μ

Stochastic

109

1,2,3,5,7,10,12,15,17,20,25,30,35

108

111.77**

μ

Continuous

109

1,2,3,5,7,10,12,15,17,20,25,30,35

108

7.42*

μ

Stochastic

1010

1,2,3,5,7,10,12,15,17,20,25,30,35

108

98.17*

μ

Continuous

1010

1,2,3,5,7,10,12,15,17,20,25,30,35

108

9.76*

μ

Stochastic

1011

1,2,3,5,7,10,12,15,17,20,25,30,35

108

μ

Continuous

1011

1,2,3,5,7,10,12,15,17,20,25,30,35

108

* - Intel Core i7-8750H; 6 cores & 12 threads. ** - Intel Core i5-10210; 4 cores & 8 threads. *** - UIowa Argon cluster; 56 cores.

For debugging/development: The correct order to look at the code is in the following order:

  1. data.py: contains functions for reading/writing from/to hdf5 files.

  2. geometry.py: contains the Earth geometry modules (including PREM) for use with python/fortran.

  3. models.py: contains neutrino cross-section & charged lepton energy loss model templates.

  4. propagate.f90: heart of the code; contains fortran modules to interpolate between geometry variables, cross-sections, energy loss parameters & propagate neutrinos and charged leptons through the Earth.

  5. main.py: forms the main skeleton of the code; propagates the neutrinos and charged leptons, and calculates the p_exit and collects outgoing lepton energies.

  6. run.py: contains all the run parameters and variables needed for all the other .py files.

Developing the code on Ubuntu

These notes should help developers of this code build and install the package locally using a pep518 compliant build system (pip).

  1. Install the non-pypi required dependencies as described for users above.

  2. Install a fortran compiler. ex: sudo apt-get install gfortran

  3. git clone the source code: git clone git@github.com:NuSpaceSim/nupyprop.git

  4. cd nupyprop

  5. build and install the package in ‘editable’ mode python3 -m pip install -e .

Developing the code on MacOS

These notes should help developers of this code build and install the package locally using a pep518 compliant build system (pip). Currently we do not support the default system python3 on MacOS which is out of date and missing critical functionality. Use the homebrew python instead, or a virtualenv, or a conda environment.

  1. Install the non-pypi required dependencies as described for users above.

  2. Install a fortran compiler. ex: brew install gcc

  3. git clone the source code: git clone git@github.com:NuSpaceSim/nupyprop.git

  4. cd nupyprop

  5. build and install the package in ‘editable’ mode python3 -m pip install -e .

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nupyprop-0.1.7.post81-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post81-cp39-cp39-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

nupyprop-0.1.7.post81-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post81-cp38-cp38-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

nupyprop-0.1.7.post81-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post81-cp37-cp37m-macosx_10_9_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file nupyprop-0.1.7.post81-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.7.post81-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ead7c9c002af6d132f0d280e35cafab9692e01cc5af66e8bd9de703ea18d2f88
MD5 ce20d85ffd5700711af0ca5e6015fae6
BLAKE2b-256 0cb1318d8055e2b4a776c8dcaff9aea61cdcd96294a1fdb4757ac0d7358def2c

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.7.post81-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.7.post81-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post81-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 698852b1509d14e5ed2dfdca2de45b28e6fd9650a495906a970b1fc101609e61
MD5 34fce19e6c5eb725b773418e53447604
BLAKE2b-256 d72cefa0bcf8751acb1610a61877a58953dafd8200c59182cee61d38bc6c6165

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.7.post81-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.7.post81-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e45c64cca7f611c521744a47773a89f3de17516c09c959223ed12d159bb5abbb
MD5 2d8d9669084cbb0f924a83435eefbdeb
BLAKE2b-256 35fd9e4c60105b818b8f4a40a8464b3312531e344d875c68521dedf6cbda65e8

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.7.post81-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.7.post81-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post81-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73744eb12dbe299ccf673f0a2e585dcd18ae065fd1d52ef1a87b678ab743bd04
MD5 88d54946f7b2d3782aa1c35316288bf1
BLAKE2b-256 f99e315122ed7230eaac6a3a1130555a9b4c660c9fe67568801443dc6efed142

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.7.post81-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nupyprop-0.1.7.post81-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a00e50755e9b307545a5d482bc3b93f8f2c751216f6311ec7be13f11bc91bba
MD5 92cd877c68c40022c08194ebcffb6c59
BLAKE2b-256 f1783f7987fbea7e0ac6d2bc556e1d11ec003731b7b1338413778c2a71559da9

See more details on using hashes here.

File details

Details for the file nupyprop-0.1.7.post81-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: nupyprop-0.1.7.post81-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post81-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6e27a7b3480e669aaffb696d81f4c7007953fc8acdc4199498ed5a75eb101ee3
MD5 dc528e49edf467e4ca13abafb14cdca1
BLAKE2b-256 a1b79ccd1227151d2afc80c82bd7dec49f00d7ae9dbfcd4eb32863b4588a059c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page