Skip to main content

A neutrino entering an instrumented volume and the muon it makes leaving it

softpaws

ci docs python license

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)

Source distribution for softpaws 1.0.0
File Size Uploaded
softpaws-1.0.0.tar.gz 472.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for softpaws 1.0.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

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