The Scikit-HEP project is a community-driven and community-oriented project with the aim of providing Particle Physics at large with an ecosystem for data analysis in Python. The project started in Autumn 2016 and is under active development.
It is not just about providing core and common tools for the community. It is also about improving the interoperability between HEP tools and the scientific ecosystem in Python, and about improving on discoverability of utility packages and projects.
For what concerns the project grand structure, it should be seen as a toolset rather than a toolkit. The project defines a set of five pillars, which are seen to embrace all major topics involved in a physicist's work. These are:
- Datasets: data in various sources, such as ROOT, Numpy/Pandas, databases, wrapped in a common interface.
- Aggregations: e.g. histograms that summarize or project a dataset.
- Modeling: data models and fitting utilities.
- Simulation: wrappers for Monte Carlo engines and other generators of simulated data.
- Visualization: interface to graphics engines, from ROOT and Matplotlib to even beyond.
To get started, have a look at our GitHub repository.
The list of presently available packages follows, together with a very short description of their goals:
- uproot: Minimalist ROOT I/O in pure Python and Numpy.
- root_numpy: Interface between ROOT and NumPy.
- root_pandas: Module for conveniently loading/saving ROOT files as pandas DataFrames.
- formulate: Easy conversions between different styles of expressions.
- uproot-methods: Pythonic behaviours for non-I/O related ROOT classes.
- awkward-array: Manipulate arrays of complex data structures as easily as Numpy.
- Particle: PDG particle data and identification codes.
- DecayLanguage: Describe and convert particle decays between digital representations.
- histbook: Versatile, high-performance histogram toolkit for Numpy.
- boost-histogram: Python bindings for the C++14 Boost::Histogram library.
- probfit: Cost function builder. For fitting distributions.
- iminuit: MINUIT from Python - Fitting like a boss.
- pyjet: Interface between FastJet and NumPy.
- scikit-stats: Statistics tools and utilities.
- vegascope: View Vega/Vega-Lite plots in your web browser from local or remote Python processes.
- hepunits: Units and constants in the HEP system of units.
- NNDrone: Collection of tools and algorithms to enable conversion of HEP ML to mass usage model.
- scikit-hep: Toolset of interfaces and tools for Particle Physics. To become a metapackage.
- scikit-hep-testdata: Common package to provide example files (e.g., ROOT) for testing and developing packages against.
In some cases, the packages have to do with bridging between different technologies and/or popular packages from the Python scientific software stack.