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) {