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 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",
244 **kwargs
245 )
246 acc.addEventAlgo(myTauAODRunnerAlg)
247 return acc
248
249
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.