Skip to main content

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.

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 .

Metadata

Release files for nupyprop 0.1.7.post112

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for nupyprop 0.1.7.post112
File
nupyprop-0.1.7.post112-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post112-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
nupyprop-0.1.7.post112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post112-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
nupyprop-0.1.7.post112-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
nupyprop-0.1.7.post112-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details

Total release size: 98.6 MB

Release files / nupyprop-0.1.7.post112-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 16.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ed0eee4530c5df42130d8cd30ceac4a3d79920eae7d2483df03e4d1d6edbdb58
BLAKE2b-256 checksum
How to use checksums
32e2151b0373cb4b278ec3e6e0239841db6d83418a2a3182d82bb8965290341c
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / nupyprop-0.1.7.post112-cp39-cp39-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp39-cp39-macosx_10_9_x86_64.whl
Size 16.5 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
016b977806730975e68adbf321eac51a017b8cef0fd865fd6312e0b18536a383
BLAKE2b-256 checksum
How to use checksums
1636438feca871c65bf9a32ea09cc4e2bdea8ebbd43b3375bd1c992ef02abddf
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / nupyprop-0.1.7.post112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 16.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b5b09c0945e7c90ad032bd37f0db205de474901cbff45e75f63684da6ce4883f
BLAKE2b-256 checksum
How to use checksums
62c25d6873d8440305d51864590a574cbd5bd85a78306e101411cc7fbac4a33e
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / nupyprop-0.1.7.post112-cp38-cp38-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp38-cp38-macosx_10_9_x86_64.whl
Size 16.5 MB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
0efd21f64a5ade749b5a85f08a590f0ac333bacf9e9825bbd37a215d9e15f5a0
BLAKE2b-256 checksum
How to use checksums
a543fc57856a28c2712601e32527c722bb2d6bfcaa6685f6527f66ebb5d8c55a
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / nupyprop-0.1.7.post112-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 16.4 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fef2ab6904406fb23edbeb885f0f9300ad09cae14e35e394553a04a56ff8ade9
BLAKE2b-256 checksum
How to use checksums
c4d680f342bf4787c980a008c8bd7b0206c3b7bd45c2e12d6f1088dd0bea0a90
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / nupyprop-0.1.7.post112-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL nupyprop-0.1.7.post112-cp37-cp37m-macosx_10_9_x86_64.whl
Size 16.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b015b11ec27e4fca8f4ab0d07f6cb1e474289cbee4827cf762c52918b305d942
BLAKE2b-256 checksum
How to use checksums
33e4645e75c4bbd6fdfe110e53547c9216b8ed7afef2575426afee86d174c080
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for nupyprop 0.1.7.post112

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page