11 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
   12 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
   13 from AthenaConfiguration.AccumulatorCache 
import AccumulatorCache
 
   14 from AthenaConfiguration.Enums 
import ProductionStep
 
   22     _name = flags.Tau.ActiveConfig.prefix + 
'JetSeedBuilder' 
   24     JetSeedBuilder = CompFactory.getComp(
"JetSeedBuilder")
 
   27     result.setPrivateTools(JetSeedBuilder)
 
   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", 
 
   45                                       Key_trackPartInputContainer= flags.Tau.ActiveConfig.TrackCollection,
 
   46                                       Key_vertexInputContainer = flags.Tau.ActiveConfig.VertexCollection,
 
   48                                       inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
 
   51     result.setPrivateTools(TauVertexFinder)
 
   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" 
   83     _name = flags.Tau.ActiveConfig.prefix + 
'TauTrackFinder' 
   86     from BeamSpotConditions.BeamSpotConditionsConfig 
import BeamSpotCondAlgCfg
 
   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")
 
  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 ""),
 
  109                                     inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
 
  111     result.setPrivateTools(TauTrackFinder)
 
  118     _name = flags.Tau.ActiveConfig.prefix + 
'TauClusterFinder' 
  121     TauClusterFinder = CompFactory.getComp(
"TauClusterFinder")
 
  124         inEleRM = flags.Tau.ActiveConfig.inTauEleRM,
 
  128     result.setPrivateTools(TauClusterFinder)
 
  134     _name = flags.Tau.ActiveConfig.prefix + 
'TauVertexedClusterDecorator' 
  136     TauVertexedClusterDecorator = CompFactory.getComp(
"TauVertexedClusterDecorator")
 
  138                                                                 SeedJet = flags.Tau.ActiveConfig.SeedJetCollection)
 
  140     result.setPrivateTools(myTauVertexedClusterDecorator)
 
  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)
 
  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)
 
  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)
 
  196     _name = flags.Tau.ActiveConfig.prefix + 
'CellVariables' 
  198     TauCellVariables = CompFactory.getComp(
"TauCellVariables")
 
  200                                         VertexCorrection = flags.Tau.doVertexCorrection)
 
  202     result.setPrivateTools(TauCellVariables)
 
  209     _name = flags.Tau.ActiveConfig.prefix + 
'TauElectronVetoVars' 
  211     from TrackToCalo.TrackToCaloConfig 
import ParticleCaloExtensionToolCfg
 
  213     TauElectronVetoVariables = CompFactory.getComp(
"TauElectronVetoVariables")
 
  215                                                         VertexCorrection = flags.Tau.doVertexCorrection,
 
  219     result.setPrivateTools(TauElectronVetoVariables)
 
  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
 
  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)
 
  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)
 
  275     _name = flags.Tau.ActiveConfig.prefix + 
'tauPi0CellContainerFinalizer' 
  277     CaloCellContainerFinalizerTool = CompFactory.getComp(
"CaloCellContainerFinalizerTool")
 
  280     result.setPrivateTools(TauCellContainerFinalizer)
 
  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)
 
  306     _name = flags.Tau.ActiveConfig.prefix + 
'CaloLCWeightTool' 
  309     from CaloTools.CaloNoiseCondAlgConfig 
import CaloNoiseCondAlgCfg
 
  314     CaloLCWeightTool = CompFactory.getComp(
"CaloLCWeightTool")
 
  316     LCWeight.CorrectionKey       = 
"H1ClusterCellWeights" 
  317     LCWeight.SignalOverNoiseCut  = 2.0
 
  318     LCWeight.UseHadProbability   = 
True 
  320     result.setPrivateTools(LCWeight)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  419     _name = flags.Tau.ActiveConfig.prefix + 
'Pi0TopoClusterMaker' 
  422     from CaloTools.CaloNoiseCondAlgConfig 
import CaloNoiseCondAlgCfg
 
  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)
 
  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)
 
  489     _name = flags.Tau.ActiveConfig.prefix + 
'Pi0TopoMoments' 
  492     from CaloTools.CaloNoiseCondAlgConfig 
import CaloNoiseCondAlgCfg
 
  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)
 
  529     _name = flags.Tau.ActiveConfig.prefix + 
'CaloClusterBadChannelList' 
  531     CaloClusterBadChannelListCorr = CompFactory.getComp(
"CaloClusterBadChannelList")
 
  534     result.setPrivateTools(BadChannelListCorrForTaus)
 
  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)
 
  562     _name = flags.Tau.ActiveConfig.prefix + 
'Pi0ClusterScaler' 
  564     TauPi0ClusterScaler = CompFactory.getComp(
"TauPi0ClusterScaler")
 
  567     result.setPrivateTools(TauPi0ClusterScaler)
 
  574     _name = flags.Tau.ActiveConfig.prefix + 
'Pi0ScoreCalculator' 
  576     TauPi0ScoreCalculator = CompFactory.getComp(
"TauPi0ScoreCalculator")
 
  578                                                   BDTWeightFile = flags.Tau.Pi0ScoreConfig)
 
  580     result.setPrivateTools(TauPi0ScoreCalculator)
 
  587     _name = flags.Tau.ActiveConfig.prefix + 
'Pi0Selector' 
  589     TauPi0Selector = CompFactory.getComp(
"TauPi0Selector")
 
  591                                     ClusterEtCut         = flags.Tau.pi0EtCuts,
 
  592                                     ClusterBDTCut_1prong = flags.Tau.pi0MVACuts_1prong,
 
  593                                     ClusterBDTCut_mprong = flags.Tau.pi0MVACuts_mprong)
 
  595     result.setPrivateTools(TauPi0Selector)
 
  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")
 
  613     result.setPrivateTools(TauVertexVariables)
 
  620     _name = flags.Tau.ActiveConfig.prefix + 
