We introduce WimPyDD, a modular, object–oriented and customizable Python code that calculates accurate predictions of nuclear scattering expected rates for Weakly Interacting Massive Particle (WIMP) direct–detection experiments within the framework of Galilean–invariant non–relativistic effective theory in virtually any scenario, including inelastic scattering, an arbitrary WIMP spin and a generic WIMP velocity distribution in the Galactic halo. WimPyDD can also be used to analyze WIMP direct detection signals in halo–independent approaches where the velocity distribution is written in terms of a superposition of streams taken as free parameters. WimPyDD exploits the factorization of the three main components that enter in the calculation of direct detection signals: i) the Wilson coefficients that encode the dependence of the signals on the ultraviolet completion of the effective theory; ii) a response function that depends on the nuclear physics and on the main features of the experimental detector (acceptance, energy resolution, response to nuclear recoils); iii) a halo function that depends on the WIMP velocity distribution and that encodes the astrophysical inputs. In WimPyDD these three components are calculated and stored separately for later interpolation and combined together only as the last step of the signal evaluation procedure. This makes the phenomenological study of the direct detection scattering rate with WimPyDD transparent and fast also when the parameter space of the WIMP model has a large dimensionality. Program summaryProgram Title: WimPyDD (first release: v1.6.1)CPC Library link to program files:https://doi.org/10.17632/rfjb6tkzr8.1Developer's repository link:https://wimpydd.hepforge.orgLicensing provisions: MITProgramming language: Python3Nature of the problem: Weakly Interacting Massive Particles (WIMPs) are the most popular candidates for the Cold Dark Matter that is known to constitute about 25% of the density of the Universe. Direct detection (DD) experiments look for WIMP-nucleus scattering events in solid-state or liquid-state detectors in underground laboratories, and analyze their data only with a limited set of theoretical assumptions. Beyond such assumptions the experimental data need to be re-analyzed on a case-by-case basis. In order to do so accurate signal predictions are needed, which depend on particle physics, nuclear physics and astrophysics inputs, and on the response of each detector. In general scenarios this is usually beyond the capabilities of both model builders and experimentalists. Moreover if the parameter space of the theoretical model is large the calculation of signals becomes cumbersome, because it requires a multiple integration for each choice of the parameters.Solution method: WimPyDD allows to perform accurate DD signal calculations for virtually any scenario, including an arbitrary spin, inelastic scattering, and a non-standard halo function. Each ingredient can be set up independently in an easy and intuitive way. In particular pre-defined nuclear targets, experimental set-ups and effective Hamiltonians are available in the code as objects belonging to dedicated Python classes. Such objects can be directly used, or be adopted as templates to create new ones following the instructions contained in the present paper. More pre-defined objects (such as future experimental set-ups) will be made available on the code website. Moreover, the response of the detector, which represents the most time-consuming part of the calculation, is encoded in tabulated response functions that do not depend on the WIMP mass, on the halo function or the parameters of the effective Hamiltonian and that are interpolated at run time. This allows to explore in a fast and efficient way WIMP theoretical scenarios also when their parameter space is large.
Read full abstract