188def AddMuonRemovalTauAODReRecoAlgCfg(flags, **kwargs):
189 """Configure the MuonRM AOD tau building"""
190
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")
200
201
202 import tauRec.TauToolHolder as tauTools
203 if "modificationTools" not in kwargs:
204 tools_mod = []
205 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
206 for tool in tools_mod:
207 tool.inAOD = True
208 kwargs.setdefault("modificationTools", tools_mod)
209
210 if "officialTools" not in kwargs:
211 tools_after = []
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:
235 tool.inAOD = True
236 kwargs.setdefault("officialTools", tools_after)
237
238 if flags.Input.isMC:
239 kwargs.setdefault("ExtraInputs",
240 [ ( 'xAOD::TauJetContainer' , f"StoreGateSvc+{inputTauJets}.truthJetLink" ),
241 ( 'xAOD::TauJetContainer' , f"StoreGateSvc+{inputTauJets}.truthParticleLink" ) ] )
242 TauAODRunnerAlg=CompFactory.getComp("TauAODRunnerAlg")
244 name = "MuonRemovalTauAODReRecoAlg",
245 **kwargs
246 )
247 acc.addEventAlgo(myTauAODRunnerAlg)
248 return acc
249
250
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.