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.
cabinetry can be installed with
python -m pip install cabinetry
This will only install the minimum requirements for the core part of
The following will install additional optional dependencies needed for
ROOT file reading:
python -m pip install cabinetry[contrib]
To run the following example, first generate the input files via the script
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
It requires additional dependencies obtained with
pip install cabinetry[contrib].