10 result = ComponentAccumulator()
13 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
14 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
16 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
19 import tauRec.TauToolHolder
as tauTools
22 tools.append( result.popToolsAndMerge(tauTools.JetSeedBuilderCfg(flags)) )
25 if getattr(flags.Tau.ActiveConfig,
'inTauEleRM',
False):
26 tools.append( result.popToolsAndMerge(tauTools.TauEleOverlapChecker(flags)) )
29 if flags.Tau.isStandalone
or flags.Tracking.doVertexFinding:
30 tools.append( result.popToolsAndMerge(tauTools.TauVertexFinderCfg(flags)) )
32 tools.append( result.popToolsAndMerge(tauTools.TauAxisCfg(flags)) )
35 tools.append( result.popToolsAndMerge(tauTools.TauTrackFinderCfg(flags)) )
36 if flags.Beam.Type
is not BeamType.Cosmics
and flags.Tau.doRNNTrackClass:
37 tools.append( result.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
40 tools.append( result.popToolsAndMerge(tauTools.TauClusterFinderCfg(flags)) )
41 tools.append( result.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
44 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterFinderCfg(flags)) )
47 TauBuilderAlg = CompFactory.getComp(
"TauBuilderAlg")
48 BuildAlg =
TauBuilderAlg(name = flags.Tau.ActiveConfig.prefix+
"TauCoreBuilderAlg",
49 Key_jetInputContainer = flags.Tau.ActiveConfig.SeedJetCollection,
50 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
51 Key_tauTrackOutputContainer = flags.Tau.ActiveConfig.TauTracks,
52 Key_tauPi0CellOutputContainer = flags.Tau.ActiveConfig.TauCommonPi0Cells,
53 MaxEta = flags.Tau.SeedMaxEta,
54 MinPt = flags.Tau.SeedMinPt,
55 MaxNTracks = flags.Tau.MaxNTracks,
57 CellMakerTool = result.popToolsAndMerge(tauTools.TauCellFinalizerCfg(flags)))
59 if flags.GeoModel.Run
is LHCPeriod.Run4:
60 BuildAlg.PixelDetEleCollKey=
"ITkPixelDetectorElementCollection"
61 BuildAlg.SCTDetEleCollKey=
"ITkStripDetectorElementCollection"
62 BuildAlg.TRTDetEleContKey=
""
64 result.addEventAlgo(BuildAlg)
70 result = ComponentAccumulator()
73 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
74 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
76 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
78 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
79 result.merge(caloTopoCoolFolderCfg(flags))
81 from LArBadChannelTool.LArBadChannelConfig
import LArBadChannelCfg
82 result.merge(LArBadChannelCfg(flags))
84 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
85 result.merge( TileBadChannelsCondAlgCfg(flags) )
88 import tauRec.TauToolHolder
as tauTools
90 CaloClusterMaker = CompFactory.getComp(
"CaloClusterMaker")
91 CaloTopoForTausMaker = CaloClusterMaker (flags.Tau.ActiveConfig.prefix+
"TauPi0SubtractedClusterMaker")
92 CaloTopoForTausMaker.ClustersOutputName = flags.Tau.ActiveConfig.TauPi0Clusters_tmp
93 CaloTopoForTausMaker.ClusterMakerTools = [result.popToolsAndMerge(tauTools.TauCaloTopoClusterMakerCfg(flags)),
94 result.popToolsAndMerge(tauTools.TauCaloTopoClusterSplitterCfg(flags))]
96 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterBadChannelCfg(flags))]
97 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterMomentsMakerCfg(flags))]
99 if flags.Calo.TopoCluster.doTopoClusterLocalCalib:
100 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterLocalCalibCfg(flags)),
101 result.popToolsAndMerge(tauTools.TauCaloOOCCalibCfg(flags)),
102 result.popToolsAndMerge(tauTools.TauCaloOOCPi0CalibCfg(flags)),
103 result.popToolsAndMerge(tauTools.TauCaloDMCalibCfg(flags))]
105 result.addEventAlgo(CaloTopoForTausMaker)
107 relinkAlg = CompFactory.ClusterCellRelinkAlg(name = flags.Tau.ActiveConfig.prefix+
'ClusterCellRelinkAlg',
109 ClustersInput = flags.Tau.ActiveConfig.TauPi0Clusters_tmp,
110 ClustersOutput = flags.Tau.ActiveConfig.TauPi0Clusters,
111 CellLinksOutput = flags.Tau.ActiveConfig.TauPi0ClustersLinks)
112 result.addEventAlgo(relinkAlg)
118 result=ComponentAccumulator()
121 import tauRec.TauToolHolder
as tauTools
124 tools.append( result.popToolsAndMerge(tauTools.TauShotFinderCfg(flags)) )
125 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
126 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
127 tools.append( result.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
128 tools.append( result.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
130 if flags.Beam.Type
is not BeamType.Cosmics:
131 tools.append( result.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
133 if flags.Tau.doPanTau:
134 import PanTauAlgs.JobOptions_Main_PanTau
as pantau
135 tools.append( result.popToolsAndMerge(pantau.PanTauCfg(flags)) )
137 tools.append(result.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
140 tools.append( result.popToolsAndMerge(tauTools.CellVariablesCfg(flags)) )
142 if flags.Beam.Type
is not BeamType.Cosmics:
143 tools.append( result.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
144 tools.append( result.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
147 tools.append( result.popToolsAndMerge(tauTools.TauAODSelectorCfg(flags)) )
150 if flags.Tau.isStandalone
or flags.Tracking.doVertexFinding:
151 tools.append(result.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
152 tools.append( result.popToolsAndMerge(tauTools.ElectronVetoVarsCfg(flags)) )
153 tools.append( result.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
154 tools.append( result.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
156 if flags.Tau.doTauDiscriminant:
157 tools.append( result.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
159 if flags.GeoModel.Run <= LHCPeriod.Run3:
160 tools.append( result.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags)) )
161 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
162 tools.append( result.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
164 if not flags.Tau.ActiveConfig.inTauEleRM:
166 tools.append( result.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags, version=0, applyTightTrackSel=
True)) )
167 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags, version=0, tauContainerName=flags.Tau.ActiveConfig.TauJets)) )
169 TauRunnerAlg = CompFactory.getComp(
"TauRunnerAlg")
170 RunnerAlg =
TauRunnerAlg(name = flags.Tau.ActiveConfig.prefix+
"TauRecRunnerAlg",
171 Key_tauInputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
172 Key_Pi0ClusterInputContainer = flags.Tau.ActiveConfig.TauPi0Clusters,
173 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets,
174 Key_neutralPFOOutputContainer = flags.Tau.ActiveConfig.TauNeutralPFOs,
175 Key_hadronicPFOOutputContainer = flags.Tau.ActiveConfig.TauHadronicPFOs,
176 Key_chargedPFOOutputContainer = flags.Tau.ActiveConfig.TauChargedPFOs,
177 Key_vertexOutputContainer = flags.Tau.ActiveConfig.TauSecondaryVertices,
178 Key_pi0Container = flags.Tau.ActiveConfig.TauFinalPi0s,
179 Key_tauShotClusOutputContainer = flags.Tau.ActiveConfig.TauShotClusters,
180 Key_tauShotClusLinkContainer = flags.Tau.ActiveConfig.TauShotClustersLinks,
181 Key_tauShotPFOOutputContainer = flags.Tau.ActiveConfig.TauShotPFOs,
184 result.addEventAlgo(RunnerAlg)
190 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD,addToAOD
191 result=ComponentAccumulator()
195 TauAODList += [ f
"xAOD::TauJetContainer#{flags.Tau.ActiveConfig.TauJets}" ]
196 TauAODList += [ f
"xAOD::TauTrackContainer#{flags.Tau.ActiveConfig.TauTracks}" ]
197 TauAODList += [ f
"xAOD::TauTrackAuxContainer#{flags.Tau.ActiveConfig.TauTracks}Aux." ]
198 TauAODList += [ f
"xAOD::VertexContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}" ]
199 TauAODList += [ f
"xAOD::VertexAuxContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}Aux.-vxTrackAtVertex" ]
200 TauAODList += [ f
"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}" ]
201 TauAODList += [ f
"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}Aux." ]
202 TauAODList += [ f
"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}_links" ]
203 TauAODList += [ f
"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauShotClusters}" ]
204 TauAODList += [ f
"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauShotClusters}Aux." ]
205 TauAODList += [ f
"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauShotClusters}_links" ]
206 TauAODList += [ f
"xAOD::ParticleContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}" ]
207 TauAODList += [ f
"xAOD::ParticleAuxContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}Aux." ]
208 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauShotPFOs}" ]
209 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauShotPFOs}Aux." ]
210 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}" ]
211 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}Aux." ]
212 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}" ]
213 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}Aux." ]
216 TauESDList = list(TauAODList)
220 removeAODvars =
"-VertexedClusters.-shotCells.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning.-chargedGlobalFELinks.-neutralGlobalFELinks"
221 if not flags.Tau.ActiveConfig.inTauEleRM:
222 removeAODvars += f
".-{flags.Tau.GNTauScoreName[0]}.-{flags.Tau.GNTauTransScoreName[0]}.-{flags.Tau.GNTauDecorWPNames[0][0]}.-{flags.Tau.GNTauDecorWPNames[0][1]}.-{flags.Tau.GNTauDecorWPNames[0][2]}.-{flags.Tau.GNTauDecorWPNames[0][3]}.-GNTauProbTau.-GNTauProbJet"
223 TauAODList += [
"xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeAODvars) ]
226 removeESDvars =
"-VertexedClusters.-shotCells.-chargedGlobalFELinks.-neutralGlobalFELinks"
227 if not flags.Tau.ActiveConfig.inTauEleRM:
228 removeESDvars += f
".-{flags.Tau.GNTauScoreName[0]}.-{flags.Tau.GNTauTransScoreName[0]}.-{flags.Tau.GNTauDecorWPNames[0][0]}.-{flags.Tau.GNTauDecorWPNames[0][1]}.-{flags.Tau.GNTauDecorWPNames[0][2]}.-{flags.Tau.GNTauDecorWPNames[0][3]}.-GNTauProbTau.-GNTauProbJet"
229 TauESDList += [
"xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeESDvars) ]
230 TauESDList += [
"xAOD::PFOContainer#{}" .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
231 TauESDList += [
"xAOD::PFOAuxContainer#{}Aux." .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
233 result.merge(addToESD(flags,TauESDList))
234 result.merge(addToAOD(flags,TauAODList))
253 result = ComponentAccumulator()
255 tauThinAlg = CompFactory.TauThinningAlg(name = flags.Tau.ActiveConfig.prefix+
"TauThinningAlg",
256 Taus = flags.Tau.ActiveConfig.TauJets,
257 TauTracks = flags.Tau.ActiveConfig.TauTracks,
258 TauNeutralPFOs = flags.Tau.ActiveConfig.TauNeutralPFOs,
259 TauPi0Clusters = flags.Tau.ActiveConfig.TauPi0Clusters,
260 TauPi0CellLinks = flags.Tau.ActiveConfig.TauPi0ClustersLinks,
261 TauFinalPi0s = flags.Tau.ActiveConfig.TauFinalPi0s,
262 TauShotPFOs = flags.Tau.ActiveConfig.TauShotPFOs,
263 TauShotClusters = flags.Tau.ActiveConfig.TauShotClusters,
264 TauShotCellLinks = flags.Tau.ActiveConfig.TauShotClustersLinks,
265 TauHadronicPFOs = flags.Tau.ActiveConfig.TauHadronicPFOs,
266 TauSecondaryVertices = flags.Tau.ActiveConfig.TauSecondaryVertices)
267 result.addEventAlgo(tauThinAlg)
273 result = ComponentAccumulator()
276 if flags.Tau.TauRec.SeedJetCollection
in [
"AntiKt4MLTopoJets",
277 "AntiKt4EMPFlowMLJets",
278 "AntiKt4EMPFlow10GeVCutTauSeedJets",
279 "AntiKt4EMPFlow5GeVCutTauSeedJets",
280 "AntiKt4EMPFlowNoPtCutTauSeedJets"]:
281 from JetRecConfig.JetRecConfig
import JetRecCfg
282 from tauRec.ConfigurationHelpers
import GetSeedCollection
283 seedJet = GetSeedCollection(flags)
284 result.merge(JetRecCfg(flags, seedJet))
287 flags_TauRec = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauRec")
295 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
298 if (flags.Output.doWriteAOD
and flags.Tau.ThinTaus):
302 if flags.Tau.doTauEleRMRec:
304 flags_TauEleRM = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauEleRM")
309 from JetRecConfig.JetRecConfig
import JetRecCfg
310 from tauRec.ConfigurationHelpers
import GetEleRMSeedCollection
311 eleRMSeedJetCollection = GetEleRMSeedCollection(flags_TauEleRM)
312 result.merge( JetRecCfg(flags_TauEleRM, eleRMSeedJetCollection ))
320 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
323 if (flags.Output.doWriteAOD
and flags.Tau.ThinTaus):
327 if flags.DiTau.doDiTauRec:
328 from DiTauRec.DiTauBuilderConfig
import DiTauBuilderCfg
329 result.merge(DiTauBuilderCfg(flags))
331 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
358 result = ComponentAccumulator()
360 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig
import AsgElectronLikelihoodToolCfg
361 from ElectronPhotonSelectorTools.LikelihoodEnums
import LikeEnum
362 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping
import electronLHmenu
363 ElectronLHSelectorEleRM = result.popToolsAndMerge(
364 AsgElectronLikelihoodToolCfg(
366 name = flags.Tau.ActiveConfig.prefix+
"ElectronLHSelector",
367 quality = getattr(LikeEnum, flags.Tau.ActiveConfig.EleRM_ElectronWorkingPoint),
368 menu = electronLHmenu.offlineMC21,
372 tauElecSubtractAlg = CompFactory.TauElecSubtractAlg(
373 name = flags.Tau.ActiveConfig.prefix+
"TauElecSubtractAlg",
374 Key_ElectronsInput =
'Electrons',
375 Key_ClustersInput =
'CaloCalTopoClusters',
376 Key_ClustersOutput = flags.Tau.ActiveConfig.CaloCalTopoClusters_EleRM,
377 Key_IDTracksInput =
'InDetTrackParticles',
378 Key_IDTracksOutput = flags.Tau.ActiveConfig.TrackCollection,
379 Key_RemovedClustersOutput = flags.Tau.ActiveConfig.RemovedElectronClusters,
380 Key_RemovedTracksOutput = flags.Tau.ActiveConfig.RemovedElectronTracks,
381 ElectronLHTool = ElectronLHSelectorEleRM,
384 result.addEventAlgo(tauElecSubtractAlg)
391 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
392 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultConditionsTags
394 flags = initConfigFlags()
396 flags.Input.Files = defaultTestFiles.RDO_RUN3
397 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
399 flags.Output.AODFileName =
"AOD.pool.root"
400 flags.Exec.MaxEvents = 50
402 flags.Scheduler.ShowDataDeps =
True
403 flags.Scheduler.ShowDataFlow =
True
404 flags.Scheduler.ShowControlFlow =
True
406 flags.Concurrency.NumThreads = 1
407 flags.Concurrency.NumConcurrentEvents = 1
409 from tauRec.ConfigurationHelpers
import StandaloneTauRecoFlags
410 StandaloneTauRecoFlags(flags)
414 from RecJobTransforms.RecoSteering
import RecoSteering
415 cfg = RecoSteering(flags)
417 from RecJobTransforms.RecoConfigFlags
import printRecoFlags
418 printRecoFlags(flags)