Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


DOI arXiv MIT Licence

Verne is a python code for calculating the Earth-stopping effect for Dark Matter (DM).

The code allows you to calculate the speed distribution (and DM signal rate) at detectors in the Earth's atmosphere, on the Earth's surface and at underground detector locations, such as MPI (the Max-Planck-Institute in Munich) and SUF (the Stanford Underground Facility). This can be done for a range of DM masses and cross sections (though the results will be most reliable for very heavy DM particles). This is because the code implements a 'continuous stopping' formalism, with DM particles travelling on straight-line trajectories. Further details about the physics behind the code can be found in arXiv:1712.04901.

The core of the code (the verne module) is in the src folder, head there for some details of how to use the code.

Version history

Version 1.2 (09/03/2021): Major update to include spin-dependent interactions (and fix a few minor bugs). Now compatible with Python3.
Version 1.1 (12/02/2018): Updated event rate calculation to account for correct CRESST exposure times. Minor edits to text.
Version 1.0 (14/12/2017): Initial release (including arXiv numbers, etc.)
Version 0.9 (13/12/2017): Pre-release before arXiv submission.


  • src: Core of the verne code, including calculation scripts.
  • data: A collection of data tables (Earth element density profiles, etc.) which are read in by verne.
  • results: Numerical results for the final speed distributions, numbers of signal events and constraints.
  • plotting: Scripts for generating plots from the results.
  • plots: Plots and illustrations summarising the key results. Mostly from arXiv:1712.04901.
  • paper: PDF and tex files for the associated paper.


The code is compatible with Python3. Requires numpy and scipy. More detailed dependencies can be found in requirements.txt.

Some code is included for calculating nuclear recoil spectra in direct detection experiments, but we recommend using WIMpy (which is more flexible and more complete) for recoil spectra calculations.

Citing Verne

If you make use of the code or the numerical results, please cite:

Kavanagh, B. J., 2016, Verne, Astrophysics Source Code Library, record ascl:1802.005, available at

as well as citing the original paper, arXiv:1712.04901:

Kavanagh, B. J. (2017), "Earth-Scattering of super-heavy Dark Matter: updated constraints from detectors old and new", arXiv:1712.04901.


The verne code has been used (in some form or another) in the follow research papers:

  • Etching Plastic Searches for Dark Matter, A. Bhoonah, J. Bramante, B. Courtman & N. Song (2020), arXiv:2012.13406
  • Detecting Composite Dark Matter with Long Range and Contact Interactions in Gas Clouds, A. Bhoonah, J. Bramante, S. Schon & N. Song (2020), arXiv:2010.07240
  • Migdal effect and photon Bremsstrahlung: improving the sensitivity to light dark matter of liquid argon experiments, G. Grilli di Cortona, A. Messina & S. Piacentini (2020), arXiv:2006.02453
  • Measuring the local Dark Matter density in the laboratory, B. J. Kavanagh, T. Emken & R. Catena (2020), arXiv:2004.01621
  • A Search for Light Dark Matter Interactions Enhanced by the Migdal effect or Bremsstrahlung in XENON1T, Xenon1T Collaboration (2019), arXiv:1907.12771
  • Searching for low-mass dark matter particles with a massive Ge bolometer operated above-ground, EDELWEISS Collaboration & B. J. Kavanagh (2019), arXiv:1901.03588
  • Earth-Scattering of super-heavy Dark Matter: updated constraints from detectors old and new, B. J. Kavanagh (2017), arXiv:1712.04901


Python code for calculating the Earth-stopping effect for super-heavy Dark Matter (DM).




No packages published