WIMpy_NREFT is a code for calculating Dark Matter direct detection rates in the framework of non-relativistic effective field theory (NREFT).
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Examples Updated to allow user to specify a neutrino flux function Feb 18, 2019
WIMpy Fixed a typo Feb 18, 2019
svgs Fixed README typo Jul 24, 2017
INPUT.md Added NREFT_example.py Jul 24, 2017



Binder DOI MIT Licence

The WIMpy_NREFT code (also known as just WIMpy) allows you to calculate Dark Matter-Nucleus scattering rates in the framework of NREFT (see e.g. arXiv:1203.3542). The code is written in python, with more detailed documentation to appear soon.

The code currently supports operators to , as well as millicharged and magnetic dipole Dark Matter. The code can be used to generate spectra for Xenon, Argon, Carbon, Germanium, Iodine and Fluorine targets.

WIMpy_NREFT now includes functionality to calculate directional recoil spectra, as well as signals from coherent neutrino-nucleus scattering (including fluxes from the Sun, atmosphere and diffuse supernovae).

Authors: Bradley J Kavanagh, Tom D P Edwards.

For questions, comments or bug reports, please contact Bradley J Kavanagh (bradkav@gmail.com).


You can install WIMpy_NREFT using pip:

pip install git+https://github.com/bradkav/WIMpy_NREFT

Requires python3 as well as NumPy and SciPy.


Most of the relevant routines are contained in the module DMUtils.py. Load with

from WIMpy import DMUtils as DMU

For how to use the routines, there are a number of examples in the Examples/ folder:

  • NREFT_example.ipynb, which contains examples of how to use the different parts of the code, including calculating a range of spectra.
  • Spectra.ipynb, which can be used to generate plots of spectra for all NREFT operators and a range of experiments.
  • Directional.ipynb, which demonstrates how to calculate directional recoil spectra, as well as how to transform into different coordinate systems and account for time-integrated directionality.
  • Neutrinos.ipynb, which shows how to calculate neutrino-nucleus scattering spectra.

More detailed documentation should be coming soon...

Notes + Caveats

The code is still a work in progress, so be aware of the following:

  • The code assumes a spin-1/2 DM particle.
  • The code can only be used for NREFT operators up to .