Particle physics quantities

Overview

In addition to providing functions for computing gamma-ray and CMB constraints, the Theory class has methods for computing a variety of particle physics quantities, which are documented on this page.

Methods

static Theory.list_annihilation_final_states()[source]

Lists annihilation final states.

Subclasses must implement this method.

Returns:fss – Possible annihilation final states.
Return type:list(str)
Theory.annihilation_cross_sections(e_cm)[source]

Computes annihilation cross sections.

Parameters:e_cm (float) – Center of mass energy for the annihilation in MeV.
Returns:sigmas – Annihilation cross section into each final state in \(\mathrm{MeV}^{-2}\) as well as the total cross section.
Return type:dict(str, float)
Theory.annihilation_cross_sections(e_cm)[source]

Computes annihilation cross sections.

Parameters:e_cm (float) – Center of mass energy for the annihilation in MeV.
Returns:sigmas – Annihilation cross section into each final state in \(\mathrm{MeV}^{-2}\) as well as the total cross section.
Return type:dict(str, float)
Theory.annihilation_branching_fractions(e_cm)[source]

Computes annihilation branching fractions.

Parameters:e_cm (float) – Center of mass energy for the annihilation in MeV.
Returns:bfs – Annihilation branching fractions into each final state.
Return type:dict(str, float)
Theory.partial_widths()[source]

Computes mediator decay widths.

Subclasses must implement this method.

Returns:widths – Mediator partial widths in MeV as the total cross decay width.
Return type:dict(str, float)
Theory.total_spectrum(e_gams, e_cm)[source]

Computes total continuum gamma-ray spectrum.

Parameters:
  • e_gams (float or float numpy.array) – Photon energy or energies at which to compute the spectrum.
  • e_cm (float) – Annihilation center of mass energy.
Returns:

spec – Array containing the total annihilation gamma-ray spectrum.

Return type:

float numpy.array

Theory.gamma_ray_lines(e_cm)[source]

Gets information about annihilation into gamma-ray lines.

Subclasses must implement this method.

Parameters:e_cm (float) – Annihilation center of mass energy.
Returns:lines – For each final state containing a monochromatic photon, gives the energy of the photon and branching fraction into that final state.
Return type:dict(str, dict(str, float))
Theory.spectra(e_gams, e_cm)[source]

Gets the contributions to the continuum gamma-ray annihilation spectrum for each final state.

Parameters:
  • e_gams (float or float numpy.array) – Photon energy or energies at which to compute the spectrum.
  • e_cm (float) – Center of mass energy for the annihilation in MeV.
Returns:

specs – Contribution to \(dN/dE_\gamma\) at the given photon energies and center-of-mass energy for each relevant final state. More specifically, this is the spectrum for annihilation into each channel rescaled by the corresponding branching fraction into that channel.

Return type:

dict(str, float)

Theory.spectrum_funcs()[source]

Gets a function computing the continuum gamma-ray spectrum for annihilations into each relevant final state.

Subclasses must implement this method.

Returns:spec_fns\(dN/dE_\gamma\) as a function of photon energies and the annihilation center of mass energy for annihilation into each final state that produces a continuum spectrum.
Return type:dict(str, (float or np.array, float) -> float)
Theory.total_conv_spectrum_fn(e_gam_min, e_gam_max, e_cm, energy_res, n_pts=1000)[source]

Computes the total gamma-ray spectrum convolved with an energy resolution function.

Parameters:
  • e_min (float) – Lower bound of energy range over which to perform convolution.
  • e_max (float) – Upper bound of energy range over which to perform convolution.
  • e_cm (float) – Center of mass energy for DM annihilation.
  • energy_res (float -> float) – The detector’s energy resolution (Delta E / E) as a function of photon energy in MeV.
  • n_pts (float) – Number of points to use to create resulting interpolating function. More points gives higher accuracy at the cost of computing time, but is necessary if the continuum spectrum contains very sharp features.
Returns:

dnde_conv – An interpolator giving the DM annihilation spectrum smeared by the energy resolution function. Using photon energies outside the range [e_min, e_max] will produce a bounds_error.

Return type:

InterpolatedUnivariateSpline

Theory.total_positron_spectrum(e_ps, e_cm)[source]

Computes the total positron ray spectrum.

Parameters:
  • e_ps (float or float numpy.array) – Positron energy or energies at which to compute the spectrum.
  • e_cm (float) – Annihilation center of mass energy.
Returns:

spec – Array containing the total annihilation positron spectrum.

Return type:

float numpy.array

Theory.positron_lines(e_cm)[source]

Gets information about annihilation into monochromatic positrons.

Subclasses must implement this method.

Parameters:e_cm (float) – Annihilation center of mass energy.
Returns:lines – For each final state containing a monochromatic positron, gives the energy of the positron and branching fraction into that final state.
Return type:dict(str, dict(str, float))
Theory.positron_spectra(e_ps, e_cm)[source]

Gets the contributions to the continuum positron annihilation spectrum for each final state.

Parameters:
  • e_ps (float or float numpy.array) – Positron energy or energies at which to compute the spectrum.
  • e_cm (float) – Center of mass energy for the annihilation in MeV.
Returns:

specs – Contribution to \(dN/dE_\gamma\) at the given positron energies and center-of-mass energy for each relevant final state. More specifically, this is the spectrum for annihilation into each channel rescaled by the corresponding branching fraction into that channel.

Return type:

dict(str, float)

Theory.positron_spectrum_funcs()[source]

Gets a function computing the continuum positron spectrum for annihilations into each relevant final state.

Subclasses must implement this method.

Returns:spec_fns\(dN/dE_{e^+}\) as a function of positron energies and the annihilation center of mass energy for annihilation into each final state that produces a continuum spectrum.
Return type:dict(str, (float or np.array, float) -> float)
Theory.total_conv_positron_spectrum_fn(e_p_min, e_p_max, e_cm, energy_res, n_pts=1000)[source]

Computes the total positron spectrum convolved with an energy resolution function.

Parameters:
  • e_min (float) – Lower bound of energy range over which to perform convolution.
  • e_max (float) – Upper bound of energy range over which to perform convolution.
  • e_cm (float) – Center of mass energy for DM annihilation.
  • energy_res (float -> float) – The detector’s energy resolution (Delta E / E) as a function of positron energy in MeV.
  • n_pts (float) – Number of points to use to create resulting interpolating function. More points gives higher accuracy at the cost of computing time, but is necessary if the continuum spectrum contains very sharp features.
Returns:

dnde_conv – An interpolator giving the DM annihilation spectrum smeared by the energy resolution function. Using positron energies outside the range [e_min, e_max] will produce a bounds_error.

Return type:

InterpolatedUnivariateSpline