Support control regions in unfolding
This adds support for control regions in the unfolding.
Until now we had the following histograms, for each observable:
- gen-obs [only for signals]
- (reco-obs, aux)
- (gen-obs, reco-obs, aux) = migration matrices [only for signals]
Control regions require adding:
- reco-CR once
- (gen-obs, reco-CR) = "other" migration matrices [only for signals], for each observable
This is handled by treating the CR's as additional reco-level selections (like e.g. e/mu channels) for all observables, taking care to:
- only add the reco-only plot once per selection
- handle the auxiliary dimension correctly
I'm not super-happy with the code (things get a bit messy), but it works.
Note that all Observable
classes have their binning now as object attribute instead of class attribute, because the NBTaggedJets
observable (used for both aux and CR definition) has different binnings depending on the case.
The additional "migration matrices" are added to the migration matrix list in the unfolding_config.yml
file , whereas there is an additional cr_plots
section in unfolding_plots.yml
(see included files).