From bfb827c2b35bc0a933cc10493313a0183c209ebe Mon Sep 17 00:00:00 2001
From: Tim Martin <tim.martin@cern.ch>
Date: Wed, 21 Jun 2017 09:42:01 +0000
Subject: [PATCH] Merge branch '21.0-fix-AODThinning' into '21.0'

Make AOD CaloCluster and particle flow object thinning robust against missing containers

See merge request !2808

Former-commit-id: 1770171c4082e5cdf9a237197e6bbb21510dba1b
---
 .../src/ThinNegativeEnergyCaloClustersAlg.cxx              | 7 ++++---
 .../ThinningUtils/src/ThinNegativeEnergyNeutralPFOsAlg.cxx | 5 +++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyCaloClustersAlg.cxx b/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyCaloClustersAlg.cxx
index 5ad00f5b072..6809449c90e 100644
--- a/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyCaloClustersAlg.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyCaloClustersAlg.cxx
@@ -100,7 +100,7 @@ StatusCode ThinNegativeEnergyCaloClustersAlg::execute()
     // Increase the event counter
     ++m_nEventsProcessed;
     
-    // Is truth thinning required?
+    // Is thinning required?
     if (!m_doThinning) {
         return StatusCode::SUCCESS;
     } 
@@ -110,8 +110,9 @@ StatusCode ThinNegativeEnergyCaloClustersAlg::execute()
     if (evtStore()->contains<xAOD::CaloClusterContainer>(m_caloClustersKey)) {
         CHECK( evtStore()->retrieve( caloClusters , m_caloClustersKey ) );
     } else {
-        ATH_MSG_FATAL("No CaloClusterContainer with key "+m_caloClustersKey+" found.");
-        return StatusCode::FAILURE;
+        ATH_MSG_INFO("No CaloClusterContainer with key "+m_caloClustersKey+" found. Thinning cannot be applied for this container");
+        m_doThinning = false;
+        return StatusCode::SUCCESS;
     }
 
     // Set up masks
diff --git a/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyNeutralPFOsAlg.cxx b/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyNeutralPFOsAlg.cxx
index c09f4f53973..22ea608308e 100644
--- a/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyNeutralPFOsAlg.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/ThinningUtils/src/ThinNegativeEnergyNeutralPFOsAlg.cxx
@@ -111,8 +111,9 @@ StatusCode ThinNegativeEnergyNeutralPFOsAlg::execute()
     if (evtStore()->contains<xAOD::PFOContainer>(m_neutralPFOsKey)) {
         CHECK( evtStore()->retrieve( neutralPFOs , m_neutralPFOsKey ) );
     } else {
-        ATH_MSG_FATAL("No PFOContainer with key "+m_neutralPFOsKey+" found.");
-        return StatusCode::FAILURE;
+        ATH_MSG_INFO("No PFOContainer with key "+m_neutralPFOsKey+" found. Thinning cannot be applied to this container");
+        m_doThinning = false;
+        return StatusCode::SUCCESS;
     }
 
     // Set up masks
-- 
GitLab