Some of the most important new features are:
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.
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
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.
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:
Thus during the dark winter nights of 2017/2018 Neodym was born.
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.