diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx
index 21c97031f19a45dd0500bbc03a210726b41ec00c..5a5f2e49d279354dfe1e565a013469cb9edde2a1 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx
@@ -10,6 +10,9 @@
 #include "TauAnalysisTools/TauEfficiencyCorrectionsTool.h"
 #include "xAODTruth/TruthParticleContainer.h"
 
+// ROOT include(s)
+#include "TH2F.h"
+
 using namespace TauAnalysisTools;
 
 //______________________________________________________________________________
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/SelectionCuts.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/SelectionCuts.cxx
index f969de5082051b7a8a7638fea7432aa05ad11daf..1845c5da2f9b8cbb89290ad8256d377d38651be9 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/SelectionCuts.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/SelectionCuts.cxx
@@ -439,6 +439,12 @@ SelectionCutEleOLR::SelectionCutEleOLR(TauSelectionTool* tTST)
   , m_tTOELLHDecorator(0)
   , m_bCheckEleMatchPassAvailable(true)
   , m_bEleMatchPassAvailable(true)
+#ifndef XAODTAU_VERSIONS_TAUJET_V3_H
+  , m_sEleOlrLhScoreDecorationName("ele_match_lhscore")
+#else
+  , m_sEleOlrLhScoreDecorationName("EleMatchLikelihoodScore")
+#endif
+
 {
   m_hHistCutPre = CreateControlPlot("hEleOLR_pre","EleOLR_pre;Electron Likelihood Score; events",100,-4,4);
   m_hHistCut = CreateControlPlot("hEleOLR_cut","EleOLR_cut;Electron Likelihood Score; events",100,-4,4);
@@ -458,7 +464,7 @@ void SelectionCutEleOLR::fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist)
 {
   // run this to get ele_match_lhscore decoration
   getEvetoPass(xTau);
-  static SG::AuxElement::ConstAccessor<float> accEleMatchLhscore("ele_match_lhscore");
+  static SG::AuxElement::ConstAccessor<float> accEleMatchLhscore(m_sEleOlrLhScoreDecorationName.c_str());
   hHist.Fill(accEleMatchLhscore(xTau));
 }
 
@@ -480,7 +486,7 @@ bool SelectionCutEleOLR::accept(const xAOD::TauJet& xTau)
     return true;
   }
 
-  static SG::AuxElement::ConstAccessor<float> accEleMatchLhscore("ele_match_lhscore");
+  static SG::AuxElement::ConstAccessor<float> accEleMatchLhscore(m_sEleOlrLhScoreDecorationName.c_str());
   m_tTST->msg() << MSG::VERBOSE << "Tau failed EleOLR requirement, tau overlapping electron llh score: " << accEleMatchLhscore(xTau) << endmsg;
   return false;
 }
