ATLAS Offline Software
Loading...
Searching...
No Matches
TauConfig Namespace Reference

Functions

 TauBuildAlgCfg (flags)
 TauCaloAlgCfg (flags)
 TauRunnerAlgCfg (flags)
 TauOutputCfg (flags)
 DiTauOutputCfg (flags)
 TauxAODthinngCfg (flags)
 TauReconstructionCfg (flags)
 TauElecSubtractAlgCfg (flags)
 TauConfigTest (flags=None)

Function Documentation

◆ DiTauOutputCfg()

TauConfig.DiTauOutputCfg ( flags)

Definition at line 241 of file TauConfig.py.

241def DiTauOutputCfg(flags):
242
243 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
244 result=ComponentAccumulator()
245
246 DiTauOutputList = [ "xAOD::DiTauJetContainer#DiTauJets" ]
247 DiTauOutputList += [ "xAOD::DiTauJetAuxContainer#DiTauJetsAux." ]
248
249 result.merge(addToESD(flags,DiTauOutputList))
250 result.merge(addToAOD(flags,DiTauOutputList))
251 return result
252
253

◆ TauBuildAlgCfg()

TauConfig.TauBuildAlgCfg ( flags)

Definition at line 8 of file TauConfig.py.

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 if flags.Tau.doPi0Clus:
45 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterFinderCfg(flags)) )
46
47 # TauBuildAlg AKA TauProcessorAlg
48 TauProcessorAlg = CompFactory.getComp("TauProcessorAlg")
49 BuildAlg = TauProcessorAlg(name = flags.Tau.ActiveConfig.prefix+"TauCoreBuilderAlg",
50 Key_jetInputContainer = flags.Tau.ActiveConfig.SeedJetCollection,
51 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
52 Key_tauTrackOutputContainer = flags.Tau.ActiveConfig.TauTracks,
53 Key_tauPi0CellOutputContainer = flags.Tau.ActiveConfig.TauCommonPi0Cells,
54 MaxEta = flags.Tau.SeedMaxEta,
55 MinPt = flags.Tau.SeedMinPt,
56 MaxNTracks = flags.Tau.MaxNTracks,
57 Tools = tools,
58 CellMakerTool = result.popToolsAndMerge(tauTools.TauCellFinalizerCfg(flags)))
59
60 if flags.GeoModel.Run is LHCPeriod.Run4:
61 BuildAlg.PixelDetEleCollKey="ITkPixelDetectorElementCollection"
62 BuildAlg.SCTDetEleCollKey="ITkStripDetectorElementCollection"
63 BuildAlg.TRTDetEleContKey=""
64
65 result.addEventAlgo(BuildAlg)
66 return result
67
68

◆ TauCaloAlgCfg()

TauConfig.TauCaloAlgCfg ( flags)

Definition at line 69 of file TauConfig.py.

69def TauCaloAlgCfg(flags):
70
71 result = ComponentAccumulator()
72
73 # Schedule total noise cond alg
74 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
75 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
76 # Schedule electronic noise cond alg (needed for LC weights)
77 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
78
79 from CaloRec.CaloTopoClusterConfig import caloTopoCoolFolderCfg
80 result.merge(caloTopoCoolFolderCfg(flags))
81
82 from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg
83 result.merge(LArBadChannelCfg(flags))
84
85 from TileConditions.TileBadChannelsConfig import TileBadChannelsCondAlgCfg
86 result.merge( TileBadChannelsCondAlgCfg(flags) )
87
88 # get tools from holder
89 import tauRec.TauToolHolder as tauTools
90
91 CaloClusterMaker = CompFactory.getComp("CaloClusterMaker")
92 CaloTopoForTausMaker = CaloClusterMaker (flags.Tau.ActiveConfig.prefix+"TauPi0SubtractedClusterMaker")
93 CaloTopoForTausMaker.ClustersOutputName = flags.Tau.ActiveConfig.TauPi0Clusters_tmp
94 CaloTopoForTausMaker.ClusterMakerTools = [result.popToolsAndMerge(tauTools.TauCaloTopoClusterMakerCfg(flags)),
95 result.popToolsAndMerge(tauTools.TauCaloTopoClusterSplitterCfg(flags))]
96
97 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterBadChannelCfg(flags))]
98 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterMomentsMakerCfg(flags))]
99
100 if flags.Calo.TopoCluster.doTopoClusterLocalCalib:
101 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterLocalCalibCfg(flags)),
102 result.popToolsAndMerge(tauTools.TauCaloOOCCalibCfg(flags)),
103 result.popToolsAndMerge(tauTools.TauCaloOOCPi0CalibCfg(flags)),
104 result.popToolsAndMerge(tauTools.TauCaloDMCalibCfg(flags))]
105
106 result.addEventAlgo(CaloTopoForTausMaker)
107
108 relinkAlg = CompFactory.ClusterCellRelinkAlg(name = flags.Tau.ActiveConfig.prefix+'ClusterCellRelinkAlg',
109 Cells = 'AllCalo',
110 ClustersInput = flags.Tau.ActiveConfig.TauPi0Clusters_tmp,
111 ClustersOutput = flags.Tau.ActiveConfig.TauPi0Clusters,
112 CellLinksOutput = flags.Tau.ActiveConfig.TauPi0ClustersLinks)
113 result.addEventAlgo(relinkAlg)
114 return result
115
116

