Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis.
coffea is currently organized into several sub-modules with specific purposes.
- analysis_objects - This package contains definitions of physics objects casted in the language of JaggedArrays
- arrays - Another take on making analysis objects with directly decorated LorentzVector objects instead of wrapped LorentzVectors.
- hist - A well-featured histogramming and plotting sub-package.
- jetmet_tools - CMS-specific tools for correcting Jets and Missing Energy
- lookup_tools - This package manages importing corrections and scale factors, and provides a unified interface for evaluating those corrections on physics objects.
- lumi tools - A CMS-specific package for parsing luminosity database files to derive integrated luminosity and good run lists.
- processor - An interface for defining and running analyses in a portable way across a variety of scale-out mechanisms.
- striped - This package defines transformations from the raw striped database into JaggedArrays and JaggedCandidateArrays, but is somewhat deprecated.
For further information please see the complete package index in our documentation.
Install coffea like any other Python package:
pip install coffea
or similar (use sudo
, --user
, virtualenv
, or pip-in-conda if you wish).
- Python (2.7+, 3.6+)
The following are installed automatically when you install coffea with pip:
- numpy (1.15+)
- awkward-array to manipulate data from non-flat TTrees, such as jagged arrays (part of Scikit-HEP)
- uproot-methods to allow expressions of things as lorentz vectors
- numba just-in-time compilation of python functions
scipy
for statistical functionsmatplitlib
as a plotting backenduproot
for interacting with ROOT filestqdm
This library is installed by people doing collider HEP analysis in the FNAL CMS group (so far).
Please read our documentation at: https://coffeateam.github.io/coffea/