Pachyderm* provides core functionality for heavy-ion physics analyses. The main functionality includes a generic histogram projection interface, a recursive configuration determination module (including overriding (merging) capabilities), and general utilities (especially for histograms). It provides base functionality to the ALICE jet-hadron analysis package. This package provides many examples of how pachyderm can be used in various analysis tasks.
For further information on the capabilities, see the documentation.
Pachyderm requires python 3.6 or above. It is available on PyPI and can be installed via pip:
$ pip install pachyderm
All dependencies are specified in the setup.py
(and will be handled automatically when installed via pip)
except for ROOT. The package can be installed without ROOT with limited functionality, but for full
functionality, ROOT must be available.
There is a Dockerfile which is used for testing pachyderm with ROOT. It is based on the Overwatch base docker image to allow us to avoid redeveloping another container just to have ROOT available. It may also be used to run pachyderm if so desired, although such a use case doesn't seem tremendously useful (which is why the image isn't pushed to docker hub).
I recommend setting up the development environment as follows:
# Setup
$ poetry install
# Setup git pre-commit hooks to reduce errors
$ pre-commit install
# develop develop develop...
All classes, functions, etc, should be documented, including with typing information. The docs are built on each new successful commit. They can also be built locally using:
# Setup
$ poetry install
# Create the docs
$ pushd doc && make html && popd
# Open the created docs
$ open docs/_build/html/index.html
PACHYDERM: Physics Analysis Core for HeavY-ions with Determination of (analysis) Elements via Recursion and Merging.