From bf8c0bd0b868e96fa62f30ffb1c0b86d34b539e4 Mon Sep 17 00:00:00 2001 From: Oleg Kuprash <oleg.kuprash@cern.ch> Date: Mon, 12 Oct 2020 15:09:05 +0200 Subject: [PATCH] Switch to unique_ptr, minor updates --- .../src/TriggerEDMDeserialiserAlg.cxx | 17 +++++++---------- .../src/TriggerEDMDeserialiserAlg.h | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx index beb107095d5..1779f88336e 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx @@ -22,7 +22,6 @@ #include "TriggerEDMCLIDs.h" #include "TFile.h" -#include "TList.h" #include "TStreamerInfo.h" #include "PathResolver/PathResolver.h" @@ -300,23 +299,21 @@ void TriggerEDMDeserialiserAlg::toBuffer( TriggerEDMDeserialiserAlg::PayloadIter void TriggerEDMDeserialiserAlg::add_bs_streamerinfos(){ std::string extStreamerInfos = "bs-streamerinfos.root"; - std::string extFile = PathResolver::find_file (extStreamerInfos, "DATAPATH"); - ATH_MSG_DEBUG( "Using " << extFile ); - TFile f(extFile.c_str()); - TList *a = f.GetStreamerInfoList(); - TIter nextinfo(a); - TStreamerInfo *inf; - while ((inf = (TStreamerInfo *)nextinfo()) != 0){ + std::string extFilePath = PathResolver::find_file(extStreamerInfos, "DATAPATH"); + ATH_MSG_DEBUG( "Using " << extFilePath ); + TFile extFile(extFilePath.c_str()); + m_streamerInfoList = std::unique_ptr<TList>(extFile.GetStreamerInfoList()); + for(const auto&& infObj: *m_streamerInfoList) { + auto inf = (TStreamerInfo*)infObj; TString t_name=inf->GetName(); if (t_name.BeginsWith("listOfRules")){ ATH_MSG_WARNING( "Could not re-load class " << t_name ); continue; } inf->BuildCheck(); - //this triggers a crash on lcg60 TClass *cl = inf->GetClass(); if (cl) ATH_MSG_DEBUG( "external TStreamerInfo for " << cl->GetName() - << " checksum: " << inf->GetCheckSum() ); + << " checksum: " << std::hex << inf->GetCheckSum() ); } } diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h index 7dfcc464571..e0c03e0a506 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h @@ -12,6 +12,7 @@ #include "AthenaKernel/IAthenaSerializeSvc.h" #include "TrigSerializeTP/TrigSerTPTool.h" +#include "TList.h" /** @@ -59,6 +60,8 @@ private: ToolHandle<TrigSerTPTool> m_tpTool{ this, "TPTool", "TrigSerTPTool/TrigSerTPTool", "Tool to do Transient/Persistent conversion (Old EDM)"}; + std::unique_ptr<TList> m_streamerInfoList; + typedef std::vector<uint32_t> Payload; typedef std::vector<uint32_t>::const_iterator PayloadIterator; -- GitLab