diff --git a/Simulation/FastShower/FastCaloSim/CMakeLists.txt b/Simulation/FastShower/FastCaloSim/CMakeLists.txt
index 9c634bd0f0366a248f3a1518b66f599d0c9e8db7..4c10890cb7d42ebc03818c3b1fadbe4858dbe41b 100644
--- a/Simulation/FastShower/FastCaloSim/CMakeLists.txt
+++ b/Simulation/FastShower/FastCaloSim/CMakeLists.txt
@@ -23,6 +23,8 @@ atlas_depends_on_subdirs( PUBLIC
                           Tracking/TrkEvent/TrkEventPrimitives
                           Tracking/TrkEvent/TrkParameters
                           Tracking/TrkExtrapolation/TrkExInterfaces
+                          Generators/GeneratorObjects
+                          Simulation/FastShower/FastCaloSimAthenaPool
                           PRIVATE
                           Calorimeter/CaloTrackingGeometry
                           Control/AthAllocators
@@ -32,9 +34,7 @@ atlas_depends_on_subdirs( PUBLIC
                           DetectorDescription/GeoPrimitives
                           Event/EventKernel
                           Event/NavFourMom
-                          Generators/GeneratorObjects
                           Generators/TruthUtils
-                          Simulation/FastShower/FastCaloSimAthenaPool
                           Tools/PathResolver
                           Tracking/TrkDetDescr/TrkGeometry
                           Tracking/TrkDetDescr/TrkSurfaces
diff --git a/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h b/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h
index 3fb58d5290ca063752eaa7ea37258fe828e3ee12..9a5d0d82e0d6dc39fcc362faacbdd8a4ac0fbe25 100755
--- a/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h
+++ b/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h
@@ -20,6 +20,10 @@
 #include "TrkExInterfaces/ITimedExtrapolator.h"
 #include "TrkEventPrimitives/PdgToParticleHypothesis.h"
 #include "GaudiKernel/IPartPropSvc.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/WriteHandleKey.h"
+#include "GeneratorObjects/McEventCollection.h"
+#include "FastCaloSimAthenaPool/FastShowerInfoContainer.h"
 
 /*
   #if FastCaloSim_project_release_v1 == 12
@@ -100,7 +104,8 @@ private:
   void LoadParametrizationsFromFile(TDirectory& infile,MSG::Level level=MSG::INFO);
   StatusCode OpenParamSource(std::string insource);
 
-  std::string                    m_mcLocation{"TruthEvent"};
+  SG::ReadHandleKey<McEventCollection> m_mcCollectionKey
+    {this, "McLocation", "TruthEvent"};
   std::string                    m_ParticleParametrizationFileName{""};
   std::vector< std::string >     m_AdditionalParticleParametrizationFileNames;
 
@@ -108,7 +113,8 @@ private:
   std::vector< int >             m_DB_channel;
   std::vector< std::string >     m_DB_dirname;
 
-  std::string                    m_MuonEnergyInCaloContainer{"FatrasDepositedMuonEnergyInCalo"};
+  SG::ReadHandleKey<BarcodeEnergyDepositMap> m_MuonEnergyInCaloContainerKey
+  { this, "MuonEnergyInCaloContainerName", "FatrasDepositedMuonEnergyInCalo"};
   bool                           m_simul_ID_only{true};
   bool                           m_simul_ID_v14_truth_cuts{false};
   bool                           m_simul_EM_geant_only{false};
@@ -268,7 +274,8 @@ public:
   double get_d_calo_surf(int layer) const {return m_dCalo[layer];};
 
 private:
-  std::string              m_FastShowerInfoContainerKey{"FastShowerInfoContainer"};
+  SG::WriteHandleKey<FastShowerInfoContainer>  m_FastShowerInfoContainerKey
+  { this, "FastShowerInfoContainerKey", "FastShowerInfoContainer" };
   bool                     m_storeFastShowerInfo{false};
   FastShowerInfoContainer* m_FastShowerInfoContainer{};
   Trk::PdgToParticleHypothesis        m_pdgToParticleHypothesis;
diff --git a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref
index 8c45af404a27ced6d68056692cb20a53ca1f1376..980c6beba37570b7e6668f578efcc10d6fd4c62f 100644
--- a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref
+++ b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref
@@ -1,4 +1,4 @@
-Mon Dec 24 16:25:50 EST 2018
+Fri Dec 28 15:03:54 EST 2018
 Py:Athena            INFO including file "AthenaCommon/Preparation.py"
 Py:Athena            INFO using release [?-21.0.0] [i686-slc5-gcc43-dbg] [?/?] -- built on [?]
 Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
@@ -22,7 +22,7 @@ Py:TileInfoConf.     INFO Changing default TileCondToolNoiseSample configuration
 Py:TileInfoConf.     INFO Changing default TileCondToolTiming configuration to COOL source
 Py:TileConditions_jobOptions.py    INFO Adjusting TileInfo to return cell noise for Opt.Filter without iterations
 Py:Athena            INFO Importing MagFieldServices.SetupField
-Py:ConfiguredFactory    INFO imported 88 confDb modules in 0.08 seconds
+Py:ConfiguredFactory    INFO imported 88 confDb modules in 0.02 seconds
 Py:Athena            INFO Importing MagFieldServices.MagFieldServicesConfig
 Py:FastCaloSimFactory::configure:    INFO now configure the non-interacting propagator...
 Py:FastCaloSimFactory::configure:    INFO configure nono-interacting propagator finished
@@ -59,13 +59,13 @@ Py:FastCaloSimFactory::configure:    INFO all values:
 |-ExtraOutputs                               = []  (default: [])
 |-Extrapolator                               = PublicToolHandle('Trk::TimedExtrapolator/TimedExtrapolator')
 |                                            (default: '')
-|-FastShowerInfoContainerKey                 = 'FastShowerInfoContainer'
+|-FastShowerInfoContainerKey                 = 'StoreGateSvc+FastShowerInfoContainer'
 |-ID_cut_off_r                               = [1070.0, 1030.0]  (default: [1070.0, 1030.0])
 |-ID_cut_off_z                               = [800.0, 3400.0]  (default: [800.0, 3400.0])
 |-Invisibles                                 = [0]  (default: [0])
-|-McLocation                                 = 'TruthEvent'
+|-McLocation                                 = 'StoreGateSvc+TruthEvent'
 |-MonitorService                             = 'MonitorSvc'
-|-MuonEnergyInCaloContainerName              = 'FatrasDepositedMuonEnergyInCalo'
+|-MuonEnergyInCaloContainerName              = 'StoreGateSvc+FatrasDepositedMuonEnergyInCalo'
 |-OutputLevel                                = 0
 |-PartPropSvc                                = ServiceHandle('PartPropSvc')
 |-ParticleParametrizationFileName            = '/home/sss/nobackup/atlas/ReleaseData/v20/FastCaloSim/v1/ParticleEnergyParametrization.root'
@@ -86,7 +86,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
-                                          running on karma on Mon Dec 24 16:25:54 2018
+                                          running on karma on Fri Dec 28 15:03:57 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -345,10 +345,11 @@ TileSampleNoise...   INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.Tile
 TileTimingCondA...   INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY"
 PyComponentMgr       INFO Initializing PyComponentMgr...
 testalg1             INFO Initializing testalg1...
+ClassIDSvc           INFO  getRegistryEntries: read 5013 CLIDRegistry entries for module ALL
 ToolSvc.tool1        INFO Initialisating started
 CaloMgrDetDescrCnv   INFO in createObj: creating a Calo Detector Manager object in the detector store
 CaloIdMgrDetDes...   INFO in createObj: creating a CaloDescrManager object in the detector store
-ClassIDSvc           INFO  getRegistryEntries: read 5168 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 159 CLIDRegistry entries for module ALL
 CaloIDHelper_ID...   INFO in createObj: creating a CaloDM_ID helper object in the detector store
 CaloDM_ID            INFO initialize_from_dictionary
 AtlasDetectorID      INFO initialize_from_dictionary - OK
@@ -563,11 +564,11 @@ AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 1 events pr
 TileInfoLoader       INFO Handling EndRun incident
 TileInfoLoader       INFO Removed TileInfo object from detector store.
 /home/sss/atlas...   INFO Database being retired...
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A
+/home/sss/atlas...   INFO Database being retired...
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20
 /home/sss/atlas...   INFO Database being retired...
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] 2B8BB54A-2F81-7B49-8484-60F83666998E
-/home/sss/atlas...   INFO Database being retired...
-Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
@@ -583,7 +584,7 @@ IOVDbFolder          INFO Folder /EXT/DCS/MAGNETS/SENSORDATA (AttrListColl) db-r
 IOVDbFolder          INFO Folder /GLOBAL/BField/Maps (AttrListColl) db-read 1/1 objs/chan/bytes 3/3/202 ((     0.06 ))s
 IOVDbFolder          INFO Folder /GLOBAL/TrackingGeo/LayerMaterialV2 (PoolRef) db-read 1/1 objs/chan/bytes 1/1/231 ((     0.00 ))s
 IOVDbFolder          INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 ((     0.06 ))s
-IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 ((     0.07 ))s
+IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 ((     0.06 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 ((     0.00 ))s
@@ -591,14 +592,14 @@ IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-r
 IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 ((     0.01 ))s
-IOVDbFolder          INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97884 ((     0.01 ))s
+IOVDbFolder          INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97884 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 ((     0.00 ))s
 IOVDbFolder          INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 ((     0.00 ))s
 IOVDbFolder          INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 ((     0.00 ))s
-IOVDbSvc             INFO  bytes in ((      0.32 ))s
+IOVDbSvc             INFO  bytes in ((      0.30 ))s
 IOVDbSvc             INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: ((     0.00 ))s
-IOVDbSvc             INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: ((     0.07 ))s
-IOVDbSvc             INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: ((     0.11 ))s
+IOVDbSvc             INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: ((     0.06 ))s
+IOVDbSvc             INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: ((     0.10 ))s
 IOVDbSvc             INFO Connection COOLOFL_GLOBAL/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: ((     0.07 ))s
 IOVDbSvc             INFO Connection COOLOFL_DCS/OFLP200 : nConnect: 2 nFolders: 1 ReadTime: ((     0.07 ))s
 TileInfoLoader       INFO TileInfoLoader::finalize()
@@ -621,9 +622,9 @@ ToolSvc.Trackin...   INFO finalize() successful
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-cObjR_ALL            INFO Time User   : Tot=  260 [ms] Ave/Min/Max= 86.7(+- 88.1)/   10/  210 [ms] #=  3
-cObj_ALL             INFO Time User   : Tot=  340 [ms] Ave/Min/Max=   20(+- 55.4)/    0/  230 [ms] #= 17
-ChronoStatSvc        INFO Time User   : Tot= 32.9  [s]                                             #=  1
+cObjR_ALL            INFO Time User   : Tot=  250 [ms] Ave/Min/Max= 83.3(+-   91)/    0/  210 [ms] #=  3
+cObj_ALL             INFO Time User   : Tot=  350 [ms] Ave/Min/Max= 20.6(+- 57.6)/    0/  240 [ms] #= 17
+ChronoStatSvc        INFO Time User   : Tot= 30.5  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
index a3f2c9b1b67b006b95f8ee42d6336bd72eac47bf..39b4058e5465e50d17a4128ebc18b86b1680f779 100755
--- a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
+++ b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
@@ -13,6 +13,8 @@
 #include "GaudiKernel/StatusCode.h"
 #include "GaudiKernel/ListItem.h"
 #include "StoreGate/StoreGateSvc.h"
+#include "StoreGate/ReadHandle.h"
+#include "StoreGate/WriteHandle.h"
 #if FastCaloSim_project_release_v1 == 12
 #include "PartPropSvc/PartPropSvc.h"
 #include "CLHEP/HepPDT/ParticleData.hh"
@@ -131,8 +133,6 @@ FastShowerCellBuilderTool::FastShowerCellBuilderTool(const std::string& type, co
   for(int i=0;i<n_surfacelist;++i) m_surfacelist[i]=surfacelist[i];
   m_rndm=new TRandom3();
 
-  declareProperty("McLocation",m_mcLocation);
-
   declareProperty("ParticleParametrizationFileName",m_ParticleParametrizationFileName);
   declareProperty("AdditionalParticleParametrizationFileNames",m_AdditionalParticleParametrizationFileNames);
 
@@ -141,8 +141,6 @@ FastShowerCellBuilderTool::FastShowerCellBuilderTool(const std::string& type, co
   declareProperty("RandomService",                  m_rndmSvc,              "Name of the random number service");
   declareProperty("RandomStreamName",               m_randomEngineName,     "Name of the random number stream");
 
-  declareProperty("MuonEnergyInCaloContainerName",  m_MuonEnergyInCaloContainer);
-
   declareProperty("DoSimulWithInnerDetectorTruthOnly",m_simul_ID_only);
   declareProperty("DoSimulWithInnerDetectorV14TruthCuts",m_simul_ID_v14_truth_cuts);
   declareProperty("DoSimulWithEMGeantInteractionsOnly",m_simul_EM_geant_only);
@@ -153,7 +151,6 @@ FastShowerCellBuilderTool::FastShowerCellBuilderTool(const std::string& type, co
   declareProperty("CaloSurfaceHelper",              m_caloSurfaceHelper );
   declareProperty("CaloCoordinateTool",             m_calo_tb_coord);
 
-  declareProperty("FastShowerInfoContainerKey",     m_FastShowerInfoContainerKey);
   declareProperty("StoreFastShowerInfo",            m_storeFastShowerInfo);
 
   declareProperty("DoEnergyInterpolation",          m_jo_interpolate); //ATA: make interpolation optional
@@ -454,7 +451,7 @@ StatusCode FastShowerCellBuilderTool::initialize()
     m_mcLocation       = ged -> mcLocation();
     }
   */
-  ATH_MSG_INFO("McCollection="<< m_mcLocation);
+  ATH_MSG_INFO("McCollection="<< m_mcCollectionKey.key());
 
   //m_gentesIO = new GenAccessIO();
 
@@ -515,6 +512,19 @@ StatusCode FastShowerCellBuilderTool::initialize()
     msg(MSG::INFO)<<endmsg;
   }
 
+  ATH_CHECK( m_mcCollectionKey.initialize() );
+
+  if (m_storeFastShowerInfo) {
+    ATH_CHECK( m_FastShowerInfoContainerKey.initialize() );
+  }
+  else {
+    m_FastShowerInfoContainerKey = "";
+  }
+
+  if (!m_MuonEnergyInCaloContainerKey.key().empty()) {
+    ATH_CHECK( m_MuonEnergyInCaloContainerKey.initialize() );
+  }
+
   ATH_MSG_INFO("Initialisating finished");
   return StatusCode::SUCCESS;
 }
