Releases: scikit-hep/cabinetry
v0.2.0
This release adopts the pyhf
0.6 and iminuit
v2 APIs, and introduces several breaking changes. It also adds discovery significance calculation and yield tables with yields per channel summed.
The most notable breaking change has occurred in the cabinetry.fit
API. workspace
function arguments have been replaced by model
, data
arguments (pdf and data including auxiliary data). model_utils.model_and_data(spec)
can be used to obtain model
and data
:
old:
ws_spec = cabinetry.workspace.load(workspace_path)
fit_results = cabinetry.fit.fit(ws_spec, asimov=False)
new:
ws_spec = cabinetry.workspace.load(workspace_path)
model, data = cabinetry.model_utils.model_and_data(ws_spec, asimov=False)
fit_results = cabinetry.fit.fit(model, data)
This affects fit.fit
, fit.ranking
, fit.scan
, fit.limit
as well as the new fit.significance
. The asimov
keyword argument was removed from these functions, it can instead be used with model_utils.model_and_data
.
Breaking changes:
- Support for Python 3.6 has been dropped, following
pyhf
0.6 dropping support for Python 3.6. The lastcabinetry
version supporting Python 3.6 isv0.1.8
. - The
cabinetry.fit
API has changed:fit.fit
,fit.ranking
,fit.scan
andfit.limit
requiremodel
anddata
arguments (can be obtained viamodel_utils.model_and_data
) instead ofworkspace
, and these functions no longer support theasimov
keyword argument. - Instead of using a workspace function argument,
visualize.data_MC
now requiresmodel
anddata
(similar to the changes in thecabinetry.fit
API). Theconfig
argument is now an optional keyword argument. - The
fit_results
argument infit.ranking
is now a keyword argument (if not set, the nominal fit will be performed automatically). model_utils.calculate_stdev
now returns a tuple: uncertainties for all bins per channel, and uncertainties for total yield in channel.
Full list of changes:
- chore: updating version to 0.2.0 (#200)
- feat: discovery significance (#176)
- fix: pyhf 0.6 compatibility (#156)
- fix: restrict typeguard version for NamedTuple compatibility (#199)
- feat: update default bracket in limit calculation for stability (#197)
- build: drop support for Python 3.6 (#194)
- test: check yield uncertainties in integration test (#196)
- feat: mypy check for tabulate package (#195)
- ci: do not cancel jobs early if another job fails (#193)
- feat: yields per region (#189)
- fix: numpy array smoothing and typing (#190)
- feat: make reference fit results in ranking optional (#186)
- ci: install ghostscript for pdf conversion (#187)
- fix: likelihood scan visualization layout for small NLL variations (#185)
- feat: data/MC plots without configuration file (#184)
- feat: updated fit API with model and data arguments instead of workspace (#183)
- docs: change logo location for PyPI rendering (#181)
v0.1.8
This release fixes yield tables for multiple multi-bin regions. It adds optional systematic template histogram smoothing (see #175 for more details) and improves the efficiency of the limit-finding algorithm.
Full list of changes:
- chore: updating version to 0.1.8 (#180)
- feat: horizontal log scale for data/model plots (#179)
- feat: template smoothing (#175)
- refactor: string formatting (#177)
- refactor: remove superfluous lists in limit calculation (#174)
- feat: take upper bracket default for limit from measurement (#173)
- feat: root finding for faster limit convergence (#172)
- docs: logo for cabinetry (#171)
- feat: more flexibility in parameter exclusion from pull plots (#170)
- fix: yield tables for multiple multi-bin regions (#169)
- chore: Simplify install_requires and use compatible release syntax (#168)
- ci: Uninstall dependencies before installed HEAD versions (#166)
v0.1.7
This release makes use of the new pyhf
version 0.5.4 to avoid uproot
namespace collisions. It also completes the package name migrations awkward1
-> awkward>=1.0.0
and uproot4
-> uproot>=4.0.0
.
Full list of changes:
v0.1.6
This release restricts iminuit
to major version 1. The update to v2 will happen in parallel with pyhf
. The release also adds functionality to calculate upper parameter limits, goodness-of-fit, yield tables, and expands the command line interface.
Breaking changes:
- The
custom
fit keyword argument (to switch betweenpyhf.infer
andiminuit
) is now calledcustom_fit
. - The order of arguments for
visualize.data_MC
changed: the workspace specification is now the second required argument, while the figure output folder is the third function argument and optional. This makes the behavior consistent with similar functions. Example for the new signature:cabinetry.visualize.data_MC(cabinetry_config, ws)
fit.ScanResults.scan_values
is now calledfit.ScanResults.parameter_values
Full list of changes:
- chore: updating version to 0.1.6 (#162)
- feat: yield tables (#159)
- fix: uproot package name migration to uproot3 (#157)
- feat: command line interface for parameter limits (#155)
- feat: expansion of fit command line interface (#154)
- style: move MINOS function to better position (#153)
- feat: better handling of unknown parameters when running MINOS (#152)
- feat: goodness of fit test with saturated model (#131)
- chore: Add pyupgrade to pre-commit hooks (#151)
- chore: update pre-commit hook versions (#149)
- fix: iminuit.Minuit type hints (#148)
- feat: support pyhf.infer fits for ranking and parameter scans (#147)
- refactor: common entry point for maximum likelihood fits (#146)
- feat: extend parameter control when using pyhf.infer (#145)
- feat: default output folder for visualizations (#144)
- feat: upper parameter limits (#134)
- feat: support stdin/stdout piping in command line interface (#143)
- docs: contribution guidelines (#139)
v0.1.5
This release makes cabinetry
compatible with pyhf
version 0.5.3. It also adds MINOS uncertainty calculation and treats initial parameter settings for normalization factors as the nominal setting for Asimov dataset generation.
Full list of changes:
v0.1.4
This release fixes the data/MC visualization of workspaces with three and more channels. It adds small plotting improvements and a command line interface for nuisance parameter ranking and likelihood scans.
Full list of changes:
- chore: updating version to 0.1.4 (#130)
- fix: visualization of three and more channels (#129)
- style: consistent maximum line length (#128)
- feat: skip ranking for fixed parameters (#126)
- refactor: sample order for data/MC plot legend (#125)
- ci: adding sphinx docs building (#124)
- feat: log scale for data/model plots (#119)
- ci: Add nightly tests using HEAD of dependencies (#123)
- feat: command line interface for ranking and scan (#122)
v0.1.3
This release makes awkward1
a core dependency, which was missing from version 0.1.2
. It adds nuisance parameter ranking, likelihood scans and their visualization to cabinetry
, as well as support for multiple input files per sample.
Breaking changes:
SamplePath
is renamed toSamplePaths
(#117)configuration.read
is renamed toconfiguration.load
(#118)- due to a change in capitalization of the nominal systematic name, histograms built with earlier versions need to be renamed (#108)
Full list of changes:
- chore: updating version to 0.1.3 (#121)
- feat: likelihood scan (#120)
- feat: nuisance parameter ranking (#116)
- refactor: configuration loading (#118)
- feat: support reading multiple input files per sample (#117)
- fix: close matplotlib figures after saving (#115)
- fix: make awkward1 core dependency (#114)
- test: integration test isolation (#109)
- refactor: capitalization of nominal systematic (#108)
- refactor: model building and model reuse (#107)
v0.1.2
This release adds pre- and post-fit plots with total model uncertainty bands. It introduces a more flexible method for input file path specification, and systematics templates can be visualized separately for debugging purposes.
Breaking changes:
- new mandatory config option:
InputPath
(see #98) visualize.data_MC
moved tovisualize.data_MC_from_histograms
, andvisualize.data_MC
now draws full model uncertainty bands
Full list of changes:
- chore: updating version to 0.1.2 (#106)
- feat: pre- and post-fit plots with full model uncertainty bands (#96)
- feat: visualization of ntuple creation utility can be disabled (#105)
- feat: skip fixed parameters in pull plot and correlation matrix (#104)
- chore: moving metadata to setup.cfg (#103)
- feat: visualization of systematics templates (#102)
- style: update to black 20.8 formatting (#99)
- feat: more flexible input file path handling (#98)
- feat: ranking plot (#97)
- feat: Asimov fits (#95)
- feat: support reading vector branches (#94)
- feat: removing staterrors from pull plot (#93)
- feat: set default interpolation method (#92)
v0.1.1
v0.1.0
This release adds a command-line interface to cabinetry. It also enables users to provide custom functions that can be used for template histogram building. See the documentation for more information on the new functionality.
Breaking changes:
- new mandatory
HistogramFolder
option in the config file (see #87)
Full list of changes:
- chore: updating version to 0.1.0 (#88)
- feat: adding histogram folder to config (#87)
- refactor: workspace builder class (#84)
- docs: NSF badge in readme (#85)
- feat: command-line interface (#81)
- feat: always calculate Hessian (#83)
- feat: user-defined overrides for template histogram handling (#78)
- feat: support fixed parameters (#82)
- test: fix issues raised by typeguard (#80)