ATLAS Offline Software
Loading...
Searching...
No Matches
TauConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.Enums import BeamType, LHCPeriod
6
7
8def TauBuildAlgCfg(flags):
9
10 result = ComponentAccumulator()
11
12 # Schedule total noise cond alg
13 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
14 result.merge(CaloNoiseCondAlgCfg(flags, "totalNoise"))
15 # Schedule electronic noise cond alg (needed for LC weights)
16 result.merge(CaloNoiseCondAlgCfg(flags, "electronicNoise"))
17
18 # get tools from holder
19 import tauRec.TauToolHolder as tauTools
20
21 tools = []
22 tools.append( result.popToolsAndMerge(tauTools.JetSeedBuilderCfg(flags)) )
23
24 # for electron-removed taus, check that seed jets are close to an electron
25 if getattr(flags.Tau.ActiveConfig, 'inTauEleRM', False):
26 tools.append( result.popToolsAndMerge(tauTools.TauEleOverlapChecker(flags)) )
27
28 # run vertex finder only in case vertexing is available
29 if flags.Tau.isStandalone or flags.Tracking.doVertexFinding:
30 tools.append( result.popToolsAndMerge(tauTools.TauVertexFinderCfg(flags)) )
31
32 tools.append( result.popToolsAndMerge(tauTools.TauAxisCfg(flags)) )
33
34 # track classification + association
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)) )
38
39 # cluster association + vertex correction
40 tools.append( result.popToolsAndMerge(tauTools.TauClusterFinderCfg(flags)) )
41 tools.append( result.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
42
43 # this needs to go before the TauCaloAlgCfg
44 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterFinderCfg(flags)) )
45
46 # TauBuilderAlg
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,
56 Tools = tools,
57 CellMakerTool = result.popToolsAndMerge(tauTools.TauCellFinalizerCfg(flags)))
58
59 if flags.GeoModel.Run is LHCPeriod.Run4:
60 BuildAlg.PixelDetEleCollKey="ITkPixelDetectorElementCollection"
61 BuildAlg.SCTDetEleCollKey="ITkStripDetectorElementCollection"
62 BuildAlg.TRTDetEleContKey=""
63
64 result.addEventAlgo(BuildAlg)
65 return result
66
67
68def TauCaloAlgCfg(flags):
69
70 result = ComponentAccumulator()
71
72 # Schedule total noise cond alg
73 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
74 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
75 # Schedule electronic noise cond alg (needed for LC weights)
76 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
77
78 from CaloRec.CaloTopoClusterConfig import caloTopoCoolFolderCfg
79 result.merge(caloTopoCoolFolderCfg(flags))
80
81 from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg
82 result.merge(LArBadChannelCfg(flags))
83
84 from TileConditions.TileBadChannelsConfig import TileBadChannelsCondAlgCfg
85 result.merge( TileBadChannelsCondAlgCfg(flags) )
86
87 # get tools from holder
88 import tauRec.TauToolHolder as tauTools
89
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))]
95
96 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterBadChannelCfg(flags))]
97 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterMomentsMakerCfg(flags))]
98
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))]
104
105 result.addEventAlgo(CaloTopoForTausMaker)
106
107 relinkAlg = CompFactory.ClusterCellRelinkAlg(name = flags.Tau.ActiveConfig.prefix+'ClusterCellRelinkAlg',
108 Cells = 'AllCalo',
109 ClustersInput = flags.Tau.ActiveConfig.TauPi0Clusters_tmp,
110 ClustersOutput = flags.Tau.ActiveConfig.TauPi0Clusters,
111 CellLinksOutput = flags.Tau.ActiveConfig.TauPi0ClustersLinks)
112 result.addEventAlgo(relinkAlg)
113 return result
114
115
117
118 result=ComponentAccumulator()
119
120 # get tools from holder
121 import tauRec.TauToolHolder as tauTools
122
123 tools = []
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)) )
129
130 if flags.Beam.Type is not BeamType.Cosmics:
131 tools.append( result.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
132
133 if flags.Tau.doPanTau:
134 import PanTauAlgs.JobOptions_Main_PanTau as pantau
135 tools.append( result.popToolsAndMerge(pantau.PanTauCfg(flags)) )
136
137 tools.append(result.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
138
139 # this is scheduled here because it provides variables used in the MVATES evaluation
140 tools.append( result.popToolsAndMerge(tauTools.CellVariablesCfg(flags)) )
141 # these tools need pantau info
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)) )
145
146 # apply pt cut
147 tools.append( result.popToolsAndMerge(tauTools.TauAODSelectorCfg(flags)) )
148
149 # do some extra variable calculation
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)) )
155
156 if flags.Tau.doTauDiscriminant:
157 tools.append( result.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
158 # do not schedule eVeto for Run4
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)) )
163 # added for offline tau trigger monitoring at T0, not needed for TauJets_EleRM
164 if not flags.Tau.ActiveConfig.inTauEleRM:
165 # only compute GNTau for 1p/3p, as this is internally required by the tau trigger monitoring
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)) )
168
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,
182 Tools = tools)
183
184 result.addEventAlgo(RunnerAlg)
185 return result
186
187
188def TauOutputCfg(flags):
189
190 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
191 result=ComponentAccumulator()
192
193 # common to AOD and ESD
194 TauAODList = []
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." ]
214
215 # Set common to ESD too
216 TauESDList = list(TauAODList)
217
218 # AOD specific
219 # remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and taus. Since these transient FE containers are not in the AOD, we should not write out these links.
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) ]
224
225 # ESD specific
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) ]
232
233 result.merge(addToESD(flags,TauESDList))
234 result.merge(addToAOD(flags,TauAODList))
235 return result
236
237
238def DiTauOutputCfg(flags):
239
240 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
241 result=ComponentAccumulator()
242
243 DiTauOutputList = [ "xAOD::DiTauJetContainer#DiTauJets" ]
244 DiTauOutputList += [ "xAOD::DiTauJetAuxContainer#DiTauJetsAux." ]
245
246 result.merge(addToESD(flags,DiTauOutputList))
247 result.merge(addToAOD(flags,DiTauOutputList))
248 return result
249
250
252
253 result = ComponentAccumulator()
254
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 MinNeutralPFOPt = flags.Tau.MinNeutralPFOPt if flags.GeoModel.Run > LHCPeriod.Run3 else 0,)
268 result.addEventAlgo(tauThinAlg)
269 return result
270
271
273
274 result = ComponentAccumulator()
275
276 #Check if the specific jet collection is needed based on flags
277 if flags.Tau.TauRec.SeedJetCollection in ["AntiKt4MLTopoJets",
278 "AntiKt4EMPFlowMLJets",
279 "AntiKt4EMPFlow10GeVCutTauSeedJets",
280 "AntiKt4EMPFlow5GeVCutTauSeedJets",
281 "AntiKt4EMPFlowNoPtCutTauSeedJets"]:
282 from JetRecConfig.JetRecConfig import JetRecCfg
283 from tauRec.ConfigurationHelpers import GetSeedCollection
284 seedJet = GetSeedCollection(flags)
285 result.merge(JetRecCfg(flags, seedJet))
286
287 # standard tau reconstruction
288 flags_TauRec = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauRec")
289
290 result.merge(TauBuildAlgCfg(flags_TauRec))
291
292 result.merge(TauCaloAlgCfg(flags_TauRec))
293
294 result.merge(TauRunnerAlgCfg(flags_TauRec))
295
296 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
297 result.merge(TauOutputCfg(flags_TauRec))
298
299 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
300 result.merge(TauxAODthinngCfg(flags_TauRec))
301
302 # electron-subtracted tau reconstruction
303 if flags.Tau.doTauEleRMRec:
304
305 flags_TauEleRM = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauEleRM")
306
307 result.merge(TauElecSubtractAlgCfg(flags_TauEleRM))
308
309 # jet reclustering
310 from JetRecConfig.JetRecConfig import JetRecCfg
311 from tauRec.ConfigurationHelpers import GetEleRMSeedCollection
312 eleRMSeedJetCollection = GetEleRMSeedCollection(flags_TauEleRM)
313 result.merge( JetRecCfg(flags_TauEleRM, eleRMSeedJetCollection ))
314
315 result.merge(TauBuildAlgCfg(flags_TauEleRM))
316
317 result.merge(TauCaloAlgCfg(flags_TauEleRM))
318
319 result.merge(TauRunnerAlgCfg(flags_TauEleRM))
320
321 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
322 result.merge(TauOutputCfg(flags_TauEleRM))
323
324 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
325 result.merge(TauxAODthinngCfg(flags_TauEleRM))
326
327 # had-had boosted ditaus
328 if flags.DiTau.doDiTauRec:
329 from DiTauRec.DiTauBuilderConfig import DiTauBuilderCfg
330 result.merge(DiTauBuilderCfg(flags))
331
332 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
333 result.merge(DiTauOutputCfg(flags))
334
335 return result
336
338 result = ComponentAccumulator()
339
340 # standard tau reconstruction
341 flags_TauLRT = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauLRT")
342
343 result.merge(TauBuildAlgCfg(flags_TauLRT))
344
345 result.merge(TauCaloAlgCfg(flags_TauLRT))
346
347 result.merge(TauRunnerAlgCfg(flags_TauLRT))
348
349 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
350 result.merge(TauOutputCfg(flags_TauLRT))
351
352 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
353 result.merge(TauxAODthinngCfg(flags_TauLRT))
354
355 return result
356
358
359 result = ComponentAccumulator()
360
361 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig import AsgElectronLikelihoodToolCfg
362 from ElectronPhotonSelectorTools.LikelihoodEnums import LikeEnum
363 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping import electronLHmenu
364 ElectronLHSelectorEleRM = result.popToolsAndMerge(
365 AsgElectronLikelihoodToolCfg(
366 flags,
367 name = flags.Tau.ActiveConfig.prefix+"ElectronLHSelector",
368 quality = getattr(LikeEnum, flags.Tau.ActiveConfig.EleRM_ElectronWorkingPoint),
369 menu = electronLHmenu.offlineMC21,
370 )
371 )
372
373 tauElecSubtractAlg = CompFactory.TauElecSubtractAlg(
374 name = flags.Tau.ActiveConfig.prefix+"TauElecSubtractAlg",
375 Key_ElectronsInput = 'Electrons',
376 Key_ClustersInput = 'CaloCalTopoClusters',
377 Key_ClustersOutput = flags.Tau.ActiveConfig.CaloCalTopoClusters_EleRM,
378 Key_IDTracksInput = 'InDetTrackParticles',
379 Key_IDTracksOutput = flags.Tau.ActiveConfig.TrackCollection,
380 Key_RemovedClustersOutput = flags.Tau.ActiveConfig.RemovedElectronClusters,
381 Key_RemovedTracksOutput = flags.Tau.ActiveConfig.RemovedElectronTracks,
382 ElectronLHTool = ElectronLHSelectorEleRM,
383 doNothing = False,
384 )
385 result.addEventAlgo(tauElecSubtractAlg)
386 return result
387
388# Run with python -m tauRec.TauConfig
389def TauConfigTest(flags=None):
390
391 if flags is None:
392 from AthenaConfiguration.AllConfigFlags import initConfigFlags
393 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
394
395 flags = initConfigFlags()
396
397 flags.Input.Files = defaultTestFiles.RDO_RUN3
398 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
399
400 flags.Output.AODFileName = "AOD.pool.root"
401 flags.Exec.MaxEvents = 50
402
403 flags.Scheduler.ShowDataDeps = True
404 flags.Scheduler.ShowDataFlow = True
405 flags.Scheduler.ShowControlFlow = True
406
407 flags.Concurrency.NumThreads = 1
408 flags.Concurrency.NumConcurrentEvents = 1
409
410 from tauRec.ConfigurationHelpers import StandaloneTauRecoFlags
411 StandaloneTauRecoFlags(flags)
412
413 flags.lock()
414
415 from RecJobTransforms.RecoSteering import RecoSteering
416 cfg = RecoSteering(flags)
417
418 from RecJobTransforms.RecoConfigFlags import printRecoFlags
419 printRecoFlags(flags)
420
421 cfg.run()
422
423
424if __name__=="__main__":
Main class for tau candidate processing.
TauCaloAlgCfg(flags)
Definition TauConfig.py:68
TauOutputCfg(flags)
Definition TauConfig.py:188
TauReconstructionCfg(flags)
Definition TauConfig.py:272
TauRunnerAlgCfg(flags)
Definition TauConfig.py:116
TauBuildAlgCfg(flags)
Definition TauConfig.py:8
TauLRTReconstructionCfg(flags)
Definition TauConfig.py:337
TauxAODthinngCfg(flags)
Definition TauConfig.py:251
TauConfigTest(flags=None)
Definition TauConfig.py:389
DiTauOutputCfg(flags)
Definition TauConfig.py:238
TauElecSubtractAlgCfg(flags)
Definition TauConfig.py:357