From 2de971428afb4b3ad6fb37fe78dde594e7094c4c Mon Sep 17 00:00:00 2001
From: Dirk Uwe Duschinger <dirk.duschinger@cern.ch>
Date: Wed, 18 May 2016 19:06:48 +0200
Subject: [PATCH] see ChangeLog (TauAnalysisTools-00-01-40)

- CommonEfficiencyTool: fix for coverity issue
- TauOverlappingElectronLLHDecorator: fix for TauJet_v3
- TauSelectionTool: fix for TauJet_v3
- TauSmearingTool: fix for coverity issue
- TauTruthMatchingTool: fix for coverity issue


Former-commit-id: 669f757e2cde440c3ffb15368644f6ac54da2606
---
 .../Root/CommonEfficiencyTool.cxx                 |  3 +++
 .../TauID/TauAnalysisTools/Root/SelectionCuts.cxx | 15 +++++++++++++--
 .../Root/TauEfficiencyTriggerTool.cxx             |  3 +++
 .../Root/TauOverlappingElectronLLHDecorator.cxx   |  2 +-
 .../TauAnalysisTools/Root/TauSelectionTool.cxx    |  1 +
 .../TauAnalysisTools/Root/TauSmearingTool.cxx     |  1 +
 .../Root/TauTruthMatchingTool.cxx                 |  2 +-
 .../TauAnalysisTools/SelectionCuts.h              |  1 +
 .../TauAnalysisTools/TauSelectionTool.h           |  1 -
 .../TauAnalysisTools/TauSmearingTool.h            |  4 +++-
 10 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx b/PhysicsAnalysis/TauID/TauAnalysisTools/Root/CommonEfficiencyTool.cxx
index 21c97031f19a..5a5f2e49d279 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 f969de508205..1845c5da2f9b 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 dea99d4f896a..7e2c47109aa5 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 442ea8de12dc..501dd801f654 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 86cc7d06987f..a854c7a45863 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 8eaa9a7ea8b4..4dd57e19856e 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 ac5638af9440..80918836b90e 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 9061c258d062..1ec3ff2cde1e 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 6d7b1ec4e9b3..92ce0946bc69 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 13b33d768535..f0a4a3ad9cf4 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
-- 
GitLab