11from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
12from AthenaConfiguration.ComponentFactory
import CompFactory
13from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
14from AthenaConfiguration.Enums
import ProductionStep
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 InDetConfig.InDetTrackSelectionToolConfig
import Tau_InDetTrackSelectionToolForTJVACfg
36 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import TauTTVAToolCfg
40 TauVertexFinder = CompFactory.getComp(
"TauVertexFinder")
42 UseTJVA = flags.Tau.doTJVA,
43 AssociatedTracks=
"GhostTrack",
44 InDetTrackSelectionToolForTJVA = result.popToolsAndMerge(Tau_InDetTrackSelectionToolForTJVACfg(flags)),
45 Key_trackPartInputContainer= flags.Tau.ActiveConfig.TrackCollection,
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 )
175 result.setPrivateTools(myTauTrackClassifier)
181 result = ComponentAccumulator()
182 _name = flags.Tau.ActiveConfig.prefix +
'EnergyCalibrationLC'
184 TauCalibrateLC = CompFactory.getComp(
"TauCalibrateLC")
186 calibrationFile = flags.Tau.CalibrateLCConfig,
187 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection)
189 result.setPrivateTools(TauCalibrateLC)
195 result = ComponentAccumulator()
196 _name = flags.Tau.ActiveConfig.prefix +
'CellVariables'
198 TauCellVariables = CompFactory.getComp(
"TauCellVariables")
200 VertexCorrection = flags.Tau.doVertexCorrection)
202 result.setPrivateTools(TauCellVariables)
208 result = ComponentAccumulator()
209 _name = flags.Tau.ActiveConfig.prefix +
'TauElectronVetoVars'
211 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
213 TauElectronVetoVariables = CompFactory.getComp(
"TauElectronVetoVariables")
215 VertexCorrection = flags.Tau.doVertexCorrection,
216 ParticleCaloExtensionTool = result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)),
219 result.setPrivateTools(TauElectronVetoVariables)
225 result = ComponentAccumulator()
226 _name = flags.Tau.ActiveConfig.prefix +
'TauShotFinder'
228 shotPtCut_1Photon = flags.Tau.shotPtCut_1Photon
229 shotPtCut_2Photons = flags.Tau.shotPtCut_2Photons
232 from CaloClusterCorrection.StandardCellWeightCalib
import getCellWeightTool
233 CaloWeightTool = getCellWeightTool(flags=flags)
236 TauShotFinder = CompFactory.getComp(
"TauShotFinder")
239 CaloWeightTool = result.popToolsAndMerge(CaloWeightTool),
241 MinPtCut = shotPtCut_1Photon,
242 AutoDoubleShotCut = shotPtCut_2Photons,
243 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
244 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
245 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
248 result.setPrivateTools(TauShotFinder)
255 result = ComponentAccumulator()
256 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterFinder'
258 TauPi0CreateROI = CompFactory.getComp(
"TauPi0CreateROI")
262 Key_caloCellInputContainer =
"AllCalo",
263 Key_RemovedClusterInputContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
264 inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
265 RemoveElectronCells = flags.Tau.ActiveConfig.RemoveElectronCells,
268 result.setPrivateTools(myTauPi0CreateROI)
274 result = ComponentAccumulator()
275 _name = flags.Tau.ActiveConfig.prefix +
'tauPi0CellContainerFinalizer'
277 CaloCellContainerFinalizerTool = CompFactory.getComp(
"CaloCellContainerFinalizerTool")
280 result.setPrivateTools(TauCellContainerFinalizer)
288 result = ComponentAccumulator()
289 _name = flags.Tau.ActiveConfig.prefix +
'LCClassify'
291 CaloLCClassificationTool = CompFactory.getComp(
"CaloLCClassificationTool")
293 LCClassify.ClassificationKey =
"EMFracClassify"
294 LCClassify.UseSpread =
False
295 LCClassify.MaxProbability = 0.5
297 LCClassify.StoreClassificationProbabilityInAOD =
True
298 LCClassify.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
299 LCClassify.UseNormalizedEnergyDensity =
True
301 result.setPrivateTools(LCClassify)
305 result = ComponentAccumulator()
306 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCWeightTool'
309 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
310 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
312 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
314 CaloLCWeightTool = CompFactory.getComp(
"CaloLCWeightTool")
316 LCWeight.CorrectionKey =
"H1ClusterCellWeights"
317 LCWeight.SignalOverNoiseCut = 2.0
318 LCWeight.UseHadProbability =
True
320 result.setPrivateTools(LCWeight)
324 result = ComponentAccumulator()
325 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCOutOfClusterTool'
327 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
329 LCOut.CorrectionKey =
"OOCCorrection"
330 LCOut.UseEmProbability =
False
331 LCOut.UseHadProbability =
True
333 result.setPrivateTools(LCOut)
337 result = ComponentAccumulator()
338 _name = flags.Tau.ActiveConfig.prefix +
'LCOutPi0'
340 CaloLCOutOfClusterTool = CompFactory.getComp(
"CaloLCOutOfClusterTool")
342 LCOutPi0.CorrectionKey =
"OOCPi0Correction"
343 LCOutPi0.UseEmProbability =
True
344 LCOutPi0.UseHadProbability =
False
346 result.setPrivateTools(LCOutPi0)
350 result = ComponentAccumulator()
351 _name = flags.Tau.ActiveConfig.prefix +
'CaloLCDeadMaterialTool'
353 CaloLCDeadMaterialTool = CompFactory.getComp(
"CaloLCDeadMaterialTool")
355 LCDeadMaterial.HadDMCoeffKey =
"HadDMCoeff2"
356 LCDeadMaterial.ClusterRecoStatus = 0
357 LCDeadMaterial.WeightModeDM = 2
358 LCDeadMaterial.UseHadProbability =
True
359 LCDeadMaterial.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
361 result.setPrivateTools(LCDeadMaterial)
365 result = ComponentAccumulator()
366 _name = flags.Tau.ActiveConfig.prefix +
'CaloLocalCalib'
368 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
371 LocalCalib.ClusterRecoStatus = [1,2]
373 LocalCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
375 result.setPrivateTools(LocalCalib)
379 result = ComponentAccumulator()
380 _name = flags.Tau.ActiveConfig.prefix +
'OOCCalibTool'
382 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
383 OOCCalib = CaloClusterLocalCalib (_name)
384 OOCCalib.ClusterRecoStatus = [1,2]
386 OOCCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
388 result.setPrivateTools(OOCCalib)
392 result = ComponentAccumulator()
393 _name = flags.Tau.ActiveConfig.prefix +
'DMCalib'
395 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
397 DMCalib.ClusterRecoStatus = [1,2]
399 DMCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
401 result.setPrivateTools(DMCalib)
405 result = ComponentAccumulator()
406 _name = flags.Tau.ActiveConfig.prefix +
'OOCPi0CalibTool'
408 CaloClusterLocalCalib = CompFactory.getComp(
"CaloClusterLocalCalib")
409 OOCPi0Calib = CaloClusterLocalCalib (_name)
410 OOCPi0Calib.ClusterRecoStatus = [1,2]
412 OOCPi0Calib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
414 result.setPrivateTools(OOCPi0Calib)
418 result = ComponentAccumulator()
419 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterMaker'
422 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
423 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
425 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
427 CaloTopoClusterMaker = CompFactory.getComp(
"CaloTopoClusterMaker")
430 TopoClusterForTaus.CellsName = flags.Tau.ActiveConfig.TauCommonPi0Cells
431 TopoClusterForTaus.CalorimeterNames=[
"LAREM"]
432 TopoClusterForTaus.SeedSamplingNames = [
"PreSamplerB",
"EMB1",
"EMB2",
"PreSamplerE",
"EME1",
"EME2"]
433 TopoClusterForTaus.NeighborOption =
"super3D"
434 TopoClusterForTaus.RestrictHECIWandFCalNeighbors =
False
435 TopoClusterForTaus.RestrictPSNeighbors =
True
436 TopoClusterForTaus.CellThresholdOnEorAbsEinSigma = 0.0
437 TopoClusterForTaus.NeighborThresholdOnEorAbsEinSigma = 2.0
438 TopoClusterForTaus.SeedThresholdOnEorAbsEinSigma = 4.0
439 TopoClusterForTaus.SeedCutsInAbsE =
True
440 TopoClusterForTaus.ClusterCutsInAbsEt =
True
441 TopoClusterForTaus.ClusterEtorAbsEtCut = 0.5*GeV
442 TopoClusterForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
444 TopoClusterForTaus.SeedCutsInT = flags.Calo.TopoCluster.doTimeCut
445 TopoClusterForTaus.CutOOTseed = flags.Calo.TopoCluster.extendTimeCut
and flags.Calo.TopoCluster.doTimeCut
446 TopoClusterForTaus.UseTimeCutUpperLimit = flags.Calo.TopoCluster.useUpperLimitForTimeCut
447 TopoClusterForTaus.TimeCutUpperLimit = flags.Calo.TopoCluster.timeCutUpperLimit
448 TopoClusterForTaus.XTalkEM2 = flags.Calo.TopoCluster.xtalkEM2
449 TopoClusterForTaus.XTalkEM2D = flags.Calo.TopoCluster.xtalkEM2D
450 TopoClusterForTaus.XTalkEM2n = flags.Calo.TopoCluster.xtalkEM2n
451 TopoClusterForTaus.XTalkEM3 = flags.Calo.TopoCluster.xtalkEM3
452 TopoClusterForTaus.XTalkEMEta = flags.Calo.TopoCluster.xtalkEMEta
453 TopoClusterForTaus.XTalkDeltaT = flags.Calo.TopoCluster.xtalkDeltaT
454 TopoClusterForTaus.XTalk2Eratio1 = flags.Calo.TopoCluster.xtalk2Eratio1
455 TopoClusterForTaus.XTalk2Eratio2 = flags.Calo.TopoCluster.xtalk2Eratio2
456 TopoClusterForTaus.XTalk3Eratio = flags.Calo.TopoCluster.xtalk3Eratio
457 TopoClusterForTaus.XTalkEtaEratio = flags.Calo.TopoCluster.xtalkEtaEratio
458 TopoClusterForTaus.XTalk2DEratio = flags.Calo.TopoCluster.xtalk2DEratio
460 result.setPrivateTools(TopoClusterForTaus)
465 result = ComponentAccumulator()
466 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoClusterSplitter'
468 CaloTopoClusterSplitter = CompFactory.getComp(
"CaloTopoClusterSplitter")
475 TopoSplitterForTaus.SamplingNames = [
"EMB2",
"EME2"]
479 TopoSplitterForTaus.SecondarySamplingNames = [
"EMB1",
"EME1"]
480 TopoSplitterForTaus.ShareBorderCells =
True
481 TopoSplitterForTaus.RestrictHECIWandFCalNeighbors =
False
482 TopoSplitterForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
484 result.setPrivateTools(TopoSplitterForTaus)
488 result = ComponentAccumulator()
489 _name = flags.Tau.ActiveConfig.prefix +
'Pi0TopoMoments'
492 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
493 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
495 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
497 CaloClusterMomentsMaker = CompFactory.getComp(
"CaloClusterMomentsMaker")
499 TopoMomentsForTaus.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
500 TopoMomentsForTaus.MaxAxisAngle = 20*deg
501 TopoMomentsForTaus.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
502 TopoMomentsForTaus.MinBadLArQuality = 4000
503 TopoMomentsForTaus.MomentsNames = [
"FIRST_PHI"
524 result.setPrivateTools(TopoMomentsForTaus)
528 result = ComponentAccumulator()
529 _name = flags.Tau.ActiveConfig.prefix +
'CaloClusterBadChannelList'
531 CaloClusterBadChannelListCorr = CompFactory.getComp(
"CaloClusterBadChannelList")
534 result.setPrivateTools(BadChannelListCorrForTaus)
540 result = ComponentAccumulator()
541 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterCreator'
547 for typ, nam
in [i.split(
'#')
for i
in flags.Input.TypedCollections]:
548 if typ ==
'CaloCellContainer':
549 extraInputs += [(
'CaloCellContainer', nam)]
551 TauPi0ClusterCreator = CompFactory.getComp(
"TauPi0ClusterCreator")
553 ExtraInputs = extraInputs)
555 result.setPrivateTools(TauPi0ClusterCreator)
561 result = ComponentAccumulator()
562 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ClusterScaler'
564 TauPi0ClusterScaler = CompFactory.getComp(
"TauPi0ClusterScaler")
567 result.setPrivateTools(TauPi0ClusterScaler)
573 result = ComponentAccumulator()
574 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ScoreCalculator'
576 TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
578 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
580 result.setPrivateTools(TauPi0ScoreCalculator)
586 result = ComponentAccumulator()
587 _name = flags.Tau.ActiveConfig.prefix +
'Pi0Selector'
589 TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
591 Pi0EtCut = flags.Tau.pi0EtCuts,
592 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
593 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
595 result.setPrivateTools(TauPi0Selector)
601 result = ComponentAccumulator()
602 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexVariables'
604 from TrkConfig.TrkVertexFittersConfig
import TauAdaptiveVertexFitterCfg
605 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
606 CrossDistancesSeedFinderCfg)
608 TauVertexVariables = CompFactory.getComp(
"TauVertexVariables")
610 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
611 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
613 result.setPrivateTools(TauVertexVariables)
619 result = ComponentAccumulator()
620 _name = flags.Tau.ActiveConfig.prefix +
'TauCommonCalcVars'
622 TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
625 result.setPrivateTools(TauCommonCalcVars)
631 result = ComponentAccumulator()
632 _name = flags.Tau.ActiveConfig.prefix +
'TauSubstructure'
634 TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
637 result.setPrivateTools(TauSubstructureVariables)
643 result = ComponentAccumulator()
644 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESVariableDecorator'
646 eventShapeCollection = flags.Tau.ActiveConfig.EventShapeCollection
647 if 'EMPFlow' in flags.Tau.ActiveConfig.SeedJetCollection:
648 eventShapeCollection =
"Kt4EMPFlowEventShape"
649 elif 'EMTopo' in flags.Tau.ActiveConfig.SeedJetCollection:
650 eventShapeCollection =
"Kt4EMTopoOriginEventShape"
652 MvaTESVariableDecorator = CompFactory.getComp(
"MvaTESVariableDecorator")
654 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
655 EventShapeKey = eventShapeCollection,
656 VertexCorrection = flags.Tau.doVertexCorrection)
657 result.setPrivateTools(MvaTESVariableDecorator)
663 result = ComponentAccumulator()
664 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESEvaluator'
666 MvaTESEvaluator = CompFactory.getComp(
"MvaTESEvaluator")
668 WeightFileName = flags.Tau.MvaTESConfig,
669 WeightFileName0p = flags.Tau.MvaTESConfig0p )
671 result.setPrivateTools(MvaTESEvaluator)
675 result = ComponentAccumulator()
676 _name = flags.Tau.ActiveConfig.prefix +
'TauIDVarCalculator'
678 TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")
680 VertexCorrection = flags.Tau.doVertexCorrection)
682 result.setPrivateTools(myTauIDVarCalculator)
686 result = ComponentAccumulator()
687 _name = flags.Tau.ActiveConfig.prefix +
'TauJetRNN'
689 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
690 RNNConf = flags.Tau.TauJetRNNConfig
693 NetworkFile1P = RNNConf[0],
694 NetworkFile2P = RNNConf[1],
695 NetworkFile3P = RNNConf[2],
696 OutputVarname =
"RNNJetScore",
700 ApplyLooseTrackSel = applyLooseTrackSel,
701 VertexCorrection = flags.Tau.doVertexCorrection,
702 InputLayerScalar =
"scalar",
703 InputLayerTracks =
"tracks",
704 InputLayerClusters =
"clusters",
705 OutputLayer =
"rnnid_output",
706 OutputNode =
"sig_prob")
708 result.setPrivateTools(myTauJetRNNEvaluator)
712 import PyUtils.RootUtils
as ru
713 ROOT = ru.import_root()
715 cppyy.load_library(
'libxAODTau_cDict')
717 result = ComponentAccumulator()
718 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorJetRNN'
720 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
721 WPConf = flags.Tau.TauJetRNNWPConfig
723 flatteningFile1Prong = WPConf[0],
724 flatteningFile2Prong = WPConf[1],
725 flatteningFile3Prong = WPConf[2],
727 [ ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigVeryLoose,
728 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigLoose,
729 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigMedium,
730 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigTight ],
731 SigEff1P = [0.95, 0.85, 0.75, 0.60],
732 SigEff2P = [0.95, 0.75, 0.60, 0.45],
733 SigEff3P = [0.95, 0.75, 0.60, 0.45],
734 ScoreName =
"RNNJetScore",
735 NewScoreName =
"RNNJetScoreSigTrans",
738 result.setPrivateTools(myTauWPDecorator)
741def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
742 result = ComponentAccumulator()
743 _name = flags.Tau.ActiveConfig.prefix +
'TauGNN_v' + str(version)
745 TauGNNEvaluator = CompFactory.getComp(
"TauGNNEvaluator")
746 GNNConf = flags.Tau.TauGNNConfig[version]
748 useTRT = flags.Detector.EnableTRT,
749 NetworkFileInclusive = GNNConf,
750 OutputVarname = flags.Tau.GNTauScoreName[version],
751 OutputPTau =
"GNTauProbTau",
752 OutputPJet =
"GNTauProbJet",
753 MaxTracks = flags.Tau.GNTauMaxTracks[version],
754 MaxClusters = flags.Tau.GNTauMaxClusters[version],
756 MinTauPt = flags.Tau.MinPtDAOD,
757 ApplyLooseTrackSel = applyLooseTrackSel,
758 ApplyTightTrackSel = applyTightTrackSel,
759 VertexCorrection = flags.Tau.doVertexCorrection,
760 InputLayerScalar =
'tau_vars',
761 InputLayerTracks =
'track_vars',
762 InputLayerClusters =
'cluster_vars',
763 NodeNameTau=flags.Tau.GNTauNodeNameTau,
764 NodeNameJet=flags.Tau.GNTauNodeNameJet,
765 TauContainerName = tauContainerName,
768 result.setPrivateTools(myTauGNNEvaluator)
772 result = ComponentAccumulator()
773 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorGNN_v' + str(version)
775 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
776 WPConf = flags.Tau.TauGNNWP[version]
778 flatteningFile1Prong = WPConf[0],
779 flatteningFile2Prong = WPConf[1],
780 flatteningFile3Prong = WPConf[2],
781 TauContainerName = tauContainerName,
782 DecorWPNames = flags.Tau.GNTauDecorWPNames[version],
783 DecorWPCutEffs1P = [0.95, 0.85, 0.75, 0.60],
784 DecorWPCutEffs2P = [0.95, 0.75, 0.60, 0.45],
785 DecorWPCutEffs3P = [0.95, 0.75, 0.60, 0.45],
786 ScoreName = flags.Tau.GNTauScoreName[version],
787 NewScoreName = flags.Tau.GNTauTransScoreName[version],
789 result.setPrivateTools(myTauWPDecorator)
793 result = ComponentAccumulator()
794 _name = flags.Tau.ActiveConfig.prefix +
'TauEleRNN'
796 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
797 RNNConf = flags.Tau.TauEleRNNConfig
799 useTRT = flags.Detector.EnableTRT,
800 NetworkFile1P = RNNConf[0],
801 NetworkFile3P = RNNConf[1],
802 OutputVarname =
"RNNEleScore",
806 ApplyLooseTrackSel = applyLooseTrackSel,
807 VertexCorrection = flags.Tau.doVertexCorrection,
808 InputLayerScalar =
"scalar",
809 InputLayerTracks =
"tracks",
810 InputLayerClusters =
"clusters",
811 OutputLayer =
"rnneveto_output",
812 OutputNode =
"sig_prob")
814 result.setPrivateTools(myTauEleRNNEvaluator)
819 result = ComponentAccumulator()
821 WPConf = flags.Tau.TauEleRNNWPConfig
823 from AthenaConfiguration.Enums
import ProductionStep
825 if flags.Common.ProductionStep
is ProductionStep.Derivation:
826 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNNFix_v1'
827 NewScoreName =
"RNNEleScoreSigTrans_v1"
831 DecorWPNames = [
"EleRNNLoose_v1",
"EleRNNMedium_v1",
"EleRNNTight_v1" ]
832 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
833 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
836 import PyUtils.RootUtils
as ru
837 ROOT = ru.import_root()
839 cppyy.load_library(
'libxAODTau_cDict')
841 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNN'
842 NewScoreName =
"RNNEleScoreSigTrans"
843 SigEff1P = [0.95, 0.90, 0.85]
844 SigEff3P = [0.98, 0.95, 0.90]
845 CutEnumVals = [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
846 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
847 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ]
849 DecorWPCutEffs1P = []
850 DecorWPCutEffs3P = []
852 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
854 flatteningFile1Prong = WPConf[0],
855 flatteningFile3Prong = WPConf[1],
856 CutEnumVals = CutEnumVals,
857 DecorWPNames = DecorWPNames,
860 DecorWPCutEffs1P = DecorWPCutEffs1P,
861 DecorWPCutEffs3P = DecorWPCutEffs3P,
863 ScoreName =
"RNNEleScore",
864 NewScoreName = NewScoreName,
867 result.setPrivateTools(myTauEleWPDecorator)
871 result = ComponentAccumulator()
872 _name = flags.Tau.ActiveConfig.prefix +
'TauDecayModeNNClassifier'
874 TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
876 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
878 result.setPrivateTools(myTauDecayModeNNClassifier)
882 result = ComponentAccumulator()
883 _name = flags.Tau.ActiveConfig.prefix +
'TauAODSelector'
885 TauAODSelector = CompFactory.getComp(
"TauAODSelector")
887 Min0pTauPt = flags.Tau.MinPt0p,
888 MinTauPt = flags.Tau.MinPt,
889 doEarlyStopping = flags.Tau.doEarlyStopping
and not flags.Output.doWriteESD)
891 result.setPrivateTools(myTauAODSelector)
897 result = ComponentAccumulator()
898 _name = flags.Tau.ActiveConfig.prefix +
'TauCombinedTES'
900 TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
902 WeightFileName = flags.Tau.CombinedTESConfig)
904 result.setPrivateTools(myTauCombinedTES)
910 result = ComponentAccumulator()
911 _name = flags.Tau.ActiveConfig.prefix +
'MuonRemoval'
912 TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
914 Key_MuonInputContainer =
'Muons',
919 result.setPrivateTools(myMuonRemoval)
924 result = ComponentAccumulator()
925 _name = flags.Tau.ActiveConfig.prefix +
'TauEleOverlapChecker'
926 TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
929 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
930 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
931 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
933 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.