Mammoth is a package for analysis and interpretation of heavy-ion collision data. Analyses are performed using a (predominately) columnar based paradigm. The main analysis framework contains a collection of python based functionality, as well as c++ code bound to python (e.g. for jet finding via fastjet). I/O adapters for a variety of formats are implemented, enabling analysis of real measure data, as well as outputs from Monte Carlo generators.
This package has been used for a variety of analyses, and the framework is fully validated to reproduce e.g. the ALICE analysis framework. For example, mammoth was used for the measurement recently released from the ALICE collaboration to search for quasi-particle (i.e. Moliere) scattering using jet substructure.
Important
This package is developed for my own use. Framework and code is subject to change, and documentation is quite limited!
Easiest is to use pdm
, which will handle dependencies correctly (the lock file is committed in the repo). Just install with pdm install -d
to include the dev dependencies.
Old `pip` method: Now used to install mammoth for other projects
In practice, getting the right compiled bindings was initially tricky. I think this is less critical in 2024 after I moved to the cookie-cutter repo, but I haven't tested it again recently, so I maintain this information for now
First, remove
pachyderm
from the dependencies, because it's usually installed locally and it most likely won't be picked up correctly by pip. Next, run# Actually build the compiled binding extensions... $ pip install --use-feature=in-tree-build ../mammoth # We've built in the tree, so now we need to do an editable install so it can find the extensions... $ pip install -e ../mammoth
To get the CMake plugin for vscode to play nicely with this package, I explored a few options:
- Manually configure CMake in vscode as necessary. It takes a little work and isn't especially robust, but isn't terrible.
- Create a new venv via
nox
, adapted from here. This isn't the nicest because it can mix python versions, etc. It may still work, but use with care!
You need to add these values to your .vscode/settings.json
:
"cmake.sourceDirectory": "${workspaceFolder}/mammoth-cpp",
"cmake.configureSettings": {
"CMAKE_PREFIX_PATH":"${workspaceRoot}/.venv-3.11/lib/python3.11/site-packages/pybind11/share/cmake/pybind11",
},
"cmake.configureArgs": [
"-DSKBUILD_PROJECT_NAME=mammoth-cpp"
],
You'll have to adapt the virtualenv path as appropriate. This should allow the cmake plugin to configure properly.