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
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)