◆ TauConfigTest()

TauConfig.TauConfigTest ( flags = None)

Definition at line 412 of file TauConfig.py.

412def TauConfigTest(flags=None):
413
414 if flags is None:
415 from AthenaConfiguration.AllConfigFlags import initConfigFlags
416 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
417
418 flags = initConfigFlags()
419
420 flags.Input.Files = defaultTestFiles.RDO_RUN3
421 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
422
423 flags.Output.AODFileName = "AOD.pool.root"
424 flags.Exec.MaxEvents = 50
425
426 flags.Scheduler.ShowDataDeps = True
427 flags.Scheduler.ShowDataFlow = True
428 flags.Scheduler.ShowControlFlow = True
429
430 flags.Concurrency.NumThreads = 1
431 flags.Concurrency.NumConcurrentEvents = 1
432
433 from tauRec.ConfigurationHelpers import StandaloneTauRecoFlags
434 StandaloneTauRecoFlags(flags)
435
436 flags.lock()
437
438 from RecJobTransforms.RecoSteering import RecoSteering
439 cfg = RecoSteering(flags)
440
441 from RecJobTransforms.RecoConfigFlags import printRecoFlags
442 printRecoFlags(flags)
443
444 cfg.run()
445
446

◆ TauElecSubtractAlgCfg()

TauConfig.TauElecSubtractAlgCfg ( flags)

Definition at line 380 of file TauConfig.py.

380def TauElecSubtractAlgCfg(flags):
381
382 result = ComponentAccumulator()
383
384 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig import AsgElectronLikelihoodToolCfg
385 from ElectronPhotonSelectorTools.LikelihoodEnums import LikeEnum
386 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping import electronLHmenu
387 ElectronLHSelectorEleRM = result.popToolsAndMerge(
388 AsgElectronLikelihoodToolCfg(
389 flags,
390 name = flags.Tau.ActiveConfig.prefix+"ElectronLHSelector",
391 quality = getattr(LikeEnum, flags.Tau.ActiveConfig.EleRM_ElectronWorkingPoint),
392 menu = electronLHmenu.offlineMC21,
393 )
394 )
395
396 tauElecSubtractAlg = CompFactory.TauElecSubtractAlg(
397 name = flags.Tau.ActiveConfig.prefix+"TauElecSubtractAlg",
398 Key_ElectronsInput = 'Electrons',
399 Key_ClustersInput = 'CaloCalTopoClusters',
400 Key_ClustersOutput = flags.Tau.ActiveConfig.CaloCalTopoClusters_EleRM,
401 Key_IDTracksInput = 'InDetTrackParticles',
402 Key_IDTracksOutput = flags.Tau.ActiveConfig.TrackCollection,
403 Key_RemovedClustersOutput = flags.Tau.ActiveConfig.RemovedElectronClusters,
404 Key_RemovedTracksOutput = flags.Tau.ActiveConfig.RemovedElectronTracks,
405 ElectronLHTool = ElectronLHSelectorEleRM,
406 doNothing = False,
407 )
408 result.addEventAlgo(tauElecSubtractAlg)
409 return result
410
411# Run with python -m tauRec.TauConfig

◆ TauOutputCfg()

TauConfig.TauOutputCfg ( flags)

Definition at line 191 of file TauConfig.py.

