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.
This package uses poetry
to create a reproducible environment. Install
the poetry
package and run poetry install
to install the needed packages.
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.
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': {...}.
}
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