ATLAS Offline Software
Loading...
Searching...
No Matches
TauToolHolder.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
10
11from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12from AthenaConfiguration.ComponentFactory import CompFactory
13from AthenaConfiguration.AccumulatorCache import AccumulatorCache
14from AthenaConfiguration.Enums import ProductionStep
15from AthenaCommon.SystemOfUnits import GeV, deg
16
17
19@AccumulatorCache
21 result = ComponentAccumulator()
22 _name = flags.Tau.ActiveConfig.prefix + 'JetSeedBuilder'
23
24 JetSeedBuilder = CompFactory.getComp("JetSeedBuilder")
25 JetSeedBuilder = JetSeedBuilder(name = _name)
26
27 result.setPrivateTools(JetSeedBuilder)
28 return result
29
30
32 result = ComponentAccumulator()
33 _name = flags.Tau.ActiveConfig.prefix + 'TauVertexFinder'
34
35 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import (
36 Tau_InDetTrackSelectionToolForTJVACfg)
37 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig import TauTTVAToolCfg
38
39 # Algorithm that overwrites numTrack() and charge() of tauJets in container
40 # from tauRecTools.tauRecToolsConf import TauVertexFinder
41 TauVertexFinder = CompFactory.getComp("TauVertexFinder")
42 TauVertexFinder = TauVertexFinder(name = _name,
43 UseTJVA = flags.Tau.doTJVA,
44 AssociatedTracks="GhostTrack", # OK??
45 InDetTrackSelectionToolForTJVA = result.popToolsAndMerge(Tau_InDetTrackSelectionToolForTJVACfg(flags)),
46 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
47 TVATool = result.popToolsAndMerge(TauTTVAToolCfg(flags)),
48 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
49 )
50
51 result.setPrivateTools(TauVertexFinder)
52 return result
53
54
56def TauAxisCfg(flags):
57 result = ComponentAccumulator()
58 _name = flags.Tau.ActiveConfig.prefix + 'TauAxis'
59
60 TauAxisSetter = CompFactory.getComp("TauAxisSetter")
61 TauAxisSetter = TauAxisSetter( name = _name,
62 ClusterCone = 0.2,
63 VertexCorrection = flags.Tau.doVertexCorrection )
64
65 result.setPrivateTools(TauAxisSetter)
66 return result
67
68
69
71 #If reading from ESD we not create a cache of extrapolations to the calorimeter, so we should signify this by setting the cache key to a null string
72 if flags.Common.ProductionStep is ProductionStep.Reconstruction:
73 ParticleCache = "ParticleCaloExtension"
74 else:
75 ParticleCache = ""
76
77 return ParticleCache
78
79
82 result = ComponentAccumulator()
83 _name = flags.Tau.ActiveConfig.prefix + 'TauTrackFinder'
84
85 # BeamSpot Conditions
86 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
87 result.merge(BeamSpotCondAlgCfg(flags))
88
89 from TrackToVertex.TrackToVertexConfig import TrackToVertexCfg
90 from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
91 from TrkConfig.TrkVertexFitterUtilsConfig import AtlasTrackToVertexIPEstimatorCfg
92 from InDetConfig.InDetTrackSelectorToolConfig import TauRecInDetTrackSelectorToolCfg
93
94 _LargeD0TrackInputContainer = (flags.Tau.ActiveConfig.LargeD0TrackCollection if flags.Tau.associateLRT else "")
95
96 # Manually setting for TauLRT reco
97 if flags.Tau.ActiveConfig.inTauLRT:
98 _LargeD0TrackInputContainer = flags.Tau.ActiveConfig.LargeD0TrackCollection
99
100 TauTrackFinder = CompFactory.getComp("TauTrackFinder")
101 TauTrackFinder = TauTrackFinder(name = _name,
102 MaxJetDrTau = 0.2,
103 MaxJetDrWide = 0.4,
104 TrackSelectorToolTau = result.popToolsAndMerge(TauRecInDetTrackSelectorToolCfg(flags)),
105 TrackToVertexTool = result.popToolsAndMerge(TrackToVertexCfg(flags)),
106 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
107 tauParticleCache = getParticleCache(flags), # only returns a string
108 removeDuplicateCoreTracks = flags.Tau.RemoveDupeCoreTracks,
109 useGhostTracks = flags.Tau.useGhostTracks,
110 ghostTrackDR = flags.Tau.ghostTrackDR,
111 Key_jetContainer = (flags.Tau.ActiveConfig.SeedJetCollection if flags.Tau.useGhostTracks else ""),
112 Key_trackPartInputContainer = flags.Tau.ActiveConfig.TrackCollection,
113 Key_LargeD0TrackInputContainer = _LargeD0TrackInputContainer,
114 TrackToVertexIPEstimator = result.popToolsAndMerge(AtlasTrackToVertexIPEstimatorCfg(flags)),
115 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
116 )
117 result.setPrivateTools(TauTrackFinder)
118 return result
119
120
123 result = ComponentAccumulator()
124 _name = flags.Tau.ActiveConfig.prefix + 'TauClusterFinder'
125
126
127 TauClusterFinder = CompFactory.getComp("TauClusterFinder")
128 TauClusterFinder = TauClusterFinder(
129 name = _name,
130 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
131 )
132
133
134 result.setPrivateTools(TauClusterFinder)
135 return result
136
137
139 result = ComponentAccumulator()
140 _name = flags.Tau.ActiveConfig.prefix + 'TauVertexedClusterDecorator'
141
142 TauVertexedClusterDecorator = CompFactory.getComp("TauVertexedClusterDecorator")
143 myTauVertexedClusterDecorator = TauVertexedClusterDecorator(name = _name,
144 SeedJet = flags.Tau.ActiveConfig.SeedJetCollection)
145
146 result.setPrivateTools(myTauVertexedClusterDecorator)
147 return result
148
149
150def TauTrackRNNCfg(flags):
151 result = ComponentAccumulator()
152 _name = flags.Tau.ActiveConfig.prefix + 'TauTrackRNNClassifier'
153
154 TrackRNN = CompFactory.tauRecTools.TrackRNN
155 _RNN = TrackRNN(name = _name + "_TrackRNN",
156 InputWeightsPath = flags.Tau.tauRNNTrackClassConfig,
157 calibFolder = flags.Tau.tauRecToolsCVMFSPath )
158
159 result.setPrivateTools(_RNN)
160 return result
161
162
164 result = ComponentAccumulator()
165 _name = flags.Tau.ActiveConfig.prefix + 'TauTrackRNNClassifier'
166
167 # create tool alg
168 TauTrackRNNClassifier = CompFactory.tauRecTools.TauTrackRNNClassifier
169
170 import cppyy
171 cppyy.load_library('libxAODTau_cDict')
172
173 _classifyLRT = True
174 _classifyLRTWithDedicated = flags.Tau.classifyLRTWithDedicated
175 if flags.Tau.associateLRT and not flags.Tau.classifyLRT:
176 _classifyLRT = False
177
178 # Manually setting for TauLRT reco
179 if flags.Tau.ActiveConfig.inTauLRT:
180 _classifyLRT = True
181 _classifyLRTWithDedicated = True
182
183
184 myTauTrackClassifier = TauTrackRNNClassifier( name = _name,
185 Classifiers = [ result.popToolsAndMerge(TauTrackRNNCfg(flags)) ],
186 classifyLRT = _classifyLRT,
187 classifyLRTWithDedicated = _classifyLRTWithDedicated)
188
189 result.setPrivateTools(myTauTrackClassifier)
190 return result
191
192
195 result = ComponentAccumulator()
196 _name = flags.Tau.ActiveConfig.prefix +'EnergyCalibrationLC'
197
198 TauCalibrateLC = CompFactory.getComp("TauCalibrateLC")
199 TauCalibrateLC = TauCalibrateLC(name = _name,
200 calibrationFile = flags.Tau.CalibrateLCConfig,
201 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection)
202
203 result.setPrivateTools(TauCalibrateLC)
204 return result
205
206
209 result = ComponentAccumulator()
210 _name = flags.Tau.ActiveConfig.prefix + 'CellVariables'
211
212 TauCellVariables = CompFactory.getComp("TauCellVariables")
213 TauCellVariables = TauCellVariables(name = _name,
214 VertexCorrection = flags.Tau.doVertexCorrection)
215
216 result.setPrivateTools(TauCellVariables)
217 return result
218
219
222 result = ComponentAccumulator()
223 _name = flags.Tau.ActiveConfig.prefix + 'TauElectronVetoVars'
224
225 from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
226
227 TauElectronVetoVariables = CompFactory.getComp("TauElectronVetoVariables")
228 TauElectronVetoVariables = TauElectronVetoVariables(name = _name,
229 VertexCorrection = flags.Tau.doVertexCorrection,
230 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
231 tauEVParticleCache = getParticleCache(flags))
232
233 result.setPrivateTools(TauElectronVetoVariables)
234 return result
235
236
239 result = ComponentAccumulator()
240 _name = flags.Tau.ActiveConfig.prefix + 'TauShotFinder'
241
242 shotPtCut_1Photon = flags.Tau.shotPtCut_1Photon
243 shotPtCut_2Photons = flags.Tau.shotPtCut_2Photons
244
245
246 from CaloClusterCorrection.StandardCellWeightCalib import getCellWeightTool
247 CaloWeightTool = getCellWeightTool(flags=flags)
248
249
250 TauShotFinder = CompFactory.getComp("TauShotFinder")
251 TauShotFinder = TauShotFinder(
252 name = _name,
253 CaloWeightTool = result.popToolsAndMerge(CaloWeightTool),
254 NCellsInEta = 5,
255 MinPtCut = shotPtCut_1Photon,
256 AutoDoubleShotCut = shotPtCut_2Photons,
257 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
258 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
259 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
260 )
261
262 result.setPrivateTools(TauShotFinder)
263 return result
264
265
269 result = ComponentAccumulator()
270 _name = flags.Tau.ActiveConfig.prefix + 'Pi0ClusterFinder'
271
272 TauPi0CreateROI = CompFactory.getComp("TauPi0CreateROI")
273
274 myTauPi0CreateROI = TauPi0CreateROI(
275 name = _name,
276 Key_caloCellInputContainer = "AllCalo",
277 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
278 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
279 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
280 )
281
282 result.setPrivateTools(myTauPi0CreateROI)
283 return result
284
285
288 result = ComponentAccumulator()
289 _name = flags.Tau.ActiveConfig.prefix + 'tauPi0CellContainerFinalizer'
290
291 CaloCellContainerFinalizerTool = CompFactory.getComp("CaloCellContainerFinalizerTool")
292 TauCellContainerFinalizer = CaloCellContainerFinalizerTool(name=_name)
293
294 result.setPrivateTools(TauCellContainerFinalizer)
295 return result
296
297
300
302 result = ComponentAccumulator()
303 _name = flags.Tau.ActiveConfig.prefix + 'LCClassify'
304
305 CaloLCClassificationTool = CompFactory.getComp("CaloLCClassificationTool")
306 LCClassify = CaloLCClassificationTool(_name)
307 LCClassify.ClassificationKey = "EMFracClassify"
308 LCClassify.UseSpread = False
309 LCClassify.MaxProbability = 0.5
310 # add the moments EM_PROBABILITY, HAD_WEIGHT, OOC_WEIGHT, DM_WEIGHT to the AOD:
311 LCClassify.StoreClassificationProbabilityInAOD = True
312 LCClassify.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
313 LCClassify.UseNormalizedEnergyDensity = True
314
315 result.setPrivateTools(LCClassify)
316 return result
317
319 result = ComponentAccumulator()
320 _name = flags.Tau.ActiveConfig.prefix + 'CaloLCWeightTool'
321
322 # Schedule total noise cond alg
323 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
324 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
325 # Schedule electronic noise cond alg (needed for LC weights)
326 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
327
328 CaloLCWeightTool = CompFactory.getComp("CaloLCWeightTool")
329 LCWeight = CaloLCWeightTool(_name)
330 LCWeight.CorrectionKey = "H1ClusterCellWeights"
331 LCWeight.SignalOverNoiseCut = 2.0
332 LCWeight.UseHadProbability = True
333
334 result.setPrivateTools(LCWeight)
335 return result
336
338 result = ComponentAccumulator()
339 _name = flags.Tau.ActiveConfig.prefix + 'CaloLCOutOfClusterTool'
340
341 CaloLCOutOfClusterTool = CompFactory.getComp("CaloLCOutOfClusterTool")
342 LCOut = CaloLCOutOfClusterTool(_name)
343 LCOut.CorrectionKey = "OOCCorrection"
344 LCOut.UseEmProbability = False
345 LCOut.UseHadProbability = True
346
347 result.setPrivateTools(LCOut)
348 return result
349
351 result = ComponentAccumulator()
352 _name = flags.Tau.ActiveConfig.prefix + 'LCOutPi0'
353
354 CaloLCOutOfClusterTool = CompFactory.getComp("CaloLCOutOfClusterTool")
355 LCOutPi0 = CaloLCOutOfClusterTool(_name)
356 LCOutPi0.CorrectionKey = "OOCPi0Correction"
357 LCOutPi0.UseEmProbability = True
358 LCOutPi0.UseHadProbability = False
359
360 result.setPrivateTools(LCOutPi0)
361 return result
362
364 result = ComponentAccumulator()
365 _name = flags.Tau.ActiveConfig.prefix + 'CaloLCDeadMaterialTool'
366
367 CaloLCDeadMaterialTool = CompFactory.getComp("CaloLCDeadMaterialTool")
368 LCDeadMaterial = CaloLCDeadMaterialTool(_name)
369 LCDeadMaterial.HadDMCoeffKey = "HadDMCoeff2"
370 LCDeadMaterial.ClusterRecoStatus = 0
371 LCDeadMaterial.WeightModeDM = 2
372 LCDeadMaterial.UseHadProbability = True
373 LCDeadMaterial.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
374
375 result.setPrivateTools(LCDeadMaterial)
376 return result
377
379 result = ComponentAccumulator()
380 _name = flags.Tau.ActiveConfig.prefix + 'CaloLocalCalib'
381
382 CaloClusterLocalCalib = CompFactory.getComp("CaloClusterLocalCalib")
383 LocalCalib = CaloClusterLocalCalib(_name)
384 LocalCalib.ClusterClassificationTool = [result.popToolsAndMerge(TauCaloLCClassificationCfg(flags))]
385 LocalCalib.ClusterRecoStatus = [1,2]
386 LocalCalib.LocalCalibTools = [result.popToolsAndMerge(TauCaloLCWeightCfg(flags))]
387 LocalCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
388
389 result.setPrivateTools(LocalCalib)
390 return result
391
393 result = ComponentAccumulator()
394 _name = flags.Tau.ActiveConfig.prefix + 'OOCCalibTool'
395
396 CaloClusterLocalCalib = CompFactory.getComp("CaloClusterLocalCalib")
397 OOCCalib = CaloClusterLocalCalib (_name)
398 OOCCalib.ClusterRecoStatus = [1,2]
399 OOCCalib.LocalCalibTools = [result.popToolsAndMerge(TauCaloLCOutOfClusterCfg(flags))]
400 OOCCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
401
402 result.setPrivateTools(OOCCalib)
403 return result
404
406 result = ComponentAccumulator()
407 _name = flags.Tau.ActiveConfig.prefix + 'DMCalib'
408
409 CaloClusterLocalCalib = CompFactory.getComp("CaloClusterLocalCalib")
410 DMCalib = CaloClusterLocalCalib(_name)
411 DMCalib.ClusterRecoStatus = [1,2]
412 DMCalib.LocalCalibTools = [result.popToolsAndMerge(TauCaloLCDeadMaterialCfg(flags))]
413 DMCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
414
415 result.setPrivateTools(DMCalib)
416 return result
417
419 result = ComponentAccumulator()
420 _name = flags.Tau.ActiveConfig.prefix + 'OOCPi0CalibTool'
421
422 CaloClusterLocalCalib = CompFactory.getComp("CaloClusterLocalCalib")
423 OOCPi0Calib = CaloClusterLocalCalib (_name)
424 OOCPi0Calib.ClusterRecoStatus = [1,2]
425 OOCPi0Calib.LocalCalibTools = [result.popToolsAndMerge(TauCaloLCOutPi0Cfg(flags))]
426 OOCPi0Calib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
427
428 result.setPrivateTools(OOCPi0Calib)
429 return result
430
432 result = ComponentAccumulator()
433 _name = flags.Tau.ActiveConfig.prefix + 'Pi0TopoClusterMaker'
434
435 # Schedule total noise cond alg
436 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
437 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
438 # Schedule electronic noise cond alg (needed for LC weights)
439 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
440
441 CaloTopoClusterMaker = CompFactory.getComp("CaloTopoClusterMaker")
442 TopoClusterForTaus = CaloTopoClusterMaker(_name)
443
444 TopoClusterForTaus.CellsName = flags.Tau.ActiveConfig.TauCommonPi0Cells
445 TopoClusterForTaus.CalorimeterNames=["LAREM"]
446 TopoClusterForTaus.SeedSamplingNames = ["PreSamplerB", "EMB1", "EMB2", "PreSamplerE", "EME1", "EME2"]
447 TopoClusterForTaus.NeighborOption = "super3D"
448 TopoClusterForTaus.RestrictHECIWandFCalNeighbors = False
449 TopoClusterForTaus.RestrictPSNeighbors = True
450 TopoClusterForTaus.CellThresholdOnEorAbsEinSigma = 0.0
451 TopoClusterForTaus.NeighborThresholdOnEorAbsEinSigma = 2.0
452 TopoClusterForTaus.SeedThresholdOnEorAbsEinSigma = 4.0
453 TopoClusterForTaus.SeedCutsInAbsE = True
454 TopoClusterForTaus.ClusterCutsInAbsEt = True
455 TopoClusterForTaus.ClusterEtorAbsEtCut = 0.5*GeV # 0.0*MeV in standard CaloCalTopoCluster JobOptions!
456 TopoClusterForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
457 # timing cut on seed cell to suppress out-of-time pileup
458 TopoClusterForTaus.SeedCutsInT = flags.Calo.TopoCluster.doTimeCut
459 TopoClusterForTaus.CutOOTseed = flags.Calo.TopoCluster.extendTimeCut and flags.Calo.TopoCluster.doTimeCut
460 TopoClusterForTaus.UseTimeCutUpperLimit = flags.Calo.TopoCluster.useUpperLimitForTimeCut
461 TopoClusterForTaus.TimeCutUpperLimit = flags.Calo.TopoCluster.timeCutUpperLimit
462 TopoClusterForTaus.XTalkEM2 = flags.Calo.TopoCluster.xtalkEM2
463 TopoClusterForTaus.XTalkEM2D = flags.Calo.TopoCluster.xtalkEM2D
464 TopoClusterForTaus.XTalkEM2n = flags.Calo.TopoCluster.xtalkEM2n
465 TopoClusterForTaus.XTalkEM3 = flags.Calo.TopoCluster.xtalkEM3
466 TopoClusterForTaus.XTalkEMEta = flags.Calo.TopoCluster.xtalkEMEta
467 TopoClusterForTaus.XTalkDeltaT = flags.Calo.TopoCluster.xtalkDeltaT
468 TopoClusterForTaus.XTalk2Eratio1 = flags.Calo.TopoCluster.xtalk2Eratio1
469 TopoClusterForTaus.XTalk2Eratio2 = flags.Calo.TopoCluster.xtalk2Eratio2
470 TopoClusterForTaus.XTalk3Eratio = flags.Calo.TopoCluster.xtalk3Eratio
471 TopoClusterForTaus.XTalkEtaEratio = flags.Calo.TopoCluster.xtalkEtaEratio
472 TopoClusterForTaus.XTalk2DEratio = flags.Calo.TopoCluster.xtalk2DEratio
473
474 result.setPrivateTools(TopoClusterForTaus)
475 return result
476
478
479 result = ComponentAccumulator()
480 _name = flags.Tau.ActiveConfig.prefix + 'Pi0TopoClusterSplitter'
481
482 CaloTopoClusterSplitter = CompFactory.getComp("CaloTopoClusterSplitter")
483 TopoSplitterForTaus = CaloTopoClusterSplitter(_name)
484
485 # cells from the following samplings will be able to form local
486 # maxima. The excluded samplings are PreSamplerB, EMB1,
487 # PreSamplerE, EME1, all Tile samplings, all HEC samplings and the
488 # two rear FCal samplings.
489 TopoSplitterForTaus.SamplingNames = ["EMB2","EME2"] # Do we want to use EMB3 and EME3?
490 # cells from the following samplings will also be able to form
491 # local maxima but only if they are not overlapping in eta and phi
492 # with local maxima in previous samplings from the primary list.
493 TopoSplitterForTaus.SecondarySamplingNames = ["EMB1","EME1"]
494 TopoSplitterForTaus.ShareBorderCells = True
495 TopoSplitterForTaus.RestrictHECIWandFCalNeighbors = False
496 TopoSplitterForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
497
498 result.setPrivateTools(TopoSplitterForTaus)
499 return result
500
502 result = ComponentAccumulator()
503 _name = flags.Tau.ActiveConfig.prefix + 'Pi0TopoMoments'
504
505 # Schedule total noise cond alg
506 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
507 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
508 # Schedule electronic noise cond alg (needed for LC weights)
509 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
510
511 CaloClusterMomentsMaker = CompFactory.getComp("CaloClusterMomentsMaker")
512 TopoMomentsForTaus = CaloClusterMomentsMaker(_name)
513 TopoMomentsForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
514 TopoMomentsForTaus.MaxAxisAngle = 20*deg
515 TopoMomentsForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
516 TopoMomentsForTaus.MinBadLArQuality = 4000
517 TopoMomentsForTaus.MomentsNames = ["FIRST_PHI"
518 ,"FIRST_ETA"
519 ,"SECOND_R"
520 ,"SECOND_LAMBDA"
521 ,"DELTA_PHI"
522 ,"DELTA_THETA"
523 ,"DELTA_ALPHA"
524 ,"CENTER_X"
525 ,"CENTER_Y"
526 ,"CENTER_Z"
527 ,"CENTER_MAG"
528 ,"CENTER_LAMBDA"
529 ,"LATERAL"
530 ,"LONGITUDINAL"
531 ,"ENG_FRAC_EM"
532 ,"ENG_FRAC_MAX"
533 ,"ENG_FRAC_CORE"
534 ,"FIRST_ENG_DENS"
535 ,"SECOND_ENG_DENS"
536 ,"ISOLATION"]
537
538 result.setPrivateTools(TopoMomentsForTaus)
539 return result
540
542 result = ComponentAccumulator()
543 _name = flags.Tau.ActiveConfig.prefix + 'CaloClusterBadChannelList'
544
545 CaloClusterBadChannelListCorr = CompFactory.getComp("CaloClusterBadChannelList")
546 BadChannelListCorrForTaus = CaloClusterBadChannelListCorr(_name)
547
548 result.setPrivateTools(BadChannelListCorrForTaus)
549 return result
550
551
554 result = ComponentAccumulator()
555 _name = flags.Tau.ActiveConfig.prefix + 'Pi0ClusterCreator'
556
557 # TauPi0ClusterCreator accesses cells via links only, which doesn't
558 # make a scheduler dependency. So make additional explicit dependencies
559 # on cells in the input file.
560 extraInputs = []
561 for typ, nam in [i.split('#') for i in flags.Input.TypedCollections]:
562 if typ == 'CaloCellContainer':
563 extraInputs += [('CaloCellContainer', nam)]
564
565 TauPi0ClusterCreator = CompFactory.getComp("TauPi0ClusterCreator")
566 TauPi0ClusterCreator = TauPi0ClusterCreator(name = _name,
567 ExtraInputs = extraInputs)
568
569 result.setPrivateTools(TauPi0ClusterCreator)
570 return result
571
572
575 result = ComponentAccumulator()
576 _name = flags.Tau.ActiveConfig.prefix + 'Pi0ClusterScaler'
577
578 TauPi0ClusterScaler = CompFactory.getComp("TauPi0ClusterScaler")
579 TauPi0ClusterScaler = TauPi0ClusterScaler(name = _name)
580
581 result.setPrivateTools(TauPi0ClusterScaler)
582 return result
583
584
587 result = ComponentAccumulator()
588 _name = flags.Tau.ActiveConfig.prefix + 'Pi0ScoreCalculator'
589
590 TauPi0ScoreCalculator = CompFactory.getComp("TauPi0ScoreCalculator")
591 TauPi0ScoreCalculator = TauPi0ScoreCalculator(name = _name,
592 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
593
594 result.setPrivateTools(TauPi0ScoreCalculator)
595 return result
596
597
599def Pi0SelectorCfg(flags):
600 result = ComponentAccumulator()
601 _name = flags.Tau.ActiveConfig.prefix + 'Pi0Selector'
602
603 TauPi0Selector = CompFactory.getComp("TauPi0Selector")
604 TauPi0Selector = TauPi0Selector(name = _name,
605 Pi0EtCut = flags.Tau.pi0EtCuts,
606 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
607 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
608
609 result.setPrivateTools(TauPi0Selector)
610 return result
611
612
615 result = ComponentAccumulator()
616 _name = flags.Tau.ActiveConfig.prefix + 'TauVertexVariables'
617
618 from TrkConfig.TrkVertexFittersConfig import TauAdaptiveVertexFitterCfg
619 from TrkConfig.TrkVertexSeedFinderToolsConfig import (
620 CrossDistancesSeedFinderCfg)
621
622 TauVertexVariables = CompFactory.getComp("TauVertexVariables")
623 TauVertexVariables = TauVertexVariables( name = _name,
624 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
625 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
626
627 result.setPrivateTools(TauVertexVariables)
628 return result
629
630
633 result = ComponentAccumulator()
634 _name = flags.Tau.ActiveConfig.prefix + 'TauCommonCalcVars'
635
636 TauCommonCalcVars = CompFactory.getComp("TauCommonCalcVars")
637 TauCommonCalcVars = TauCommonCalcVars(name = _name)
638
639 result.setPrivateTools(TauCommonCalcVars)
640 return result
641
642
645 result = ComponentAccumulator()
646 _name = flags.Tau.ActiveConfig.prefix + 'TauSubstructure'
647
648 TauSubstructureVariables = CompFactory.getComp("TauSubstructureVariables")
649 TauSubstructureVariables = TauSubstructureVariables( name = _name )
650
651 result.setPrivateTools(TauSubstructureVariables)
652 return result
653
654
657 result = ComponentAccumulator()
658 _name = flags.Tau.ActiveConfig.prefix + 'MvaTESVariableDecorator'
659
660 eventShapeCollection = flags.Tau.ActiveConfig.EventShapeCollection
661 if 'EMPFlow' in flags.Tau.ActiveConfig.SeedJetCollection:
662 eventShapeCollection = "Kt4EMPFlowEventShape"
663 elif 'EMTopo' in flags.Tau.ActiveConfig.SeedJetCollection:
664 eventShapeCollection ="Kt4EMTopoOriginEventShape"
665
666 MvaTESVariableDecorator = CompFactory.getComp("MvaTESVariableDecorator")
667 MvaTESVariableDecorator = MvaTESVariableDecorator(name = _name,
668 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
669 EventShapeKey = eventShapeCollection,
670 VertexCorrection = flags.Tau.doVertexCorrection)
671 result.setPrivateTools(MvaTESVariableDecorator)
672 return result
673
674
677 result = ComponentAccumulator()
678 _name = flags.Tau.ActiveConfig.prefix + 'MvaTESEvaluator'
679
680 MvaTESEvaluator = CompFactory.getComp("MvaTESEvaluator")
681 MvaTESEvaluator = MvaTESEvaluator(name = _name,
682 WeightFileName = flags.Tau.MvaTESConfig,
683 WeightFileName0p = flags.Tau.MvaTESConfig0p )
684
685 result.setPrivateTools(MvaTESEvaluator)
686 return result
687
689 result = ComponentAccumulator()
690 _name = flags.Tau.ActiveConfig.prefix + 'TauIDVarCalculator'
691
692 TauIDVarCalculator = CompFactory.getComp("TauIDVarCalculator")
693 myTauIDVarCalculator = TauIDVarCalculator(name=_name,
694 VertexCorrection = flags.Tau.doVertexCorrection)
695
696 result.setPrivateTools(myTauIDVarCalculator)
697 return result
698
699def TauJetRNNEvaluatorCfg(flags, applyLooseTrackSel=False):
700 result = ComponentAccumulator()
701 _name = flags.Tau.ActiveConfig.prefix + 'TauJetRNN'
702
703 TauJetRNNEvaluator = CompFactory.getComp("TauJetRNNEvaluator")
704 RNNConf = flags.Tau.TauJetRNNConfig
705 myTauJetRNNEvaluator = TauJetRNNEvaluator(name = _name,
706 NetworkFile0P = "",
707 NetworkFile1P = RNNConf[0],
708 NetworkFile2P = RNNConf[1],
709 NetworkFile3P = RNNConf[2],
710 OutputVarname = "RNNJetScore",
711 MaxTracks = 10,
712 MaxClusters = 6,
713 MaxClusterDR = 1.0,
714 ApplyLooseTrackSel = applyLooseTrackSel,
715 VertexCorrection = flags.Tau.doVertexCorrection,
716 InputLayerScalar = "scalar",
717 InputLayerTracks = "tracks",
718 InputLayerClusters = "clusters",
719 OutputLayer = "rnnid_output",
720 OutputNode = "sig_prob")
721
722 result.setPrivateTools(myTauJetRNNEvaluator)
723 return result
724
726 import PyUtils.RootUtils as ru
727 ROOT = ru.import_root()
728 import cppyy
729 cppyy.load_library('libxAODTau_cDict')
730
731 result = ComponentAccumulator()
732 _name = flags.Tau.ActiveConfig.prefix + 'TauWPDecoratorJetRNN'
733
734 TauWPDecorator = CompFactory.getComp("TauWPDecorator")
735 WPConf = flags.Tau.TauJetRNNWPConfig
736 myTauWPDecorator = TauWPDecorator( name=_name,
737 flatteningFile1Prong = WPConf[0],
738 flatteningFile2Prong = WPConf[1],
739 flatteningFile3Prong = WPConf[2],
740 CutEnumVals =
741 [ ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigVeryLoose,
742 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigLoose,
743 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigMedium,
744 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigTight ],
745 SigEff1P = [0.95, 0.85, 0.75, 0.60],
746 SigEff2P = [0.95, 0.75, 0.60, 0.45],
747 SigEff3P = [0.95, 0.75, 0.60, 0.45],
748 ScoreName = "RNNJetScore",
749 NewScoreName = "RNNJetScoreSigTrans",
750 DefineWPs = True )
751
752 result.setPrivateTools(myTauWPDecorator)
753 return result
754
755def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
756 result = ComponentAccumulator()
757 _name = flags.Tau.ActiveConfig.prefix + 'TauGNN_v' + str(version)
758
759 TauGNNEvaluator = CompFactory.getComp("TauGNNEvaluator")
760 GNNConf = flags.Tau.TauGNNConfig[version]
761 myTauGNNEvaluator = TauGNNEvaluator(name = _name,
762 useTRT = flags.Detector.EnableTRT,
763 NetworkFileInclusive = GNNConf,
764 OutputVarname = flags.Tau.GNTauScoreName[version],
765 OutputPTau = "GNTauProbTau",
766 OutputPJet = "GNTauProbJet",
767 MaxTracks = flags.Tau.GNTauMaxTracks[version],
768 MaxClusters = flags.Tau.GNTauMaxClusters[version],
769 MaxClusterDR = 15.0,
770 MinTauPt = flags.Tau.MinPtDAOD,
771 ApplyLooseTrackSel = applyLooseTrackSel,
772 ApplyTightTrackSel = applyTightTrackSel,
773 VertexCorrection = flags.Tau.doVertexCorrection,
774 InputLayerScalar = 'tau_vars',
775 InputLayerTracks = 'track_vars',
776 InputLayerClusters = 'cluster_vars',
777 NodeNameTau=flags.Tau.GNTauNodeNameTau,
778 NodeNameJet=flags.Tau.GNTauNodeNameJet,
779 TauContainerName = tauContainerName,
780 )
781
782 result.setPrivateTools(myTauGNNEvaluator)
783 return result
784
785def TauWPDecoratorGNNCfg(flags, version, tauContainerName=""):
786 result = ComponentAccumulator()
787 _name = flags.Tau.ActiveConfig.prefix + 'TauWPDecoratorGNN_v' + str(version)
788
789 TauWPDecorator = CompFactory.getComp("TauWPDecorator")
790 WPConf = flags.Tau.TauGNNWP[version]
791 myTauWPDecorator = TauWPDecorator(name=_name,
792 flatteningFile1Prong = WPConf[0],
793 flatteningFile2Prong = WPConf[1],
794 flatteningFile3Prong = WPConf[2],
795 TauContainerName = tauContainerName,
796 DecorWPNames = flags.Tau.GNTauDecorWPNames[version],
797 DecorWPCutEffs1P = [0.95, 0.85, 0.75, 0.60],
798 DecorWPCutEffs2P = [0.95, 0.75, 0.60, 0.45],
799 DecorWPCutEffs3P = [0.95, 0.75, 0.60, 0.45],
800 ScoreName = flags.Tau.GNTauScoreName[version],
801 NewScoreName = flags.Tau.GNTauTransScoreName[version],
802 DefineWPs = True)
803 result.setPrivateTools(myTauWPDecorator)
804 return result
805
806def TauGNNDisplacedEvaluatorCfg(flags, tauContainerName=""):
807 # Displaced TauGNNEvaluator tool setup
808 result = ComponentAccumulator()
809
810 TauGNNEvaluator = CompFactory.TauGNNEvaluator(
811 name = flags.Tau.ActiveConfig.prefix + 'TauDisplacedGNN',
812 NetworkFileInclusive = flags.Tau.TauDisplacedGNNConfig[0],
813 OutputVarname = "GNdTauScore",
814 OutputPTau = "GNdTauProbTau",
815 OutputPJet = "GNdTauProbJet",
816 MaxClusterDR = 15.0,
817 MinTauPt = flags.Tau.MinPtDAOD,
818 VertexCorrection = flags.Tau.doVertexCorrection,
819 NodeNameTau="GNdTauv3_pb",
820 NodeNameJet="GNdTauv3_pu",
821 TauContainerName = tauContainerName,
822 )
823 result.setPrivateTools(TauGNNEvaluator)
824 return result
825
826def TauEleRNNEvaluatorCfg(flags, applyLooseTrackSel=False):
827 result = ComponentAccumulator()
828 _name = flags.Tau.ActiveConfig.prefix + 'TauEleRNN'
829
830 TauJetRNNEvaluator = CompFactory.getComp("TauJetRNNEvaluator")
831 RNNConf = flags.Tau.TauEleRNNConfig
832 myTauEleRNNEvaluator = TauJetRNNEvaluator(name = _name,
833 useTRT = flags.Detector.EnableTRT,
834 NetworkFile1P = RNNConf[0],
835 NetworkFile3P = RNNConf[1],
836 OutputVarname = "RNNEleScore",
837 MaxTracks = 10,
838 MaxClusters = 6,
839 MaxClusterDR = 1.0,
840 ApplyLooseTrackSel = applyLooseTrackSel,
841 VertexCorrection = flags.Tau.doVertexCorrection,
842 InputLayerScalar = "scalar",
843 InputLayerTracks = "tracks",
844 InputLayerClusters = "clusters",
845 OutputLayer = "rnneveto_output",
846 OutputNode = "sig_prob")
847
848 result.setPrivateTools(myTauEleRNNEvaluator)
849 return result
850
852
853 result = ComponentAccumulator()
854
855 WPConf = flags.Tau.TauEleRNNWPConfig
856
857 from AthenaConfiguration.Enums import ProductionStep
858 # set the instance to run at derivation level
859 if flags.Common.ProductionStep is ProductionStep.Derivation:
860 _name = flags.Tau.ActiveConfig.prefix + 'TauWPDecoratorEleRNNFix_v1'
861 NewScoreName = "RNNEleScoreSigTrans_v1"
862 CutEnumVals = []
863 SigEff1P = []
864 SigEff3P = []
865 DecorWPNames = [ "EleRNNLoose_v1", "EleRNNMedium_v1", "EleRNNTight_v1" ]
866 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
867 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
868 else:
869 #this is the instance running in reconstruction level
870 import PyUtils.RootUtils as ru
871 ROOT = ru.import_root()
872 import cppyy
873 cppyy.load_library('libxAODTau_cDict')
874
875 _name = flags.Tau.ActiveConfig.prefix + 'TauWPDecoratorEleRNN'
876 NewScoreName = "RNNEleScoreSigTrans"
877 SigEff1P = [0.95, 0.90, 0.85]
878 SigEff3P = [0.98, 0.95, 0.90]
879 CutEnumVals = [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
880 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
881 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ]
882 DecorWPNames = []
883 DecorWPCutEffs1P = []
884 DecorWPCutEffs3P = []
885
886 TauWPDecorator = CompFactory.getComp("TauWPDecorator")
887 myTauEleWPDecorator = TauWPDecorator( name=_name,
888 flatteningFile1Prong = WPConf[0],
889 flatteningFile3Prong = WPConf[1],
890 CutEnumVals = CutEnumVals,
891 DecorWPNames = DecorWPNames,
892 SigEff1P = SigEff1P,
893 SigEff3P = SigEff3P,
894 DecorWPCutEffs1P = DecorWPCutEffs1P,
895 DecorWPCutEffs3P = DecorWPCutEffs3P,
896 UseAbsEta = True ,
897 ScoreName = "RNNEleScore",
898 NewScoreName = NewScoreName,
899 DefineWPs = True)
900
901 result.setPrivateTools(myTauEleWPDecorator)
902 return result
903
905 result = ComponentAccumulator()
906 _name = flags.Tau.ActiveConfig.prefix + 'TauDecayModeNNClassifier'
907
908 TauDecayModeNNClassifier = CompFactory.getComp("TauDecayModeNNClassifier")
909 myTauDecayModeNNClassifier = TauDecayModeNNClassifier(name=_name,
910 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
911
912 result.setPrivateTools(myTauDecayModeNNClassifier)
913 return result
914
916 result = ComponentAccumulator()
917 _name = flags.Tau.ActiveConfig.prefix + 'TauAODSelector'
918
919 TauAODSelector = CompFactory.getComp("TauAODSelector")
920 myTauAODSelector = TauAODSelector(name=_name,
921 Min0pTauPt = flags.Tau.MinPt0p,
922 MinTauPt = flags.Tau.MinPt,
923 doEarlyStopping = flags.Tau.doEarlyStopping and not flags.Output.doWriteESD)
924
925 result.setPrivateTools(myTauAODSelector)
926 return result
927
928
931 result = ComponentAccumulator()
932 _name = flags.Tau.ActiveConfig.prefix + 'TauCombinedTES'
933
934 TauCombinedTES = CompFactory.getComp("TauCombinedTES")
935 myTauCombinedTES = TauCombinedTES(name = _name,
936 WeightFileName = flags.Tau.CombinedTESConfig)
937
938 result.setPrivateTools(myTauCombinedTES)
939 return result
940
941
944 result = ComponentAccumulator()
945 _name = flags.Tau.ActiveConfig.prefix + 'MuonRemoval'
946 TauAODMuonRemovalTool = CompFactory.getComp("TauAODMuonRemovalTool")
947 myMuonRemoval = TauAODMuonRemovalTool( name = _name,
948 Key_MuonInputContainer = 'Muons',
949 doMuonTrkRm = True,
950 doMuonClsRm = True,
951 muonIDWP = 'Medium'
952 )
953 result.setPrivateTools(myMuonRemoval)
954 return result
955
956# electron excluder tool
958 result = ComponentAccumulator()
959 _name = flags.Tau.ActiveConfig.prefix + 'TauEleOverlapChecker'
960 TauEleOverlapChecker = CompFactory.getComp("TauEleOverlapChecker")
961 myTauEleOverlapChecker = TauEleOverlapChecker(
962 name = _name,
963 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
964 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
965 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
966 )
967 result.setPrivateTools(myTauEleOverlapChecker)
968 return result
Cluster correction tool which applies local hadronic calibration w eights to the cells.
Calculate moments for CaloCluster objects.
classify clusters according to their probability to stem from an em object
dead material correction tool for local hadronic calibration
calculates out-of-cluster corrections based on cluster quantities
calculates hadronic cell weights based on cluster and cell quantities
topological cluster maker.
topological cluster splitter.
Class to build tau jet seed.
the tool meant to run at AOD level, to remove the muon found inside the TauJet.
Set Tau "Detector Axis" and "Intermediate Axis".
Implementation of tau energy scale (TES) with eta and pile-up correction.
Calculate tau calorimeter variables from cell information.
Associate the clusters used in the seed jet to the tau candidate.
Calculate variables which rely on tracks and precalculated cell/cluster information.
Tau decay mode classifier using a neural network.
Select only the tau within the removal direction.
Calculate variables sensitive on electrons.
Tool to calculate tau identification score from .onnx inputs.
This class implements a tool to calculate ID input variables and add them to the tau aux store.
Tool to calculate a tau identification score based on neural networks.
Creates Pi0 clusters (Pi0 Finder).
scale cluster energy to take care of charged pion energy
Find the cells used to create pi0 cluster.
Selectes pi0Candidates (Pi0 Finder).
Apply Et and BDT score cut to pi0s.
Calculate variables from the tau substructure.
Associate tracks to the tau candidate.
Associate a vertex (origin) to the tau candidate.
Class for calculating vertex variables.
Decorate CaloVertexedTopoCluster to the tau candidate.
Implementation of tool to decorate flattened BDT score and working points.
TauCaloTopoClusterMakerCfg(flags)
EnergyCalibrationLCCfg(flags)
Tau energy calibration.
TauAxisCfg(flags)
Tau energy calibration and tau axis direction.
TauCaloLCOutOfClusterCfg(flags)
Pi0ClusterFinderCfg(flags)
Pi0 algo Cluster finder for Pi0 algo.
TauTrackRNNClassifierCfg(flags)
TauCombinedTESCfg(flags)
TauCombinedTES.
TauVertexFinderCfg(flags)
TauCaloOOCPi0CalibCfg(flags)
TauShotFinderCfg(flags)
Photon Shot Finder.
JetSeedBuilderCfg(flags)
JetSeedBuilder.
MvaTESEvaluatorCfg(flags)
MvaTESEvaluator.
ElectronVetoVarsCfg(flags)
ele veto variables
Pi0ClusterScalerCfg(flags)
Set energy of cluster to take care of charged pion energy deposited in the ECAL.
TauTrackFinderCfg(flags)
Tau-Track Association.
TauCaloLCDeadMaterialCfg(flags)
TauSubstructureCfg(flags)
Tau Variables.
TauWPDecoratorGNNCfg(flags, version, tauContainerName="")
TauWPDecoratorJetRNNCfg(flags)
TauCaloOOCCalibCfg(flags)
TauJetRNNEvaluatorCfg(flags, applyLooseTrackSel=False)
TauCommonCalcVarsCfg(flags)
Tau Variables.
MvaTESVariableDecoratorCfg(flags)
MvaTESVariableDecorator.
TauCaloLCOutPi0Cfg(flags)
TauVertexedClusterDecoratorCfg(flags)
TauCaloLCClassificationCfg(flags)
Calo Tools.
getParticleCache(flags)
TauClusterFinderCfg(flags)
Associate the cluster in jet constituents to the tau candidate.
CellVariablesCfg(flags)
Tau cell variables calculation.
TauCaloClusterBadChannelCfg(flags)
Pi0SelectorCfg(flags)
select pi0 clusters
TauEleOverlapChecker(flags)
TauCaloDMCalibCfg(flags)
TauWPDecoratorEleRNNCfg(flags)
TauCaloLCWeightCfg(flags)
TauEleRNNEvaluatorCfg(flags, applyLooseTrackSel=False)
Pi0ClusterCreatorCfg(flags)
create Pi0 clusters
TauCaloClusterLocalCalibCfg(flags)
TauGNNDisplacedEvaluatorCfg(flags, tauContainerName="")
TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName="")
TauVertexVariablesCfg(flags)
Tau Vertex Variables.
TauCaloTopoClusterSplitterCfg(flags)
TauDecayModeNNClassifierCfg(flags)
TauIDVarCalculatorCfg(flags)
Pi0ScoreCalculatorCfg(flags)
calculate MVA scores of pi0 clusters
TauTrackRNNCfg(flags)
TauAODSelectorCfg(flags)
TauCellFinalizerCfg(flags)
Cell finalizer tool for BuildAlg.
TauAODMuonRemovalCfg(flags)
muon removal tool
TauCaloClusterMomentsMakerCfg(flags)