Changelog#
This page keeps track of major and minor changes between versions. Breaking changes are also reported
PocketCoffea 0.9.11#
New features#
Weights by subsamples (#294): per-subsample weights, inclusive and by-category, with full variation (up/down) support. Subsample-specific weight variations are correctly isolated per subsample in the histogram variation axis.
Shape variations by subsamples (#330): subsample-specific shape (calibrator) variations. Each subsample can carry a different set of shape variations; histogram axes are built per-subsample so the variation labels are correctly isolated.
Fix histogram filling for subsample weight and shape variations (#491): several bugs in
HistManagerwere fixed — wrong variation axis used in the fill loop when subsamples are configured, subsample-specific shape variations silently skipped during filling, and subsample nominal weights not applied during shape-variation passes. Comprehensive integration tests added.Variations-aware skimming (#467): the skim step now retains events that pass at least one preselection variation (not just the nominal), ensuring shape-variation passes do not lose events skimmed away by the nominal selection.
MET Type-1 correction calibrator (#472): new calibrator for MET Type-1 propagation, including unclustered energy systematics. Extended to Run2.
Multi-dimensional variables (#374):
HistConfnow supports multi-dimensional delayed-evaluation variables.Jet pT regression (#461): jet pT regression support in the jet calibrator, with
merge_collections_for_variationsandcollection_name_aliasoptions to merge regressed and standard jet collections.JetID from correctionlib (#421, #395): JetID delivered via correctionlib, replacing hardcoded values.
msoftdrop correction (#420): soft-drop mass correction for AK8 jets.
Default JEC via correctionlib (#401, #418): JEC/JER now use correctionlib as the default backend.
Read unpublished remote datasets over XRootD (#461): dataset builder can now discover and read files from unpublished XRootD endpoints.
merge_columnsCLI command (#482): newpocket-coffea merge-columnssub-command to merge columnar outputs.CCsorted function (#456): utility to sort collections by a given field with stable ordering.
Scale factors and corrections#
Muon promptMVA scale factors, including ISO SF for 2024 (#470)
Electron promptMVA scale factors with promptMVA ID (#474)
Updated BTV scale factors for 2024 (#473)
Lepton (electron and muon) scale factors for 2024 (#466)
Electron trigger scale factor added to common weights for Run3 (#476);
sf_ele_triggerrenamed for Run2 consistency (#481)Updated electron scale factors and electron SS energy scale/smearing (#444, #414, #419)
Muon calibrator update (#432)
Rochester muon momentum corrections (#475): new
MuonsRochesterCalibratorfor Run 2 Ultra-Legacy muon pT corrections using the RoccoR library; correction files included for 2016 pre/post-VFP, 2017, and 2018.Muon SF lower pT bound for Run3 set to 26 GeV; electron to 25 GeV (#476)
Jets for NanoAODv12 (#355)
JetVetoMap fix (#430)
Updated JEC data tags for 2022/2023 (#489); JEC configuration for 2023 preBPix MC
Lepton mvaTTH discriminant added to lepton objects (#455)
UParT tagger scores added to
jet_taggers_hists()(#460)Updated luminosity values for 2023 and 2024; golden JSON updated for 2022, 2023, 2024 and added for 2025 (#441, #490)
Updated correctionlib tags (#415)
Plotter and output improvements#
Plotter: correct handling of subsamples and weight/shape variations (#442)
Plotter: fix systematic band rendering (#408)
Save shape variation arrays to output (#368)
Cutflow: major rework with subsample support and various fixes (#369); fix for cutflow with subsamples in plot scripts; fix handling of variations in sum-of-weights
Datacard output support (#407)
New analysis metadata stored in output (#409)
LAW integration#
Bug fixes#
Fixed priority list not being passed to dataset builder (#485)
NanoAOD v15 compatibility for Run 2 UL (#457):
rhofield access, PU jet ID, and JER now use the correct NanoAOD-version-aware branch paths (Rho.fixedGridRhoFastjetAllfor v12+,fixedGridRhoFastjetAllfor ≤v9); PUid selection correctly disabled for NanoAOD v15.Fixed jets variations for AK8Puppi collection
Fixed jets variations and config when using
collection_name_aliasFixed legacy calibrator raw-factor NaN (#428)
Fixed filesets configuration exception message with filter details (#448)
Fixed histogram filling for
only_variationshistograms (#392)Fixed calibrators variations handling (#389)
Fixed muon SF for Run3 (#397)
Fixed
dump_ak_arrayfor XRootD mkdir (#448)Improved
hadd_skimmed_files,check_jobs, andmerge_outputscripts
PocketCoffea 0.9.6#
Minor release: only fixes and small improvements
Some fixes in the plotting script
Improvements for the INFN analysis facility executor
PocketCoffea 0.9.5#
Generalize handling of common Weights and user-defined Weights
Added first integration of LAW tasks to stear an analysis running PocketCoffea workflows
Many improvements in the plotting scripts
Added Dataset discovery cli to dynamically query for dataset and build the dataset definition file
Cleaning up of the default skimming function (Breaking changes! see below)
Added CDCI tests of utils and full configuration tests
New parameters exploration CLI
Added more executors
Tested the Swan AF and INFN AF
Breaking changes#
Default skim#
Some skimming cuts were included by default in the base workflow and may be unnoticed by the users PR#193. For maximum transparency we have removed those cuts from the base workflow and made the cutting functions available to be used in the configuration. The functions were:
nPV_good > 0 selection
goldenJson
event flags for data and MC.
Users must now include the following cut functions in their skim configuration to keep the same cutflow in their
analysis:
1from pocket_coffea.lib.cut_functions import get_nPVgood, goldenJson, eventFlags
2
3cfg = Configurator(skim=[get_nPVgood(1), eventFlags, goldenJson])
This change is enough to preserve the same cuts applied before 0.9.5.
Jet selection function#
The signature of the jet cleaning function used often in the object preselection step of processor has been changes to add explicitely the year argument.
- def jet_selection(events, jet_type, params, leptons_collection=""):
+ def jet_selection(events, jet_type, params, year, leptons_collection=""):
This signature change can be unnoticed by users using the leptons_collection argument. Please cross-check your
function usage.
PocketCoffea 0.9.0#
New executor plugin setup to support multiple sites and analysis facilities
New defaults for Run3 corrections
Improve CLI interface and unified scripts under pocket-coffea command
Added dataset-discovery-cli to build dataset_definition files
PocketCoffea 0.7#
Improved and generalized executors configuration for runner.py
PocketCoffea 1.0rc0#
The main change is the possibility to completely split the analysis configuration files and parameters from the core of the framework.
Parameters configuration now in place with OmegaConf
Docker and singularity images built with GitLab CD/CI and published on
/cvmfs/unpacked.cern.ch/gitlab-registry.cern.ch/cms-analysis/generalImproved the handling of datasets and samples
Added dataset metadata in the output file