CDIReader + flexible FTAG tool configuration for generic label schemes

Merged Waltteri Leinonen requested to merge wleinone/athena:flexible-cdi-cdireader into main

This is a merge request, for the purposes of adding more functionality for the purposes of the H(bb/cc) task force. This MR adds a new CDIReader class and test code, and embeds this class into the xAODBTaggingEfficiencyTool and its CDI dependencies. This MR also updates the SystematicStrategyComparison test code to use CDIReader, also to demonstrate it's usage.


This helper class is able to parse a CDI file and extract useful metadata for more flexible configuration of FTAG tools

Flexible configuration

The BTaggingEfficiencyTool has flavour-specific configuration settings. In a generic labeling scheme, neither the flavour labels nor their count are known a priori, and so an index based configuration is necessary. Given a CDI file (which the tool relies on already), the index based configuration settings are applied to the generic labels found in the CDI file.

One can configure the tool flexibly for both conventional and unconventional labeling schemes. For example, if you have a conventional labeling scheme of {B, C, Light, T}, then you can flexibly configure the excluded uncertainties for the B and C labels by using their index, e.g. 0:unc1,unc2;1:unc1,unc3, etc.

More of these are introduced in the BTaggingEfficiencyTool configurable properties, but backwards compatibility is retained if one wants to continue using the hard-coded configuration settings, as the flexible configuration is only activated when useFlexibleConfig is set to true.

Edited by Thomas Strebler

Merge request reports