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).