@@ -503,6 +509,7 @@ StatusCode SelectionCutEleOLR::createTOELLHDecorator()
 bool SelectionCutEleOLR::getEvetoPass(const xAOD::TauJet& xTau)
 {
 
+#ifndef XAODTAU_VERSIONS_TAUJET_V3_H
   if (m_bCheckEleMatchPassAvailable)
   {
     m_bCheckEleMatchPassAvailable = false;
@@ -518,6 +525,10 @@ bool SelectionCutEleOLR::getEvetoPass(const xAOD::TauJet& xTau)
       throw std::runtime_error ("TOELLHDecorator decoration failed\n");
   static SG::AuxElement::ConstAccessor<char> accEleOlrPass("ele_olr_pass");
   return (bool)accEleOlrPass(xTau);
+#else
+  return xTau.isTau(xAOD::TauJetParameters::PassEleOLR);
+#endif
+
 }
 
 //______________________________________________________________________________
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauEfficiencyTriggerTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauEfficiencyTriggerTool.cxx
index dea99d4f896a18c89f9c8a0db89520de4ffe4de6..7e2c47109aa559e3409ad8e06d9aa9f2ddbfbeec 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauEfficiencyTriggerTool.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauEfficiencyTriggerTool.cxx
@@ -12,6 +12,9 @@
 #include "TauAnalysisTools/TauEfficiencyTriggerTool.h"
 #include "TauAnalysisTools/TauEfficiencyCorrectionsTool.h"
 
+// ROOT include(s)
+#include "TH2F.h"
+
 using namespace TauAnalysisTools;
 
 //______________________________________________________________________________
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauOverlappingElectronLLHDecorator.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauOverlappingElectronLLHDecorator.cxx
index 442ea8de12dc0e3cd6930fa855d1931ffb3b17c1..501dd801f654f06284168b3c9b4dc3a10ecb45ca 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauOverlappingElectronLLHDecorator.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauOverlappingElectronLLHDecorator.cxx
@@ -88,7 +88,7 @@ StatusCode TauOverlappingElectronLLHDecorator::decorate(const xAOD::TauJet& xTau
 
   if (!m_bEleOLRMatchAvailableChecked)
   {
-    m_bEleOLRMatchAvailable = xTau.isAvailable<char>("ele_olr_pass");
+    m_bEleOLRMatchAvailable = (xTau.isAvailable<char>("ele_olr_pass") || xTau.isAvailable<float>("EleMatchLikelihoodScore"));
     m_bEleOLRMatchAvailableChecked = true;
     if (m_bEleOLRMatchAvailable)
     {
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSelectionTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSelectionTool.cxx
index 86cc7d06987f8e845c7e8b8e082e36acbe2e44e3..a854c7a4586390e884ab8b69659c665ba21eb535 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSelectionTool.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSelectionTool.cxx
@@ -5,6 +5,7 @@
 // Local include(s):
 #include "TauAnalysisTools/TauSelectionTool.h"
 #include "TauAnalysisTools/SharedFilesVersion.h"
+#include "TauAnalysisTools/SelectionCuts.h"
 
 // Framework include(s):
 #include "PathResolver/PathResolver.h"
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSmearingTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSmearingTool.cxx
index 8eaa9a7ea8b424a294438204563b3f0667bc6984..4dd57e19856e47c631f57ea9654dfb743bdc64b4 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSmearingTool.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauSmearingTool.cxx
@@ -8,6 +8,7 @@
 // Local include(s):
 #include "TauAnalysisTools/TauSmearingTool.h"
 #include "TauAnalysisTools/SharedFilesVersion.h"
+#include "TauAnalysisTools/TauSmearingRun1Tool.h"
 
 namespace TauAnalysisTools
 {
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauTruthMatchingTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauTruthMatchingTool.cxx
index ac5638af94406424014339710433801f475dfd04..80918836b90e55da5414247890e9a7cbecad9cef 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauTruthMatchingTool.cxx
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/TauTruthMatchingTool.cxx
@@ -451,7 +451,7 @@ StatusCode TauTruthMatchingTool::findTruthTau(const xAOD::TauJet& xTau) const
     return checkTruthMatch(xTau, *m_xTruthTauContainer);
   // }
 
-  return StatusCode::SUCCESS;
+  // return StatusCode::SUCCESS;
 }
 
 //______________________________________________________________________________
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/SelectionCuts.h b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/SelectionCuts.h
index 9061c258d06280900eac61b7fcfd87ef1fe25fc7..1ec3ff2cde1efa7dd1c8812ec0b8c4133d86f767 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/SelectionCuts.h
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/SelectionCuts.h
@@ -163,6 +163,7 @@ private:
 
   StatusCode createTOELLHDecorator();
   void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist);
+  const std::string m_sEleOlrLhScoreDecorationName;
 };
 
 class SelectionCutMuonVeto
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSelectionTool.h b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSelectionTool.h
index 6d7b1ec4e9b36a76c50fe8602b1e6050092067f5..92ce0946bc69135d97c2c80529684faa6a6c0daf 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSelectionTool.h
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSelectionTool.h
@@ -23,7 +23,6 @@
 
 // Local include(s):
 #include "TauAnalysisTools/ITauSelectionTool.h"
-#include "TauAnalysisTools/SelectionCuts.h"
 #include "TauAnalysisTools/Enums.h"
 #include "TauAnalysisTools/HelperFunctions.h"
 
diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSmearingTool.h b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSmearingTool.h
index 13b33d7685357510e858eeb4997ef9cda1b0e86b..f0a4a3ad9cf41d9c6f11347adaac89db542b1cd5 100644
--- a/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSmearingTool.h
+++ b/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/TauSmearingTool.h
@@ -24,11 +24,13 @@
 #include "TauAnalysisTools/Enums.h"
 #include "TauAnalysisTools/ITauSmearingTool.h"
 #include "TauAnalysisTools/CommonSmearingTool.h"
-#include "TauAnalysisTools/TauSmearingRun1Tool.h"
 
 namespace TauAnalysisTools
 {
 
+// forward includes
+class TauSmearingRun1Tool;
+
 class TauSmearingTool
   : public asg::AsgTool
   , public virtual ITauSmearingTool