Skip to content
HERMES is a publicly available computational framework for the line of sight integration over galactic radiative processes which creates sky maps in the HEALPix-compatibile format.
C++ Python C CMake Objective-C M4 Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
doc
include
libs
python
src
test
.coveralls.yml
.gitignore
.travis.yml
CMakeLists.txt
INSTALL.md
LICENSE
README.md

README.md

HERMES - High-Energy Radiative MESsangers

Build Status Coverage Status Codacy Badge GitHub

About

gamma sky map from pi0

HERMES is a publicly available computational framework for the line of sight integration which creates sky maps in the HEALPix-compatibile format of various galactic radiative processes including Faraday rotation, synchrotron and free-free radio emission, gamma-ray emission from pion-decay, bremsstrahlung and inverse-Compton. The name is an acronym for "High-Energy Radiative MESsangers".

The code is written in C++ relying on features of the language's recent revisions (C++11, C++14). Once compiled, HERMES can optionally be used from Python thanks to pybind11 (Python 2.X is not supported). Some components of the code (such as galactic magnetic field models, vector and grid classes) were adopted from CRPropa 3, a code for cosmic ray propagation.

HERMES provides the following integrators:

  • Dispersion measure
  • Rotation measure
  • Free-Free emission
  • Synchrotron emission (with absorption)
  • Pion decay gamma-ray emission
  • Inverse Compton
  • Bremsstrahlung

Install

Quick procedure for those who know their way around:

mkdir build
cd build
cmake ..
make -j

For detailed installation guides and requirements see INSTALL.

Usage

from pyhermes import *
from pyhermes.units import TeV, deg

nside = 512
Egamma = 0.1*TeV
sun_pos = Vector3QLength(8.0*kpc, 0*pc, 0*pc)

skymap = GammaSkymap(nside=nside, Egamma=Egamma)
mask = RectangularWindow([5*deg, 40*deg], [-5*deg, 90*deg]);
skymap.setMask(mask)

neutral_gas = RingModelDensity()
cosmicray_protons = Dragon2DCRDensity([Proton])
pp_crosssection = Kamae06()

integrator = PiZeroIntegrator(cosmicray_protons, neutral_gas, pp_crosssection)
integrator.setSunPosition(sun_pos)
integrator.setupCacheTable(100, 100, 20)

skymap.setIntegrator(integrator)
skymap.compute()

output = FITSOutput("!pizero-dragon2d.fits.gz")
skymap.save(output)

More examples can be found in the examples repository. Doxygen documentation generated from the source code is available here.

Credits

Name Institution
Andrej Dundovic Gran Sasso Science Institute, L'Aquila, Italy
Carmelo Evoli Gran Sasso Science Institute, L'Aquila, Italy
Daniele Gaggero Instituto de Física Teórica UAM/CSIC, Madrid, Spain
You can’t perform that action at this time.