cabinetry is a Python library for building and steering binned template fits.
It is written with applications in High Energy Physics in mind.
cabinetry interfaces many other powerful libraries to make it easy for an analyzer to run their statistical inference pipeline.
Statistical models in HistFactory format can be built by cabinetry from instructions in a declarative configuration.
cabinetry makes heavy use of pyhf for statistical inference, and provides additional utilities to help study and disseminate fit results.
This includes commonly used visualizations.
Due to its modular approach, analyzers are free to use all of cabinetry's functionality or only some pieces.
cabinetry can be used for inference and visualization with any pyhf-compatible model, whether it was built with cabinetry or not.
Installation
cabinetry can be installed with pip:
python -m pip install cabinetry
This will only install the minimum requirements for the core part of cabinetry.
The following will install additional optional dependencies needed for ROOT file reading:
python -m pip install cabinetry[contrib]
Hello world
To run the following example, first generate the input files via the script utils/create_ntuples.py.
import cabinetry
config = cabinetry.configuration.load("config_example.yml")
# create template histograms
cabinetry.templates.build(config)
# perform histogram post-processing
cabinetry.templates.postprocess(config)
# build a workspace
ws = cabinetry.workspace.build(config)
# run a fit
model, data = cabinetry.model_utils.model_and_data(ws)
fit_results = cabinetry.fit.fit(model, data)
# visualize the post-fit model prediction and data
prediction_postfit = cabinetry.model_utils.prediction(model, fit_results=fit_results)
cabinetry.visualize.data_mc(prediction_postfit, data, config=config)
The above is an abbreviated version of an example included in example.py, which shows how to use cabinetry.
It requires additional dependencies obtained with pip install cabinetry[contrib].
Documentation
Find more information in the documentation and tutorial material in the cabinetry-tutorials repository.
cabinetry is also described in a paper submitted to vCHEP 2021: 10.5281/zenodo.4627037.
Acknowledgements
This work was supported by the U.S. National Science Foundation (NSF) cooperative agreement OAC-1836650 (IRIS-HEP).
Metadata
Release files for cabinetry 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cabinetry-0.6.0.tar.gz | 112.9 kB | Without provenance | Details for cabinetry-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cabinetry-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for cabinetry-0.6.0-py3-none-any.whl |
Total release size: 189.9 kB
Release files / cabinetry-0.6.0.tar.gz
| Download URL | cabinetry-0.6.0.tar.gz |
|---|---|
| Size | 112.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a111fb3eb0a979555d39fda28ecc358ace6a4a052d31c52df9880d060c9a722c
|
|
BLAKE2b-256 checksum How to use checksums |
f3a3f2932aed22f1cd94a50ea6d3a7633c2ea4d1e023ce3f81830e8e02e4f4e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / cabinetry-0.6.0-py3-none-any.whl
| Download URL | cabinetry-0.6.0-py3-none-any.whl |
|---|---|
| Size | 77.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d46eed76143e62e801b7245b96bdd6b89f775510491451bfd513a0d3db91e783
|
|
BLAKE2b-256 checksum How to use checksums |
27eeb347e8a8a174688296ecd6a400a364134738d14779334bc82429debfdfe9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Security for cabinetry 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.