161def AddMuonRemovalTauAODReRecoAlgCfg(flags, **kwargs):
162 """Configure the MuonRM AOD tau building"""
163
164 acc = ComponentAccumulator()
165 inputTauJets = kwargs.setdefault("Key_tauContainer", "TauJets")
166 kwargs.setdefault("Key_tauOutputContainer", "TauJets_MuonRM")
167 kwargs.setdefault("Key_pi0OutputContainer", "TauFinalPi0s_MuonRM")
168 kwargs.setdefault("Key_neutralPFOOutputContainer", "TauNeutralParticleFlowObjects_MuonRM")
169 kwargs.setdefault("Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects_MuonRM")
170 kwargs.setdefault("Key_hadronicPFOOutputContainer", "TauHadronicParticleFlowObjects_MuonRM")
171 kwargs.setdefault("Key_tauTrackOutputContainer", "TauTracks_MuonRM")
172 kwargs.setdefault("Key_vertexOutputContainer", "TauSecondaryVertices_MuonRM")
173
174
175 import tauRec.TauToolHolder as tauTools
176 if "modificationTools" not in kwargs:
177 tools_mod = []
178 tools_mod.append( acc.popToolsAndMerge(tauTools.TauAODMuonRemovalCfg(flags)) )
179 for tool in tools_mod:
180 tool.inAOD = True
181 kwargs.setdefault("modificationTools", tools_mod)
182
183 if "officialTools" not in kwargs:
184 tools_after = []
185 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
186 tools_after.append( acc.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
187 tools_after.append( acc.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
188 tools_after.append( acc.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
189 tools_after.append( acc.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
190 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
191 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
192 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
193 tools_after.append( acc.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
194 tools_after.append( acc.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
195 import PanTauAlgs.JobOptions_Main_PanTau as pantau
196 tools_after.append( acc.popToolsAndMerge(pantau.PanTauCfg(flags)) )
197 tools_after.append( acc.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
198 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
199 tools_after[-1].EventShapeKey = ''
200 tools_after.append( acc.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
201 tools_after.append( acc.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
202 tools_after.append( acc.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags,applyLooseTrackSel=True)) )
203 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
204 tools_after.append( acc.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags,applyLooseTrackSel=True )) )
205 tools_after.append( acc.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
206 tools_after.append( acc.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
207 for tool in tools_after:
208 tool.inAOD = True
209 kwargs.setdefault("officialTools", tools_after)
210
211 kwargs.setdefault("ExtraInputs",
212 [ ( 'xAOD::TauJetContainer' , "StoreGateSvc+{baseName}.truthJetLink".format(baseName = inputTauJets)),
213 ( 'xAOD::TauJetContainer' , "StoreGateSvc+{baseName}.truthParticleLink".format(baseName = inputTauJets)) ] )
214 TauAODRunnerAlg=CompFactory.getComp("TauAODRunnerAlg")
216 name = "MuonRemovalTauAODReRecoAlg",
217 **kwargs
218 )
219 acc.addEventAlgo(myTauAODRunnerAlg)
220 return acc
221
222
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.