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
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)
569 result.setPrivateTools(TauPi0ClusterCreator)
575 result = ComponentAccumulator()
576 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterScaler'
578 TauPi0ClusterScaler = CompFactory.getComp(
"TauPi0ClusterScaler")
581 result.setPrivateTools(TauPi0ClusterScaler)
587 result = ComponentAccumulator()
588 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ScoreCalculator'
590 TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
592 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
594 result.setPrivateTools(TauPi0ScoreCalculator)
600 result = ComponentAccumulator()
601 _name = flags.Tau.ActiveConfig.prefix +
'Pi0Selector'
603 TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
605 Pi0EtCut = flags.Tau.pi0EtCuts,
606 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
607 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
609 result.setPrivateTools(TauPi0Selector)
615 result = ComponentAccumulator()
616 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexVariables'
618 from TrkConfig.TrkVertexFittersConfig
import TauAdaptiveVertexFitterCfg
619 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
620 CrossDistancesSeedFinderCfg)
622 TauVertexVariables = CompFactory.getComp(
"TauVertexVariables")
624 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
625 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
627 result.setPrivateTools(TauVertexVariables)
633 result = ComponentAccumulator()
634 _name = flags.Tau.ActiveConfig.prefix +
'TauCommonCalcVars'
636 TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
639 result.setPrivateTools(TauCommonCalcVars)
645 result = ComponentAccumulator()
646 _name = flags.Tau.ActiveConfig.prefix +
'TauSubstructure'
648 TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
651 result.setPrivateTools(TauSubstructureVariables)
657 result = ComponentAccumulator()
658 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESVariableDecorator'
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"
666 MvaTESVariableDecorator = CompFactory.getComp(
"MvaTESVariableDecorator")
668 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
669 EventShapeKey = eventShapeCollection,
670 VertexCorrection = flags.Tau.doVertexCorrection)
671 result.setPrivateTools(MvaTESVariableDecorator)
677 result = ComponentAccumulator()
678 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESEvaluator'
680 MvaTESEvaluator = CompFactory.getComp(
"MvaTESEvaluator")
682 WeightFileName = flags.Tau.MvaTESConfig,
683 WeightFileName0p = flags.Tau.MvaTESConfig0p )
685 result.setPrivateTools(MvaTESEvaluator)
689 result = ComponentAccumulator()
690 _name = flags.Tau.ActiveConfig.prefix +
'TauIDVarCalculator'
692 TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")
694 VertexCorrection = flags.Tau.doVertexCorrection)
696 result.setPrivateTools(myTauIDVarCalculator)
700 result = ComponentAccumulator()
701 _name = flags.Tau.ActiveConfig.prefix +
'TauJetRNN'
703 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
704 RNNConf = flags.Tau.TauJetRNNConfig
707 NetworkFile1P = RNNConf[0],
708 NetworkFile2P = RNNConf[1],
709 NetworkFile3P = RNNConf[2],
710 OutputVarname =
"RNNJetScore",
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")
722 result.setPrivateTools(myTauJetRNNEvaluator)
726 import PyUtils.RootUtils
as ru
727 ROOT = ru.import_root()
729 cppyy.load_library(
'libxAODTau_cDict')
731 result = ComponentAccumulator()
732 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorJetRNN'
734 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
735 WPConf = flags.Tau.TauJetRNNWPConfig
737 flatteningFile1Prong = WPConf[0],
738 flatteningFile2Prong = WPConf[1],
739 flatteningFile3Prong = WPConf[2],
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",
752 result.setPrivateTools(myTauWPDecorator)
755def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
756 result = ComponentAccumulator()
757 _name = flags.Tau.ActiveConfig.prefix +
'TauGNN_v' + str(version)
759 TauGNNEvaluator = CompFactory.getComp(
"TauGNNEvaluator")
760 GNNConf = flags.Tau.TauGNNConfig[version]
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],
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,
782 result.setPrivateTools(myTauGNNEvaluator)
786 result = ComponentAccumulator()
787 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorGNN_v' + str(version)
789 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
790 WPConf = flags.Tau.TauGNNWP[version]
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],
803 result.setPrivateTools(myTauWPDecorator)
808 result = ComponentAccumulator()
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",
817 MinTauPt = flags.Tau.MinPtDAOD,
818 VertexCorrection = flags.Tau.doVertexCorrection,
819 NodeNameTau=
"GNdTauv3_pb",
820 NodeNameJet=
"GNdTauv3_pu",
821 TauContainerName = tauContainerName,
823 result.setPrivateTools(TauGNNEvaluator)
827 result = ComponentAccumulator()
828 _name = flags.Tau.ActiveConfig.prefix +
'TauEleRNN'
830 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
831 RNNConf = flags.Tau.TauEleRNNConfig
833 useTRT = flags.Detector.EnableTRT,
834 NetworkFile1P = RNNConf[0],
835 NetworkFile3P = RNNConf[1],
836 OutputVarname =
"RNNEleScore",
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")
848 result.setPrivateTools(myTauEleRNNEvaluator)
853 result = ComponentAccumulator()
855 WPConf = flags.Tau.TauEleRNNWPConfig
857 from AthenaConfiguration.Enums
import ProductionStep
859 if flags.Common.ProductionStep
is ProductionStep.Derivation:
860 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNNFix_v1'
861 NewScoreName =
"RNNEleScoreSigTrans_v1"
865 DecorWPNames = [
"EleRNNLoose_v1",
"EleRNNMedium_v1",
"EleRNNTight_v1" ]
866 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
867 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
870 import PyUtils.RootUtils
as ru
871 ROOT = ru.import_root()
873 cppyy.load_library(
'libxAODTau_cDict')
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 ]
883 DecorWPCutEffs1P = []
884 DecorWPCutEffs3P = []
886 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
888 flatteningFile1Prong = WPConf[0],
889 flatteningFile3Prong = WPConf[1],
890 CutEnumVals = CutEnumVals,
891 DecorWPNames = DecorWPNames,
894 DecorWPCutEffs1P = DecorWPCutEffs1P,
895 DecorWPCutEffs3P = DecorWPCutEffs3P,
897 ScoreName =
"RNNEleScore",
898 NewScoreName = NewScoreName,
901 result.setPrivateTools(myTauEleWPDecorator)
905 result = ComponentAccumulator()
906 _name = flags.Tau.ActiveConfig.prefix +
'TauDecayModeNNClassifier'
908 TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
910 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
912 result.setPrivateTools(myTauDecayModeNNClassifier)
916 result = ComponentAccumulator()
917 _name = flags.Tau.ActiveConfig.prefix +
'TauAODSelector'
919 TauAODSelector = CompFactory.getComp(
"TauAODSelector")
921 Min0pTauPt = flags.Tau.MinPt0p,
922 MinTauPt = flags.Tau.MinPt,
923 doEarlyStopping = flags.Tau.doEarlyStopping
and not flags.Output.doWriteESD)
925 result.setPrivateTools(myTauAODSelector)
931 result = ComponentAccumulator()
932 _name = flags.Tau.ActiveConfig.prefix +
'TauCombinedTES'
934 TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
936 WeightFileName = flags.Tau.CombinedTESConfig)
938 result.setPrivateTools(myTauCombinedTES)
944 result = ComponentAccumulator()
945 _name = flags.Tau.ActiveConfig.prefix +
'MuonRemoval'
946 TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
948 Key_MuonInputContainer =
'Muons',
953 result.setPrivateTools(myMuonRemoval)
958 result = ComponentAccumulator()
959 _name = flags.Tau.ActiveConfig.prefix +
'TauEleOverlapChecker'
960 TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
963 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
964 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
965 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
967 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.