7 kwargs.setdefault(
"TauContainerName",
"TauJets")
9 acc = ComponentAccumulator()
14 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import AsgSelectionToolWrapperCfg
15 from TauAnalysisTools.TauAnalysisToolsConfig
import TauSelectionToolCfg
17 TauAugmentationTools = []
20 "GNTauVeryLoose" :
"TauAnalysisAlgorithms/tau_selection_gntau_veryloose_noeleid.conf",
21 "GNTauLoose" :
"TauAnalysisAlgorithms/tau_selection_gntau_loose_noeleid.conf",
22 "GNTauMedium" :
"TauAnalysisAlgorithms/tau_selection_gntau_medium_noeleid.conf",
23 "GNTauTight" :
"TauAnalysisAlgorithms/tau_selection_gntau_tight_noeleid.conf",
26 TauSelector = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
27 name = f
'TauSelector{wp}',
28 ConfigPath = config[wp]))
29 acc.addPublicTool(TauSelector)
31 TauWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
32 name = f
"Tau{wp}Wrapper",
33 AsgSelectionTool = TauSelector,
34 StoreGateEntryName = f
"DFTau{wp}",
35 ContainerName = kwargs[
"TauContainerName"]))
36 TauAugmentationTools.append(TauWrapper)
38 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
39 acc.addEventAlgo(CommonAugmentation(f
"Tau{wp}AugmentationKernel", AugmentationTools = TauAugmentationTools))
43 """Decorate tau ID scores and working points"""
47 tauContainerKey = kwargs.setdefault(
"TauContainerName",
"TauJets")
50 acc = ComponentAccumulator()
52 import tauRec.TauToolHolder
as tauTools
63 if kwargs.pop(
'evetoFix',
True):
64 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
66 doEvetoWP |= tools[-1].UseAbsEta
68 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
69 scoreNames.append(tools[-1].NewScoreName)
70 WPNames += tools[-1].DecorWPNames
72 if kwargs.pop(
'GNNTauID',
True):
74 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
77 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=
True)) )
79 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=
True)) )
81 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
83 doEvetoWP |= tools[-1].UseAbsEta
85 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
86 scoreNames.append(tools[-1].NewScoreName)
87 WPNames += tools[-1].DecorWPNames
90 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
92 doEvetoWP |= tools[-1].UseAbsEta
94 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
95 scoreNames.append(tools[-1].NewScoreName)
96 WPNames += tools[-1].DecorWPNames
99 kwargs.setdefault(
"DoEvetoWP", doEvetoWP)
100 kwargs.setdefault(
"ScoreDecorationKeys", scoreNames)
101 kwargs.setdefault(
"WPDecorationKeys", WPNames)
104 acc.addPublicTool(tool)
105 kwargs.setdefault(
"TauIDTools", tools)
107 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
108 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
110 prefix = kwargs.pop(
'prefix', tauContainerKey)
111 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f
"{prefix}_TauIDDecoratorWrapper",
113 print(
"PXQW TauIDDecoratorsWrapper: " + str(tauIDDecoratorWrapper))
114 acc.addPublicTool(tauIDDecoratorWrapper)
115 acc.addEventAlgo(TauIDDecoratorKernel(name = f
"{prefix}_TauIDDecorKernel",
116 AugmentationTools = [tauIDDecoratorWrapper]))
122 """Decorate taus with a flag to check if Calo and MVA TES are compatible """
124 acc = ComponentAccumulator()
126 import tauRec.TauToolHolder
as tauTools
128 tauCombinedTESTool = acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(
132 acc.addPublicTool(tauCombinedTESTool)
133 kwargs.setdefault(
"TauCombinedTESTool", tauCombinedTESTool)
134 kwargs.setdefault(
"TauContainerName",
"TauJets")
136 prefix = kwargs[
"TauContainerName"]
137 TauCombinedTESWrapper = CompFactory.DerivationFramework.TauCombinedTESWrapper
138 TauCombinedTESKernel = CompFactory.DerivationFramework.CommonAugmentation
140 TauCombinedTESWrapper = TauCombinedTESWrapper( name = f
"{prefix}_TauCombinedTES", **kwargs )
141 acc.addPublicTool(TauCombinedTESWrapper)
142 acc.addEventAlgo(TauCombinedTESKernel(name =
"TauCombinedTESKernel",
143 AugmentationTools = [TauCombinedTESWrapper]))
149 """Decorate displaced tau ID scores and working points. Follows AddTauIDDisplacedDecorationCfg()"""
150 tauContainerKey = kwargs.setdefault(
"TauContainerName",
"TauJetsLRT")
152 flags_TauLRT = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauLRT")
154 acc = ComponentAccumulator()
158 import tauRec.TauToolHolder
as tauTools
159 tool_prompt = acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=
True))
160 scoreNames += [
"GNTauScore_v0prune"]
162 tool_displaced = acc.popToolsAndMerge(tauTools.TauGNNDisplacedEvaluatorCfg(flags_TauLRT, tauContainerName=tauContainerKey))
163 scoreNames += [
"GNdTauScore",
"GNdTauProbTau",
"GNdTauProbJet"]
165 kwargs.setdefault(
"ScoreDecorationKeys", scoreNames)
166 kwargs.setdefault(
"WPDecorationKeys", [])
168 acc.addPublicTool(tool_prompt)
169 acc.addPublicTool(tool_displaced)
170 kwargs.setdefault(
"TauIDTools", [tool_prompt, tool_displaced])
172 tauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper(
173 name = f
"{tauContainerKey}_TauIDDisplacedDecoratorWrapper",
176 acc.addPublicTool(tauIDDecoratorWrapper)
178 prefix = kwargs.pop(
'prefix', tauContainerKey)
180 CompFactory.DerivationFramework.CommonAugmentation(
181 name = f
"{prefix}_TauDisplacedIDDecorKernel",
182 AugmentationTools = [tauIDDecoratorWrapper],
189 """Configure the MuonRM AOD tau building"""
191 acc = ComponentAccumulator()
192 inputTauJets = kwargs.setdefault(
"Key_tauContainer",
"TauJets")
193 kwargs.setdefault(
"Key_tauOutputContainer",
"TauJets_MuonRM")
194 kwargs.setdefault(
"Key_pi0OutputContainer",
"TauFinalPi0s_MuonRM")
195 kwargs.setdefault(
"Key_neutralPFOOutputContainer",
"TauNeutralParticleFlowObjects_MuonRM")
196 kwargs.setdefault(
"Key_chargedPFOOutputContainer",
"TauChargedParticleFlowObjects_MuonRM")
197 kwargs.setdefault(
"Key_hadronicPFOOutputContainer",
"TauHadronicParticleFlowObjects_MuonRM")
198 kwargs.setdefault(
"Key_tauTrackOutputContainer",
"TauTracks_MuonRM")
199 kwargs.setdefault(
"Key_vertexOutputContainer",
"TauSecondaryVertices_MuonRM")
202 import tauRec.TauToolHolder
as tauTools
203 if "modificationTools" not in kwargs:
205 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
206 for tool
in tools_mod:
208 kwargs.setdefault(
"modificationTools", tools_mod)
210 if "officialTools" not in kwargs:
212 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
213 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
214 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
215 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
216 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
217 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
218 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
219 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
220 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
221 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
222 import PanTauAlgs.JobOptions_Main_PanTau
as pantau
223 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
224 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
225 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
226 tools_after[-1].EventShapeKey =
''
227 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
228 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
229 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=
True)) )
230 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
231 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=
True )) )
232 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
233 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
234 for tool
in tools_after:
236 kwargs.setdefault(
"officialTools", tools_after)
238 kwargs.setdefault(
"ExtraInputs",
239 [ (
'xAOD::TauJetContainer' ,
"StoreGateSvc+{baseName}.truthJetLink".format(baseName = inputTauJets)),
240 (
'xAOD::TauJetContainer' ,
"StoreGateSvc+{baseName}.truthParticleLink".format(baseName = inputTauJets)) ] )
241 TauAODRunnerAlg=CompFactory.getComp(
"TauAODRunnerAlg")
243 name =
"MuonRemovalTauAODReRecoAlg",
246 acc.addEventAlgo(myTauAODRunnerAlg)