MEGAlib
The Medium-Energy Gamma-ray Astronomy library

News

Friday, May 01, 2020
MEGAlib 3.00 released
After 4 years of development MEGAlib 3.00 has been released with a wide range of new features

Some of the most important new features are:

  • Python bindings
  • Light curves, simulations in Galactic coordinates, event lists, and distributed simulations in cosima
  • More complex trigger criteria in geomega via TriggerMap's
  • Complectly rewritten response generation
  • Neural network and boosted decision tree based Compton event reconstrcution, identification and reconstruction of multiple Compton events in revan.
  • Further improved melinator
  • Parallelized image reconstruction, PET and multiple-Compton events, binned Compton imaging in mimrec
  • A switch to GPL 3 as license
  • ... and many, many more!

For a full list of changes see the change log file.

Going forward, the 3.x master branch will be the main development tree for version 3. It will only include additional functions, tools, and bug fixes, but no significant modifications to the core libraries of MEGAlib. These main enhancement developments are occuring in the branch MEGAlib4-dev such as a revamped DEE, full neural-network-based event reconstruction, and updates to the latest version of Geant4.

Tuesday, July 24, 2018
MEGAlib docker container
The latest version of MEGAlib has now an official Docker image for more easy deployment

Since installing MEGAlib on many operating systems and environments might be a difficult to impossible task, I have created an official MEGAlib docker image for easy deployment. If installing MEGAlib is not your favorite task or you would have to install it on too many different machines, consider using the Docker image. Full documentation on how to create/download and run the MEGAlib Docker container can be found in the setup section of the MEGAlib webpage

Wednesday, June 06, 2018
Python bindings
The latest version of MEGAlib on the experimental branch now comes with full Python bindings.

After realizing that, nowadays, all the undergraduates only know Python as programming languages, it was time to create MEGAlib Python bindings. Admittedly, they are not actual self-created Python bindings, but just the automatically generated Python bindings which come with full integration of MEGAlib in ROOT. As consequence, you get them by just importing ROOT and loading the MEGAlib library:


import ROOT as M

# Load MEGAlib into ROOT
M.gSystem.Load("$(MEGALIB)/lib/libMEGAlib.so")

# Initialize MEGAlib
G = M.MGlobal()
G.Initialize()

# We are good to go ...

GeometryName = "$(MEGALIB)/resource/examples/geomega/special/Max.geo.setup"
FileName = "Test.inc1.id1.tra"

# Load geometry:
Geometry = M.MDGeometryQuest()
if Geometry.ScanSetupFile(M.MString(GeometryName)) == True:
    print("Geometry " + GeometryName + " loaded!")
else:
    print("Unable to load geometry " + GeometryName + " - Aborting!")
    quit()

Anyway, lots of fun using MEGAlib with python!


And a little disclaimer:
Obviously I cannot test everything in python, thus if you encounter any issues, just let me know.

Thursday, May 03, 2018
MEGAlib website refresh
The MEGAlib website is now based on the static website generator Neodym and no longer Drupal.

After one too many emails from Drupal requiring once again an update, it was time to say good-bye to Drupal. MEGAlib's website is completely static, thus using a content authoring system is complete overkill. After evaluating a few static website generators, unfortunately none came close to fulfill my key requirements:

  • Allow the content needs to be written in html to allow for custom css and javascript for individual pages.
  • Provide an option for a slide show.
  • Create a bibliography for my personal website using bibtex input files.
  • Allow news/blog entries.
  • Create a navigation pane from html.

Thus during the dark winter nights of 2017/2018 Neodym was born.

Monday, August 01, 2016
The MEGAlib experimental branch on github.com
All new MEGAlib developments will now occur in the experimental branch as precursor to MEGAlib 3.0. MEGAlib 2.x and its master branch are just in maintenance mode.

In order to separate the rapid developments for the analysis of the data from the COSI balloon flight, and in order to not require 100% backward compatibility, a new MEGAlib branch has been established, called experimental.

It is intended that this branch will eventually evolve into MEGAlib 3.0.

As always great care will be taken that none of the standard simulation/analysis pathways will become broken. This should be achievable since we add just new features to existing MEGAlib tools.

All new developments are currently happening in this branch, MEGAlib 2.x and its master branch are just in maintenance mode, i.e. we will just add critical bug fixes and enable compatibility with new ROOT / operating system versions.