29 kwargs.setdefault(
"TauContainerName",
"TauJets")
31 acc = ComponentAccumulator()
36 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import AsgSelectionToolWrapperCfg
37 from TauAnalysisTools.TauAnalysisToolsConfig
import TauSelectionToolCfg
39 TauAugmentationTools = []
42 "GNTauVeryLoose" :
"TauAnalysisAlgorithms/tau_selection_gntau_veryloose_noeleid.conf",
43 "GNTauLoose" :
"TauAnalysisAlgorithms/tau_selection_gntau_loose_noeleid.conf",
44 "GNTauMedium" :
"TauAnalysisAlgorithms/tau_selection_gntau_medium_noeleid.conf",
45 "GNTauTight" :
"TauAnalysisAlgorithms/tau_selection_gntau_tight_noeleid.conf",
48 TauSelector = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
49 name = f
'TauSelector{wp}',
50 ConfigPath = config[wp]))
51 acc.addPublicTool(TauSelector)
53 TauWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
54 name = f
"Tau{wp}Wrapper",
55 AsgSelectionTool = TauSelector,
56 StoreGateEntryName = f
"DFTau{wp}",
57 ContainerName = kwargs[
"TauContainerName"]))
58 TauAugmentationTools.append(TauWrapper)
60 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
61 acc.addEventAlgo(CommonAugmentation(f
"Tau{wp}AugmentationKernel", AugmentationTools = TauAugmentationTools))
85 """Decorate tau ID scores and working points"""
89 tauContainerKey = kwargs.setdefault(
"TauContainerName",
"TauJets")
92 acc = ComponentAccumulator()
94 import tauRec.TauToolHolder
as tauTools
101 doVertexedClusters =
False
108 if kwargs.pop(
'evetoFix',
True):
109 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
111 doEvetoWP |= tools[-1].UseAbsEta
113 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
114 scoreNames.append(tools[-1].NewScoreName)
115 WPNames += tools[-1].DecorWPNames
117 if kwargs.pop(
'GNNTauID',
True):
119 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
120 doVertexedClusters =
True
123 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=
True)) )
125 tools.append( acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,1,applyLooseTrackSel=
True)) )
127 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,0)) )
129 doEvetoWP |= tools[-1].UseAbsEta
131 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
132 scoreNames.append(tools[-1].NewScoreName)
133 WPNames += tools[-1].DecorWPNames
136 tools.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags,1)) )
138 doEvetoWP |= tools[-1].UseAbsEta
140 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
141 scoreNames.append(tools[-1].NewScoreName)
142 WPNames += tools[-1].DecorWPNames
144 if flags.GeoModel.Run <= LHCPeriod.Run3:
146 tools.append( acc.popToolsAndMerge(tauTools.TauGNNeVetoEvaluatorCfg(flags, applyTightTrackSel=
True, applyLooseTrackSel=
True)) )
147 tools.append( acc.popToolsAndMerge(tauTools.TauGNNeVetoWPDecoratorCfg(flags)) )
148 if tools[-1].ScoreName !=
"RNNEleScore": scoreNames.append(tools[-1].ScoreName)
149 scoreNames.append(tools[-1].NewScoreName)
150 WPNames += tools[-1].DecorWPNames
152 if kwargs.pop(
'TausRUs', flags.Tau.doTausRUs):
153 if not doVertexedClusters:
154 tools.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
155 doVertexedClusters =
True
157 tools.append( acc.popToolsAndMerge(tauTools.TausRUsEvaluatorCfg(
159 name=f
"{tauContainerKey}_TausRUs",
160 tauTrackContainerName=tauContainerKey.replace(
"TauJets",
"TauTracks"))) )
165 scoreNames += tauTools.TausRUsDecorationNames()
168 kwargs.setdefault(
"DoEvetoWP", doEvetoWP)
169 kwargs.setdefault(
"ScoreDecorationKeys", scoreNames)
170 kwargs.setdefault(
"WPDecorationKeys", WPNames)
173 acc.addPublicTool(tool)
174 kwargs.setdefault(
"TauIDTools", tools)
176 TauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper
177 TauIDDecoratorKernel = CompFactory.DerivationFramework.CommonAugmentation
179 prefix = kwargs.pop(
'prefix', tauContainerKey)
180 tauIDDecoratorWrapper = TauIDDecoratorWrapper(name = f
"{prefix}_TauIDDecoratorWrapper",
182 print(
"PXQW TauIDDecoratorsWrapper: " + str(tauIDDecoratorWrapper))
183 acc.addPublicTool(tauIDDecoratorWrapper)
184 acc.addEventAlgo(TauIDDecoratorKernel(name = f
"{prefix}_TauIDDecorKernel",
185 AugmentationTools = [tauIDDecoratorWrapper]))
191 """Decorate taus with a flag to check if Calo and MVA TES are compatible """
193 acc = ComponentAccumulator()
195 import tauRec.TauToolHolder
as tauTools
197 tauCombinedTESTool = acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(
201 acc.addPublicTool(tauCombinedTESTool)
202 kwargs.setdefault(
"TauCombinedTESTool", tauCombinedTESTool)
203 kwargs.setdefault(
"TauContainerName",
"TauJets")
205 prefix = kwargs[
"TauContainerName"]
206 TauCombinedTESWrapper = CompFactory.DerivationFramework.TauCombinedTESWrapper
207 TauCombinedTESKernel = CompFactory.DerivationFramework.CommonAugmentation
209 TauCombinedTESWrapper = TauCombinedTESWrapper( name = f
"{prefix}_TauCombinedTES", **kwargs )
210 acc.addPublicTool(TauCombinedTESWrapper)
211 acc.addEventAlgo(TauCombinedTESKernel(name = f
"{prefix}_TauCombinedTESKernel",
212 AugmentationTools = [TauCombinedTESWrapper]))
218 """Decorate displaced tau ID scores and working points. Follows AddTauIDDisplacedDecorationCfg()"""
219 tauContainerKey = kwargs.setdefault(
"TauContainerName",
"TauJetsLRT")
221 flags_TauLRT = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauLRT")
223 acc = ComponentAccumulator()
227 import tauRec.TauToolHolder
as tauTools
228 tool_prompt = acc.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags,0,applyLooseTrackSel=
True))
229 scoreNames += [
"GNTauScore_v0prune"]
231 tool_displaced = acc.popToolsAndMerge(tauTools.TauGNNDisplacedEvaluatorCfg(flags_TauLRT, tauContainerName=tauContainerKey))
232 scoreNames += [
"GNdTauScore",
"GNdTauProbTau",
"GNdTauProbJet"]
234 kwargs.setdefault(
"ScoreDecorationKeys", scoreNames)
235 kwargs.setdefault(
"WPDecorationKeys", [])
237 acc.addPublicTool(tool_prompt)
238 acc.addPublicTool(tool_displaced)
239 kwargs.setdefault(
"TauIDTools", [tool_prompt, tool_displaced])
241 tauIDDecoratorWrapper = CompFactory.DerivationFramework.TauIDDecoratorWrapper(
242 name = f
"{tauContainerKey}_TauIDDisplacedDecoratorWrapper",
245 acc.addPublicTool(tauIDDecoratorWrapper)
247 prefix = kwargs.pop(
'prefix', tauContainerKey)
249 CompFactory.DerivationFramework.CommonAugmentation(
250 name = f
"{prefix}_TauDisplacedIDDecorKernel",
251 AugmentationTools = [tauIDDecoratorWrapper],
258 """Configure the MuonRM AOD tau building"""
260 acc = ComponentAccumulator()
261 inputTauJets = kwargs.setdefault(
"Key_tauContainer",
"TauJets")
262 kwargs.setdefault(
"Key_tauOutputContainer",
"TauJets_MuonRM")
263 kwargs.setdefault(
"Key_pi0OutputContainer",
"TauFinalPi0s_MuonRM")
264 kwargs.setdefault(
"Key_neutralPFOOutputContainer",
"TauNeutralParticleFlowObjects_MuonRM")
265 kwargs.setdefault(
"Key_chargedPFOOutputContainer",
"TauChargedParticleFlowObjects_MuonRM")
266 kwargs.setdefault(
"Key_hadronicPFOOutputContainer",
"TauHadronicParticleFlowObjects_MuonRM")
267 kwargs.setdefault(
"Key_tauTrackOutputContainer",
"TauTracks_MuonRM")
268 kwargs.setdefault(
"Key_vertexOutputContainer",
"TauSecondaryVertices_MuonRM")
271 import tauRec.TauToolHolder
as tauTools
272 if "modificationTools" not in kwargs:
274 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
275 for tool
in tools_mod:
277 kwargs.setdefault(
"modificationTools", tools_mod)
279 if "officialTools" not in kwargs:
281 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
282 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
283 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags,force_zero_mass=
True)) )
284 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
285 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
286 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
287 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
288 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
289 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
290 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
291 import PanTauAlgs.JobOptions_Main_PanTau
as pantau
292 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
293 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
294 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
295 tools_after[-1].EventShapeKey =
''
296 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
297 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
298 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=
True)) )
299 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
300 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=
True )) )
301 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
302 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
303 for tool
in tools_after:
305 kwargs.setdefault(
"officialTools", tools_after)
308 kwargs.setdefault(
"ExtraInputs",
309 [ (
'xAOD::TauJetContainer' , f
"StoreGateSvc+{inputTauJets}.truthJetLink" ),
310 (
'xAOD::TauJetContainer' , f
"StoreGateSvc+{inputTauJets}.truthParticleLink" ) ] )
311 TauAODRunnerAlg=CompFactory.getComp(
"TauAODRunnerAlg")
313 name =
"MuonRemovalTauAODReRecoAlg",
316 acc.addEventAlgo(myTauAODRunnerAlg)