Search for Dark Matter Indirect signals w/ IACT data
Introduction
Imaging Atmospheric Cherenkov Telescopes (IACTs) are instruments designed to detect very high-energy gamma-rays from astronomical sources. These gamma-rays can be produced in various astrophysical processes, including the annihilation or decay of dark matter particles. If dark matter particles annihilate, they can produce a variety of secondary particles, including gamma-rays. By searching for excess gamma-ray emission from specific regions of the sky, astronomers can potentially identify the signatures of dark matter.
The process of searching for dark matter signals with IACT data typically involves the following steps:
Data Collection: IACTs observe the sky and record the Cherenkov light produced by high-energy particles interacting with the Earth's atmosphere.
Data Analysis: The collected data is analyzed to identify potential sources of gamma-ray emission, such as dwarf galaxies, galaxy clusters, or the Galactic center.
Background Subtraction: Background gamma-ray sources, such as cosmic rays, are identified and subtracted from the observed signal.
Signal Extraction: Any remaining excess gamma-ray emission could be attributed to dark matter annihilation.
Statistical Analysis: Statistical tests are performed to determine the significance of the observed signal and to rule out other possible explanations.
We show in this repository an example, by trying to reproduce the analysis published in Ref: https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.129.111101 by the H.E.S.S. Collaborarion, with open source tools.
Setup
The code can be run in the pipenv which is provided through the files Pipfile and Pipfile.lock.
First, you need to have pip and pipenv installed in your machine. pip should be already installed if you are using Python 3. Otherwise here are the guidelines. Then, another guideline to get pipenv, here.
Once this is done, be sure to checkout the main branch,
in which the Pipfile and Pipfile.lock are provided.
If you are in ./
, you can install the environment from the Pipfile:
pipenv install
Then, access the pipenv shell with:
pipenv shell
Run the code
Example to run code from ./
:
python -m run.test_statistics_computation.run_ts_computation
This should work equivalently for all the modules in run.
Code
In run.data_exploration
extract_dm_ev_en_distr.py
extracts the DM event energy distributions from the Gammapy utilities for DM expected fluxes.
You can plot the distributions with plot_dm_ev_en_distr.py
.
extract_ev_en_distr.py
extracts the measured event energy distributions from the H.E.S.S. fluxes measured in the Galactic Center region.
You can plot the distributions with plot_ev_en_distr.py
.
You can plot the theoretical fluxes from DM self-annihilation with plot_dm_flux.py
.
In run.jfactor_computation_roi
run_jfac_per_roi.py
computes the Jfactor values for each ring in the H.E.S.S. region of interest. It does so both for ON and OFF regions.
In run.test_statistics_computation
run_ts_computation.py
computes the Test Statistics for the determintation of upper limits on the DM annihilation cross section.
You can plot Test Statistics profiles, for each DM mass in the range scanned by the analysis, with plot_ts_profile.py
.
Authors and acknowledgment
Authors: Alessandro Montanari (Landessternwarte, Heidelberg University)
Acknowledgment: We would like to acknowledge the PUNCH4NFDI consortium for the funding and the valuable support.
License
Project status
Initial stage of development (Version 0.1).