11from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
12from AthenaConfiguration.ComponentFactory
import CompFactory
13from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
14from AthenaConfiguration.Enums
import ProductionStep, LHCPeriod
15from AthenaCommon.SystemOfUnits
import GeV, deg
21 result = ComponentAccumulator()
22 _name = flags.Tau.ActiveConfig.prefix +
'JetSeedBuilder'
24 JetSeedBuilder = CompFactory.getComp(
"JetSeedBuilder")
27 result.setPrivateTools(JetSeedBuilder)
32 result = ComponentAccumulator()
33 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexFinder'
35 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig
import (
36 Tau_InDetTrackSelectionToolForTJVACfg)
37 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import TauTTVAToolCfg
41 TauVertexFinder = CompFactory.getComp(
"TauVertexFinder")
43 UseTJVA = flags.Tau.doTJVA,
44 AssociatedTracks=
"GhostTrack",
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,
51 result.setPrivateTools(TauVertexFinder)
57 result = ComponentAccumulator()
58 _name = flags.Tau.ActiveConfig.prefix +
'TauAxis'
60 TauAxisSetter = CompFactory.getComp(
"TauAxisSetter")
63 VertexCorrection = flags.Tau.doVertexCorrection )
65 result.setPrivateTools(TauAxisSetter)
72 if flags.Common.ProductionStep
is ProductionStep.Reconstruction:
73 ParticleCache =
"ParticleCaloExtension"
82 result = ComponentAccumulator()
83 _name = flags.Tau.ActiveConfig.prefix +
'TauTrackFinder'
86 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
87 result.merge(BeamSpotCondAlgCfg(flags))
89 from TrackToVertex.TrackToVertexConfig
import TrackToVertexCfg
90 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
91 from TrkConfig.TrkVertexFitterUtilsConfig
import AtlasTrackToVertexIPEstimatorCfg
92 from InDetConfig.InDetTrackSelectorToolConfig
import TauRecInDetTrackSelectorToolCfg
94 _LargeD0TrackInputContainer = (flags.Tau.ActiveConfig.LargeD0TrackCollection
if flags.Tau.associateLRT
else "")
97 if flags.Tau.ActiveConfig.inTauLRT:
98 _LargeD0TrackInputContainer = flags.Tau.ActiveConfig.LargeD0TrackCollection
100 TauTrackFinder = CompFactory.getComp(
"TauTrackFinder")
104 TrackSelectorToolTau = result.popToolsAndMerge(TauRecInDetTrackSelectorToolCfg(flags)),
105 TrackToVertexTool = result.popToolsAndMerge(TrackToVertexCfg(flags)),
106 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
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,
117 result.setPrivateTools(TauTrackFinder)
123 result = ComponentAccumulator()
124 _name = flags.Tau.ActiveConfig.prefix +
'TauClusterFinder'
127 TauClusterFinder = CompFactory.getComp(
"TauClusterFinder")
130 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
134 result.setPrivateTools(TauClusterFinder)
139 result = ComponentAccumulator()
140 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexedClusterDecorator'
142 TauVertexedClusterDecorator = CompFactory.getComp(
"TauVertexedClusterDecorator")
144 SeedJet = flags.Tau.ActiveConfig.SeedJetCollection)
146 result.setPrivateTools(myTauVertexedClusterDecorator)
151 result = ComponentAccumulator()
152 _name = flags.Tau.ActiveConfig.prefix +
'TauTrackRNNClassifier'
154 TrackRNN = CompFactory.tauRecTools.TrackRNN
155 _RNN = TrackRNN(name = _name +
"_TrackRNN",
156 InputWeightsPath = flags.Tau.tauRNNTrackClassConfig,
157 calibFolder = flags.Tau.tauRecToolsCVMFSPath )
159 result.setPrivateTools(_RNN)
164 result = ComponentAccumulator()
165 _name = flags.Tau.ActiveConfig.prefix +
'TauTrackRNNClassifier'
168 TauTrackRNNClassifier = CompFactory.tauRecTools.TauTrackRNNClassifier
171 cppyy.load_library(
'libxAODTau_cDict')
174 _classifyLRTWithDedicated = flags.Tau.classifyLRTWithDedicated
175 if flags.Tau.associateLRT
and not flags.Tau.classifyLRT:
179 if flags.Tau.ActiveConfig.inTauLRT:
181 _classifyLRTWithDedicated =
True
184 myTauTrackClassifier = TauTrackRNNClassifier( name = _name,
186 classifyLRT = _classifyLRT,
187 classifyLRTWithDedicated = _classifyLRTWithDedicated)
189 result.setPrivateTools(myTauTrackClassifier)
195 result = ComponentAccumulator()
196 _name = flags.Tau.ActiveConfig.prefix +
'EnergyCalibrationLC'
198 TauCalibrateLC = CompFactory.getComp(
"TauCalibrateLC")
200 calibrationFile = flags.Tau.CalibrateLCConfig,
201 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection)
203 result.setPrivateTools(TauCalibrateLC)
209 result = ComponentAccumulator()
210 _name = flags.Tau.ActiveConfig.prefix +
'CellVariables'
212 TauCellVariables = CompFactory.getComp(
"TauCellVariables")
214 VertexCorrection = flags.Tau.doVertexCorrection)
216 result.setPrivateTools(TauCellVariables)
222 result = ComponentAccumulator()
223 _name = flags.Tau.ActiveConfig.prefix +
'TauElectronVetoVars'
225 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
227 TauElectronVetoVariables = CompFactory.getComp(
"TauElectronVetoVariables")
229 VertexCorrection = flags.Tau.doVertexCorrection,
230 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
233 result.setPrivateTools(TauElectronVetoVariables)
239 result = ComponentAccumulator()
240 _name = flags.Tau.ActiveConfig.prefix +
'TauShotFinder'
242 shotPtCut_1Photon = flags.Tau.shotPtCut_1Photon
243 shotPtCut_2Photons = flags.Tau.shotPtCut_2Photons
246 from CaloClusterCorrection.StandardCellWeightCalib
import getCellWeightTool
247 CaloWeightTool = getCellWeightTool(flags=flags)
250 TauShotFinder = CompFactory.getComp(
"TauShotFinder")
253 CaloWeightTool = result.popToolsAndMerge(CaloWeightTool),
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,
262 result.setPrivateTools(TauShotFinder)
269 result = ComponentAccumulator()
270 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterFinder'
272 TauPi0CreateROI = CompFactory.getComp(
"TauPi0CreateROI")
276 Key_caloCellInputContainer =
"AllCalo",
277 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
278 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
279 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
282 result.setPrivateTools(myTauPi0CreateROI)
288 result = ComponentAccumulator()
289 _name = flags.Tau.ActiveConfig.prefix +
'tauPi0CellContainerFinalizer'
291 CaloCellContainerFinalizerTool = CompFactory.getComp(
"CaloCellContainerFinalizerTool")
294 result.setPrivateTools(TauCellContainerFinalizer)
302 result = ComponentAccumulator()
303 _name = flags.Tau.ActiveConfig.prefix +
'LCClassify'
305 CaloLCClassificationTool = CompFactory.getComp(
"CaloLCClassificationTool")
307 LCClassify.ClassificationKey =
"EMFracClassify"
308 LCClassify.UseSpread =
False
309 LCClassify.MaxProbability = 0.5
311 LCClassify.StoreClassificationProbabilityInAOD =
True
312 LCClassify.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
313 LCClassify.UseNormalizedEnergyDensity =
True
315 result.setPrivateTools(LCClassify)
319 result = ComponentAccumulator()
320 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCWeightTool'
323 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
324 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
326 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
328 CaloLCWeightTool = CompFactory.getComp(
"CaloLCWeightTool")
330 LCWeight.CorrectionKey =
"H1ClusterCellWeights"
331 LCWeight.SignalOverNoiseCut = 2.0
332 LCWeight.UseHadProbability =
True
334 result.setPrivateTools(LCWeight)
338 result = ComponentAccumulator()
339 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCOutOfClusterTool'
341 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
343 LCOut.CorrectionKey =
"OOCCorrection"
344 LCOut.UseEmProbability =
False
345 LCOut.UseHadProbability =
True
347 result.setPrivateTools(LCOut)
351 result = ComponentAccumulator()
352 _name = flags.Tau.ActiveConfig.prefix +
'LCOutPi0'
354 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
356 LCOutPi0.CorrectionKey =
"OOCPi0Correction"
357 LCOutPi0.UseEmProbability =
True
358 LCOutPi0.UseHadProbability =
False
360 result.setPrivateTools(LCOutPi0)
364 result = ComponentAccumulator()
365 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCDeadMaterialTool'
367 CaloLCDeadMaterialTool = CompFactory.getComp(
"CaloLCDeadMaterialTool")
369 LCDeadMaterial.HadDMCoeffKey =
"HadDMCoeff2"
370 LCDeadMaterial.ClusterRecoStatus = 0
371 LCDeadMaterial.WeightModeDM = 2
372 LCDeadMaterial.UseHadProbability =
True
373 LCDeadMaterial.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
375 result.setPrivateTools(LCDeadMaterial)
379 result = ComponentAccumulator()
380 _name = flags.Tau.ActiveConfig.prefix +
'CaloLocalCalib'
382 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
385 LocalCalib.ClusterRecoStatus = [1,2]
387 LocalCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
389 result.setPrivateTools(LocalCalib)
393 result = ComponentAccumulator()
394 _name = flags.Tau.ActiveConfig.prefix +
'OOCCalibTool'
396 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
397 OOCCalib = CaloClusterLocalCalib (_name)
398 OOCCalib.ClusterRecoStatus = [1,2]
400 OOCCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
402 result.setPrivateTools(OOCCalib)
406 result = ComponentAccumulator()
407 _name = flags.Tau.ActiveConfig.prefix +
'DMCalib'
409 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
411 DMCalib.ClusterRecoStatus = [1,2]
413 DMCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
415 result.setPrivateTools(DMCalib)
419 result = ComponentAccumulator()
420 _name = flags.Tau.ActiveConfig.prefix +
'OOCPi0CalibTool'
422 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
423 OOCPi0Calib = CaloClusterLocalCalib (_name)
424 OOCPi0Calib.ClusterRecoStatus = [1,2]
426 OOCPi0Calib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
428 result.setPrivateTools(OOCPi0Calib)
432 result = ComponentAccumulator()
433 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterMaker'
436 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
437 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
439 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
441 CaloTopoClusterMaker = CompFactory.getComp(
"CaloTopoClusterMaker")
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
456 TopoClusterForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
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
474 result.setPrivateTools(TopoClusterForTaus)
479 result = ComponentAccumulator()
480 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterSplitter'
482 CaloTopoClusterSplitter = CompFactory.getComp(
"CaloTopoClusterSplitter")
489 TopoSplitterForTaus.SamplingNames = [
"EMB2",
"EME2"]
493 TopoSplitterForTaus.SecondarySamplingNames = [
"EMB1",
"EME1"]
494 TopoSplitterForTaus.ShareBorderCells =
True
495 TopoSplitterForTaus.RestrictHECIWandFCalNeighbors =
False
496 TopoSplitterForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
498 result.setPrivateTools(TopoSplitterForTaus)
502 result = ComponentAccumulator()
503 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoMoments'
506 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
507 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
509 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
511 CaloClusterMomentsMaker = CompFactory.getComp(
"CaloClusterMomentsMaker")
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"
538 result.setPrivateTools(TopoMomentsForTaus)
542 result = ComponentAccumulator()
543 _name = flags.Tau.ActiveConfig.prefix +
'CaloClusterBadChannelList'
545 CaloClusterBadChannelListCorr = CompFactory.getComp(
"CaloClusterBadChannelList")
548 result.setPrivateTools(BadChannelListCorrForTaus)
554 result = ComponentAccumulator()
555 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterCreator'
561 for typ, nam
in [i.split(
'#')
for i
in flags.Input.TypedCollections]:
562 if typ ==
'CaloCellContainer':
563 extraInputs += [(
'CaloCellContainer', nam)]
565 TauPi0ClusterCreator = CompFactory.getComp(
"TauPi0ClusterCreator")
567 ExtraInputs = extraInputs,
568 RecoFromAOD = flags.Common.ProductionStep
is ProductionStep.Derivation)
570 result.setPrivateTools(TauPi0ClusterCreator)
576 result = ComponentAccumulator()
577 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterScaler'
579 TauPi0ClusterScaler = CompFactory.getComp(
"TauPi0ClusterScaler")
582 result.setPrivateTools(TauPi0ClusterScaler)
588 result = ComponentAccumulator()
589 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ScoreCalculator'
591 TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
593 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
595 result.setPrivateTools(TauPi0ScoreCalculator)
601 result = ComponentAccumulator()
602 _name = flags.Tau.ActiveConfig.prefix +
'Pi0Selector'
604 TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
606 Pi0EtCut = flags.Tau.pi0EtCuts,
607 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
608 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
610 result.setPrivateTools(TauPi0Selector)
616 result = ComponentAccumulator()
617 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexVariables'
619 from TrkConfig.TrkVertexFittersConfig
import TauAdaptiveVertexFitterCfg
620 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
621 CrossDistancesSeedFinderCfg)
623 TauVertexVariables = CompFactory.getComp(
"TauVertexVariables")
625 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
626 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
628 result.setPrivateTools(TauVertexVariables)
634 result = ComponentAccumulator()
635 _name = flags.Tau.ActiveConfig.prefix +
'TauCommonCalcVars'
637 TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
639 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
641 result.setPrivateTools(TauCommonCalcVars)
647 result = ComponentAccumulator()
648 _name = flags.Tau.ActiveConfig.prefix +
'TauSubstructure'
650 TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
652 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
654 result.setPrivateTools(TauSubstructureVariables)
660 result = ComponentAccumulator()
661 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESVariableDecorator'
663 eventShapeCollection = flags.Tau.ActiveConfig.EventShapeCollection
664 if 'EMPFlow' in flags.Tau.ActiveConfig.SeedJetCollection:
665 eventShapeCollection =
"Kt4EMPFlowEventShape"
666 elif 'EMTopo' in flags.Tau.ActiveConfig.SeedJetCollection:
667 eventShapeCollection =
"Kt4EMTopoOriginEventShape"
669 MvaTESVariableDecorator = CompFactory.getComp(
"MvaTESVariableDecorator")
671 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
672 EventShapeKey = eventShapeCollection,
673 VertexCorrection = flags.Tau.doVertexCorrection)
674 result.setPrivateTools(MvaTESVariableDecorator)
680 result = ComponentAccumulator()
681 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESEvaluator'
683 MvaTESEvaluator = CompFactory.getComp(
"MvaTESEvaluator")
685 WeightFileName = flags.Tau.MvaTESConfig,
686 WeightFileName0p = flags.Tau.MvaTESConfig0p )
688 result.setPrivateTools(MvaTESEvaluator)
692 result = ComponentAccumulator()
693 _name = flags.Tau.ActiveConfig.prefix +
'TauIDVarCalculator'
695 TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")
697 VertexCorrection = flags.Tau.doVertexCorrection,
698 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
700 result.setPrivateTools(myTauIDVarCalculator)
704 result = ComponentAccumulator()
705 _name = flags.Tau.ActiveConfig.prefix +
'TauJetRNN'
707 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
708 RNNConf = flags.Tau.TauJetRNNConfig
711 NetworkFile1P = RNNConf[0],
712 NetworkFile2P = RNNConf[1],
713 NetworkFile3P = RNNConf[2],
714 OutputVarname =
"RNNJetScore",
718 ApplyLooseTrackSel = applyLooseTrackSel,
719 VertexCorrection = flags.Tau.doVertexCorrection,
720 InputLayerScalar =
"scalar",
721 InputLayerTracks =
"tracks",
722 InputLayerClusters =
"clusters",
723 OutputLayer =
"rnnid_output",
724 OutputNode =
"sig_prob")
726 result.setPrivateTools(myTauJetRNNEvaluator)
730 import PyUtils.RootUtils
as ru
731 ROOT = ru.import_root()
733 cppyy.load_library(
'libxAODTau_cDict')
735 result = ComponentAccumulator()
736 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorJetRNN'
738 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
739 WPConf = flags.Tau.TauJetRNNWPConfig
741 flatteningFile1Prong = WPConf[0],
742 flatteningFile2Prong = WPConf[1],
743 flatteningFile3Prong = WPConf[2],
745 [ ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigVeryLoose,
746 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigLoose,
747 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigMedium,
748 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigTight ],
749 SigEff1P = [0.95, 0.85, 0.75, 0.60],
750 SigEff2P = [0.95, 0.75, 0.60, 0.45],
751 SigEff3P = [0.95, 0.75, 0.60, 0.45],
752 ScoreName =
"RNNJetScore",
753 NewScoreName =
"RNNJetScoreSigTrans",
756 result.setPrivateTools(myTauWPDecorator)
759def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
760 result = ComponentAccumulator()
761 _name = flags.Tau.ActiveConfig.prefix +
'TauGNN_v' +
str(version)
763 TauGNNEvaluator = CompFactory.getComp(
"TauGNNEvaluator")
764 GNNConf = flags.Tau.TauGNNConfig[version]
766 useTRT = flags.Detector.EnableTRT,
767 NetworkFileInclusive = GNNConf,
768 OutputVarname = flags.Tau.GNTauScoreName[version],
769 OutputPTau =
"GNTauProbTau",
770 OutputPJet =
"GNTauProbJet",
771 MaxTracks = flags.Tau.GNTauMaxTracks[version],
772 MaxClusters = flags.Tau.GNTauMaxClusters[version],
774 MinTauPt = flags.Tau.MinPtDAOD,
775 ApplyLooseTrackSel = applyLooseTrackSel,
776 ApplyTightTrackSel = applyTightTrackSel,
777 VertexCorrection = flags.Tau.doVertexCorrection,
778 InputLayerScalar =
'tau_vars',
779 InputLayerTracks =
'track_vars',
780 InputLayerClusters =
'cluster_vars',
781 NodeNameTau=flags.Tau.GNTauNodeNameTau,
782 NodeNameJet=flags.Tau.GNTauNodeNameJet,
783 TauContainerName = tauContainerName,
786 result.setPrivateTools(myTauGNNEvaluator)
790 result = ComponentAccumulator()
791 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorGNN_v' +
str(version)
793 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
794 WPConf = flags.Tau.TauGNNWP[version]
796 flatteningFile1Prong = WPConf[0],
797 flatteningFile2Prong = WPConf[1],
798 flatteningFile3Prong = WPConf[2],
799 TauContainerName = tauContainerName,
800 DecorWPNames = flags.Tau.GNTauDecorWPNames[version],
801 DecorWPCutEffs1P = [0.95, 0.85, 0.75, 0.60],
802 DecorWPCutEffs2P = [0.95, 0.75, 0.60, 0.45],
803 DecorWPCutEffs3P = [0.95, 0.75, 0.60, 0.45],
804 ScoreName = flags.Tau.GNTauScoreName[version],
805 NewScoreName = flags.Tau.GNTauTransScoreName[version],
807 result.setPrivateTools(myTauWPDecorator)
812 result = ComponentAccumulator()
814 TauGNNEvaluator = CompFactory.TauGNNEvaluator(
815 name = flags.Tau.ActiveConfig.prefix +
'TauDisplacedGNN',
816 NetworkFileInclusive = flags.Tau.TauDisplacedGNNConfig[0],
817 OutputVarname =
"GNdTauScore",
818 OutputPTau =
"GNdTauProbTau",
819 OutputPJet =
"GNdTauProbJet",
821 MinTauPt = flags.Tau.MinPtDAOD,
822 VertexCorrection = flags.Tau.doVertexCorrection,
823 NodeNameTau=
"GNdTauv3_pb",
824 NodeNameJet=
"GNdTauv3_pu",
825 TauContainerName = tauContainerName,
827 result.setPrivateTools(TauGNNEvaluator)
831 result = ComponentAccumulator()
832 _name = flags.Tau.ActiveConfig.prefix +
'TauEleRNN'
834 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
835 RNNConf = flags.Tau.TauEleRNNConfig
837 useTRT = flags.Detector.EnableTRT,
838 NetworkFile1P = RNNConf[0],
839 NetworkFile3P = RNNConf[1],
840 OutputVarname =
"RNNEleScore",
844 ApplyLooseTrackSel = applyLooseTrackSel,
845 VertexCorrection = flags.Tau.doVertexCorrection,
846 InputLayerScalar =
"scalar",
847 InputLayerTracks =
"tracks",
848 InputLayerClusters =
"clusters",
849 OutputLayer =
"rnneveto_output",
850 OutputNode =
"sig_prob")
852 result.setPrivateTools(myTauEleRNNEvaluator)
857 result = ComponentAccumulator()
859 WPConf = flags.Tau.TauEleRNNWPConfig
861 from AthenaConfiguration.Enums
import ProductionStep
863 if flags.Common.ProductionStep
is ProductionStep.Derivation:
864 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNNFix_v1'
865 NewScoreName =
"RNNEleScoreSigTrans_v1"
869 DecorWPNames = [
"EleRNNLoose_v1",
"EleRNNMedium_v1",
"EleRNNTight_v1" ]
870 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
871 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
874 import PyUtils.RootUtils
as ru
875 ROOT = ru.import_root()
877 cppyy.load_library(
'libxAODTau_cDict')
879 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNN'
880 NewScoreName =
"RNNEleScoreSigTrans"
881 SigEff1P = [0.95, 0.90, 0.85]
882 SigEff3P = [0.98, 0.95, 0.90]
883 CutEnumVals = [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
884 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
885 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ]
887 DecorWPCutEffs1P = []
888 DecorWPCutEffs3P = []
890 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
892 flatteningFile1Prong = WPConf[0],
893 flatteningFile3Prong = WPConf[1],
894 CutEnumVals = CutEnumVals,
895 DecorWPNames = DecorWPNames,
898 DecorWPCutEffs1P = DecorWPCutEffs1P,
899 DecorWPCutEffs3P = DecorWPCutEffs3P,
901 ScoreName =
"RNNEleScore",
902 NewScoreName = NewScoreName,
905 result.setPrivateTools(myTauEleWPDecorator)
909 result = ComponentAccumulator()
910 _name = flags.Tau.ActiveConfig.prefix +
'TauDecayModeNNClassifier'
912 TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
914 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
916 result.setPrivateTools(myTauDecayModeNNClassifier)
920 result = ComponentAccumulator()
921 _name = flags.Tau.ActiveConfig.prefix +
'TauAODSelector'
923 TauAODSelector = CompFactory.getComp(
"TauAODSelector")
925 Min0pTauPt = flags.Tau.MinPt0p,
926 MinTauPt = flags.Tau.MinPt,
927 doEarlyStopping = flags.Tau.doEarlyStopping
and not flags.Output.doWriteESD)
929 result.setPrivateTools(myTauAODSelector)
935 result = ComponentAccumulator()
936 _name = flags.Tau.ActiveConfig.prefix +
'TauCombinedTES'
937 kwargs.setdefault(
"WeightFileName", flags.Tau.CombinedTESConfig)
939 TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
942 result.setPrivateTools(myTauCombinedTES)
948 result = ComponentAccumulator()
949 _name = flags.Tau.ActiveConfig.prefix +
'MuonRemoval'
950 TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
952 Key_MuonInputContainer =
'Muons',
957 result.setPrivateTools(myMuonRemoval)
962 result = ComponentAccumulator()
963 _name = flags.Tau.ActiveConfig.prefix +
'TauEleOverlapChecker'
964 TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
967 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
968 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
969 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
971 result.setPrivateTools(myTauEleOverlapChecker)
Cluster correction tool which applies local hadronic calibration w eights to the cells.
Calculate moments for CaloCluster objects.
topological cluster maker.
topological cluster splitter.
Class to build tau jet seed.
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.