PrimaryFlux#

class gammapy.astro.darkmatter.PrimaryFlux[source]#

Bases: TemplateNDSpectralModel

DM-annihilation gamma-ray spectra.

Based on the precomputed models of PPPC4 DM ID by [1], [R21575ec8b6dd-2] and CosmiXs by [R21575ec8b6dd-3], [R21575ec8b6dd-4]. All available annihilation channels can be found there. The dark matter mass will be set to the nearest available value. The spectra will be available as TemplateNDSpectralModel for a chosen dark matter mass and annihilation channel. Using a TemplateNDSpectralModel allows the interpolation between different dark matter masses.

Parameters:
mDMQuantity

Dark matter particle mass as rest mass energy.

channelstr

Annihilation channel. List available channels with allowed_channels.

sourcestr or Table, optional

Data source for the spectra. Options are:

  • "pppc4" (default): Cirelli et al. 2011.

  • "cosmixs": Cirelli et al. 2024.

  • A path to a custom file: Any format readable by astropy.table.Table.read

(e.g., .ecsv, .fits, .csv, .dat). * An Astropy Table that read the desired path

If a custom file path is provided, it must contain ‘mDM’ (mass of dark matter particle) and ‘Log[10,x]’ (energy) columns, plus columns named after the requested annihilation/decay channels (see the documentation).

mapping_dictdict, optional

Mapping dictionary to map the columns of the custom source file to the expected column names. This is only needed if a file as a spectra source is provided and the column names in the file do not match the expected names. The dictionary should have the format {actual_column_name_in_file:expected_column_name}. An example of the expected columns can be found in the documentation.

References

[1]

`Marco et al. (2011), “PPPC 4 DM ID: a poor particle physicist cookbook

for dark matter indirect detection” <https://ui.adsabs.harvard.edu/abs/2011JCAP…03..051C>`_ .. [R21575ec8b6dd-2] Cirelli et al. (2016), “PPPC 4 DM ID: A Poor Particle Physicist Cookbook for Dark Matter Indirect Detection” .. [R21575ec8b6dd-3] Arina et al. (2024), “CosmiXs: Cosmic messenger spectra for indirect dark matter searches” .. [R21575ec8b6dd-4] `Di Mauro et al. (2025), “Nailing down the theoretical uncertainties of Dbar

spectrum produced from dark matter” <https://arxiv.org/abs/2411.04815>`_

Attributes Summary

allowed_channels

List of allowed annihilation channels.

channel

Annihilation channel as a string.

channel_registry

default_parameters

mDM

Dark matter mass.

mandatory_keys

mapping_dict

Mapping dictionary for the spectra file.

mapping_dict_PPPC4_to_CosmiXs

source

Data source for the spectra.

tag

Methods Summary

evaluate(energy, *args)

Evaluate the primary flux.

Attributes Documentation

allowed_channels#

List of allowed annihilation channels.

channel#

Annihilation channel as a string.

channel_registry = {'HZ': 'HZ', 'V->e': 'V->e', 'V->mu': 'V->\\[Mu]', 'V->tau': 'V->\\[Tau]', 'W': 'W', 'WL': 'WL', 'WT': 'WT', 'Z': 'Z', 'ZL': 'ZL', 'ZT': 'ZT', 'aZ': 'aZ', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e', 'eL': 'eL', 'eR': 'eR', 'g': 'g', 'gamma': '\\[Gamma]', 'h': 'h', 'mu': '\\[Mu]', 'muL': '\\[Mu]L', 'muR': '\\[Mu]R', 'nu_e': '\\[Nu]e', 'nu_mu': '\\[Nu]\\[Mu]', 'nu_tau': '\\[Nu]\\[Tau]', 'q': 'q', 's': 's', 't': 't', 'tau': '\\[Tau]', 'tauL': '\\[Tau]L', 'tauR': '\\[Tau]R', 'u': 'u'}#
default_parameters = <gammapy.modeling.parameter.Parameters object>#
mDM#

Dark matter mass.

mandatory_keys = ['mDM', 'Log[10,x]']#
mapping_dict#

Mapping dictionary for the spectra file.

mapping_dict_PPPC4_to_CosmiXs = {'DM': 'mDM', 'Log10[x]': 'Log[10,x]', 'dNdLog10x[HZ]': None, 'dNdLog10x[H]': 'h', 'dNdLog10x[WL]': 'WL', 'dNdLog10x[WT]': 'WT', 'dNdLog10x[W]': 'W', 'dNdLog10x[ZL]': 'ZL', 'dNdLog10x[ZT]': 'ZT', 'dNdLog10x[Z]': 'Z', 'dNdLog10x[aZ]': None, 'dNdLog10x[a]': '\\[Gamma]', 'dNdLog10x[b]': 'b', 'dNdLog10x[c]': 'c', 'dNdLog10x[d]': 'd', 'dNdLog10x[eL]': 'eL', 'dNdLog10x[eR]': 'eR', 'dNdLog10x[e]': 'e', 'dNdLog10x[g]': 'g', 'dNdLog10x[muL]': '\\[Mu]L', 'dNdLog10x[muR]': '\\[Mu]R', 'dNdLog10x[mu]': '\\[Mu]', 'dNdLog10x[nue]': '\\[Nu]e', 'dNdLog10x[numu]': '\\[Nu]\\[Mu]', 'dNdLog10x[nutau]': '\\[Nu]\\[Tau]', 'dNdLog10x[s]': 's', 'dNdLog10x[t]': 't', 'dNdLog10x[tauL]': '\\[Tau]L', 'dNdLog10x[tauR]': '\\[Tau]R', 'dNdLog10x[tau]': '\\[Tau]', 'dNdLog10x[u]': 'u'}#
source#

Data source for the spectra.

tag = ['PrimaryFlux', 'dm-pf']#

Methods Documentation

evaluate(energy, *args)[source]#

Evaluate the primary flux.

__init__(mDM, channel, source=None, mapping_dict=None)[source]#
classmethod __new__(*args, **kwargs)#