From c5a3a47ae9754fd85c20dcacdf86a678aa922f10 Mon Sep 17 00:00:00 2001
From: adbailey <adam.bailey@cern.ch>
Date: Tue, 17 Jul 2018 17:54:26 +0200
Subject: [PATCH] Fixed bug in retrieving tools via ToolHandleArray in
 algorithms. Also tidied up a few lines

---
 Reconstruction/tauRec/src/TauProcessorAlg.cxx | 33 +++++++------------
 Reconstruction/tauRec/src/TauRunnerAlg.cxx    | 33 +++++++------------
 Reconstruction/tauRec/tauRec/TauRunnerAlg.h   |  3 +-
 3 files changed, 24 insertions(+), 45 deletions(-)

diff --git a/Reconstruction/tauRec/src/TauProcessorAlg.cxx b/Reconstruction/tauRec/src/TauProcessorAlg.cxx
index 86524146a3a0..4df479fa88e7 100644
--- a/Reconstruction/tauRec/src/TauProcessorAlg.cxx
+++ b/Reconstruction/tauRec/src/TauProcessorAlg.cxx
@@ -53,9 +53,14 @@ TauProcessorAlg::~TauProcessorAlg() {
 //-----------------------------------------------------------------------------
 StatusCode TauProcessorAlg::initialize() {
 
+    ATH_CHECK( m_jetInputContainer.initialize() );
+    ATH_CHECK( m_tauOutputContainer.initialize() );
+    ATH_CHECK( m_tauTrackOutputContainer.initialize() );
+    ATH_CHECK( m_tauShotClusOutputContainer.initialize() );
+    ATH_CHECK( m_tauShotPFOOutputContainer.initialize() );
+    ATH_CHECK( m_tauPi0CellOutputContainer.initialize() );
 
-    //ATH_MSG_INFO("FF::TauProcessorAlg :: initialize()");
-  CHECK( m_cellMakerTool.retrieve() );
+    ATH_CHECK( m_cellMakerTool.retrieve() );
 
     //-------------------------------------------------------------------------
     // No tools allocated!
@@ -65,30 +70,21 @@ StatusCode TauProcessorAlg::initialize() {
         return StatusCode::FAILURE;
     }
 
-    StatusCode sc;
-
-
     //-------------------------------------------------------------------------
     // Allocate tools
     //-------------------------------------------------------------------------
+    ATH_CHECK( m_tools.retrieve() );
     ToolHandleArray<ITauToolBase> ::iterator itT = m_tools.begin();
     ToolHandleArray<ITauToolBase> ::iterator itTE = m_tools.end();
     ATH_MSG_INFO("List of tools in execution sequence:");
     ATH_MSG_INFO("------------------------------------");
 
-
     unsigned int tool_count = 0;
 
     for (; itT != itTE; ++itT) {
-        sc = itT->retrieve();
-        if (sc.isFailure()) {
-            ATH_MSG_WARNING("Cannot find tool named <" << *itT << ">");
-	    return StatusCode::FAILURE;
-        } else {
-            ++tool_count;
-            ATH_MSG_INFO((*itT)->type() << " - " << (*itT)->name());
-	    (*itT)->setTauEventData(&m_data);
-	}
+      ++tool_count;
+      ATH_MSG_INFO((*itT)->type() << " - " << (*itT)->name());
+      (*itT)->setTauEventData(&m_data);
     }
     ATH_MSG_INFO(" ");
     ATH_MSG_INFO("------------------------------------");
@@ -100,13 +96,6 @@ StatusCode TauProcessorAlg::initialize() {
 
     ///////////////////////////////////////////////////////////////////////////
 
-    ATH_CHECK( m_jetInputContainer.initialize() );
-    ATH_CHECK( m_tauOutputContainer.initialize() );
-    ATH_CHECK( m_tauTrackOutputContainer.initialize() );
-    ATH_CHECK( m_tauShotClusOutputContainer.initialize() );
-    ATH_CHECK( m_tauShotPFOOutputContainer.initialize() );
-    ATH_CHECK( m_tauPi0CellOutputContainer.initialize() );
-
     return StatusCode::SUCCESS;
 }
 
diff --git a/Reconstruction/tauRec/src/TauRunnerAlg.cxx b/Reconstruction/tauRec/src/TauRunnerAlg.cxx
index 22c126a44255..e2cc6e30c6dc 100644
--- a/Reconstruction/tauRec/src/TauRunnerAlg.cxx
+++ b/Reconstruction/tauRec/src/TauRunnerAlg.cxx
@@ -56,33 +56,30 @@ StatusCode TauRunnerAlg::initialize() {
         return StatusCode::FAILURE;
     }
 
+    ATH_CHECK( m_tauInputContainer.initialize() );
+
+    ATH_CHECK( m_tauOutputContainer.initialize() );
     ATH_CHECK( m_neutralPFOOutputContainer.initialize() );
     ATH_CHECK( m_pi0ClusterOutputContainer.initialize() );
     ATH_CHECK( m_hadronicPFOOutputContainer.initialize() );
     ATH_CHECK( m_vertexOutputContainer.initialize() );
     ATH_CHECK( m_chargedPFOOutputContainer.initialize() );
-    StatusCode sc;
 
     //-------------------------------------------------------------------------
     // Allocate tools
     //-------------------------------------------------------------------------
+    ATH_CHECK( m_tools.retrieve() );
+
     ToolHandleArray<ITauToolBase> ::iterator itT = m_tools.begin();
     ToolHandleArray<ITauToolBase> ::iterator itTE = m_tools.end();
+
     ATH_MSG_INFO("List of tools in execution sequence:");
     ATH_MSG_INFO("------------------------------------");
-
     unsigned int tool_count = 0;
-
     for (; itT != itTE; ++itT) {
-        sc = itT->retrieve();
-        if (sc.isFailure()) {
-            ATH_MSG_WARNING("Cannot find tool named <" << *itT << ">");
-	    return StatusCode::FAILURE;
-        } else {
-            ++tool_count;
-            ATH_MSG_INFO((*itT)->type() << " - " << (*itT)->name());
-	    (*itT)->setTauEventData(&m_data);
-	}
+      ++tool_count;
+      ATH_MSG_INFO((*itT)->type() << " - " << (*itT)->name());
+      (*itT)->setTauEventData(&m_data);
     }
     ATH_MSG_INFO(" ");
     ATH_MSG_INFO("------------------------------------");
@@ -91,12 +88,8 @@ StatusCode TauRunnerAlg::initialize() {
         ATH_MSG_ERROR("could not allocate any tool!");
         return StatusCode::FAILURE;
     }
-
     ///////////////////////////////////////////////////////////////////////////
 
-    ATH_CHECK( m_tauInputContainer.initialize() );
-    ATH_CHECK( m_tauOutputContainer.initialize() );
-
     return StatusCode::SUCCESS;
 }
 
@@ -125,7 +118,6 @@ StatusCode TauRunnerAlg::finalize() {
   } else  {
   }
 
-
   return StatusCode::SUCCESS;
 
 }