191def TauOutputCfg(flags):
192
193 from OutputStreamAthenaPool.OutputStreamConfig import addToESD,addToAOD
194 result=ComponentAccumulator()
195
196 # common to AOD and ESD
197 TauAODList = []
198 TauAODList += [ f"xAOD::TauJetContainer#{flags.Tau.ActiveConfig.TauJets}" ]
199 TauAODList += [ f"xAOD::TauTrackContainer#{flags.Tau.ActiveConfig.TauTracks}" ]
200 TauAODList += [ f"xAOD::TauTrackAuxContainer#{flags.Tau.ActiveConfig.TauTracks}Aux." ]
201 TauAODList += [ f"xAOD::VertexContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}" ]
202 TauAODList += [ f"xAOD::VertexAuxContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}Aux.-vxTrackAtVertex" ]
203 TauAODList += [ f"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}" ]
204 TauAODList += [ f"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}Aux." ]
205 TauAODList += [ f"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}_links" ]
206 TauAODList += [ f"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauShotClusters}" ]
207 TauAODList += [ f"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauShotClusters}Aux." ]
208 TauAODList += [ f"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauShotClusters}_links" ]
209 TauAODList += [ f"xAOD::ParticleContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}" ]
210 TauAODList += [ f"xAOD::ParticleAuxContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}Aux." ]
211 TauAODList += [ f"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauShotPFOs}" ]
212 TauAODList += [ f"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauShotPFOs}Aux." ]
213 TauAODList += [ f"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}" ]
214 TauAODList += [ f"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}Aux." ]
215 TauAODList += [ f"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}" ]
216 TauAODList += [ f"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}Aux." ]
217
218 # Set common to ESD too
219 TauESDList = list(TauAODList)
220
221 # AOD specific
222 # 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.
223 removeAODvars = "-VertexedClusters.-shotCells.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning.-chargedGlobalFELinks.-neutralGlobalFELinks"
224 if not flags.Tau.ActiveConfig.inTauEleRM:
225 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"
226 TauAODList += [ "xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeAODvars) ]
227
228 # ESD specific
229 removeESDvars = "-VertexedClusters.-shotCells.-chargedGlobalFELinks.-neutralGlobalFELinks"
230 if not flags.Tau.ActiveConfig.inTauEleRM:
231 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"
232 TauESDList += [ "xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeESDvars) ]
233 TauESDList += [ "xAOD::PFOContainer#{}" .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
234 TauESDList += [ "xAOD::PFOAuxContainer#{}Aux." .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
235
236 result.merge(addToESD(flags,TauESDList))
237 result.merge(addToAOD(flags,TauAODList))
238 return result
239
240

◆ TauReconstructionCfg()

TauConfig.TauReconstructionCfg ( flags)

Definition at line 274 of file TauConfig.py.

274def TauReconstructionCfg(flags):
275
276 result = ComponentAccumulator()
277
278 # Schedule the custom jets needed for tau seeding
279 from JetRecConfig.JetRecConfig import JetRecCfg
280 from JetRecConfig.StandardJetConstits import stdConstitDic as cst
281 from JetRecConfig.JetDefinition import JetDefinition
282 from JetRecConfig.StandardSmallRJets import flavourghosts, calibmods_noCut, standardmods, truthmods
283 minimalghosts = ["Track","MuonSegment","Truth"]
284
285 #Check if the specific jet collection is needed based on flags
286 if flags.Tau.TauRec.SeedJetCollection == "AntiKt4MLTopoJets":
287 from JetRecConfig.StandardSmallRJets import AntiKt4MLTopo
288 result.merge(JetRecCfg(flags, AntiKt4MLTopo))
289 if flags.Tau.TauRec.SeedJetCollection == "AntiKt4EMPFlowMLJets":
290 from JetRecConfig.StandardSmallRJets import AntiKt4EMPFlowML
291 result.merge(JetRecCfg(flags, AntiKt4EMPFlowML))
292 if flags.Tau.TauRec.SeedJetCollection == "AntiKt4EMPFlow10GeVCutTauSeedJets":
293 AntiKt4EMPFlow10GeVCutTauSeed = JetDefinition("AntiKt",0.4,cst.GPFlow,
294 infix = "10GeVCutTauSeed",
295 ghostdefs = minimalghosts+flavourghosts,
296 modifiers = calibmods_noCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus"),
297 ptmin = 10000.,
298 lock = True)
299 result.merge(JetRecCfg(flags, AntiKt4EMPFlow10GeVCutTauSeed))
300 if flags.Tau.TauRec.SeedJetCollection == "AntiKt4EMPFlow5GeVCutTauSeedJets":
301 AntiKt4EMPFlow5GeVCutTauSeed = JetDefinition("AntiKt",0.4,cst.GPFlow,
302 infix = "5GeVCutTauSeed",
303 ghostdefs = minimalghosts+flavourghosts,
304 modifiers = calibmods_noCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus"),
305 ptmin = 5000.,
306 lock = True)
307 result.merge(JetRecCfg(flags, AntiKt4EMPFlow5GeVCutTauSeed))
308 if flags.Tau.TauRec.SeedJetCollection == "AntiKt4EMPFlowNoPtCutTauSeedJets":
309 AntiKt4EMPFlowNoPtCutTauSeed = JetDefinition("AntiKt",0.4,cst.GPFlow,
310 infix = "NoPtCutTauSeed",
311 ghostdefs = minimalghosts+flavourghosts,
312 modifiers = calibmods_noCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus"),
313 ptmin = 1,
314 lock = True)
315 result.merge(JetRecCfg(flags, AntiKt4EMPFlowNoPtCutTauSeed))
316 # --- > End of Schedule the custom jets needed for tau seeding < ---
317
318
319 # standard tau reconstruction
320 flags_TauRec = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauRec")
321
322 result.merge(TauBuildAlgCfg(flags_TauRec))
323
324 result.merge(TauCaloAlgCfg(flags_TauRec))
325
326 result.merge(TauRunnerAlgCfg(flags_TauRec))
327
328 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
329 result.merge(TauOutputCfg(flags_TauRec))
330
331 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
332 result.merge(TauxAODthinngCfg(flags_TauRec))
333
334 # electron-subtracted tau reconstruction
335 if flags.Tau.doTauEleRMRec:
336
337 flags_TauEleRM = flags.cloneAndReplace("Tau.ActiveConfig", "Tau.TauEleRM")
338
339 result.merge(TauElecSubtractAlgCfg(flags_TauEleRM))
340
341 # jet reclustering
342 from JetRecConfig.JetRecConfig import JetRecCfg
343 if 'PFlow' in flags.Tau.TauRec.SeedJetCollection:
344 from JetRecConfig.JetRecConfig import JetRecCfg
345 from JetRecConfig.StandardSmallRJets import AntiKt4EMPFlow_tauSeedEleRM
346 result.merge( JetRecCfg(flags_TauEleRM,AntiKt4EMPFlow_tauSeedEleRM ))
347 else:
348 from JetRecConfig.StandardSmallRJets import AntiKt4LCTopo
349 AntiKt4LCTopo_EleRM = AntiKt4LCTopo.clone(suffix="_EleRM")
350 AntiKt4LCTopo_EleRM.inputdef.name = flags_TauEleRM.Tau.ActiveConfig.LCTopoOrigin_EleRM
351 AntiKt4LCTopo_EleRM.inputdef.inputname = flags_TauEleRM.Tau.ActiveConfig.CaloCalTopoClusters_EleRM
352 AntiKt4LCTopo_EleRM.inputdef.containername = flags_TauEleRM.Tau.ActiveConfig.LCOriginTopoClusters_EleRM
353 AntiKt4LCTopo_EleRM.standardRecoMode = True
354 AntiKt4LCTopo_EleRM.context = "EleRM"
355 result.merge(JetRecCfg(flags_TauEleRM, AntiKt4LCTopo_EleRM))
356
357 result.merge(TauBuildAlgCfg(flags_TauEleRM))
358
359 result.merge(TauCaloAlgCfg(flags_TauEleRM))
360
361 result.merge(TauRunnerAlgCfg(flags_TauEleRM))
362
363 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
364 result.merge(TauOutputCfg(flags_TauEleRM))
365
366 if (flags.Output.doWriteAOD and flags.Tau.ThinTaus):
367 result.merge(TauxAODthinngCfg(flags_TauEleRM))
368
369 # had-had boosted ditaus
370 if flags.DiTau.doDiTauRec:
371 from DiTauRec.DiTauBuilderConfig import DiTauBuilderCfg
372 result.merge(DiTauBuilderCfg(flags))
373
374 if (flags.Output.doWriteESD or flags.Output.doWriteAOD):
375 result.merge(DiTauOutputCfg(flags))
376
377 return result
378
379

◆ TauRunnerAlgCfg()

TauConfig.TauRunnerAlgCfg ( flags)

Definition at line 117 of file TauConfig.py.

117def TauRunnerAlgCfg(flags):
118
119 result=ComponentAccumulator()
120
121 # get tools from holder
122 import tauRec.TauToolHolder as tauTools
123
124 tools = []
125 tools.append( result.popToolsAndMerge(tauTools.TauShotFinderCfg(flags)) )
126 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
127 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
128 tools.append( result.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
129 tools.append( result.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
130
131 if flags.Beam.Type is not BeamType.Cosmics:
132 tools.append( result.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
133
134 if flags.Tau.doPanTau:
135 import PanTauAlgs.JobOptions_Main_PanTau as pantau
136 tools.append( result.popToolsAndMerge(pantau.PanTauCfg(flags)) )
137
138 tools.append(result.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
139
140 # this is scheduled here because it provides variables used in the MVATES evaluation
141 tools.append( result.popToolsAndMerge(tauTools.CellVariablesCfg(flags)) )
142 # these tools need pantau info
143 if flags.Beam.Type is not BeamType.Cosmics:
144 tools.append( result.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
145 tools.append( result.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
146
147 # apply pt cut
148 tools.append( result.popToolsAndMerge(tauTools.TauAODSelectorCfg(flags)) )
149
150 # do some extra variable calculation
151 if flags.Tau.isStandalone or flags.Tracking.doVertexFinding:
152 tools.append(result.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
153 tools.append( result.popToolsAndMerge(tauTools.ElectronVetoVarsCfg(flags)) )
154 tools.append( result.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
155 tools.append( result.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
156
157 if flags.Tau.doTauDiscriminant:
158 tools.append( result.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
159 # do not schedule RNNID and eVeto for Run4
160 if flags.GeoModel.Run <= LHCPeriod.Run3:
161 tools.append( result.popToolsAndMerge(tauTools.TauJetRNNEvaluatorCfg(flags)) )
162 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorJetRNNCfg(flags)) )
163 tools.append( result.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags)) )
164 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
165 tools.append( result.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
166 # added for offline tau trigger monitoring at T0, not needed for TauJets_EleRM
167 if not flags.Tau.ActiveConfig.inTauEleRM:
168 # only compute GNTau for 1p/3p, as this is internally required by the tau trigger monitoring
169 tools.append( result.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags, version=0, applyTightTrackSel=True)) )
170 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags, version=0, tauContainerName=flags.Tau.ActiveConfig.TauJets)) )
171
172 TauRunnerAlg = CompFactory.getComp("TauRunnerAlg")
173 RunnerAlg = TauRunnerAlg(name = flags.Tau.ActiveConfig.prefix+"TauRecRunnerAlg",
174 Key_tauInputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
175 Key_Pi0ClusterInputContainer = flags.Tau.ActiveConfig.TauPi0Clusters,
176 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets,
177 Key_neutralPFOOutputContainer = flags.Tau.ActiveConfig.TauNeutralPFOs,
178 Key_hadronicPFOOutputContainer = flags.Tau.ActiveConfig.TauHadronicPFOs,
179 Key_chargedPFOOutputContainer = flags.Tau.ActiveConfig.TauChargedPFOs,
180 Key_vertexOutputContainer = flags.Tau.ActiveConfig.TauSecondaryVertices,
181 Key_pi0Container = flags.Tau.ActiveConfig.TauFinalPi0s,
182 Key_tauShotClusOutputContainer = flags.Tau.ActiveConfig.TauShotClusters,
183 Key_tauShotClusLinkContainer = flags.Tau.ActiveConfig.TauShotClustersLinks,
184 Key_tauShotPFOOutputContainer = flags.Tau.ActiveConfig.TauShotPFOs,
185 Tools = tools)
186
187 result.addEventAlgo(RunnerAlg)
188 return result
189
190
Main class for tau candidate processing.

◆ TauxAODthinngCfg()

TauConfig.TauxAODthinngCfg ( flags)

Definition at line 254 of file TauConfig.py.

254def TauxAODthinngCfg(flags):
255
256 result = ComponentAccumulator()
257
258 tauThinAlg = CompFactory.TauThinningAlg(name = flags.Tau.ActiveConfig.prefix+"TauThinningAlg",
259 Taus = flags.Tau.ActiveConfig.TauJets,
260 TauTracks = flags.Tau.ActiveConfig.TauTracks,
261 TauNeutralPFOs = flags.Tau.ActiveConfig.TauNeutralPFOs,
262 TauPi0Clusters = flags.Tau.ActiveConfig.TauPi0Clusters,
263 TauPi0CellLinks = flags.Tau.ActiveConfig.TauPi0ClustersLinks,
264 TauFinalPi0s = flags.Tau.ActiveConfig.TauFinalPi0s,
265 TauShotPFOs = flags.Tau.ActiveConfig.TauShotPFOs,
266 TauShotClusters = flags.Tau.ActiveConfig.TauShotClusters,
267 TauShotCellLinks = flags.Tau.ActiveConfig.TauShotClustersLinks,
268 TauHadronicPFOs = flags.Tau.ActiveConfig.TauHadronicPFOs,
269 TauSecondaryVertices = flags.Tau.ActiveConfig.TauSecondaryVertices)
270 result.addEventAlgo(tauThinAlg)
271 return result
272
273