Introduction
DarkProp is a Monte Carlo simulation code for the propagation of dark matter particles in a medium. It was originally developed for simulating the Earth attenuation effect of the cosmic ray boosted dark matter (CRDM).
Overview of the simulation
The simulation of dark matter (DM) propagation includes the following procedures:
Prepare a DM particle with momentum and position sampled from specific initial conditions.
Repeat propagation and scattering processes
- propagation:
Sample a length \(l\) according to the mean free path. Then the DM particle travel the distance \(l\) in a straight line along the momentum direction.
- scattering:
Sample the momentum of the DM particle after scattering using the differential cross section.
Terminate the simulation based on some conditions, for example
Particle escapes the medium.
Particle’s kinetic energy is below a certain threshold.
Once the trajectories of the particles are obtained, we can do any interesting analysis.
The two core steps of the simulation are propagation and scattering, which are explained in the next two sections.
Propagation
Suppose we have a beam of DM particles with intensity \(I\) traveling inside the Earth. The number density of the crustal component nucleus \(N\) is \(n_N\). We are interested in how many particles can freely travel a distance longer than \(L\). The change in intensity \(\mathrm{d}I\) when the particles travel a small distance \(\mathrm{d}z\) is
where
is the total cross section of DM-nucleus (or DM-electron) scattering, where \(q\) is the momentum transfer. The cross section may depend on the energy of the incident DM particle, and \(n_N\) may vary with location. The solution of Eq. (1) is
where \(I_0\) is the intensity at \(L = 0\), and we defined the mean free path \(\lambda\) as
The key point is that \(I / I_0\) can be considered as the probability that a single particle freely passes a distance greater than \(L\), therefore
where \(\hat{l}\) denotes the random variable of distance. Then the cumulative distribution function (CDF) is
We can draw a sample of \(\hat{l}\) by the inverse CDF method
where \(\xi\) is a random number drawn from a uniform distribution between 0 and 1. So the question of sampling a free path \(L\) reduces to solving \(L\) from the equation
The specific form of \(\lambda\) depends on the cross section and the Earth model.
Scattering
Before scattering, we need to determine what kind of nucleus the DM particle collides with. This can be sampled using the probability of scattering on species \(N\)
The probability density function (PDF) of momentum transfer squared \(q^2\) is the normalized differential cross section
The \(q^2\) and the corresponding recoil energy \(T_r\) of the target nucleus can be sampled from this distribution.
For elastic scattering, the scattering angle (between \(\vec{p}_i\) and \(\vec{p}_f\) in laboratory frame) can be obtained from kinematics
where subscripts \(i\) and \(j\) stand for the initial and final states, respectively.
Implementation of the Code
We designed two abstract base classes to implement above processes, the
darkprop::Particle class and the
darkprop::Medium class. General speaking, the Particle
class
implements the total cross section in Eq. (2), the sampling of the recoil energy
using Eq. (10), and the calculation of the scattering angle from the sampled recoil
energy (e.g. Eq. (11) for elastic scattering). The Medium
class
implements the sampling of the free path in Eq. (7) and the
scattering probability in Eq. (9). Using such an abstraction, various DM and
medium models can be implemented by inheriting these two base classes.
See Basic Interface and Implemented Models sections for details.