/gecko

Primary LanguagePython

gecko

A small package used to compute projected constraints on dark-matter models from the proposed GECCO telescope. The data and plots generated are those that appear in Hunting for Dark Matter and New Physics with (a) GECCO.

Usage

This package uses poetry to create a reproducible environment. Install the poetry package and run poetry install to install the needed packages.

Data Generation

Data is generated by using:

poetry run python -m gecko.model path/to/config.json

Here, model can one of the following:

  • higgs_portal
  • kinetic_mixing
  • rh_neutrino
  • pbh
  • single_channel

The "path/to/config.json" is the location of a .json file containing the information on what data should be generated. All models require a "filename" entry:

  • "filename"
    • Type: string,
    • Description: Name of the results file.

Some of these models require additional parameters to be set. These are:

  • "higgs-portal" and "kinetic-mixing"
    • "mass-ratio"
      • Type: float,
      • Description: Ratio between mediator mass and dark matter mass.
  • "rh-neutrino"
    • "lepton"
      • Type: string,
      • Description: Lepton flavor the RH neutrino mixes with.
      • Options: "e" or "mu".

Additional optional parameters can be set. These are:

  • "prefix":
    • Type: string,
    • Description: Directory where the results should be stored.
    • Default: "results"
  • "min-mx"
    • Type: float,
    • Description: Minimum dark-matter mass.
    • Default: 0.1
  • "max-mx"
    • Type: float,
    • Description: Maximum dark-matter mass.
    • Default: 250.0
  • "num-mx"
    • Type: int,
    • Description: Number of dark-matter masses.
    • Default: 100
  • "sigma"
    • Type: list,
    • Description: Sigma value used to specify constraints for new-telescopes (in this case, GECCO.)
    • Default: 5.0
  • "overwrite"
    • Type: bool,
    • Description: If true and if file exists, results will be overwritten.
    • Default: false

An example file for generating the Higgs-portal data is:

{
  "mass-ratio": 0.5,
  "min-mx": 0.1,
  "max-mx": 1e3,
  "num-mx": 100,
  "filename": "higgs_portal_0_5",
  "sigma": 5.0,
  "overwrite": false
}

A set of configuration files can be found in the configs/ directory.

Data Format

The data is stored in a hdf5 file and has the form:

{
  "masses": np.ndarray([...]),        # dark matter masses
  "comptel": np.ndarray([...]),       # limits on <sigma*v> from COMPTEL
  "egret": np.ndarray([...]),         # ... from EGRET
  "integral": np.ndarray([...]),      # ... from INTEGRAL
  "fermi": np.ndarray([...]),         # ... from Fermi
  ...
}

The ... contains constraints from GECCO and possibly constraints from CMB, relic-density, or pheno. For, example, the decay models will have:

{
  ...
  'gecco-draco_nfw_5_deg': np.ndarray([...]), 
  'gecco-gc_ein_5_deg_optimistic': np.ndarray([...]), 
  'gecco-gc_nfw_5_deg': np.ndarray([...]),  
  'gecco-m31_nfw_5_deg': np.ndarray([...]), 
}

and the annihilations models will have:

{
  ...
  'gecco-draco_nfw_1_arcmin_cone': np.ndarray([...]),
  'gecco-gc_ein_1_arcmin_cone_optimistic': np.ndarray([...]),
  'gecco-gc_nfw_1_arcmin_cone': np.ndarray([...]), 
  'gecco-m31_nfw_1_arcmin_cone': np.ndarray([...]),
}

and, where it makes sense, models might also have:

{
  ...
  'cmb': np.ndarray([...]),
  'pheno': np.ndarray([...]),
  'relic-density': np.ndarray([...]),
}

The single_channel models have an extra layer on top specifying the final-state:

# single_channel
{
  # decay/annihilation into electrons
  'e e': {...}.
  # decay/annihilation into two photons
  'g g': {...}.
  # decay/annihilation into muons
  'mu mu': {...}.
}

Plots

Scripts for generating the plots are located in the plots/ directory. The plots can be generated just by running python on them. For example:

cd plots
poetry run python plot_higgs_portal.py