diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h
index aa06848c7a6f0de04f4e20f5fefc803646dba99d..a21e573f7c2f10a5a3da5521a30e4d43d6a88de2 100644
--- a/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h
+++ b/TileCalorimeter/TileCalib/TileCalibAlgs/TileCalibAlgs/TileDigiNoiseCalibAlg.h
@@ -20,6 +20,7 @@
 
 // Athena includes
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "xAODEventInfo/EventInfo.h"
 
 // Tile includes
 #include "TileConditions/TileCablingService.h"
@@ -86,6 +87,8 @@ class TileDigiNoiseCalibAlg: public AthAlgorithm {
     SG::ReadHandleKey<TileDQstatus> m_dqStatusKey;
     SG::ReadHandleKey<TileDigitsContainer> m_digitsContainerKey{this,
       "TileDigitsContainer", "TileDigitsCnt", "Tile digits container"};
+    SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this,
+      "EventInfo", "EventInfo", "EventInfo key"};
 
   // Tools / storegate info
     ToolHandle<TileRawChannelBuilderFlatFilter> m_adderFilterAlgTool;
diff --git a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx
index 9d7f8cf0bea892c39063893be1ac3026e324b71b..0b8d5d9c6312af920957b7c7887b33092cace623 100644
--- a/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx
+++ b/TileCalorimeter/TileCalib/TileCalibAlgs/src/TileDigiNoiseCalibAlg.cxx
@@ -110,6 +110,12 @@ StatusCode TileDigiNoiseCalibAlg::initialize() {
 
   CHECK( m_dqStatusKey.initialize() );
 
+  if (!m_eventInfoKey.key().empty()) {
+    ATH_CHECK( m_eventInfoKey.initialize() );
+  }
+  // TileDigitsContainer initialization
+  ATH_CHECK( m_digitsContainerKey.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
@@ -120,9 +126,6 @@ StatusCode TileDigiNoiseCalibAlg::FirstEvt_initialize() {
   // find TileCablingService
   m_cabling = TileCablingService::getInstance();
 
-  // TileDigitsContainer initialization
-  ATH_CHECK( m_digitsContainerKey.initialize() );
-
   // retrieve TileID helper from det store
   CHECK( detStore()->retrieve(m_tileID) );
 
@@ -308,8 +311,9 @@ void TileDigiNoiseCalibAlg::StoreRunInfo (const TileDQstatus* dqStatus) {
     }
   } else {// monogain can use eventinfo
 
-    const xAOD::EventInfo* eventInfo(0);
-    if (evtStore()->retrieve(eventInfo).isFailure()) {
+    SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey); 
+
+    if ( !eventInfo.isValid() ) {
       ATH_MSG_ERROR( "No EventInfo object found! Can't read run number!" );
       m_run = 0;
       m_time = 0;
@@ -322,6 +326,7 @@ void TileDigiNoiseCalibAlg::StoreRunInfo (const TileDQstatus* dqStatus) {
       else
         m_trigType = 0;
     }
+
   }
 
   if (m_time != 0) {