The CosmiXs code and repository provides the source spectra at production for the cosmic messengers relevant for dark matter indirect searches, namely
The annhilation channels are:
- Fermionic channels
- Bosonic channels
- Inclusion of off-shell effects for
$WW, ZZ, HZ$ producing four fermions and covering DM masses from 5 GeV to$M_X, X=W,Z$ . - Inclusion of helicity information through the LHEF (used as input for PYTHIA). Using the VINCIA shower plugin, which is based on the helicity-depedent Antenna shower, electroweak corrections are taken properly into account.
- Spectra for new channels not previously calculated:
$\gamma Z$ and$HZ$ . - Running quark masses are used for the quark annihilation channels.
- Full one-loop form factors are used for the one-loop induced annihilation channels:
$\gamma\gamma$ ,$gg$ and$\gamma Z$ .
We also release the flux at the production for antideuterons from dark-matter annihilation. For this case we consider the following channels
We do not consider leptonic channels (
- Simple coalescence model.
- Simple coalescence model with a sharp cut on distance (
$p_{\rm coal} < 3$ fm). - Spherical coalescence model.
- Wigner model with a Gaussian wavefunction.
- Wigner model with a Argonne wavefunction.
The repository provides data and code orgenized as follows:
-
Data/directory: includes the source spectra for the following cosmic messengers:- AtProduction-AntiP.dat: for the spectra of
$\bar{p}$ . - AtProduction-Gamma.dat: for the spectra of
$\gamma$ rays. - AtProduction-Nuel.dat: for the spectra of
$\nu_e$ . - AtProduction-Numu.dat: for the spectra of
$\nu_\mu$ . - AtProduction-Nuta.dat: for the spectra of
$\nu_\tau$ . - AtProduction-Positrons.dat: for the spectra of
$e^+$ .
- AtProduction-AntiP.dat: for the spectra of
-
AntiDeuterons/directory: includes the source spectra for antideuterons for the five coalescence models:- AtProduction-AntiD-pcoal.dat: for the simple coalescence model.
- AtProduction-AntiD-pcoalsigma.dat: for the simple coalescence model with a sharp cutoff on distance.
- AtProduction-AntiD-spherical.dat: for the spherical coalescence model.
- AtProduction-AntiD-GWF.dat: for the Wigner model with a Gaussian wavefunction.
- AtProduction-AntiD-AWF.dat: for the Wigner model with Argonne wavefunction.
-
Scripts/directory: includes the necessary files and commands to generate the spectra:-
Models/directory: includes the model files in the Universal FeynRules Output (UFO) format and includes-
DMsimp_s_spin0_MD/for the simplified model with pseudo-scalar mediator. -
DMsimp_s_spin1_MD/for the simplified model with vector mediator. -
ScalarHiggsPortal_NLO_UFO/for the minimal model with Higgs portal including full NLO QCD corrections.
-
-
main101.cc: a minimal C++ code to calculate the spectra for the cosmic messengers included here with PYTHIA. This code reads the input fromspectrum.cmnd. -
scripts_togenerate.txt: A plain text file that shows instructions on how to generate events in MadDM. -
spectrum.cmnd: A basic input file to be read by PYTHIA codemain101.cc, which includes all the necessary parameters to properly activate the VINCIA shower algorithm and generate the spectra.
-
-
Interpolate.py: Python code snippet to perform mass interpolations. -
Example.py: Python example on how to call theInterpolateclass and calculate the spectra for dark matter mass values not included in our tables.
For each cosmic messenger, there is a dedicated file in ASCII format. The tables can be found in the folder Data/, where we provide the spectra for 29 annihilation channels and 6 cosmic messengers named as
AtProduction-FS.dat where FS=AntiP, Gamma, Nuel, Numu, Nuta, Positrons.
Each file contains 31 columns: The DM mass in GeV, the fraction x -- defined as the kinetic energy divided by the DM mass in 180 bins on the logarithmic scale and the spectrum in units of dN/dlog10(x). The rest of the columns are organised as follows:
[$e^+_L e^-_L$] [$e^+_R e^-_R$] [$e^+ e^-$] [$\mu^+_L \mu^-_L$] [$\mu^+_R \mu^-_R$] [$\mu^+ \mu^-$] [$\tau^+_L \tau^\
-_L$] [$\tau^+_R \tau^-_R$] [$\tau^+ \tau^-$] [$\nu_e \bar{\nu}_e$] [$\nu_\mu \bar{\nu}_\mu$] [$\nu_\tau \bar{\nu}_\tau$] [$u \bar{u}$] \
[$d \bar{d}$] [$s \bar{s}$] [$c \bar{c}$] [$b \bar{b}$] [$t \bar{t}$] [$\gamma \gamma$] [$g g$] [$W^+ W^-$] [$W_L W_L$] [$W_T W_T$] \
[$Z Z$] [$Z_L Z_L$] [$Z_T Z_T$] [$H H$] [$Z \gamma$] [$H Z$] For the anitdeuteron case, the spectra in ASCII format can be found in the folder AntiDeuterons/. So far we have the spectra for 15 annihilation channels. The files are
named as
AtProduction-AntiD-Model.dat where Model=pcoal, pcoalsigma, spherical, GWF, AWF.
Each file contains 17 column: The DM mass in GeV, and the fraction -- defined as the kinetic energy of the antideuteron divided by the DM mass in 180 bins on the logarithmic scale and the spectrum in units of dN/dlog10(x):
uu; dd; ss; cc; bb; tt; gamma gamma; gg; WW; W_L W_L; W_T W_T; ZZ; Z_L Z_L; Z_T Z_T; HH; Z gamma; HZTo guarantee small statistical fluctuations we have generated large number of events per annihilation channel and per dark-matter mass. For the channels relevant to antideuteron spectra the number of annihilation events scale inversely with mass, i.e. larger events for low masses. We used the following grid
| Mass [GeV] | # of events |
|---|---|
| 5.01187 | 22.91234 |
| 6.30957 | 17.63009 |
| 7.94328 | 13.91718 |
| 10.00000 | 11.17117 |
| 12.58925 | 9.06216 |
| 15.84893 | 7.40872 |
| 19.95262 | 6.10322 |
| 25.11886 | 5.06775 |
| 31.62278 | 4.23995 |
| 39.81072 | 3.57341 |
| 50.11872 | 3.03536 |
| 63.09573 | 2.60036 |
| 79.43282 | 2.24636 |
| 100.00000 | 1.95453 |
| 125.89254 | 1.70982 |
| 158.48932 | 1.50104 |
| 199.52623 | 1.32084 |
| 251.18864 | 1.16502 |
| 316.22777 | 1.03078 |
| 398.10717 | 0.91530 |
| 501.18723 | 0.81559 |
| 630.95734 | 0.72894 |
| 794.32823 | 0.65322 |
| 1000.00000 | 0.58682 |
| 1258.92541 | 0.52857 |
| 1584.89319 | 0.47756 |
| 1995.26231 | 0.43282 |
| 2511.88643 | 0.39330 |
| 3162.27766 | 0.35808 |
| 3981.07171 | 0.32651 |
| 5011.87234 | 0.29813 |
| 6309.57344 | 0.27258 |
| 7943.28235 | 0.24947 |
| 10000.00000 | 0.22852 |
| 12589.25412 | 0.20953 |
| 15848.93192 | 0.19237 |
| 19952.62315 | 0.17690 |
| 25118.86432 | 0.16295 |
| 31622.77660 | 0.15037 |
| 39810.71706 | 0.13911 |
| 50118.72336 | 0.12926 |
| 63095.73445 | 0.12115 |
| 79432.82347 | 0.11528 |
| 100000.00000 | 0.11219 |
Where the number of events is scaled by 10^{-8}. For annihilation channels into photons and leptons, i.e.
we have generated 15 million annihilation events.
Here we show how to generate the spectra for three examples:
-
$\chi \chi \to b\bar{b}$ using the Higgs portal model:import model ScalarHiggsPortal_NLO_UFOdefine darkmatter n1generate indirect_detection b b~output folder_namelaunch folder_nameset indirect = flux_sourceset save_indirect_cont 1e-3set save_output spectraset preciseset sigmav_method madeventset nevents 100000set msdm 1000
-
$\chi\chi \to \nu_e \bar{\nu}_e$ using a simplified model with spin-1 mediator:import model DMsimp_s_spin1_MDdefine darkmatter ~xdgenerate indirect_detection ve ve~output folder_namelaunch folder_nameset indirect = flux_sourceset gnu11 0.25set gnu22 0.25set gnu33 0.25set save_indirect_cont 1e-3set save_output spectraset preciseset sigmav_method madeventset nevents 100000set msdm 1000
-
$\chi\chi \to HZ$ using a simplified model with pseudo-scalar mediator:import model DMsimp_s_spin0_MDdefine darkmatter ~xdgenerate ~xd ~xdb > h zoutput folder_namelaunch folder_nameset indirect = flux_sourceset save_indirect_cont 1e-3set save_output spectraset preciseset sigmav_method madeventset nevents 10000set msdm 1000
-
Parameters to select the VINCIA shower with full-fledged electroweak corrections
PartonShowers:model = 2Vincia:ewMode = 3TimeShower:pTminWeak = 1.0000000000e-01WeakShower:singleEmission = off
-
Parameters of the Lund string model
StringZ:aLund = 0.337409StringZ:bLund = 0.784682StringPT:sigma = 0.296569StringZ:aExtraDiquark = 1.246986
-
To enable for PYTHIA to decay the muon,
$\pi^\pm$ ,$K_L$ ,$K^0$ and the neutron13:mayDecay=on211:mayDecay=on321:mayDecay=on310:mayDecay=on2112:mayDecay=on
- Generate the spectra for DM masses from 100 TeV to 1 PeV.
- Add a code snippet to quickly plot the spectra and perform comparisons.
- Add a code snippet to obtain the spectra for a decaying DM.
- Generate the spectra for the off-shell
$W_L W_L, W_T W_T, Z_L Z_L$ and$Z_T Z_T$
If you use these Tables please cite:
- C. Arina, M. Di Mauro, N. Fornengo, J. Heisig, A. Jueid, R. Ruiz de Austri, JCAP 03 (2024) 035
- M. Di Mauro, N. Fornengo, A. Jueid, R. Ruiz de Austri, F. Bellini, Phys.Rev.Lett. 135 (2025) 13, 131002
If you would like to assess QCD uncertainties on the spectra (repo can be found on https://github.com/ajueid/qcd-dm.github.io), please cite:
- A. Jueid, J.Kip, R. Ruiz de Austri, P.Skands, JHEP 02 (2024) 119
- A. Jueid, J.Kip, R. Ruiz de Austri, P.Skands, JCAP 04 (2023) 068
- S. Amoroso, S. Caron, A. Jueid, R. Ruiz de Austri, P.Skands, JCAP 05 (2019) 007
In our setup, the upper edge of the last energy bin coincides with the dark matter mass. We regard this as the most physically consistent choice, since the kinematic endpoint is then aligned with the boundary of the binning. An alternative convention is to define the binning such that the center of the last bin coincides with the dark matter mass, as is done, for example, in PPPC4DM. With this choice, the tabulated or plotted spectrum appears to extend all the way to the dark matter mass. However, the last bin is then centered on the kinematic endpoint rather than terminating at it. Consequently, only the lower half of that bin lies within the kinematically accessible region, while the upper half contains no events. The bin-averaged spectrum in the last bin is therefore artificially suppressed relative to a binning in which the upper edge, rather than the center, is placed at the endpoint. This distinction becomes particularly relevant for line, box, or VIB-like emission, for which tabulated spectra such as CosmiXs are not specifically designed. More generally, our tables are intended to accurately resolve very narrow spectral features close to the dark matter mass. In the case of line emission, a dedicated treatment should instead be performed, in which the line signal is convolved with the energy resolution of the experiment.
This project is distributed under the COSMIXS Attribution License.
You are free to use, share, and modify the material, provided you:
- Cite the following papers:
- Arina et al., JCAP 03 (2024) 035
- Di Mauro et al., Phys. Rev. Lett. 135 (2025) 13, 131002
- Include a link to the COSMIXS GitHub page.
- Indicate any modifications made.
See the full license in LICENSE.md.
If you have any question or bug reports, please contact:
- Mattia Di Mauro (dimauro.mattia@gmail.com)
- Adil Jueid (adil.hep@gmail.com)
- Roberto Ruiz de Austri (rruiz@ific.uv.es)
