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. 6,7,8,9,10,11. Default energies are 106,106.25,106.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->42 degrees, in steps of 1 degree.

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

  4. -cl or --charged_lepton: flavor of charged 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. -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.

Note: This program uses OpenMP for propagating the huge number of neutrinos injected. For this purpose, the code will use all the threads available in your processor by default. To control the number of threads used for running the code, use export OMP_NUM_THREADS=x, where x is the number of threads you want the code to run with.

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

nupyprop-0.1.7.post123-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post123-cp39-cp39-macosx_10_9_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

nupyprop-0.1.7.post123-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post123-cp38-cp38-macosx_10_9_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

nupyprop-0.1.7.post123-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

nupyprop-0.1.7.post123-cp37-cp37m-macosx_10_9_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for nupyprop-0.1.7.post123-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc21d8695a3709132f452b471ac3a4a63384eac5b9fcd475fabd21c1c6fd3c9f
MD5 bd8d713e44e7ff54cf64035a9d569043
BLAKE2b-256 709bfd4ec293620708dbd32921c0dd1a135dd10ae05a954ef1e6dc257990d1d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nupyprop-0.1.7.post123-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 16.5 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.3 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post123-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c1deb229d423eb993b07efbff0046066363d15e4a80d7d477b9b08ec4d376f17
MD5 83d701258c78292d47399297a4f9cea6
BLAKE2b-256 9e6fdd6c19877e4626531b06a667366ed54b5a72ccc9051e5b85df54f2e3f5df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nupyprop-0.1.7.post123-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f58446d2c2ef632cd3f201aec922be3f75f7e816b5370b79c6b08abada65383b
MD5 befbb326def14b930babb94bced0bdbd
BLAKE2b-256 93c4a87638ce1a45c46dc929151390f5c95e73ab835d571c4adc773508417a1c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nupyprop-0.1.7.post123-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 16.5 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.3 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post123-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d17d248316dc2ad8b006faf0597bc161b7de1c68ffa35f15591fac33e6794f07
MD5 f45e8810cf76fae04509c6dea335a775
BLAKE2b-256 356b91007eea6c0df73ae5f74457cceb5297ae4001ffee4d44c35188b671fd44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nupyprop-0.1.7.post123-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 880faff9bc1da6a51827fee2f819c0db358fb00e3312314fad8f6de97646fce5
MD5 c263a7de29efc101f65853ddc4bd62a1
BLAKE2b-256 5f867a4c62de8e6582cfd0746463ae948ca86a25f7cd5c7586dea57140411bd7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nupyprop-0.1.7.post123-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 16.5 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.3 CPython/3.9.7

File hashes

Hashes for nupyprop-0.1.7.post123-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd024ea05a1c3db8d94d18e68fc535530b49257d1c639a16846a7f42c41c9783
MD5 b5a37aec135b88de16c672582a173bad
BLAKE2b-256 e7afdd3420921a97e0a02f36d4cbaaa35be178e2a72009d034dffad2e58e5534

See more details on using hashes here.

Supported by

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