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")
581 MinNeutralPFOPt = flags.Tau.MinNeutralPFOPt)
583 result.setPrivateTools(TauPi0ClusterScaler)
589 result = ComponentAccumulator()
590 _name = flags.Tau.ActiveConfig.prefix +
'Pi0ScoreCalculator'
592 TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
594 BDTWeightFile = flags.Tau.Pi0ScoreConfig)
596 result.setPrivateTools(TauPi0ScoreCalculator)
602 result = ComponentAccumulator()
603 _name = flags.Tau.ActiveConfig.prefix +
'Pi0Selector'
605 TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
607 Pi0EtCut = flags.Tau.pi0EtCuts,
608 Pi0BDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
609 Pi0BDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
611 result.setPrivateTools(TauPi0Selector)
617 result = ComponentAccumulator()
618 _name = flags.Tau.ActiveConfig.prefix +
'TauVertexVariables'
620 from TrkConfig.TrkVertexFittersConfig
import TauAdaptiveVertexFitterCfg
621 from TrkConfig.TrkVertexSeedFinderToolsConfig
import (
622 CrossDistancesSeedFinderCfg)
624 TauVertexVariables = CompFactory.getComp(
"TauVertexVariables")
626 VertexFitter = result.popToolsAndMerge(TauAdaptiveVertexFitterCfg(flags)),
627 SeedFinder = result.popToolsAndMerge(CrossDistancesSeedFinderCfg(flags)) )
629 result.setPrivateTools(TauVertexVariables)
635 result = ComponentAccumulator()
636 _name = flags.Tau.ActiveConfig.prefix +
'TauCommonCalcVars'
638 TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
640 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
642 result.setPrivateTools(TauCommonCalcVars)
648 result = ComponentAccumulator()
649 _name = flags.Tau.ActiveConfig.prefix +
'TauSubstructure'
651 TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
653 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
655 result.setPrivateTools(TauSubstructureVariables)
661 result = ComponentAccumulator()
662 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESVariableDecorator'
664 eventShapeCollection = flags.Tau.ActiveConfig.EventShapeCollection
665 if 'EMPFlow' in flags.Tau.ActiveConfig.SeedJetCollection:
666 eventShapeCollection =
"Kt4EMPFlowEventShape"
667 elif 'EMTopo' in flags.Tau.ActiveConfig.SeedJetCollection:
668 eventShapeCollection =
"Kt4EMTopoOriginEventShape"
670 MvaTESVariableDecorator = CompFactory.getComp(
"MvaTESVariableDecorator")
672 Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
673 EventShapeKey = eventShapeCollection,
674 VertexCorrection = flags.Tau.doVertexCorrection)
675 result.setPrivateTools(MvaTESVariableDecorator)
681 result = ComponentAccumulator()
682 _name = flags.Tau.ActiveConfig.prefix +
'MvaTESEvaluator'
684 MvaTESEvaluator = CompFactory.getComp(
"MvaTESEvaluator")
686 WeightFileName = flags.Tau.MvaTESConfig,
687 WeightFileName0p = flags.Tau.MvaTESConfig0p )
689 result.setPrivateTools(MvaTESEvaluator)
693 result = ComponentAccumulator()
694 _name = flags.Tau.ActiveConfig.prefix +
'TauIDVarCalculator'
696 TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")
698 VertexCorrection = flags.Tau.doVertexCorrection,
699 doRun4 = flags.GeoModel.Run > LHCPeriod.Run3)
701 result.setPrivateTools(myTauIDVarCalculator)
705 result = ComponentAccumulator()
706 _name = flags.Tau.ActiveConfig.prefix +
'TauJetRNN'
708 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
709 RNNConf = flags.Tau.TauJetRNNConfig
712 NetworkFile1P = RNNConf[0],
713 NetworkFile2P = RNNConf[1],
714 NetworkFile3P = RNNConf[2],
715 OutputVarname =
"RNNJetScore",
719 ApplyLooseTrackSel = applyLooseTrackSel,
720 VertexCorrection = flags.Tau.doVertexCorrection,
721 InputLayerScalar =
"scalar",
722 InputLayerTracks =
"tracks",
723 InputLayerClusters =
"clusters",
724 OutputLayer =
"rnnid_output",
725 OutputNode =
"sig_prob")
727 result.setPrivateTools(myTauJetRNNEvaluator)
731 import PyUtils.RootUtils
as ru
732 ROOT = ru.import_root()
734 cppyy.load_library(
'libxAODTau_cDict')
736 result = ComponentAccumulator()
737 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorJetRNN'
739 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
740 WPConf = flags.Tau.TauJetRNNWPConfig
742 flatteningFile1Prong = WPConf[0],
743 flatteningFile2Prong = WPConf[1],
744 flatteningFile3Prong = WPConf[2],
746 [ ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigVeryLoose,
747 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigLoose,
748 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigMedium,
749 ROOT.xAOD.TauJetParameters.IsTauFlag.JetRNNSigTight ],
750 SigEff1P = [0.95, 0.85, 0.75, 0.60],
751 SigEff2P = [0.95, 0.75, 0.60, 0.45],
752 SigEff3P = [0.95, 0.75, 0.60, 0.45],
753 ScoreName =
"RNNJetScore",
754 NewScoreName =
"RNNJetScoreSigTrans",
757 result.setPrivateTools(myTauWPDecorator)
760def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
761 result = ComponentAccumulator()
762 _name = flags.Tau.ActiveConfig.prefix +
'TauGNN_v' + str(version)
764 TauGNNEvaluator = CompFactory.getComp(
"TauGNNEvaluator")
765 GNNConf = flags.Tau.TauGNNConfig[version]
767 useTRT = flags.Detector.EnableTRT,
768 NetworkFileInclusive = GNNConf,
769 OutputVarname = flags.Tau.GNTauScoreName[version],
770 OutputPTau =
"GNTauProbTau",
771 OutputPJet =
"GNTauProbJet",
772 MaxTracks = flags.Tau.GNTauMaxTracks[version],
773 MaxClusters = flags.Tau.GNTauMaxClusters[version],
775 MinTauPt = flags.Tau.MinPtDAOD,
776 ApplyLooseTrackSel = applyLooseTrackSel,
777 ApplyTightTrackSel = applyTightTrackSel,
778 VertexCorrection = flags.Tau.doVertexCorrection,
779 InputLayerScalar =
'tau_vars',
780 InputLayerTracks =
'track_vars',
781 InputLayerClusters =
'cluster_vars',
782 NodeNameTau=flags.Tau.GNTauNodeNameTau,
783 NodeNameJet=flags.Tau.GNTauNodeNameJet,
784 TauContainerName = tauContainerName,
787 result.setPrivateTools(myTauGNNEvaluator)
791 result = ComponentAccumulator()
792 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorGNN_v' + str(version)
794 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
795 WPConf = flags.Tau.TauGNNWP[version]
797 flatteningFile1Prong = WPConf[0],
798 flatteningFile2Prong = WPConf[1],
799 flatteningFile3Prong = WPConf[2],
800 TauContainerName = tauContainerName,
801 DecorWPNames = flags.Tau.GNTauDecorWPNames[version],
802 DecorWPCutEffs1P = [0.95, 0.85, 0.75, 0.60],
803 DecorWPCutEffs2P = [0.95, 0.75, 0.60, 0.45],
804 DecorWPCutEffs3P = [0.95, 0.75, 0.60, 0.45],
805 ScoreName = flags.Tau.GNTauScoreName[version],
806 NewScoreName = flags.Tau.GNTauTransScoreName[version],
808 result.setPrivateTools(myTauWPDecorator)
813 result = ComponentAccumulator()
815 TauGNNEvaluator = CompFactory.TauGNNEvaluator(
816 name = flags.Tau.ActiveConfig.prefix +
'TauDisplacedGNN',
817 NetworkFileInclusive = flags.Tau.TauDisplacedGNNConfig[0],
818 OutputVarname =
"GNdTauScore",
819 OutputPTau =
"GNdTauProbTau",
820 OutputPJet =
"GNdTauProbJet",
822 MinTauPt = flags.Tau.MinPtDAOD,
823 VertexCorrection = flags.Tau.doVertexCorrection,
824 NodeNameTau=
"GNdTauv3_pb",
825 NodeNameJet=
"GNdTauv3_pu",
826 TauContainerName = tauContainerName,
828 result.setPrivateTools(TauGNNEvaluator)
832 result = ComponentAccumulator()
833 _name = flags.Tau.ActiveConfig.prefix +
'TauEleRNN'
835 TauJetRNNEvaluator = CompFactory.getComp(
"TauJetRNNEvaluator")
836 RNNConf = flags.Tau.TauEleRNNConfig
838 useTRT = flags.Detector.EnableTRT,
839 NetworkFile1P = RNNConf[0],
840 NetworkFile3P = RNNConf[1],
841 OutputVarname =
"RNNEleScore",
845 ApplyLooseTrackSel = applyLooseTrackSel,
846 VertexCorrection = flags.Tau.doVertexCorrection,
847 InputLayerScalar =
"scalar",
848 InputLayerTracks =
"tracks",
849 InputLayerClusters =
"clusters",
850 OutputLayer =
"rnneveto_output",
851 OutputNode =
"sig_prob")
853 result.setPrivateTools(myTauEleRNNEvaluator)
858 result = ComponentAccumulator()
860 WPConf = flags.Tau.TauEleRNNWPConfig
862 from AthenaConfiguration.Enums
import ProductionStep
864 if flags.Common.ProductionStep
is ProductionStep.Derivation:
865 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNNFix_v1'
866 NewScoreName =
"RNNEleScoreSigTrans_v1"
870 DecorWPNames = [
"EleRNNLoose_v1",
"EleRNNMedium_v1",
"EleRNNTight_v1" ]
871 DecorWPCutEffs1P = [0.95, 0.90, 0.85]
872 DecorWPCutEffs3P = [0.98, 0.95, 0.90]
875 import PyUtils.RootUtils
as ru
876 ROOT = ru.import_root()
878 cppyy.load_library(
'libxAODTau_cDict')
880 _name = flags.Tau.ActiveConfig.prefix +
'TauWPDecoratorEleRNN'
881 NewScoreName =
"RNNEleScoreSigTrans"
882 SigEff1P = [0.95, 0.90, 0.85]
883 SigEff3P = [0.98, 0.95, 0.90]
884 CutEnumVals = [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
885 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
886 ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ]
888 DecorWPCutEffs1P = []
889 DecorWPCutEffs3P = []
891 TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
893 flatteningFile1Prong = WPConf[0],
894 flatteningFile3Prong = WPConf[1],
895 CutEnumVals = CutEnumVals,
896 DecorWPNames = DecorWPNames,
899 DecorWPCutEffs1P = DecorWPCutEffs1P,
900 DecorWPCutEffs3P = DecorWPCutEffs3P,
902 ScoreName =
"RNNEleScore",
903 NewScoreName = NewScoreName,
906 result.setPrivateTools(myTauEleWPDecorator)
910 result = ComponentAccumulator()
911 _name = flags.Tau.ActiveConfig.prefix +
'TauDecayModeNNClassifier'
913 TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
915 WeightFile=flags.Tau.DecayModeNNClassifierConfig)
917 result.setPrivateTools(myTauDecayModeNNClassifier)
921 result = ComponentAccumulator()
922 _name = flags.Tau.ActiveConfig.prefix +
'TauAODSelector'
924 TauAODSelector = CompFactory.getComp(
"TauAODSelector")
926 Min0pTauPt = flags.Tau.MinPt0p,
927 MinTauPt = flags.Tau.MinPt,
928 doEarlyStopping = flags.Tau.doEarlyStopping
and not flags.Output.doWriteESD)
930 result.setPrivateTools(myTauAODSelector)
936 result = ComponentAccumulator()
937 _name = flags.Tau.ActiveConfig.prefix +
'TauCombinedTES'
938 kwargs.setdefault(
"WeightFileName", flags.Tau.CombinedTESConfig)
940 TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
943 result.setPrivateTools(myTauCombinedTES)
949 result = ComponentAccumulator()
950 _name = flags.Tau.ActiveConfig.prefix +
'MuonRemoval'
951 TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
953 Key_MuonInputContainer =
'Muons',
958 result.setPrivateTools(myMuonRemoval)
963 result = ComponentAccumulator()
964 _name = flags.Tau.ActiveConfig.prefix +
'TauEleOverlapChecker'
965 TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
968 Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
969 Key_RemovedTracksContainer = flags.Tau.ActiveConfig.RemovedElectronTracks,
970 CheckingCone = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
972 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.