diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py index 6aa324cd3280e6d376fa62a2584a0a1a5ab5bab3..dd6f9e1d0c9790d0004af5244006a2d0bd4b8823 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py @@ -46,7 +46,7 @@ if (DerivationFrameworkIsMonteCarlo): ParticleSelectionString = "(abs(TruthParticles.pdgId) == 4)", Do_Compress = True) ToolSvc += PHYSTruthCharmTool - from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__CommonAugmentation + #from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__CommonAugmentation SeqPHYS += CfgMgr.DerivationFramework__CommonAugmentation("PHYSTruthCharmKernel",AugmentationTools=[PHYSTruthCharmTool]) # Add HF particles addHFAndDownstreamParticles(SeqPHYS) @@ -189,22 +189,20 @@ addQGTaggerTool(jetalg="AntiKt4EMPFlow",sequence=SeqPHYS,algname="QGTaggerToolPF #==================================================================== # Add our sequence to the top sequence #==================================================================== -# Ideally, this should come at the end of the job, but the tau additions -# below make it such that we need it here +# Ideally, this should come at the end of the job DerivationFrameworkJob += SeqPHYS #==================================================================== # Tau #==================================================================== -''' -# Schedule low-pt di-tau reconstruction (needs AntiKt2PV0TrackJets) +# Add low-pt di-tau reconstruction from DerivationFrameworkTau.TauCommon import addDiTauLowPt -addDiTauLowPt() - +addDiTauLowPt(Seq=SeqPHYS) +''' # Low-pt di-tau thinning from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning PHYSDiTauLowPtThinningTool = DerivationFramework__GenericObjectThinning(name = "PHYSDiTauLowPtThinningTool", - ThinningService = PHYSThinningHelper.ThinningSvc(), + StreamName = PHYSStream.Name, ContainerName = "DiTauJetsLowPt", SelectionString = "DiTauJetsLowPt.nSubjets > 1") ToolSvc += PHYSDiTauLowPtThinningTool @@ -212,7 +210,7 @@ thinningTools.append(PHYSDiTauLowPtThinningTool) # ID tracks associated with low-pt ditau PHYSDiTauLowPtTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name = "PHYSDiTauLowPtTPThinningTool", - ThinningService = PHYSThinningHelper.ThinningSvc(), + StreamName = PHYSStream.Name, DiTauKey = "DiTauJetsLowPt", InDetTrackParticlesKey = "InDetTrackParticles", SelectionString = "DiTauJetsLowPt.nSubjets > 1") @@ -223,9 +221,9 @@ thinningTools.append(PHYSDiTauLowPtTPThinningTool) # CREATE THE DERIVATION KERNEL ALGORITHM #==================================================================== # Add the kernel for thinning (requires the objects be defined) -from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel -DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("PHYSKernel", - ThinningTools = thinningTools) +#from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel +SeqPHYS += CfgMgr.DerivationFramework__DerivationKernel("PHYSKernel", + ThinningTools = thinningTools) #==================================================================== @@ -273,7 +271,7 @@ PHYSSlimmingHelper.SmartCollections = ["Electrons", #"MET_Baseline_AntiKt4EMPFlow", "TauJets", "DiTauJets", - #"DiTauJetsLowPt", + "DiTauJetsLowPt", "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets", #"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903", #"BTagging_AntiKtVR30Rmax4Rmin02Track_201903" diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauCommon.py index d8e46c00e874b57e14b26c95f5ae2d1b53edc73d..2b09c165218bb0b8ff17ca9319d513ae6abc9e75 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauCommon.py @@ -7,147 +7,165 @@ #******************************************************************** from __future__ import print_function - -from DerivationFrameworkCore.DerivationFrameworkMaster import DerivationFrameworkJob -from AthenaCommon.AppMgr import ToolSvc from AthenaCommon import CfgMgr -#==================================================================== -# MAKE TAU ENUMS AVAILABLE -#==================================================================== -#from ROOT import xAOD__TauJetParameters__IsTauFlag +# will likely be replaced with generic tau decorator tool +#from tauRec.TauRecAODBuilder import TauRecAODProcessor_FTau +#TauRecAODProcessor_FTau() #==================================================================== # AUGMENTATION TOOLS #==================================================================== -from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__AsgSelectionToolWrapper -from TauAnalysisTools.TauAnalysisToolsConf import TauAnalysisTools__TauSelectionTool +def AddTauAugmentation(Seq=None, doVeryLoose=None, doLoose=None, doMedium=None, doTight=None): -#from tauRec.TauRecAODBuilder import TauRecAODProcessor_FTau -#TauRecAODProcessor_FTau() - -DFCommonTauWrapperTools = [] - -# VeryLoose -DFCommonTausSelectorVeryLoose = TauAnalysisTools__TauSelectionTool(name="DFCommonTausSelectorVeryLoose") -DFCommonTausSelectorVeryLoose.JetIDWP = 19 -DFCommonTausSelectorVeryLoose.SelectionCuts = 1<<6 -DFCommonTausSelectorVeryLoose.ConfigPath = '' -#TauAnalysisTools::CutJetIDWP should be used but issue with the dictionnary -ToolSvc += DFCommonTausSelectorVeryLoose -DFCommonTausVeryLooseWrapper = DerivationFramework__AsgSelectionToolWrapper( name = "DFCommonTausVeryLooseWrapper", - AsgSelectionTool = DFCommonTausSelectorVeryLoose, - StoreGateEntryName = "DFCommonTausVeryLoose", - ContainerName = "TauJets") -ToolSvc += DFCommonTausVeryLooseWrapper -print (DFCommonTausVeryLooseWrapper) -DFCommonTauWrapperTools.append(DFCommonTausVeryLooseWrapper) - -# Loose -DFCommonTausSelectorLoose = TauAnalysisTools__TauSelectionTool(name="DFCommonTausSelectorLoose") -DFCommonTausSelectorLoose.JetIDWP = 20 -DFCommonTausSelectorLoose.SelectionCuts = 1<<6 -DFCommonTausSelectorLoose.ConfigPath = '' -#TauAnalysisTools::CutJetIDWP should be used but issue with the dictionnary -ToolSvc += DFCommonTausSelectorLoose -DFCommonTausLooseWrapper = DerivationFramework__AsgSelectionToolWrapper( name = "DFCommonTausLooseWrapper", - AsgSelectionTool = DFCommonTausSelectorLoose, - StoreGateEntryName = "DFCommonTausLoose", - ContainerName = "TauJets") -ToolSvc += DFCommonTausLooseWrapper -print (DFCommonTausLooseWrapper) -DFCommonTauWrapperTools.append(DFCommonTausLooseWrapper) - -# Medium -DFCommonTausSelectorMedium = TauAnalysisTools__TauSelectionTool(name="DFCommonTausSelectorMedium") -DFCommonTausSelectorMedium.JetIDWP = 21 -DFCommonTausSelectorMedium.SelectionCuts = 1<<6 -DFCommonTausSelectorMedium.ConfigPath = '' -ToolSvc += DFCommonTausSelectorMedium -DFCommonTausMediumWrapper = DerivationFramework__AsgSelectionToolWrapper( name = "DFCommonTausMediumWrapper", - AsgSelectionTool = DFCommonTausSelectorMedium, - StoreGateEntryName = "DFCommonTausMedium", - ContainerName = "TauJets") -ToolSvc += DFCommonTausMediumWrapper -print (DFCommonTausMediumWrapper) -DFCommonTauWrapperTools.append(DFCommonTausMediumWrapper) - -# Tight -DFCommonTausSelectorTight = TauAnalysisTools__TauSelectionTool(name="DFCommonTausSelectorTight") -DFCommonTausSelectorTight.JetIDWP = 22 -DFCommonTausSelectorTight.SelectionCuts = 1<<6 -DFCommonTausSelectorTight.ConfigPath = '' -ToolSvc += DFCommonTausSelectorTight -DFCommonTausTightWrapper = DerivationFramework__AsgSelectionToolWrapper( name = "DFCommonTausTightWrapper", - AsgSelectionTool = DFCommonTausSelectorTight, - StoreGateEntryName = "DFCommonTausTight", - ContainerName = "TauJets" ) -ToolSvc += DFCommonTausTightWrapper -print (DFCommonTausTightWrapper) -DFCommonTauWrapperTools.append(DFCommonTausTightWrapper) - - -#======================================= -# CREATE THE DERIVATION KERNEL ALGORITHM -#======================================= + if not Seq or hasattr(Seq,"TauAugmentationKernel"+Seq.name()): + print("Tau augmentation will not be scheduled") + return -DerivationFrameworkJob += CfgMgr.DerivationFramework__CommonAugmentation( "TauCommonKernel", - AugmentationTools = DFCommonTauWrapperTools ) + from AthenaCommon.AppMgr import ToolSvc + from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__AsgSelectionToolWrapper + from TauAnalysisTools.TauAnalysisToolsConf import TauAnalysisTools__TauSelectionTool + import PyUtils.RootUtils as ru + ROOT = ru.import_root() + import cppyy + cppyy.loadDictionary('TauAnalysisTools') + + TauAugmentationTools = [] + + if doVeryLoose: + if not hasattr(ToolSvc,"TauVeryLooseWrapper"): + TauSelectorVeryLoose = TauAnalysisTools__TauSelectionTool(name="TauSelectorVeryLoose") + TauSelectorVeryLoose.JetIDWP = ROOT.TauAnalysisTools.e_JETID.JETIDRNNVERYLOOSE + TauSelectorVeryLoose.SelectionCuts = ROOT.TauAnalysisTools.SelectionCuts.CutJetIDWP + TauSelectorVeryLoose.ConfigPath = '' + ToolSvc += TauSelectorVeryLoose + + TauVeryLooseWrapper = DerivationFramework__AsgSelectionToolWrapper(name = "TauVeryLooseWrapper", + AsgSelectionTool = TauSelectorVeryLoose, + StoreGateEntryName = "DFTauVeryLoose", + ContainerName = "TauJets") + ToolSvc += TauVeryLooseWrapper + else: + TauVeryLooseWrapper = getattr(ToolSvc,"TauVeryLooseWrapper") + + print (TauVeryLooseWrapper) + TauAugmentationTools.append(TauVeryLooseWrapper) + + if doLoose: + if not hasattr(ToolSvc,"TauLooseWrapper"): + TauSelectorLoose = TauAnalysisTools__TauSelectionTool(name="TauSelectorLoose") + TauSelectorLoose.JetIDWP = ROOT.TauAnalysisTools.e_JETID.JETIDRNNLOOSE + TauSelectorLoose.SelectionCuts = ROOT.TauAnalysisTools.SelectionCuts.CutJetIDWP + TauSelectorLoose.ConfigPath = '' + ToolSvc += TauSelectorLoose + + TauLooseWrapper = DerivationFramework__AsgSelectionToolWrapper(name = "TauLooseWrapper", + AsgSelectionTool = TauSelectorLoose, + StoreGateEntryName = "DFTauLoose", + ContainerName = "TauJets") + ToolSvc += TauLooseWrapper + else: + TauLooseWrapper = getattr(ToolSvc,"TauLooseWrapper") + + print (TauLooseWrapper) + TauAugmentationTools.append(TauLooseWrapper) + + if doMedium: + if not hasattr(ToolSvc,"TauMediumWrapper"): + TauSelectorMedium = TauAnalysisTools__TauSelectionTool(name="TauSelectorMedium") + TauSelectorMedium.JetIDWP = ROOT.TauAnalysisTools.e_JETID.JETIDRNNMEDIUM + TauSelectorMedium.SelectionCuts = ROOT.TauAnalysisTools.SelectionCuts.CutJetIDWP + TauSelectorMedium.ConfigPath = '' + ToolSvc += TauSelectorMedium + + TauMediumWrapper = DerivationFramework__AsgSelectionToolWrapper(name = "TauMediumWrapper", + AsgSelectionTool = TauSelectorMedium, + StoreGateEntryName = "DFTauMedium", + ContainerName = "TauJets") + ToolSvc += TauMediumWrapper + else: + TauMediumWrapper = getattr(ToolSvc,"TauMediumWrapper") + + print (TauMediumWrapper) + TauAugmentationTools.append(TauMediumWrapper) + + if doTight: + if not hasattr(ToolSvc,"TauTightWrapper"): + TauSelectorTight = TauAnalysisTools__TauSelectionTool(name="TauSelectorTight") + TauSelectorTight.JetIDWP = ROOT.TauAnalysisTools.e_JETID.JETIDRNNTIGHT + TauSelectorTight.SelectionCuts = ROOT.TauAnalysisTools.SelectionCuts.CutJetIDWP + TauSelectorTight.ConfigPath = '' + ToolSvc += TauSelectorTight + + TauTightWrapper = DerivationFramework__AsgSelectionToolWrapper(name = "TauTightWrapper", + AsgSelectionTool = TauSelectorTight, + StoreGateEntryName = "DFTauTight", + ContainerName = "TauJets") + ToolSvc += TauTightWrapper + else: + TauTightWrapper = getattr(ToolSvc,"TauTightWrapper") + + print (TauTightWrapper) + TauAugmentationTools.append(TauTightWrapper) + + if TauAugmentationTools: + Seq += CfgMgr.DerivationFramework__DerivationKernel("TauAugmentationKernel"+Seq.name(), AugmentationTools = TauAugmentationTools) #================= # TAU THINNING #================= -def ThinTau(Name=None, ThinningService=None, Seq=None, SelectionString=None): +def ThinTau(Seq=None, streamName=None, selectionString=None): - if not Name or not ThinningService or not Seq: - print ("Can't schedule tau thinning") + if not Seq or not streamName or hasattr(Seq,"TauThinningKernel"+Seq.name()): + print ("Tau thinning will not be scheduled") return - if not SelectionString: - SelectionString = "(TauJets.pt >= 15.*GeV) && (TauJets.nTracks<4 && TauJets.nTracks>0)" + if not selectionString: + selectionString = "(TauJets.pt >= 15.*GeV) && (TauJets.nTracks>0 && TauJets.nTracks<4)" + + print ("Adding tau thinning:", selectionString) from AthenaCommon.AppMgr import ToolSvc # TauJets thinning from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning - TauJetsThinningTool = DerivationFramework__GenericObjectThinning(name = Name+"TauJetsThinningTool", - ThinningService = ThinningService, + TauJetsThinningTool = DerivationFramework__GenericObjectThinning(name = "TauJetsThinningTool"+Seq.name(), + StreamName = streamName, ContainerName = "TauJets", - SelectionString = SelectionString) + SelectionString = selectionString) ToolSvc += TauJetsThinningTool print (TauJetsThinningTool) # Only keep tau tracks (and associated ID tracks) classified as charged tracks from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TauTrackParticleThinning - TauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name = Name+"TauTPThinningTool", - ThinningService = ThinningService, + TauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name = "TauTPThinningTool"+Seq.name(), + StreamName = streamName, TauKey = "TauJets", InDetTrackParticlesKey = "InDetTrackParticles", - SelectionString = SelectionString, - ApplyAnd = False, + SelectionString = selectionString, DoTauTracksThinning = True, TauTracksKey = "TauTracks") ToolSvc += TauTPThinningTool print (TauTPThinningTool) - Seq += CfgMgr.DerivationFramework__DerivationKernel(Name+"TauThinningKernel", ThinningTools = [TauJetsThinningTool,TauTPThinningTool]) + Seq += CfgMgr.DerivationFramework__DerivationKernel("TauThinningKernel"+Seq.name(), ThinningTools = [TauJetsThinningTool,TauTPThinningTool]) -''' #======================================= # Low-pt di-tau reconstruction #======================================= -def addDiTauLowPt(): +def addDiTauLowPt(Seq=None): - from AthenaCommon.AppMgr import ToolSvc - if hasattr(ToolSvc,"DFCommonDiTauLowPtBuilder"): + if not Seq or hasattr(Seq,"DiTauLowPtBuilder"+Seq.name()): + print("Low-pt ditau reconstruction will not be scheduled") return + print ("Adding low-pt di-tau reconstruction") + from DerivationFrameworkJetEtMiss.ExtendedJetCommon import addCHSPFlowObjects addCHSPFlowObjects() from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets - from DerivationFrameworkCore.DerivationFrameworkMaster import DerivationFrameworkJob - addStandardJets("AntiKt", 1.0, "EMPFlow", ptmin=40000, ptminFilter=50000, mods="pflow_ungroomed", calibOpt="none", algseq=DerivationFrameworkJob, outputGroup="TauCommon") + addStandardJets("AntiKt", 1.0, "EMPFlow", ptmin=40000, ptminFilter=50000, mods="pflow_ungroomed", calibOpt="none", algseq=Seq, outputGroup="TauCommon") import DiTauRec.DiTauAlgorithmsHolder as DiTauAlgs from DiTauRec.DiTauRecConf import DiTauBuilder @@ -156,17 +174,18 @@ def addDiTauLowPt(): ditauTools.append(DiTauAlgs.getSeedJetBuilder("AntiKt10EMPFlowJets")) ditauTools.append(DiTauAlgs.getElMuFinder()) ditauTools.append(DiTauAlgs.getSubjetBuilder()) + Seq += DiTauAlgs.getTVATool() ditauTools.append(DiTauAlgs.getVertexFinder()) ditauTools.append(DiTauAlgs.getDiTauTrackFinder()) ditauTools.append(DiTauAlgs.getIDVarCalculator(False)) + from AthenaCommon.AppMgr import ToolSvc for tool in ditauTools: if not hasattr(ToolSvc,tool.name()): ToolSvc += tool - DiTauLowPtBuilder = DiTauBuilder(name="DFCommonDiTauLowPtBuilder", + DiTauLowPtBuilder = DiTauBuilder(name="DiTauLowPtBuilder"+Seq.name(), DiTauContainer="DiTauJetsLowPt", - DiTauAuxContainer="DiTauJetsLowPtAux.", SeedJetName="AntiKt10EMPFlowJets", minPt=50000, maxEta=2.5, @@ -174,8 +193,4 @@ def addDiTauLowPt(): Rsubjet=0.2, Rcore=0.1, Tools=ditauTools) - ToolSvc += DiTauLowPtBuilder - DerivationFrameworkJob += DiTauLowPtBuilder - - print ("Low-pt di-tau building has been scheduled") -''' + Seq += DiTauLowPtBuilder diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauJetsCPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauJetsCPContent.py index 7fc38cbb54c33c83d8906590722ace6e689182d7..4892bc607d8b4762c234748a6fec0c1773edfb35 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauJetsCPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/python/TauJetsCPContent.py @@ -5,7 +5,7 @@ TauJetsCPContent = [ "InDetTrackParticles", "InDetTrackParticlesAux.phi.vertexLink.theta.qOverP.truthParticleLink.truthMatchProbability", "TauJets", -"TauJetsAux.pt.eta.phi.m.tauTrackLinks.jetLink.vertexLink.charge.isTauFlags.BDTJetScore.BDTEleScore.ptFinalCalib.etaFinalCalib.phiFinalCalib.mFinalCalib.electronLink.EleMatchLikelihoodScore.pt_combined.eta_combined.phi_combined.m_combined.BDTJetScoreSigTrans.BDTEleScoreSigTrans.PanTau_DecayMode.RNNJetScore.RNNJetScoreSigTrans.seedJetWidth.seedJetJvt.BDTEleScore_retuned.BDTEleScoreSigTrans_retuned.BDTEleLoose_retuned.BDTEleMedium_retuned.BDTEleTight_retuned.seedTrackWidthPt1000.seedTrackWidthPt500.truthParticleLink.truthJetLink", +"TauJetsAux.pt.eta.phi.m.tauTrackLinks.jetLink.vertexLink.charge.isTauFlags.BDTJetScore.BDTEleScore.ptFinalCalib.etaFinalCalib.phiFinalCalib.mFinalCalib.electronLink.EleMatchLikelihoodScore.pt_combined.eta_combined.phi_combined.m_combined.BDTJetScoreSigTrans.BDTEleScoreSigTrans.PanTau_DecayMode.RNNJetScore.RNNJetScoreSigTrans.seedJetWidth.seedJetJvt.seedTrackWidthPt1000.seedTrackWidthPt500.truthParticleLink.truthJetLink", "TauTracks", "TauTracksAux.pt.eta.phi.flagSet.trackLinks", "TruthTaus", diff --git a/Reconstruction/DiTauRec/python/DiTauAlgorithmsHolder.py b/Reconstruction/DiTauRec/python/DiTauAlgorithmsHolder.py index d85146415b258e3b3130ab68c0aa1c4932a84149..914480beeed2d0f3eedcb73582ae34746d5ccb8b 100644 --- a/Reconstruction/DiTauRec/python/DiTauAlgorithmsHolder.py +++ b/Reconstruction/DiTauRec/python/DiTauAlgorithmsHolder.py @@ -88,11 +88,11 @@ def getElMuFinder(): return ElMuFinder -def setupTJVFTool(): - from AthenaCommon.AppMgr import ToolSvc +def getTVATool(): + _name = sPrefix + 'TVATool' - from JetRec.JetRecConf import JetAlgorithm - jetTrackAlg = JetAlgorithm("JetTrackAlg_forDiTaus") + if _name in cached_instances: + return cached_instances[_name] from JetRecTools.JetRecToolsConf import TrackVertexAssociationTool TVATool = TrackVertexAssociationTool("TVATool_forDiTaus", @@ -102,23 +102,24 @@ def setupTJVFTool(): MaxTransverseDistance=2.5, # in mm MaxLongitudinalDistance=2 # in mm ) - + from AthenaCommon.AppMgr import ToolSvc ToolSvc += TVATool + + from JetRec.JetRecConf import JetAlgorithm + jetTrackAlg = JetAlgorithm(name=_name) jetTrackAlg.Tools = [TVATool] - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - topSequence += jetTrackAlg + cached_instances[_name] = jetTrackAlg + return jetTrackAlg +# requires getTVATool def getVertexFinder(): _name = sPrefix + 'VertexFinder' if _name in cached_instances: return cached_instances[_name] - setupTJVFTool() - from DiTauRec.DiTauRecConf import VertexFinder VertexFinder = VertexFinder(name=_name, PrimVtxContainerName="PrimaryVertices", diff --git a/Reconstruction/DiTauRec/python/DiTauBuilder.py b/Reconstruction/DiTauRec/python/DiTauBuilder.py index cf1544248235d48d9291f3fb0083658dcbebd607..c41f0c7b49c4b3824a4c9c50d6627b3700aa07ec 100644 --- a/Reconstruction/DiTauRec/python/DiTauBuilder.py +++ b/Reconstruction/DiTauRec/python/DiTauBuilder.py @@ -52,12 +52,11 @@ class DiTauBuilder(Configured): from InDetRecExample.InDetJobProperties import InDetFlags from JetRec.JetRecFlags import jetFlags if (InDetFlags.doVertexFinding() and jetFlags.useTracks()) or diTauFlags.doVtxFinding: + topSequence += DiTauAlgs.getTVATool() tools.append(DiTauAlgs.getVertexFinder()) - pass tools.append(DiTauAlgs.getDiTauTrackFinder()) if diTauFlags.doCellFinding: tools.append(DiTauAlgs.getCellFinder(self.write_jet_cells, self.write_subjet_cells)) - pass if not diTauFlags.doCellFinding: self.use_cells = False