From c58036f137e8596b31b92e4a5398eecfdfc7f764 Mon Sep 17 00:00:00 2001
From: abarton <Adam.Edward.Barton@cern.ch>
Date: Wed, 10 Feb 2021 15:23:40 +0000
Subject: [PATCH] More carefully reject unused tools and keys

---
 .../PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx  | 3 +++
 .../SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx     | 2 ++
 .../TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx     | 4 +++-
 .../InDetPrepRawDataFormation/src/PixelClusterization.cxx   | 3 +++
 .../InDetPrepRawDataFormation/src/SCT_Clusterization.cxx    | 1 +
 .../InDetPrepRawDataFormation/src/TRT_RIO_Maker.cxx         | 3 +++
 .../MuonCnv/MuonByteStream/src/MdtRawDataProvider.cxx       | 2 +-
 .../MuonCnv/MuonByteStream/src/RpcRawDataProvider.cxx       | 2 +-
 .../MuonCnv/MuonByteStream/src/TgcRawDataProvider.cxx       | 2 +-
 .../MuonCnv/MuonRdoToPrepData/src/CscRdoToCscPrepData.cxx   | 6 +++---
 .../MuonCnv/MuonRdoToPrepData/src/MdtRdoToMdtPrepData.cxx   | 6 +++---
 .../MuonCnv/MuonRdoToPrepData/src/RpcRdoToRpcPrepData.cxx   | 6 +++---
 .../MuonCnv/MuonRdoToPrepData/src/TgcRdoToTgcPrepData.cxx   | 5 +++--
 13 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx
