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 TauTrackFinder = CompFactory.getComp(
"TauTrackFinder")
98 TrackSelectorToolTau = result.popToolsAndMerge(TauRecInDetTrackSelectorToolCfg(flags)),
99 TrackToVertexTool = result.popToolsAndMerge(TrackToVertexCfg(flags)),
100 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
102 removeDuplicateCoreTracks = flags.Tau.RemoveDupeCoreTracks,
103 useGhostTracks = flags.Tau.useGhostTracks,
104 ghostTrackDR = flags.Tau.ghostTrackDR,
105 Key_jetContainer = (flags.Tau.ActiveConfig.SeedJetCollection
if flags.Tau.useGhostTracks
else ""),
106 Key_trackPartInputContainer = flags.Tau.ActiveConfig.TrackCollection,
107 Key_LargeD0TrackInputContainer = (flags.Tau.ActiveConfig.LargeD0TrackCollection
if flags.Tau.associateLRT
else ""),
108 TrackToVertexIPEstimator = result.popToolsAndMerge(AtlasTrackToVertexIPEstimatorCfg(flags)),
109 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
111 result.setPrivateTools(TauTrackFinder)
117 result = ComponentAccumulator()
118 _name = flags.Tau.ActiveConfig.prefix +
'TauClusterFinder'
121 TauClusterFinder = CompFactory.getComp(
"TauClusterFinder")
124 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
128 result.setPrivateTools(TauClusterFinder)
133 result = ComponentAccumulator()
134 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexedClusterDecorator'
136 TauVertexedClusterDecorator = CompFactory.getComp(
"TauVertexedClusterDecorator")
138 SeedJet = flags.Tau.ActiveConfig.SeedJetCollection)
140 result.setPrivateTools(myTauVertexedClusterDecorator)
145 result = ComponentAccumulator()
146 _name = flags.Tau.ActiveConfig.prefix +
'TauTrackRNNClassifier'
148 TrackRNN = CompFactory.tauRecTools.TrackRNN
149 _RNN = TrackRNN(name = _name +
"_TrackRNN",
150 InputWeightsPath = flags.Tau.tauRNNTrackClassConfig,
151 calibFolder = flags.Tau.tauRecToolsCVMFSPath )
153 result.setPrivateTools(_RNN)
158 result = ComponentAccumulator()
159 _name = flags.Tau.ActiveConfig.prefix +
'TauTrackRNNClassifier'
162 TauTrackRNNClassifier = CompFactory.tauRecTools.TauTrackRNNClassifier
165 cppyy.load_library(
'libxAODTau_cDict')
168 if flags.Tau.associateLRT
and not flags.Tau.classifyLRT:
171 myTauTrackClassifier = TauTrackRNNClassifier( name = _name,
173 classifyLRT = _classifyLRT,
174 classifyLRTWithDedicated = flags.Tau.classifyLRTWithDedicated)
176 result.setPrivateTools(myTauTrackClassifier)
182 result = ComponentAccumulator()
183 _name = flags.Tau.ActiveConfig.prefix +
'EnergyCalibrationLC'
185 TauCalibrateLC = CompFactory.getComp(
"TauCalibrateLC")
187 calibrationFile = flags.Tau.CalibrateLCConfig,
188 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection)
190 result.setPrivateTools(TauCalibrateLC)
196 result = ComponentAccumulator()
197 _name = flags.Tau.ActiveConfig.prefix +
'CellVariables'
199 TauCellVariables = CompFactory.getComp(
"TauCellVariables")
201 VertexCorrection = flags.Tau.doVertexCorrection)
203 result.setPrivateTools(TauCellVariables)
209 result = ComponentAccumulator()
210 _name = flags.Tau.ActiveConfig.prefix +
'TauElectronVetoVars'
212 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
214 TauElectronVetoVariables = CompFactory.getComp(
"TauElectronVetoVariables")
216 VertexCorrection = flags.Tau.doVertexCorrection,
217 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
220 result.setPrivateTools(TauElectronVetoVariables)
226 result = ComponentAccumulator()
227 _name = flags.Tau.ActiveConfig.prefix +
'TauShotFinder'
229 shotPtCut_1Photon = flags.Tau.shotPtCut_1Photon
230 shotPtCut_2Photons = flags.Tau.shotPtCut_2Photons
233 from CaloClusterCorrection.StandardCellWeightCalib
import getCellWeightTool
234 CaloWeightTool = getCellWeightTool(flags=flags)
237 TauShotFinder = CompFactory.getComp(
"TauShotFinder")
240 CaloWeightTool = result.popToolsAndMerge(CaloWeightTool),
242 MinPtCut = shotPtCut_1Photon,
243 AutoDoubleShotCut = shotPtCut_2Photons,
244 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
245 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
246 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
249 result.setPrivateTools(TauShotFinder)
256 result = ComponentAccumulator()
257 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterFinder'
259 TauPi0CreateROI = CompFactory.getComp(
"TauPi0CreateROI")
263 Key_caloCellInputContainer =
"AllCalo",
264 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
265 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
266 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
269 result.setPrivateTools(myTauPi0CreateROI)
275 result = ComponentAccumulator()
276 _name = flags.Tau.ActiveConfig.prefix +
'tauPi0CellContainerFinalizer'
278 CaloCellContainerFinalizerTool = CompFactory.getComp(
"CaloCellContainerFinalizerTool")
281 result.setPrivateTools(TauCellContainerFinalizer)
289 result = ComponentAccumulator()
290 _name = flags.Tau.ActiveConfig.prefix +
'LCClassify'
292 CaloLCClassificationTool = CompFactory.getComp(
"CaloLCClassificationTool")
294 LCClassify.ClassificationKey =
"EMFracClassify"
295 LCClassify.UseSpread =
False
296 LCClassify.MaxProbability = 0.5
298 LCClassify.StoreClassificationProbabilityInAOD =
True
299 LCClassify.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
300 LCClassify.UseNormalizedEnergyDensity =
True
302 result.setPrivateTools(LCClassify)
306 result = ComponentAccumulator()
307 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCWeightTool'
310 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
311 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
313 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
315 CaloLCWeightTool = CompFactory.getComp(
"CaloLCWeightTool")
317 LCWeight.CorrectionKey =
"H1ClusterCellWeights"
318 LCWeight.SignalOverNoiseCut = 2.0
319 LCWeight.UseHadProbability =
True
321 result.setPrivateTools(LCWeight)
325 result = ComponentAccumulator()
326 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCOutOfClusterTool'
328 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
330 LCOut.CorrectionKey =
"OOCCorrection"
331 LCOut.UseEmProbability =
False
332 LCOut.UseHadProbability =
True
334 result.setPrivateTools(LCOut)
338 result = ComponentAccumulator()
339 _name = flags.Tau.ActiveConfig.prefix +
'LCOutPi0'
341 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
343 LCOutPi0.CorrectionKey =
"OOCPi0Correction"
344 LCOutPi0.UseEmProbability =
True
345 LCOutPi0.UseHadProbability =
False
347 result.setPrivateTools(LCOutPi0)
351 result = ComponentAccumulator()
352 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCDeadMaterialTool'
354 CaloLCDeadMaterialTool = CompFactory.getComp(
"CaloLCDeadMaterialTool")
356 LCDeadMaterial.HadDMCoeffKey =
"HadDMCoeff2"
357 LCDeadMaterial.ClusterRecoStatus = 0
358 LCDeadMaterial.WeightModeDM = 2
359 LCDeadMaterial.UseHadProbability =
True
360 LCDeadMaterial.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
362 result.setPrivateTools(LCDeadMaterial)
366 result = ComponentAccumulator()
367 _name = flags.Tau.ActiveConfig.prefix +
'CaloLocalCalib'
369 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
372 LocalCalib.ClusterRecoStatus = [1,2]
374 LocalCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
376 result.setPrivateTools(LocalCalib)
380 result = ComponentAccumulator()
381 _name = flags.Tau.ActiveConfig.prefix +
'OOCCalibTool'
383 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
384 OOCCalib = CaloClusterLocalCalib (_name)
385 OOCCalib.ClusterRecoStatus = [1,2]
387 OOCCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
389 result.setPrivateTools(OOCCalib)
393 result = ComponentAccumulator()
394 _name = flags.Tau.ActiveConfig.prefix +
'DMCalib'
396 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
398 DMCalib.ClusterRecoStatus = [1,2]
400 DMCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
402 result.setPrivateTools(DMCalib)
406 result = ComponentAccumulator()
407 _name = flags.Tau.ActiveConfig.prefix +
'OOCPi0CalibTool'
409 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
410 OOCPi0Calib = CaloClusterLocalCalib (_name)
411 OOCPi0Calib.ClusterRecoStatus = [1,2]
413 OOCPi0Calib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
415 result.setPrivateTools(OOCPi0Calib)
419 result = ComponentAccumulator()
420 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterMaker'
423 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
424 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
426 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
428 CaloTopoClusterMaker = CompFactory.getComp(
"CaloTopoClusterMaker")
431 TopoClusterForTaus.CellsName = flags.Tau.ActiveConfig.TauCommonPi0Cells
432 TopoClusterForTaus.CalorimeterNames=[
"LAREM"]
433 TopoClusterForTaus.SeedSamplingNames = [
"PreSamplerB",
"EMB1",
"EMB2",
"PreSamplerE",
"EME1",
"EME2"]
434 TopoClusterForTaus.NeighborOption =
"super3D"
435 TopoClusterForTaus.RestrictHECIWandFCalNeighbors =
False
436 TopoClusterForTaus.RestrictPSNeighbors =
True
437 TopoClusterForTaus.CellThresholdOnEorAbsEinSigma = 0.0
438 TopoClusterForTaus.NeighborThresholdOnEorAbsEinSigma = 2.0
439 TopoClusterForTaus.SeedThresholdOnEorAbsEinSigma = 4.0
440 TopoClusterForTaus.SeedCutsInAbsE =
True
441 TopoClusterForTaus.ClusterCutsInAbsEt =
True
442 TopoClusterForTaus.ClusterEtorAbsEtCut = 0.5*GeV
443 TopoClusterForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
445 TopoClusterForTaus.SeedCutsInT = flags.Calo.TopoCluster.doTimeCut
446 TopoClusterForTaus.CutOOTseed = flags.Calo.TopoCluster.extendTimeCut
and flags.Calo.TopoCluster.doTimeCut
447 TopoClusterForTaus.UseTimeCutUpperLimit = flags.Calo.TopoCluster.useUpperLimitForTimeCut
448 TopoClusterForTaus.TimeCutUpperLimit = flags.Calo.TopoCluster.timeCutUpperLimit
449 TopoClusterForTaus.XTalkEM2 = flags.Calo.TopoCluster.xtalkEM2
450 TopoClusterForTaus.XTalkEM2D = flags.Calo.TopoCluster.xtalkEM2D
451 TopoClusterForTaus.XTalkEM2n = flags.Calo.TopoCluster.xtalkEM2n
452 TopoClusterForTaus.XTalkEM3 = flags.Calo.TopoCluster.xtalkEM3
453 TopoClusterForTaus.XTalkEMEta = flags.Calo.TopoCluster.xtalkEMEta
454 TopoClusterForTaus.XTalkDeltaT = flags.Calo.TopoCluster.xtalkDeltaT
455 TopoClusterForTaus.XTalk2Eratio1 = flags.Calo.TopoCluster.xtalk2Eratio1
456 TopoClusterForTaus.XTalk2Eratio2 = flags.Calo.TopoCluster.xtalk2Eratio2
457 TopoClusterForTaus.XTalk3Eratio = flags.Calo.TopoCluster.xtalk3Eratio
458 TopoClusterForTaus.XTalkEtaEratio = flags.Calo.TopoCluster.xtalkEtaEratio
459 TopoClusterForTaus.XTalk2DEratio = flags.Calo.TopoCluster.xtalk2DEratio
461 result.setPrivateTools(TopoClusterForTaus)
466 result = ComponentAccumulator()
467 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterSplitter'
469 CaloTopoClusterSplitter = CompFactory.getComp(
"CaloTopoClusterSplitter")
476 TopoSplitterForTaus.SamplingNames = [
"EMB2",
"EME2"]
480 TopoSplitterForTaus.SecondarySamplingNames = [
"EMB1",
"EME1"]
481 TopoSplitterForTaus.ShareBorderCells =
True
482 TopoSplitterForTaus.RestrictHECIWandFCalNeighbors =
False
483 TopoSplitterForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
485 result.setPrivateTools(TopoSplitterForTaus)
489 result = ComponentAccumulator()
490 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoMoments'
493 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
494 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
496 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
498 CaloClusterMomentsMaker = CompFactory.getComp(
"CaloClusterMomentsMaker")
500 TopoMomentsForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
501 TopoMomentsForTaus.MaxAxisAngle = 20*deg
502 TopoMomentsForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
503 TopoMomentsForTaus.MinBadLArQuality = 4000
504 TopoMomentsForTaus.MomentsNames = [
"FIRST_PHI"
525 result.setPrivateTools(TopoMomentsForTaus)
529 result = ComponentAccumulator()
530 _name = flags.Tau.ActiveConfig.prefix +
'CaloClusterBadChannelList'
532 CaloClusterBadChannelListCorr = CompFactory.getComp(
"CaloClusterBadChannelList")
535 result.setPrivateTools(BadChannelListCorrForTaus)
541 result = ComponentAccumulator()
542 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterCreator'
548 for typ, nam
in [i.split(
'#')
for i
in flags.Input.TypedCollections]:
549 if typ ==
'CaloCellContainer':
550 extraInputs += [(
'CaloCellContainer', nam)]
552 TauPi0ClusterCreator = CompFactory.getComp(
"TauPi0ClusterCreator")
554 ExtraInputs = extraInputs)
556 result.setPrivateTools(TauPi0ClusterCreator)
562 result = ComponentAccumulator()
563 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterScaler'
565 TauPi0ClusterScaler = CompFactory.getComp(
"TauPi0ClusterScaler")
568 result.setPrivateTools(TauPi0ClusterScaler)
574 result = ComponentAccumulator()
575 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ScoreCalculator'
577 TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
579 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
581 result.setPrivateTools(TauPi0ScoreCalculator)
587 result = ComponentAccumulator()
588 _name = flags.Tau.ActiveConfig.prefix +
'Pi0Selector'
590 TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
592 Pi0EtCut = flags.Tau.pi0EtCuts,
593 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
594 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
596 result.setPrivateTools(TauPi0Selector)
602 result = ComponentAccumulator()
603 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexVariables'
605 from TrkConfig.TrkVertexFittersConfig
import TauAdaptiveVertexFitterCfg
606 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
607 CrossDistancesSeedFinderCfg)
609 TauVertexVariables = CompFactory.getComp(
"TauVertexVariables")
611 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
612 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
614 result.setPrivateTools(TauVertexVariables)
620 result = ComponentAccumulator()
621 _name = flags.Tau.ActiveConfig.prefix +
'TauCommonCalcVars'
623 TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
626 result.setPrivateTools(TauCommonCalcVars)
632 result = ComponentAccumulator()
633 _name = flags.Tau.ActiveConfig.prefix +
'TauSubstructure'
635 TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
638 result.setPrivateTools(TauSubstructureVariables)
644 result = ComponentAccumulator()
645 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESVariableDecorator'
647 eventShapeCollection = flags.Tau.ActiveConfig.EventShapeCollection
648 if 'EMPFlow' in flags.Tau.ActiveConfig.SeedJetCollection:
649 eventShapeCollection =
"Kt4EMPFlowEventShape"
650 elif 'EMTopo' in flags.Tau.ActiveConfig.SeedJetCollection:
651 eventShapeCollection =
"Kt4EMTopoOriginEventShape"
653 MvaTESVariableDecorator = CompFactory.getComp(
"MvaTESVariableDecorator")
655 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
656 EventShapeKey = eventShapeCollection,
657 VertexCorrection = flags.Tau.doVertexCorrection)
658 result.setPrivateTools(MvaTESVariableDecorator)
664 result = ComponentAccumulator()
665 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESEvaluator'
667 MvaTESEvaluator = CompFactory.getComp(
"MvaTESEvaluator")
669 WeightFileName = flags.Tau.MvaTESConfig,
670 WeightFileName0p = flags.Tau.MvaTESConfig0p )
672 result.setPrivateTools(MvaTESEvaluator)
676 result = ComponentAccumulator()
677 _name = flags.Tau.ActiveConfig.prefix +
'TauIDVarCalculator'
679 TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")
681 VertexCorrection = flags.Tau.doVertexCorrection)
683 result.setPrivateTools(myTauIDVarCalculator)
687 result = ComponentAccumulator()
688 _name = flags.Tau.ActiveConfig.prefix +
'TauJetRNN'
690 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
691 RNNConf = flags.Tau.TauJetRNNConfig
694 NetworkFile1P = RNNConf[0],
695 NetworkFile2P = RNNConf[1],
696 NetworkFile3P = RNNConf[2],
697 OutputVarname =
"RNNJetScore",
701 ApplyLooseTrackSel = applyLooseTrackSel,
702 VertexCorrection = flags.Tau.doVertexCorrection,
703 InputLayerScalar =
"scalar",
704 InputLayerTracks =
"tracks",
705 InputLayerClusters =
"clusters",
706 OutputLayer =
"rnnid_output",
707 OutputNode =
"sig_prob")
709 result.setPrivateTools(myTauJetRNNEvaluator)
713 import PyUtils.RootUtils
as ru
714 ROOT = ru.import_root()
716 cppyy.load_library(
'libxAODTau_cDict')
718 result = ComponentAccumulator()
719 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorJetRNN'
721 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
722 WPConf = flags.Tau.TauJetRNNWPConfig
724 flatteningFile1Prong = WPConf[0],
725 flatteningFile2Prong = WPConf[1],
726 flatteningFile3Prong = WPConf[2],
728 [ ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigVeryLoose,
729 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigLoose,
730 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigMedium,
731 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigTight ],
732 SigEff1P = [0.95, 0.85, 0.75, 0.60],
733 SigEff2P = [0.95, 0.75, 0.60, 0.45],
734 SigEff3P = [0.95, 0.75, 0.60, 0.45],
735 ScoreName =
"RNNJetScore",
736 NewScoreName =
"RNNJetScoreSigTrans",
739 result.setPrivateTools(myTauWPDecorator)
742def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
743 result = ComponentAccumulator()
744 _name = flags.Tau.ActiveConfig.prefix +
'TauGNN_v' + str(version)
746 TauGNNEvaluator = CompFactory.getComp(
"TauGNNEvaluator")
747 GNNConf = flags.Tau.TauGNNConfig[version]
749 useTRT = flags.Detector.EnableTRT,
750 NetworkFileInclusive = GNNConf,
751 OutputVarname = flags.Tau.GNTauScoreName[version],
752 OutputPTau =
"GNTauProbTau",
753 OutputPJet =
"GNTauProbJet",
754 MaxTracks = flags.Tau.GNTauMaxTracks[version],
755 MaxClusters = flags.Tau.GNTauMaxClusters[version],
757 MinTauPt = flags.Tau.MinPtDAOD,
758 ApplyLooseTrackSel = applyLooseTrackSel,
759 ApplyTightTrackSel = applyTightTrackSel,
760 VertexCorrection = flags.Tau.doVertexCorrection,
761 InputLayerScalar =
'tau_vars',
762 InputLayerTracks =
'track_vars',
763 InputLayerClusters =
'cluster_vars',
764 NodeNameTau=flags.Tau.GNTauNodeNameTau,
765 NodeNameJet=flags.Tau.GNTauNodeNameJet,
766 TauContainerName = tauContainerName,
769 result.setPrivateTools(myTauGNNEvaluator)
773 result = ComponentAccumulator()
774 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorGNN_v' + str(version)
776 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
777 WPConf = flags.Tau.TauGNNWP[version]
779 flatteningFile1Prong = WPConf[0],
780 flatteningFile2Prong = WPConf[1],
781 flatteningFile3Prong = WPConf[2],
782 TauContainerName = tauContainerName,
783 DecorWPNames = flags.Tau.GNTauDecorWPNames[version],
784 DecorWPCutEffs1P = [0.95, 0.85, 0.75, 0.60],
785 DecorWPCutEffs2P = [0.95, 0.75, 0.60, 0.45],
786 DecorWPCutEffs3P = [0.95, 0.75, 0.60, 0.45],
787 ScoreName = flags.Tau.GNTauScoreName[version],
788 NewScoreName = flags.Tau.GNTauTransScoreName[version],
790 result.setPrivateTools(myTauWPDecorator)
794 result = ComponentAccumulator()
795 _name = flags.Tau.ActiveConfig.prefix +
'TauEleRNN'
797 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
798 RNNConf = flags.Tau.TauEleRNNConfig
800 useTRT = flags.Detector.EnableTRT,
801 NetworkFile1P = RNNConf[0],
802 NetworkFile3P = RNNConf[1],
803 OutputVarname =
"RNNEleScore",
807 ApplyLooseTrackSel = applyLooseTrackSel,
808 VertexCorrection = flags.Tau.doVertexCorrection,
809 InputLayerScalar =
"scalar",
810 InputLayerTracks =
"tracks",
811 InputLayerClusters =
"clusters",
812 OutputLayer =
"rnneveto_output",
813 OutputNode =
"sig_prob")
815 result.setPrivateTools(myTauEleRNNEvaluator)
820 result = ComponentAccumulator()
822 WPConf = flags.Tau.TauEleRNNWPConfig
824 from AthenaConfiguration.Enums
import ProductionStep
826 if flags.Common.ProductionStep
is ProductionStep.Derivation:
827 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNNFix_v1'
828 NewScoreName =
"RNNEleScoreSigTrans_v1"
832 DecorWPNames = [
"EleRNNLoose_v1",
"EleRNNMedium_v1",
"EleRNNTight_v1" ]
833 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
834 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
837 import PyUtils.RootUtils
as ru
838 ROOT = ru.import_root()
840 cppyy.load_library(
'libxAODTau_cDict')
842 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNN'
843 NewScoreName =
"RNNEleScoreSigTrans"
844 SigEff1P = [0.95, 0.90, 0.85]
845 SigEff3P = [0.98, 0.95, 0.90]
846 CutEnumVals = [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
847 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
848 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ]
850 DecorWPCutEffs1P = []
851 DecorWPCutEffs3P = []
853 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
855 flatteningFile1Prong = WPConf[0],
856 flatteningFile3Prong = WPConf[1],
857 CutEnumVals = CutEnumVals,
858 DecorWPNames = DecorWPNames,
861 DecorWPCutEffs1P = DecorWPCutEffs1P,
862 DecorWPCutEffs3P = DecorWPCutEffs3P,
864 ScoreName =
"RNNEleScore",
865 NewScoreName = NewScoreName,
868 result.setPrivateTools(myTauEleWPDecorator)
872 result = ComponentAccumulator()
873 _name = flags.Tau.ActiveConfig.prefix +
'TauDecayModeNNClassifier'
875 TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
877 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
879 result.setPrivateTools(myTauDecayModeNNClassifier)
883 result = ComponentAccumulator()
884 _name = flags.Tau.ActiveConfig.prefix +
'TauAODSelector'
886 TauAODSelector = CompFactory.getComp(
"TauAODSelector")
888 Min0pTauPt = flags.Tau.MinPt0p,
889 MinTauPt = flags.Tau.MinPt,
890 doEarlyStopping = flags.Tau.doEarlyStopping
and not flags.Output.doWriteESD)
892 result.setPrivateTools(myTauAODSelector)
898 result = ComponentAccumulator()
899 _name = flags.Tau.ActiveConfig.prefix +
'TauCombinedTES'
901 TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
903 WeightFileName = flags.Tau.CombinedTESConfig)
905 result.setPrivateTools(myTauCombinedTES)
911 result = ComponentAccumulator()
912 _name = flags.Tau.ActiveConfig.prefix +
'MuonRemoval'
913 TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
915 Key_MuonInputContainer =
'Muons',
920 result.setPrivateTools(myMuonRemoval)
925 result = ComponentAccumulator()
926 _name = flags.Tau.ActiveConfig.prefix +
'TauEleOverlapChecker'
927 TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
930 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
931 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
932 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
934 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.