@@ -137,8 +129,6 @@ StatusCode TauRunnerAlg::execute() {
   
   StatusCode sc;
 
-
-
     // write neutral PFO container
     xAOD::PFOContainer* neutralPFOContainer = new xAOD::PFOContainer();
     xAOD::PFOAuxContainer* neutralPFOAuxStore = new xAOD::PFOAuxContainer();
@@ -225,8 +215,9 @@ StatusCode TauRunnerAlg::execute() {
           sc = (*itT)->executePi0ClusterCreator(*pTau, *neutralPFOContainer, *hadronicClusterPFOContainer, *pi0CaloClusterContainer);
         }
 	else if ( (*itT)->name().find("Pi0ClusterScaler") != std::string::npos){
-	sc = (*itT)->executePi0ClusterScaler(*pTau, *chargedPFOContainer);
-	}else {
+	  sc = (*itT)->executePi0ClusterScaler(*pTau, *chargedPFOContainer);
+	}
+	else {
 	  sc = (*itT)->execute(*pTau);
 	}
 	if (sc.isFailure())
diff --git a/Reconstruction/tauRec/tauRec/TauRunnerAlg.h b/Reconstruction/tauRec/tauRec/TauRunnerAlg.h
index 7b9fcde05185..ccda20daaf7a 100644
--- a/Reconstruction/tauRec/tauRec/TauRunnerAlg.h
+++ b/Reconstruction/tauRec/tauRec/TauRunnerAlg.h
@@ -59,8 +59,7 @@ class TauRunnerAlg: public AthAlgorithm
 	SG::WriteHandleKey<xAOD::CaloClusterContainer> m_pi0ClusterOutputContainer{this,"Key_pi0ClusterOutputContainer", "TauPi0Clusters", "tau pi0cluster output"};
 	SG::WriteHandleKey<xAOD::PFOContainer> m_hadronicPFOOutputContainer{this,"Key_hadronicPFOOutputContainer", "TauHadronicParticleFlowObjects", "tau hadronic pfo out key"};
 	SG::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer{this,"Key_vertexOutputContainer", "TauSecondaryVertices", "input vertex container key"};
-	SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer{this,"Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects", "tau charged pfo o\
-ut key"};
+	SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer{this,"Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects", "tau charged pfo out key"};
 
 	
 };
-- 
GitLab