index abe679742d7e..1e51a7d1999d 100644
--- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx
+++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx
@@ -56,6 +56,9 @@ StatusCode PixelRawDataProvider::initialize() {
   if (m_roiSeeded) {
     ATH_CHECK( m_roiCollectionKey.initialize() );
     ATH_CHECK(m_regionSelector.retrieve());
+  }else{
+    ATH_CHECK( m_roiCollectionKey.initialize(false) ); //clear if unneeded
+    m_regionSelector.disable();
   }
 
   ATH_CHECK(m_condCablingKey.initialize());
diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx
index 5d2f3df90172..bc8f0cc1ffd8 100644
--- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx
+++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx
@@ -39,6 +39,8 @@ StatusCode SCTRawDataProvider::initialize()
     m_cabling.disable();
   }
   else {
+    //Disable Roi requirement
+    ATH_CHECK(m_roiCollectionKey.initialize(false));
     // Retrieve Cabling tool
     ATH_CHECK(m_cabling.retrieve());
     m_regionSelector.disable();
diff --git a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx
index fdd454ead890..8b889af61b55 100644
--- a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx
+++ b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx
@@ -79,7 +79,9 @@ StatusCode TRTRawDataProvider::initialize() {
   }
   else {//Only need cabling if not using RoIs
     // Retrieve id mapping 
-  ATH_CHECK(m_CablingSvc.retrieve());
+    ATH_CHECK(m_CablingSvc.retrieve());
+    ATH_CHECK( m_roiCollectionKey.initialize(false) ); //Clear if unneeded
+    m_regionSelector.disable();
   }
 
   ATH_CHECK( m_rdoContainerKey.initialize() );
diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/PixelClusterization.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/PixelClusterization.cxx
index 7f3c93be1474..dfd4411ce814 100644
--- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/PixelClusterization.cxx
+++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/PixelClusterization.cxx
@@ -87,6 +87,9 @@ namespace InDet{
     if (m_roiSeeded) {
       ATH_CHECK( m_roiCollectionKey.initialize() );
       ATH_CHECK(m_regionSelector.retrieve());
+    }else{
+      m_regionSelector.disable();
+      ATH_CHECK( m_roiCollectionKey.initialize(false) );
     }
 
     m_clusterContainerLinkKey = m_clusterContainerKey.key();
diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx
index 75d96f777e81..5a06b4edad9e 100644
--- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx
+++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/SCT_Clusterization.cxx
@@ -66,6 +66,7 @@ namespace InDet {
       ATH_CHECK(m_roiCollectionKey.initialize());
       ATH_CHECK(m_regionSelector.retrieve());
     } else {
+      ATH_CHECK(m_roiCollectionKey.initialize(false));
       m_regionSelector.disable();
     }
 
diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/TRT_RIO_Maker.cxx b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/TRT_RIO_Maker.cxx
index 78b1001d23a3..e8ecaf7be483 100644
--- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/TRT_RIO_Maker.cxx
+++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/src/TRT_RIO_Maker.cxx
@@ -57,6 +57,9 @@ namespace InDet {
     if (m_roiSeeded.value()) {
       ATH_CHECK(m_roiCollectionKey.initialize());
       ATH_CHECK(m_regionSelector.retrieve());
+    }else{
+      ATH_CHECK(m_roiCollectionKey.initialize(false));
+      m_regionSelector.disable();
     }
 
     ATH_CHECK( m_rdoContainerKey.initialize() );
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtRawDataProvider.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtRawDataProvider.cxx
index 730bb0d2e1eb..2aa0a0aabaff 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtRawDataProvider.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtRawDataProvider.cxx
@@ -45,7 +45,7 @@ StatusCode Muon::MdtRawDataProvider::execute(const EventContext& ctx) const {
     SG::ReadHandle<TrigRoiDescriptorCollection> muonRoI(m_roiCollectionKey, ctx);
     if(!muonRoI.isValid()){
       ATH_MSG_WARNING("Cannot retrieve muonRoI "<<m_roiCollectionKey.key());
-      return StatusCode::SUCCESS;
+      return StatusCode::FAILURE;
     }
 
     // loop on RoIs
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcRawDataProvider.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcRawDataProvider.cxx
index 2a619a9f72f3..5a4c40a59797 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcRawDataProvider.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcRawDataProvider.cxx
@@ -45,7 +45,7 @@ StatusCode Muon::RpcRawDataProvider::execute(const EventContext& ctx) const {
     SG::ReadHandle<TrigRoiDescriptorCollection> muonRoI(m_roiCollectionKey, ctx);
     if(!muonRoI.isValid()){
       ATH_MSG_WARNING("Cannot retrieve muonRoI "<<m_roiCollectionKey.key());
-      return StatusCode::SUCCESS;
+      return StatusCode::FAILURE;
     }
 
     // loop on RoIs
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRawDataProvider.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRawDataProvider.cxx
index 472be2544287..0dd77b7e81ca 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRawDataProvider.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRawDataProvider.cxx
@@ -49,7 +49,7 @@ StatusCode Muon::TgcRawDataProvider::execute(const EventContext& ctx) const
     SG::ReadHandle<TrigRoiDescriptorCollection> muonRoI(m_roiCollectionKey, ctx);
     if(!muonRoI.isValid()){
       ATH_MSG_WARNING("Cannot retrieve muonRoI "<<m_roiCollectionKey.key());
-      return StatusCode::SUCCESS;
+      return StatusCode::FAILURE;
     }
 
     // loop on RoIs
diff --git a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/CscRdoToCscPrepData.cxx b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/CscRdoToCscPrepData.cxx
index 487cbdfe596c..b2d8193eb31f 100755
--- a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/CscRdoToCscPrepData.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/CscRdoToCscPrepData.cxx
@@ -43,8 +43,8 @@ StatusCode CscRdoToCscPrepData::initialize(){
 
     //Nullify key from scheduler if not needed  
     if(!m_seededDecoding){
-      m_roiCollectionKey = "";
-      m_cscCollection="";
+      ATH_CHECK(m_roiCollectionKey.initialize(false));
+      ATH_CHECK(m_cscCollection.initialize(false));
     }
     if(m_seededDecoding){
       ATH_CHECK(m_roiCollectionKey.initialize());
@@ -71,7 +71,7 @@ StatusCode CscRdoToCscPrepData::execute() {
       SG::ReadHandle<TrigRoiDescriptorCollection> muonRoI(m_roiCollectionKey);
       if(!muonRoI.isValid()){
 	ATH_MSG_WARNING("Cannot retrieve muonRoI "<<m_roiCollectionKey.key());
-	return StatusCode::SUCCESS;
+	return StatusCode::FAILURE;
       }
       else{
 	for(auto roi : *muonRoI){
diff --git a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/MdtRdoToMdtPrepData.cxx b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/MdtRdoToMdtPrepData.cxx
index e4becf6d13fb..08e083cb2371 100755
--- a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/MdtRdoToMdtPrepData.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/MdtRdoToMdtPrepData.cxx
@@ -37,8 +37,9 @@ StatusCode MdtRdoToMdtPrepData::initialize()
 
     //Nullify key from scheduler if not needed  
     if(!m_seededDecoding){
-      m_roiCollectionKey = "";
-      m_mdtCollection="";
+      ATH_CHECK(m_roiCollectionKey.initialize(false));
+      ATH_CHECK(m_mdtCollection.initialize(false));
+      m_regsel_mdt.disable();
     }
     if(m_seededDecoding){
       ATH_CHECK(m_roiCollectionKey.initialize());
@@ -60,7 +61,6 @@ StatusCode MdtRdoToMdtPrepData::execute()
     
     std::vector<IdentifierHash> myVector;
     std::vector<IdentifierHash> myVectorWithData;
-    myVector.reserve(0); // empty vector 
 
     if(m_seededDecoding){//decoding from trigger roi
       bool decoded = false;
diff --git a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/RpcRdoToRpcPrepData.cxx b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/RpcRdoToRpcPrepData.cxx
index b80fc0b701fe..f9c1965efe21 100755
--- a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/RpcRdoToRpcPrepData.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/RpcRdoToRpcPrepData.cxx
@@ -44,8 +44,9 @@ StatusCode RpcRdoToRpcPrepData::initialize(){
 
   //Nullify key from scheduler if not needed  
   if(!m_seededDecoding){
-    m_roiCollectionKey = "";
-    m_rpcCollection = "";
+    ATH_CHECK(m_roiCollectionKey.initialize(false));
+    ATH_CHECK(m_rpcCollection.initialize(false));
+    m_regsel_rpc.disable();
   }
   if(m_seededDecoding){
     ATH_CHECK(m_roiCollectionKey.initialize());
@@ -78,7 +79,6 @@ StatusCode RpcRdoToRpcPrepData::execute() {
 //         IdentifierHash bmlHash((IdentifierHash)bml);
 //         myVector.push_back(bmlHash);
 //     }
-    myVector.reserve(0); // empty vector 
 
     if(m_seededDecoding){
       bool decoded=false;
diff --git a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/TgcRdoToTgcPrepData.cxx b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/TgcRdoToTgcPrepData.cxx
index ba797aed0d3f..2ec2b232dbc5 100755
--- a/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/TgcRdoToTgcPrepData.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonRdoToPrepData/src/TgcRdoToTgcPrepData.cxx
@@ -74,8 +74,9 @@ StatusCode TgcRdoToTgcPrepData::initialize(){
   }
   //Nullify key from scheduler if not needed
   if(!m_seededDecoding){
-    m_roiCollectionKey = "";
-    m_tgcCollection="";
+    ATH_CHECK(m_roiCollectionKey.initialize(false));
+    ATH_CHECK(m_tgcCollection.initialize(false));
+    m_regsel_tgc.disable();
   }
   if(m_seededDecoding){
     ATH_CHECK(m_roiCollectionKey.initialize());
-- 
GitLab