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 result.addEventAlgo(tauThinAlg)
268 return result
269
270
272
273 result = ComponentAccumulator()
274
275 #Check if the specific jet collection is needed based on flags
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))
285
286 # standard tau reconstruction
287 flags_TauRec = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauRec")
288
289 result.merge(TauBuildAlgCfg(flags_TauRec))
290
291 result.merge(TauCaloAlgCfg(flags_TauRec))
292
293 result.merge(TauRunnerAlgCfg(flags_TauRec))
294
295 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
296 result.merge(TauOutputCfg(flags_TauRec))
297
298 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
299 result.merge(TauxAODthinngCfg(flags_TauRec))
300
301 # electron-subtracted tau reconstruction
302 if flags.Tau.doTauEleRMRec:
303
304 flags_TauEleRM = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauEleRM")
305
306 result.merge(TauElecSubtractAlgCfg(flags_TauEleRM))
307
308 # jet reclustering
309 from JetRecConfig.JetRecConfig import JetRecCfg
310 from tauRec.ConfigurationHelpers import GetEleRMSeedCollection
311 eleRMSeedJetCollection = GetEleRMSeedCollection(flags_TauEleRM)
312 result.merge( JetRecCfg(flags_TauEleRM, eleRMSeedJetCollection ))
313
314 result.merge(TauBuildAlgCfg(flags_TauEleRM))
315
316 result.merge(TauCaloAlgCfg(flags_TauEleRM))
317
318 result.merge(TauRunnerAlgCfg(flags_TauEleRM))
319
320 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
321 result.merge(TauOutputCfg(flags_TauEleRM))
322
323 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
324 result.merge(TauxAODthinngCfg(flags_TauEleRM))
325
326 # had-had boosted ditaus
327 if flags.DiTau.doDiTauRec:
328 from DiTauRec.DiTauBuilderConfig import DiTauBuilderCfg
329 result.merge(DiTauBuilderCfg(flags))
330
331 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
332 result.merge(DiTauOutputCfg(flags))
333
334 return result
335
337 result = ComponentAccumulator()
338
339 # standard tau reconstruction
340 flags_TauLRT = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauLRT")
341
342 result.merge(TauBuildAlgCfg(flags_TauLRT))
343
344 result.merge(TauCaloAlgCfg(flags_TauLRT))
345
346 result.merge(TauRunnerAlgCfg(flags_TauLRT))
347
348 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
349 result.merge(TauOutputCfg(flags_TauLRT))
350
351 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
352 result.merge(TauxAODthinngCfg(flags_TauLRT))
353
354 return result
355
357
358 result = ComponentAccumulator()
359
360 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig import AsgElectronLikelihoodToolCfg
361 from ElectronPhotonSelectorTools.LikelihoodEnums import LikeEnum
362 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping import electronLHmenu
363 ElectronLHSelectorEleRM = result.popToolsAndMerge(
364 AsgElectronLikelihoodToolCfg(
365 flags,
366 name = flags.Tau.ActiveConfig.prefix+"ElectronLHSelector",
367 quality = getattr(LikeEnum, flags.Tau.ActiveConfig.EleRM_ElectronWorkingPoint),
368 menu = electronLHmenu.offlineMC21,
369 )
370 )
371
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,
382 doNothing = False,
383 )
384 result.addEventAlgo(tauElecSubtractAlg)
385 return result
386
387# Run with python -m tauRec.TauConfig
388def TauConfigTest(flags=None):
389
390 if flags is None:
391 from AthenaConfiguration.AllConfigFlags import initConfigFlags
392 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
393
394 flags = initConfigFlags()
395
396 flags.Input.Files = defaultTestFiles.RDO_RUN3
397 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
398
399 flags.Output.AODFileName = "AOD.pool.root"
400 flags.Exec.MaxEvents = 50
401
402 flags.Scheduler.ShowDataDeps = True
403 flags.Scheduler.ShowDataFlow = True
404 flags.Scheduler.ShowControlFlow = True
405
406 flags.Concurrency.NumThreads = 1
407 flags.Concurrency.NumConcurrentEvents = 1
408
409 from tauRec.ConfigurationHelpers import StandaloneTauRecoFlags
410 StandaloneTauRecoFlags(flags)
411
412 flags.lock()
413
414 from RecJobTransforms.RecoSteering import RecoSteering
415 cfg = RecoSteering(flags)
416
417 from RecJobTransforms.RecoConfigFlags import printRecoFlags
418 printRecoFlags(flags)
419
420 cfg.run()
421
422
423if __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:271
TauRunnerAlgCfg(flags)
Definition TauConfig.py:116
TauBuildAlgCfg(flags)
Definition TauConfig.py:8
TauLRTReconstructionCfg(flags)
Definition TauConfig.py:336
TauxAODthinngCfg(flags)
Definition TauConfig.py:251
TauConfigTest(flags=None)
Definition TauConfig.py:388
DiTauOutputCfg(flags)
Definition TauConfig.py:238
TauElecSubtractAlgCfg(flags)
Definition TauConfig.py:356