Not sure I followed. The way that the CDI file stores the online and conditional SFs is treating them as if they are two different taggers. See https://twiki.cern.ch/twiki/bin/view/Atlas/TrigBjetCalibration2018#Retrieve_the_basic_efficiencies How do you manage to retrieve them with only one instance of BTaggingEfficiencyTool?
I don't have enough knowledge about BTaggingSelectionTool to tell whether this tool will work with trigger jets. We didn't recommend it. (Maybe @bdong or @dguest have some insights?)
However, from the trigger point of view, the trigger tagger in Run 2 can either be MV2c10 or MV2c20 depending on the data-taking year. I don't see how mapping all of them to Tagger::MV2c10
will work.
I'd expect you have three instances of BTaggingEfficiencyTool, for online, conditional and offline, respectively. For the online and conditional cases, I'd expect BTaggingEfficiencyTool::getScaleFactor( int flavour, const Analysis::CalibrationDataVariables& v, float & sf)
to be called, which doesn't use fillVariables. Do you use a different setup?
Hmm I might missed something. In the trigger recommendation it shouldn't go through this function. Then why would it see a "Online" WP at all? Do you have an example of the usage in the TopPhys case?