diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawDataProvider.cxx
index abe679742d7ea1fc7ba395a463fbba7c691139a0..1e51a7d1999df0e3203deb580a26dc4539803777 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 5d2f3df901723ad603012cfb10280835053aaab1..bc8f0cc1ffd8bedc32e39fda96bac3711343082a 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 fdd454ead890d4409ef13b1b7d5ed9b8cdadfdef..8b889af61b558775a9bb28ea491028dbdf050aff 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 7f3c93be1474251708d202429e26fc653cd0a0c9..dfd4411ce8144e0cdcf0e6bd8ad1a7fe2f035d12 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 75d96f777e81272e9a5631e0e939d627c2da26a8..5a06b4edad9e5cabb61b127eddf3aebe4cf291c6 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 78b1001d23a3df61d5452889a460dbd672c252dd..e8ecaf7be483951c5f8db71184ee721bc7d81e0f 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 730bb0d2e1eb04e812de2579d374a382c829d9a6..2aa0a0aabaff278941f401da197d0de82d8b71e5 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 2a619a9f72f3a43d9b12712e481b2e0a7a4a2521..5a4c40a59797070bc556bba6e69cfb2081835745 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 472be25442870cc2d2b770b048f552fa58e204cd..0dd77b7e81ca0e40b11d1977e5b5ba25d10e723d 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 487cbdfe596cef1dfb7a33c7fa09572039624d42..b2d8193eb31f8205c4d46e1c3eda8e40a2ee4a5b 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 e4becf6d13fb4ffb17cf6361f6808decaffe5d9e..08e083cb2371494876f481143b7a40303346972f 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 b80fc0b701fe53fafeeaabe23ffc565e7643c52a..f9c1965efe2162971fec03b60f650a3de4cf489b 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 ba797aed0d3f082690b453204d4abcd2eea036cb..2ec2b232dbc5c2e7cd68ebbca74400d73a7eead2 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());