singletscalar_dm package#

Module contents#

Singlet Scalar DM#

This modules provides the code for calculating cross sections, relic density and source spectra for the singlet scalar model of dark matter.

Notes

The package routines rely on additional data files containing the main data the computations are based on. These data files can be obtained by using the function import_data_file:

>>> from singletscalar_dm import import_data_file
... data_path = import_data_file('SHP_sigmav_bb.dat')
singletscalar_dm.Br_inv(lambda_hs, DMmass, Gamma_H)[source]#

Calculates the Branching ratio of the Standard Model Higgs boson to invisible particles.

Parameters:
  • lambda_hs (np.ndarray) – The coupling between Higgs boson and the dark matter.

  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Gamma_H (np.ndarray) – The Higgs width in GeV.

Returns:

Br_inv – The Branching ratio of Higgs to invisible.

Return type:

ndarray

singletscalar_dm.Br_inv_UL(lambda_hs, DMmass, Gamma_H, Gamma_inv_measured)[source]#

Calculates the upper limit on the Branching ratio of Higgs boson to invisible particles.

Parameters:
  • lambda_hs (np.ndarray) – The coupling between Higgs boson and the dark matter.

  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Gamma_H (np.ndarray) – The Higgs width in GeV.

  • Gamma_inv_measured (np.ndarray) – The Higgs with to invisible particles as measured experimentally.

Returns:

Br_inv_ul – The upper limit on Branching ratio of Higgs to invisible particles.

Return type:

ndarray

singletscalar_dm.DMspectra_inttable(DMmass_val, lambdahs_val, particle, smooth=False)[source]#

Calculates the dark matter source spectra in units of dN/dlog10(x).

The computation is done for given values of the mass and lambda_HS.

Parameters:
  • DMmass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambdahs_val (np.ndarray) – Values of the lambda_HS parameter.

  • particle ({'gammas', 'positrons', 'antiprotons', 'neutrinos_e', 'neutrinos_mu', 'neutrinos_tau'}) – The annihilation channel of dark matter.

  • smooth (bool, default=False) – Whether to consider the smoothed spectra.

Returns:

  • bins (ndarray) – The log-spaced bins in variable \(x = E/m_{DM}\).

  • spectra (ndarray) – The values of the spectra.

singletscalar_dm.Gamma_inv(DMmass, lambda_hs)[source]#

Calculates the invisible width of the Higgs boson in GeV.

Parameters:
  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • lambda_hs (np.ndarray) – The coupling between Higgs boson and the dark matter.

Returns:

Gamma_inv – The invisible width of the Higgs boson.

Return type:

ndarray

singletscalar_dm.GetUL_DD_nomega(DMmass_val, Exp)[source]#

Provides the direct detection sigma SI upper limits for specified experiment.

It interpolates the limits on the array of dark matter masses provided. Limits are returned in units cm^2. The relic relic density and local dark matter density is the one of DM.

Parameters:
  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Exp ({'LZ', 'Darwin'}) – The experiment to consider.

Returns:

ul – The upper limit values sampled at the provided masses.

Return type:

ndarray

singletscalar_dm.GetUL_DD_withomega(DMmass, Lambda_vec, Mass_vec, csi_vec, Exp)[source]#

Provides the direct detection sigma SI upper limits for specified experiment.

It interpolates the limits on the array of dark matter masses provided. Limits are returned in units cm^2. <missing>

Parameters:
  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Lambda_vec (np.ndarray) – Vector of the values of lambda_hs used for the calculation of the relic density

  • Mass_vec (np.ndarray) – Vector of the values of mass used for the calculation of the relic density

  • csi_vec (np.ndarray) – Vector of the values of csi used for the calculation of the relic density

  • Exp ({'LZ', 'Darwin'}) – The experiment to consider.

Returns:

ul – The upper limit values sampled at the provided masses.

Return type:

ndarray

singletscalar_dm.SI_noomega(DMmass_val, lambdahs_val)[source]#

Provides the spin-independent cross-section for direct detection in cm^2.

The computation is done for given values of the mass and lambda_HS.