'TauCommonCalcVars' 
  622     TauCommonCalcVars = CompFactory.getComp(
"TauCommonCalcVars")
 
  625     result.setPrivateTools(TauCommonCalcVars)
 
  632     _name = flags.Tau.ActiveConfig.prefix + 
'TauSubstructure' 
  634     TauSubstructureVariables = CompFactory.getComp(
"TauSubstructureVariables")
 
  637     result.setPrivateTools(TauSubstructureVariables)
 
  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)
 
  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)
 
  676     _name = flags.Tau.ActiveConfig.prefix + 
'TauIDVarCalculator' 
  678     TauIDVarCalculator = CompFactory.getComp(
"TauIDVarCalculator")    
 
  680                                               VertexCorrection = flags.Tau.doVertexCorrection)
 
  682     result.setPrivateTools(myTauIDVarCalculator)
 
  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')
 
  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)
 
  741 def TauGNNEvaluatorCfg(flags, version=0, applyLooseTrackSel=False, applyTightTrackSel=False, tauContainerName=""):
 
  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)
 
  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)
 
  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)
 
  818     import PyUtils.RootUtils 
as ru
 
  819     ROOT = ru.import_root()
 
  821     cppyy.load_library(
'libxAODTau_cDict')
 
  824     _name = flags.Tau.ActiveConfig.prefix + 
'TauWPDecoratorEleRNN' 
  826     TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
 
  827     WPConf = flags.Tau.TauEleRNNWPConfig
 
  829                                        flatteningFile1Prong = WPConf[0],
 
  830                                        flatteningFile3Prong = WPConf[1],
 
  832                                        [ ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNLoose,
 
  833                                          ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNMedium,
 
  834                                          ROOT.xAOD.TauJetParameters.IsTauFlag.EleRNNTight ],
 
  835                                        SigEff1P = [0.95, 0.90, 0.85],
 
  836                                        SigEff3P = [0.98, 0.95, 0.90],
 
  838                                        ScoreName = 
"RNNEleScore",
 
  839                                        NewScoreName = 
"RNNEleScoreSigTrans",
 
  842     result.setPrivateTools(myTauEleWPDecorator)
 
  847     _name = flags.Tau.ActiveConfig.prefix + 
'TauWPDecoratorEleRNNFix_v1' 
  849     TauWPDecorator = CompFactory.getComp(
"TauWPDecorator")
 
  850     WPConf = flags.Tau.TauEleRNNWPfix
 
  852                                          flatteningFile1Prong = WPConf[0],
 
  853                                          flatteningFile3Prong = WPConf[1],
 
  854                                          DecorWPNames = [ 
"EleRNNLoose_v1", 
"EleRNNMedium_v1", 
"EleRNNTight_v1" ],
 
  855                                          DecorWPCutEffs1P = [0.95, 0.90, 0.85],
 
  856                                          DecorWPCutEffs3P = [0.98, 0.95, 0.90],
 
  858                                          ScoreName = 
"RNNEleScore",
 
  859                                          NewScoreName = 
"RNNEleScoreSigTrans_v1",
 
  862     result.setPrivateTools(myTauEleWPDecorator)
 
  867     _name = flags.Tau.ActiveConfig.prefix + 
'TauDecayModeNNClassifier' 
  869     TauDecayModeNNClassifier = CompFactory.getComp(
"TauDecayModeNNClassifier")
 
  871                                                           WeightFile=flags.Tau.DecayModeNNClassifierConfig)
 
  873     result.setPrivateTools(myTauDecayModeNNClassifier)
 
  878     _name = flags.Tau.ActiveConfig.prefix + 
'TauAODSelector' 
  880     TauAODSelector = CompFactory.getComp(
"TauAODSelector")
 
  882                                       Min0pTauPt = flags.Tau.MinPt0p,
 
  883                                       MinTauPt = flags.Tau.MinPt,
 
  884                                       doEarlyStopping = flags.Tau.doEarlyStopping 
and not flags.Output.doWriteESD)
 
  886     result.setPrivateTools(myTauAODSelector)
 
  893     _name = flags.Tau.ActiveConfig.prefix + 
'TauCombinedTES' 
  895     TauCombinedTES = CompFactory.getComp(
"TauCombinedTES")
 
  897                                       WeightFileName = flags.Tau.CombinedTESConfig)
 
  899     result.setPrivateTools(myTauCombinedTES)
 
  906     _name = flags.Tau.ActiveConfig.prefix + 
'MuonRemoval' 
  907     TauAODMuonRemovalTool = CompFactory.getComp(
"TauAODMuonRemovalTool")
 
  909                                                 Key_MuonInputContainer = 
'Muons',
 
  914     result.setPrivateTools(myMuonRemoval)
 
  920     _name = flags.Tau.ActiveConfig.prefix + 
'TauEleOverlapChecker' 
  921     TauEleOverlapChecker = CompFactory.getComp(
"TauEleOverlapChecker")
 
  924         Key_RemovedClustersContainer = flags.Tau.ActiveConfig.RemovedElectronClusters,
 
  925         Key_RemovedTracksContainer   = flags.Tau.ActiveConfig.RemovedElectronTracks,
 
  926         CheckingCone                 = flags.Tau.ActiveConfig.EleRM_CheckingConeSize,
 
  928     result.setPrivateTools(myTauEleOverlapChecker)