softpaws
| Documentation | https://meighenbergers.github.io/softpaws/ |
| Repository | https://github.com/MeighenBergerS/softpaws |
| Data release | 10.7910/DVN/MMIIZA |
Summary
softpaws builds the response of a neutrino telescope from muon transport rather than from simulation. It solves the transport of a high-energy muon through matter, turns that solution into the volume a detector effectively watches, and from there into an effective area, an event rate, or the energy of a single track. The same code serves IceCube, KM3NeT/ARCA, P-ONE, TRIDENT and Baikal-GVD, because nothing in the construction is specific to one site.
A published effective area is a Monte-Carlo product: it says what a detector sees but not why, and it cannot be carried to a detector that has not been simulated. softpaws computes the same quantity from the loss kernel of the medium, the neutrino cross section, the geometry of the instrumented volume, and two numbers per site that the instrument sets, a selection threshold and a light reach. That makes it possible to reproduce a published table and see which ingredient carries each feature, to predict the response of a detector that has none yet, and to ask what a measurement would look like under a different loss model.
Installation
pip install git+https://github.com/MeighenBergerS/softpaws.git
Requires Python 3.11 or later, NumPy, SciPy, Matplotlib and emcee. The
optional extras atm (MCEq, for rebuilding the atmospheric background),
transport (PROPOSAL, for regenerating the loss tables), paper (the paper
scripts) and dev cover the heavier dependencies. See the
installation guide.
A first calculation
import numpy as np
from softpaws.detectors import ICECUBE
from softpaws.response.declination import directional_effective_area_cm2
aeff = directional_effective_area_cm2(
ICECUBE, np.array([-0.5]), threshold_gev=1.0e3, log10_e=np.array([5.0, 6.0])
)
print(aeff[:, 0]) # [1.38e+06 3.60e+06] cm^2, at 100 TeV and 1 PeV
The quickstart takes this to a point-source ceiling in five calls, and Your own detector does the same for a layout that has no published table.
Data
The tabulated inputs ship with the package: the muon loss coefficients, the
BGR18 cross section, the MCEq atmospheric background, and the published
effective areas of KM3NeT/ARCA, P-ONE and TRIDENT. The two IceCube releases are large and are not included. Download
the IceTracks-DR2 release
(10.7910/DVN/MMIIZA; paper
arXiv:2605.19040) and, if you need the
starting-event comparison, the HESE 7.5-year release. Place them under the
package's data directory or set SOFTPAWS_DATA_DIR; the expected layout is
in the data guide.
Layout
src/softpaws/
├── transport/ Loss kernel, transport exponent, ranges, Earth, tau channel
├── detectors/ Published geometry, medium and optics per site
├── fluxes/ Power laws, the published fits, the atmospheric background
├── response/ Effective areas: light reach, first principles, declination
├── comparison/ Likelihoods, posteriors, the event benchmark, event energies
├── data/ Loaders for the IceCube release and the published curves
└── constants.py Units, physical constants and defaults
examples/ Twelve tutorials, 01 to 12; output in examples/output/
scripts/
├── 2026_muon_transport/ One script per paper figure, table and number
└── future_bsm/ Searches that belong to a later paper
tests/ Unit tests and the regression fixture the paper is pinned to
docs/ The documentation site
Citation
If softpaws is useful in your work, please cite the method paper and the inputs your analysis relies on; the list is in the citation guide.
@article{MeighenBerger:softpaws,
author = {Meighen-Berger, Stephan A.},
title = {{Estimating High-Energy Neutrino Effective Areas from Muon Propagation}},
year = {2026},
}
The entry is updated with the arXiv number and the journal reference once they exist.
Development with AI assistance
softpaws was developed with the help of Claude, Anthropic's AI assistant, used through Claude Code for code, tests and documentation. The author directed the work and is responsible for its content.
Contributing
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
Getting help
Open an issue for a bug or a feature request, or start a discussion for a question.
License
GPL-3.0-or-later; see LICENSE.
Metadata
Release files for softpaws 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| softpaws-1.0.0.tar.gz | 472.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| softpaws-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 906.5 kB
Release files / softpaws-1.0.0.tar.gz
| Download URL | softpaws-1.0.0.tar.gz |
|---|---|
| Size | 472.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3ef271a4072a0c3dd1a8b320cee4b40c9cd8794d96aa4f8a90c7e09f3aaf0f2
|
|
BLAKE2b-256 checksum How to use checksums |
ab96610277fe78b595f05483dac1d1cf2744fe3d26f4f907e1c68c777435605b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / softpaws-1.0.0-py3-none-any.whl
| Download URL | softpaws-1.0.0-py3-none-any.whl |
|---|---|
| Size | 434.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50059e4c2e34017feb1afeef9f8514b310f3e0892c4fe8ba07b406204450f823
|
|
BLAKE2b-256 checksum How to use checksums |
2957efcde8f2d0928ff3e135c921fa28ef4b69d4b7d69bfdaa38824c29399b7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log