Parameters:
  • DMmass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambdahs_val (np.ndarray) – Values of the lambda_HS parameter.

Returns:

sigma_si – The values of the spin-independent cross-section.

Return type:

ndarray

singletscalar_dm.SI_withomega(DMmass, lambda_hs, Lambda_vec, Mass_vec, csi_vec)[source]#

Provides the spin-independent cross-section for direct detection in cm^2.

This function takes into account the relic density for the values of the parameters lambda_hs and DMmass.

Parameters:
  • lambdahs_val (np.ndarray) – Values of the lambda_HS parameter.

  • DMmass_val (np.ndarray) – Dark matter mass values in GeV.

  • Lambda_vec (np.ndarray) – Vector of the values of lambda_hs used for the calculation of the relic density

  • Mass_vec (np.ndarray) – Vector of the values of mass used for the calculation of the relic density

  • csi_vec (np.ndarray) – Vector of the values of csi used for the calculation of the relic density

Returns:

sigma_si – The values of the spin-independent cross-section.

Return type:

ndarray

singletscalar_dm.flux_DM_prompt(Energy, DMmass, lambda_hs, warningprint)[source]#

Calculates prompt flux of gamma rays from dark matter annihilation for a given dark matter mass and lambda_hs.

Parameters:
  • Energy (np.ndarray) – The gamma-ray energy in GeV

  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • lambda_hs (np.ndarray) – The coupling between Higgs boson and the dark matter.

  • warningprint ({True, False}) – Flag to decide if you want to print the warning messages or not

Returns:

dNdE – The prompt flux of gamma rays from dark matter annihilation

Return type:

ndarray

singletscalar_dm.func_interpolate(varval, variablevec, funcvec)[source]#

This function is a generic 1D interpolator that can be used for every vectors variablevec,funcvec

Parameters:
  • varval (np.ndarray) – Value at which the interpolation is performed

  • variablevec (np.ndarray) – Vector of the indipendent variable

  • funcvec (np.ndarray) – Vector of the dependent variable

Returns:

result – Result of the interpolation at varval

Return type:

ndarray

singletscalar_dm.import_data_file(file_name)[source]#

Return the path of a data file in singletscalar_dm.data

Parameters:

file_name (str) – The file name.

Returns:

path – The path of the specified file_name.

Return type:

str

Raises:

FileNotFoundError – If the specified file does not exist in the package data.

Notes

It leverages importlib.resources.path, which can be used from Python 3.7.

singletscalar_dm.interpolate_Omega(mass_val, lambda_val, QCDmodel, warningprint)[source]#

Calculates the relic density as Omega h^2 given the dark matter mass and lambda_hs.

Parameters:
  • mass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambda_val (np.ndarray) – Values of the lambda_HS parameter.

  • QCDmodel ({'QCDA', 'QCDB'}) – Model for the QCD phase transition.

Returns:

Omega_val – The values of the relic density interpolated on the 2d grid of mass and coupling.

Return type:

np.ndarray

Notes

The computation of the relic density has been obtained via the code DRAKE and MICROMEGAs.

singletscalar_dm.interpolate_Omega_MicrOMEGAs(mass_val, lambda_val)[source]#

Calculates the relic density as Omega h^2 given the mass and lambda.

Parameters:
  • mass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambda_val (np.ndarray) – Values of the lambda_HS parameter.

Returns:

Omega_val – The value of the relic density interpolated on the 2d grid of mass and coupling.

Return type:

np.ndarray

Notes

The computation of the relic density has been obtained via the code MicrOMEGAs.

singletscalar_dm.interpolate_lambda(mass_val, Omega_val, QCDmodel, warningprint)[source]#

Calculates the lambda_HS parameter for given relic density and mass values.

Parameters:
  • mass_val (np.ndarray) – Dark matter mass values in GeV.

  • Omega_val (np.ndarray) – The values of the relic density interpolated on the 2d grid of mass

  • QCDmodel ({'QCDA', 'QCDB'}) – Model for the QCD phase transition.

  • warningprint ({True, False}) – Flag to decide if you want to print the warning messages or not

