DerivationFramework: fix tau RNN eVeto WP decoration
Hello,
The primary goal of this MR is to fix this warning showing up in AOD->DAOD:
Derivation 11:43:48 ToolSvc.TauSele...WARNING SG::ExcBadAuxVar: Attempt to retrieve nonexistent aux data item `::EleRNNLoose_v1' (1008).
This is due to AddEventCleanFlagsCfg, which schedules AddTauAugmentationCfg that decorates taus with a DFTauLoose
flag telling whether a tau passes a loose selection.
The problem is that the DFTauLoose
criterion relies on an electron veto WP that must be re-computed in AOD->DAOD, as the original WP computed in RAWtoALL is buggy, and the fixed eVeto WP re-decoration is currently scheduled independently from AddTauAugmentationCfg and happens to be scheduled too late in DAOD_PHYS. So this MR makes sure that AddTauAugmentationCfg internally calls AddTauWPDecorationCfg, such that the fixed WP exists when we compute DFTauLoose
.
We were also missing the eVeto WP re-decoration for muon-subtracted taus (boosted mu-had reconstruction scheduled in AOD->DAOD). "TauJets_MuonRM" are built from "TauJets": after subtracting the muon off the tau, we rerun most of the standard tau reconstruction. So we also need to rerun the fixed eVeto WP decoration. The TauWPDecoratorWrapper is modified such that in the mu-had case, we ignore the presence of an existing decoration (coming from the decoration of "TauJets" performed upstream) and proceed regardless.
Finally, a few fixes were made to AddTauAugmentationCfg (correct WP tightness), and the use of ConfigFlags and tool/algorithm names was simplified: we no longer use a prefix when a given tool/algorithm has a fixed configuration.
Running AOD->DAOD_PHYS over 1k ttbar events, comparing DAOD_PHYS with/without the MR, diff-root finds:
Py:diff-root WARNING the following variables exist only in the new file !
Py:diff-root WARNING - [TauJets_MuonRMAuxDyn.EleRNNLoose_v1]
Py:diff-root WARNING - [TauJets_MuonRMAuxDyn.EleRNNMedium_v1]
Py:diff-root WARNING - [TauJets_MuonRMAuxDyn.EleRNNTight_v1]
Py:diff-root WARNING - [TauJets_MuonRMAuxDyn.RNNEleScoreSigTrans_v1]
Py:diff-root INFO comparing [2135] leaves over entries...
Py:diff-root INFO 691.EventInfoAuxDyn.DFCommonJets_eventClean_LooseBad [[0.0]] -> [[1.0]] => diff= [N/A]
Py:diff-root INFO Found [17487966] identical leaves
Py:diff-root INFO Found [1] different leaves
Py:diff-root INFO [EventInfoAuxDyn.DFCommonJets_eventClean_LooseBad]: 1 leaves differ
It seems the effect on DFCommonJets_eventClean_LooseBad
is rather small, fortunately, at least in MC.
Tagging @lfiorini .
Cheers, Bertrand