@@ -1592,7 +1602,7 @@ StatusCode FastShowerCellBuilderTool::process_particle(CaloCellContainer* theCel
               }
               m_letaCalo[sample]=fcx;
 
-              /* Causing to big steps!!!
+              /* Causing too big steps!!!
                  if(fcx<mineta) {
                  while(fcx<mineta){
                  m_letaCalo[sample]+=delta;
@@ -2285,6 +2295,8 @@ void FastShowerCellBuilderTool::init_shape_correction()
 
 StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContainer)
 {
+  const EventContext& ctx = Gaudi::Hive::currentContext();
+
   if(!m_is_init_shape_correction) {
     init_shape_correction();
     m_is_init_shape_correction=true;
@@ -2304,11 +2316,7 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
   MCparticleCollection Simulparticles;
   MCdo_simul_state     do_simul_state;
 
-  const McEventCollection* mcCollptr;
-  if ( evtStore()->retrieve(mcCollptr, m_mcLocation).isFailure() ) {
-    ATH_MSG_ERROR("Could not retrieve McEventCollection");
-    return StatusCode::FAILURE;
-  }
+  SG::ReadHandle<McEventCollection> mcCollptr (m_mcCollectionKey, ctx);
 
   // initialize a pileup type helper object
   //PileUpType pileupType( mcCollptr );
@@ -2339,15 +2347,16 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
   //  return StatusCode::FAILURE;
   //}
 
-  BarcodeEnergyDepositMap* MuonEnergyMap=0;
-  if(evtStore()->contains<BarcodeEnergyDepositMap>(m_MuonEnergyInCaloContainer)) {
-    if ( evtStore()->retrieve(MuonEnergyMap,m_MuonEnergyInCaloContainer).isFailure() ) {
-      ATH_MSG_WARNING("Could not get "<<m_MuonEnergyInCaloContainer<<" from SG ");
-    } else {
-      ATH_MSG_DEBUG("Got "<<m_MuonEnergyInCaloContainer<<" from SG : size="<<MuonEnergyMap->size());
+  const BarcodeEnergyDepositMap* MuonEnergyMap=0;
+  if (!m_MuonEnergyInCaloContainerKey.key().empty()) {
+    SG::ReadHandle<BarcodeEnergyDepositMap> h (m_MuonEnergyInCaloContainerKey, ctx);
+    // FIXME: Fix configuration so as not to request this object if it does not exist.
+    if (h.isValid()) {
+      MuonEnergyMap = h.cptr();
+    }
+    else {
+      ATH_MSG_DEBUG("Could not find "<<m_MuonEnergyInCaloContainerKey.key()<<" in SG ");
     }
-  } else {
-    ATH_MSG_DEBUG("Could not find "<<m_MuonEnergyInCaloContainer<<" in SG ");
   }
 
   MC_init_particle_simul_state(do_simul_state,particles);
@@ -2382,7 +2391,7 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
     }
 
     if(abs(par->pdg_id())==13 && MuonEnergyMap) {
-      std::pair<BarcodeEnergyDepositMap::iterator,BarcodeEnergyDepositMap::iterator> range=MuonEnergyMap->equal_range(par->barcode());
+      std::pair<BarcodeEnergyDepositMap::const_iterator,BarcodeEnergyDepositMap::const_iterator> range=MuonEnergyMap->equal_range(par->barcode());
       if(range.first==range.second) {
         do_simul_state[par->barcode()]=0;
         ATH_MSG_DEBUG("#="<<indpar<<": id="<<par->pdg_id()<<" stat="<<par->status()<<" bc="<<par->barcode()
@@ -2390,7 +2399,7 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
                       << " : no calo energy deposit");
       } else {
         if(msgLvl(MSG::DEBUG)) {
-          for(BarcodeEnergyDepositMap::iterator i=range.first;i!=range.second;++i) {
+          for(BarcodeEnergyDepositMap::const_iterator i=range.first;i!=range.second;++i) {
             msg(MSG::DEBUG)<<"#="<<indpar<<": id="<<par->pdg_id()<<" stat="<<par->status()<<" bc="<<par->barcode()
                            <<" pt="<<par->momentum().perp()<<" eta="<<par->momentum().eta()<<" phi="<<par->momentum().phi()
                            <<" : layer="<<i->second.sample<<" eta="<<i->second.position.eta()<<" phi="<<i->second.position.phi()
@@ -2469,12 +2478,11 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
   }
   ATH_MSG_DEBUG("finished finding particles");
 
+  std::unique_ptr<FastShowerInfoContainer> fastShowerInfoContainer;
   if(m_storeFastShowerInfo)
     {
-      ATH_MSG_DEBUG("Creating and registering the FastShowerInfoContainer with key " << m_FastShowerInfoContainerKey);
-      m_FastShowerInfoContainer = new FastShowerInfoContainer();
-      evtStore()->record( m_FastShowerInfoContainer, m_FastShowerInfoContainerKey);
-      //     log << MSG::DEBUG << m_storeGate->dump() << endmsg;
+      fastShowerInfoContainer = std::make_unique<FastShowerInfoContainer>();
+      m_FastShowerInfoContainer = fastShowerInfoContainer.get();
     }
 
   MCparticleCollectionCIter fpart = Simulparticles.begin();
@@ -2530,6 +2538,13 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine
 
   ATH_MSG_DEBUG("Executing finished calo size=" <<theCellContainer->size()<<"; "<<stat_npar<<" particle(s), "<<stat_npar_OK<<" with sc=SUCCESS");
 
+  if(m_storeFastShowerInfo)
+  {
+    ATH_MSG_DEBUG("Registering the FastShowerInfoContainer with key " << m_FastShowerInfoContainerKey);
+    SG::WriteHandle<FastShowerInfoContainer> showerHandle (m_FastShowerInfoContainerKey, ctx);
+    ATH_CHECK( showerHandle.record (std::move (fastShowerInfoContainer)) );
+  }
+
   if(releaseEvent().isFailure() ) {
     ATH_MSG_ERROR("releaseEvent() failed");
     return StatusCode::FAILURE;