Returns:

lambda_val – Values of the lambda_HS parameter, obtained through interpolation.

Return type:

np.ndarray

Notes

The computation of the parameter uses the computation of the relic density obtained via the code DRAKE and MICROMEGAs.

singletscalar_dm.interpolate_lambda_MicrOMEGAs(mass_val, Omega_val, warningprint)[source]#

Calculates the lambda_HS parameter for given relic density and mass values.

Parameters:
  • mass_val (np.ndarray) – Dark matter mass values in GeV.

  • Omega_val (np.ndarray) – The value of the relic density interpolated on the 2d grid of mass

  • warningprint ({True, False}) – Flag to decide if you want to print the warning messages or not

Returns:

lambda_val – Values of the lambda_HS parameter, obtained through interpolation.

Return type:

np.ndarray

Notes

The computation of the parameter uses the computation of the relic density obtained via the code MicrOMEGAs.

singletscalar_dm.interpolate_relicdensity(mass_val, QCDmodel)[source]#

Calculates the lambda_hs value for which we obtain the observed DM relic density (Omegah^2=0.120).

Parameters:
  • mass_val (np.ndarray) – Dark matter mass values in GeV.

  • QCDmodel ({'MICROMEGAs', 'QCDA', 'QCDB'}) – Model for the QCD phase transition.

Returns:

lambda_val – Values of the lambda_HS parameter.

Return type:

np.ndarray

Notes

The computation of the relic density has been obtained via the code DRAKE and MICROMEGAs.

singletscalar_dm.lambda2sigmav(DMmass_val, lambdahs_val, table_int)[source]#

Returns the interpolated \(\sigma v\) value on mass and coupling.

The value is given in units of cm^3/s.

Parameters:
  • DMmass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambdahs_val (np.ndarray) – Values of the lambda_HS parameter.

  • table_int (np.ndarray) – Array containing all the computed values of the \(\sigma v\).

Returns:

sigmav – The values of the \(\sigma v\).

Return type:

np.ndarray

singletscalar_dm.minimize_br_inv(DMmass, Gamma_H, Gamma_inv_measured)[source]#

Returns the upper limits for lambda_hs given the upper limits for the branching ratio of the Higgs boson into invisible particles

This function utilizes a minimazer to find the upper limit for lambda_hs. In particular, it finds the value of lambda_hs for which the theoretical value of Gamma^H_invisible is equal to the observed value.

Parameters:
  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Gamma_H (np.ndarray) – The Higgs width in GeV.

  • Gamma_inv_measured (np.ndarray) – The Higgs with to invisible particles as measured experimentally.

Returns:

lambda_ul – Upper limit for lambda_hs found with collider constraints.

Return type:

ndarray

singletscalar_dm.provide_ULEXP(DMmass, Exp)[source]#

Provides the direct detection sigma SI upper limits for specified experiment.

It interpolates the limits on the array of dark matter masses provided. Limits are returned in units cm^2.

Parameters:
  • DMmass (np.ndarray) – Dark matter mass values in GeV.

  • Exp ({'LZ', 'Darwin'}) – The experiment to consider.

Returns:

  • ul (ndarray) – The upper limit values sampled at the provided masses.

  • Ref

singletscalar_dm.sigmav_channels(DMmass_val, lambdahs_val, channel)[source]#

Calculate the \(\sigma v\) for a given value of mass and lambda_HS for a certain channel.

The value is given in units of cm^3/s.

Parameters:
  • DMmass_val (np.ndarray) – Dark matter mass values in GeV.

  • lambdahs_val (np.ndarray) – Values of the lambda_HS parameter.

  • channel ({'tot', 'cc', 'bb', 'tt', 'tautau', 'gg', 'ww', 'zz', 'hh', 'aa', 'za'}) – The annihilation channel of dark matter.

Returns:

sigmav – The values of the \(\sigma v\) for the selected channel.

Return type:

np.ndarray

See also

_lambda2sigma

Notes

This function internally calls lambda2sigmav passing the table_int as the content of the data file related to the channel specified.