diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArABBADecoder.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArABBADecoder.h index a07a73a6cd4379b06e0661a1442201c4c4fc95be..955af6df000d6f44f95d568812273cc84097292c 100755 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArABBADecoder.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArABBADecoder.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARABBADDECODER_H @@ -42,12 +42,12 @@ public: virtual StatusCode finalize() override; - StatusCode convert(const RawEvent* re, LArDigitContainer* coll); + StatusCode convert(const RawEvent* re, LArDigitContainer* coll) const; private: void fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment* pROB, - LArDigitContainer* coll); + LArDigitContainer* coll) const; }; #endif diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h index aeb63e3c5388366c64b4de9a4769b810784b3a7b..a59f302c84268ac64e217a1e6856dbb981662212 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARACCUMULATEDCDIGITCONTRAWEVENTCNV_H @@ -10,31 +10,29 @@ #include <stdint.h> #include <map> #include <string> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "ByteStreamCnvSvc/ByteStreamInputSvc.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class StoreGateSvc; -class MsgStream; class LArAccumulatedCalibDigitContainer; class LArRawDataContByteStreamTool ; class IROBDataProviderSvc; class ByteStreamCnvSvc; -/** This class is the coverter to read/write LArAccumulatedCalibDigitContainer from/to ByteStream +/** This class is the converter to read/write LArAccumulatedCalibDigitContainer from/to ByteStream * @author W. Lampl, R. Lafaye */ // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArAccumulatedCalibDigitContByteStreamCnv: public Converter { +class LArAccumulatedCalibDigitContByteStreamCnv: public AthConstConverter { public: LArAccumulatedCalibDigitContByteStreamCnv(ISvcLocator* svcloc); @@ -43,21 +41,18 @@ public: typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - MsgStream* m_log; - BYTESTREAMTOOL* m_tool ; - ByteStreamCnvSvc* m_ByteStreamEventAccess; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; + ToolHandle<BYTESTREAMTOOL> m_tool; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; }; #endif diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h index 39cad9f5e7e481c29bde0b46acec26b7c42f73c0..3f6d76ebcf5898ba3311088a2f6d434aae17c84a 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARACCUMULATEDDIGITCONTRAWEVENTCNV_H @@ -10,32 +10,31 @@ #include <stdint.h> #include <map> #include <string> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "ByteStreamCnvSvc/ByteStreamInputSvc.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; class StoreGateSvc; -class MsgStream; class LArAccumulatedDigitContainer; class LArRawDataContByteStreamTool ; class IROBDataProviderSvc; class ByteStreamCnvSvc; -/** This class is the coverter to read/write LArAccumulatedDigitContainer from/to ByteStream +/** This class is the converter to read/write LArAccumulatedDigitContainer from/to ByteStream * @author W. Lampl, R. Lafaye */ // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArAccumulatedDigitContByteStreamCnv: public Converter { - +class LArAccumulatedDigitContByteStreamCnv: public AthConstConverter +{ public: LArAccumulatedDigitContByteStreamCnv(ISvcLocator* svcloc); virtual ~LArAccumulatedDigitContByteStreamCnv(); @@ -43,21 +42,18 @@ public: typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - MsgStream* m_log; - BYTESTREAMTOOL* m_tool ; - ByteStreamCnvSvc* m_ByteStreamEventAccess; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; + ToolHandle<BYTESTREAMTOOL> m_tool ; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; }; #endif diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h index ecf8d3aff477e90bae5cae99b24fa82fa464d040..55feb530de4ed5658d10c42c19beb8e1180e20cb 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARCALIBDIGITCONTRAWEVENTCNV_H @@ -10,55 +10,50 @@ #include <stdint.h> #include <map> #include <string> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "ByteStreamCnvSvc/ByteStreamInputSvc.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class StoreGateSvc; -class MsgStream; class LArCalibDigitContainer; class LArRawDataContByteStreamTool ; class IROBDataProviderSvc; class ByteStreamCnvSvc; -/** This class is the coverter to read/write LArCalibDigitContainer from/to ByteStream +/** This class is the converter to read/write LArCalibDigitContainer from/to ByteStream * @author W. Lampl, R. Lafaye */ // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArCalibDigitContByteStreamCnv: public Converter { - +class LArCalibDigitContByteStreamCnv: public AthConstConverter +{ public: LArCalibDigitContByteStreamCnv(ISvcLocator* svcloc); virtual ~LArCalibDigitContByteStreamCnv(); typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - MsgStream* m_log; - BYTESTREAMTOOL* m_tool ; - //IByteStreamEventAccess* m_ByteStreamEventAccess; - ByteStreamCnvSvc* m_ByteStreamEventAccess; -// ByteStreamInputSvc *m_inputSvc; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; + ToolHandle<BYTESTREAMTOOL> m_tool; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; + ServiceHandle<IByteStreamEventAccess> m_byteStreamEventAccess; + ByteStreamCnvSvc* m_byteStreamCnvSvc; }; #endif diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h index ff08b2a11bff3fc4116c01edbd65a61be372a181..a3643556fa01489c9bfd667bde9008ee7489324f 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARDIGITCONTRAWEVENTCNV_H @@ -10,18 +10,16 @@ #include <stdint.h> #include <map> #include <string> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "ByteStreamCnvSvc/ByteStreamInputSvc.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class StoreGateSvc; -class MsgStream; class LArDigitContainer; class LArRawDataContByteStreamTool ; class IROBDataProviderSvc; @@ -35,8 +33,8 @@ class LArABBADecoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArDigitContByteStreamCnv: public Converter { - +class LArDigitContByteStreamCnv: public AthConstConverter +{ public: LArDigitContByteStreamCnv(ISvcLocator* svcloc); virtual ~LArDigitContByteStreamCnv(); @@ -44,25 +42,20 @@ public: typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - - MsgStream* m_log; - BYTESTREAMTOOL* m_tool ; - LArABBADecoder* m_scTool; - ByteStreamCnvSvc* m_ByteStreamEventAccess; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; + ToolHandle<BYTESTREAMTOOL> m_tool ; + ToolHandle<LArABBADecoder> m_scTool; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; + ServiceHandle<IByteStreamEventAccess> m_byteStreamEventAccess; + ByteStreamCnvSvc* m_byteStreamCnvSvc; }; #endif - - - diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h index 92f5e28ac4fcbef1d0bc533a38fa2e1c8e65cb2c..09b3d8d45a65567446799f51d516d2edb84651cc 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_FEBHEADERCONTRAWEVENTCNV_H @@ -10,50 +10,47 @@ #include <stdint.h> #include <map> #include <string> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "ByteStreamCnvSvc/ByteStreamInputSvc.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class StoreGateSvc; -class MsgStream; class LArFebHeaderContainer; class LArRawDataContByteStreamTool ; class IROBDataProviderSvc; class ByteStreamCnvSvc; -/** This class is the coverter to read/write LArFebHeaderContainer from/to ByteStream +/** This class is the converter to read/write LArFebHeaderContainer from/to ByteStream * @author W. Lampl, R. Lafaye */ // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArFebHeaderContByteStreamCnv: public Converter { +class LArFebHeaderContByteStreamCnv: public AthConstConverter +{ public: LArFebHeaderContByteStreamCnv(ISvcLocator* svcloc); typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - BYTESTREAMTOOL* m_tool ; - ByteStreamCnvSvc* m_ByteStreamEventAccess; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; + ToolHandle<BYTESTREAMTOOL> m_tool; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; }; #endif diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h index 968883644651a241b14997139eda4f3e767e89f0..281bac44bc52996cbe677cbfc827c3be68f7729d 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARRAWCHANNELCONTRAWEVENTCNV_H @@ -9,17 +9,16 @@ #include <stdint.h> #include <map> -#include "GaudiKernel/Converter.h" +#include "AthenaBaseComps/AthConstConverter.h" #include "ByteStreamData/RawEvent.h" -#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" -//#include "LArByteStream/Hid2RESrcID.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class StoreGateSvc; -class MsgStream; class LArRawChannelContainer; class LArRawDataContByteStreamTool; class IROBDataProviderSvc; @@ -28,8 +27,8 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -class LArRawChannelContByteStreamCnv: public Converter { - +class LArRawChannelContByteStreamCnv: public AthConstConverter +{ public: LArRawChannelContByteStreamCnv(ISvcLocator* svcloc); virtual ~LArRawChannelContByteStreamCnv(); @@ -37,24 +36,20 @@ class LArRawChannelContByteStreamCnv: public Converter { typedef LArRawDataContByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const override; + virtual StatusCode createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const override; /// Storage type and class ID - virtual long repSvcType() const { return i_repSvcType(); } + virtual long repSvcType() const override { return i_repSvcType(); } static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: - MsgStream* m_log; - BYTESTREAMTOOL* m_tool; - ByteStreamCnvSvc* m_ByteStreamEventAccess; - IROBDataProviderSvc *m_rdpSvc; - StoreGateSvc* m_storeGate; - size_t m_contSize; + ToolHandle<BYTESTREAMTOOL> m_tool; + ServiceHandle<IROBDataProviderSvc> m_rdpSvc; + ServiceHandle<IByteStreamEventAccess> m_byteStreamEventAccess; + ByteStreamCnvSvc* m_byteStreamCnvSvc; + mutable std::atomic<size_t> m_contSize; }; #endif - - - diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.h index 7dbe8efe82dd1886ba048c92f432065e78963fce..879ad19c035f9fbe4d68af343537c6838569af49 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.h @@ -44,23 +44,24 @@ class IByteStreamEventAccess; class LArRawDataContByteStreamTool: public AthAlgTool { public: + using FEA_t = FullEventAssembler<Hid2RESrcID>; /** Constructor Standard AlgTool constructor */ LArRawDataContByteStreamTool( const std::string& type, const std::string& name, - const IInterface* parent ) ; + const IInterface* parent ) ; /** Destructor */ - ~LArRawDataContByteStreamTool() ; + virtual ~LArRawDataContByteStreamTool() ; /** AlgTool InterfaceID */ static const InterfaceID& interfaceID( ) ; - virtual StatusCode initialize(); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /** * @brief Templated conversion class form Raw Event to a container @@ -78,7 +79,7 @@ public: * are used to deal with the individual ROD fragments. */ template <class COLLECTION > - StatusCode convert(const RawEvent* re, COLLECTION* digit_cont, CaloGain::CaloGain gain); + StatusCode convert(const RawEvent* re, COLLECTION* digit_cont, CaloGain::CaloGain gain) const; /** * @brief Fill channels from LArDigitContainer to a FullEvent @@ -86,7 +87,8 @@ public: * @param fea Pointer to FullEventAssember (output) * @return Gaudi StatusCode */ - StatusCode WriteLArDigits(const LArDigitContainer* digit_cont, FullEventAssembler<Hid2RESrcID> *fea); + StatusCode WriteLArDigits(const LArDigitContainer* digit_cont, + FEA_t& fea) const; /** * @brief Fill channels from LArCalibDigitContainer to a FullEvent @@ -94,7 +96,8 @@ public: * @param fea Pointer to FullEventAssember (output) * @return Gaudi StatusCode */ - StatusCode WriteLArCalibDigits(const LArCalibDigitContainer* digit_cont, FullEventAssembler<Hid2RESrcID> *fea); + StatusCode WriteLArCalibDigits(const LArCalibDigitContainer* digit_cont, + FEA_t& fea) const; /** * @brief Fill channels from LArRawChannelContainer to a FullEvent @@ -102,11 +105,14 @@ public: * @param fea Pointer to FullEventAssember (output) * @return Gaudi StatusCode */ - StatusCode WriteLArRawChannels(const LArRawChannelContainer* CannelCont, FullEventAssembler<Hid2RESrcID> *fea); + StatusCode WriteLArRawChannels(const LArRawChannelContainer* CannelCont, + FEA_t& fea) const; private: + using RobIndex_t = std::map<eformat::SubDetectorGroup, std::vector<const uint32_t*> >; + /** Prepare ROB index before conversion */ - StatusCode prepareRobIndex (const RawEvent* event); + StatusCode prepareRobIndex (const RawEvent* event, RobIndex_t& robIndex) const; //StatusCode prepareWriting(); /** @@ -115,7 +121,7 @@ private: * @return false if an incosistency is detected */ template <class COLLECTION > - bool checkGainConsistency(const COLLECTION* coll); + bool checkGainConsistency(const COLLECTION* coll) const; Hid2RESrcID m_hid2re; //!< Contains the mapping from channel to ROD LArRodDecoder *m_decoder; //!< Pointer to RodDecoder class @@ -143,10 +149,6 @@ private: bool m_initializeForWriting; uint16_t m_subDetId; double m_nfebsigma; - // map with ROB group (LAr) to rob addresses - std::map<eformat::SubDetectorGroup, std::vector<const uint32_t*> > m_robIndex; - // last event processed - uint32_t m_lastEvent; // want to process digits together with RawChannel bool m_includeDigits; // Name of Digit container to retrieve diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.icc b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.icc index 0995b390c8261588c168e53f9398d07c9d76c916..b0f9552b693ebe2447addc6822af2dacb2e974e5 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.icc +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawDataContByteStreamTool.icc @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARRAWDATACONTBYTESTREAMTOOL_ICC @@ -13,7 +13,7 @@ template <class COLLECTION > -bool LArRawDataContByteStreamTool::checkGainConsistency(const COLLECTION* coll) +bool LArRawDataContByteStreamTool::checkGainConsistency(const COLLECTION* coll) const {typedef typename COLLECTION::const_iterator contIter; contIter it=coll->begin(); contIter it_e=coll->end(); @@ -33,14 +33,15 @@ bool LArRawDataContByteStreamTool::checkGainConsistency(const COLLECTION* coll) // LArAccumulatedCalibDigit, LArAccumulatedDigit, LArCalibDigit, LArDigit, // LArFebHeader and LArRawChannel template <class COLLECTION > -StatusCode LArRawDataContByteStreamTool::convert(const RawEvent* re, COLLECTION* coll, CaloGain::CaloGain gain) -{ - if (prepareRobIndex(re).isFailure()){ +StatusCode LArRawDataContByteStreamTool::convert(const RawEvent* re, COLLECTION* coll, CaloGain::CaloGain gain) const +{ + RobIndex_t robIndex; + if (prepareRobIndex(re, robIndex).isFailure()){ ATH_MSG_ERROR ( "Error in prepareRobIndex " ); return StatusCode::FAILURE; } - std::map<eformat::SubDetectorGroup, std::vector<const uint32_t*> >::const_iterator it = m_robIndex.find(eformat::LAR); - if ( it != m_robIndex.end() ) { + RobIndex_t::const_iterator it = robIndex.find(eformat::LAR); + if ( it != robIndex.end() ) { const std::vector<const uint32_t*>& robs = (*it).second; std::vector<const uint32_t*>::const_iterator rob_add; for(rob_add = robs.begin(); rob_add!=robs.end();++rob_add){ diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArABBADecoder.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArABBADecoder.cxx index e6947dcf2eb4abfc90423ddb5b29e6e79239ae60..cb95918ffa415231a91eab2245fd47705f725d42 100755 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArABBADecoder.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArABBADecoder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArABBADecoder.h" @@ -35,7 +35,8 @@ StatusCode LArABBADecoder::finalize() { return StatusCode::SUCCESS; } -StatusCode LArABBADecoder::convert(const RawEvent* re, LArDigitContainer* coll) { +StatusCode LArABBADecoder::convert(const RawEvent* re, LArDigitContainer* coll) const +{ bool ret=false; // Check fragment validity: @@ -75,8 +76,8 @@ StatusCode LArABBADecoder::convert(const RawEvent* re, LArDigitContainer* coll) } -void LArABBADecoder::fillCollection(const ROBFragment* robFrag, LArDigitContainer* coll) { - +void LArABBADecoder::fillCollection(const ROBFragment* robFrag, LArDigitContainer* coll) const +{ const CaloGain::CaloGain dummyGain=CaloGain::LARHIGHGAIN; LArDigit * scDigit=0 ; diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx index b071138fe8530e8ca3f8e8629d0e543c97cd5fcf..f7e3a8cac50e45ef81ababd39a891d2e5cbf0f91 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h" @@ -32,98 +32,54 @@ LArAccumulatedCalibDigitContByteStreamCnv::LArAccumulatedCalibDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + AthConstConverter(storageType(), classID(),svcloc,"LArAccumulatedCalibDigitContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_rdpSvc("ROBDataProviderSvc", name()) +{} const CLID& LArAccumulatedCalibDigitContByteStreamCnv::classID(){ return ClassID_traits<LArAccumulatedCalibDigitContainer>::ID() ; } LArAccumulatedCalibDigitContByteStreamCnv::~LArAccumulatedCalibDigitContByteStreamCnv() { - if (m_log) - delete m_log; } StatusCode LArAccumulatedCalibDigitContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - m_log = new MsgStream(msgSvc(),"LArAccumulatedCalibDigitBSCnv"); - IService* svc; - //Get ByteStreamCnvSvc - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - (*m_log) << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - (*m_log) <<MSG::ERROR<< " LArAccumulatedCalibDigitContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - //Get ByteStreamInputSvc (only necessary for reading of digits, not for writing and for channels) - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - (*m_log) << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - (*m_log) <<MSG::ERROR<< " LArAccumulatedCalibDigitContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } - } + ATH_CHECK( AthConstConverter::initialize() ); - // retrieve ToolSvc - IToolSvc* toolSvc; - - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } - //Get LArByteStreamTool - std::string toolType = "LArRawDataContByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get LArRawDataByteStreamTool " << endmsg; - return StatusCode::FAILURE; - } - - //Get StoreGateSvc - return service("StoreGateSvc", m_storeGate); + ATH_CHECK( m_tool.retrieve() ); + return StatusCode::SUCCESS; } StatusCode -LArAccumulatedCalibDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) +LArAccumulatedCalibDigitContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const {//Convert Accumulated Calib Digits from ByteStream to StoreGate - MsgStream log(msgSvc(), "LArAccumulatedCalibDigitContByteStreamCnv"); - (*m_log) << MSG::VERBOSE << "Executing CreateObj method for LArAccumulatedCalibDigitContainer " << endmsg; + ATH_MSG_VERBOSE( "Executing CreateObj method for LArAccumulatedCalibDigitContainer " ); - if (!m_rdpSvc) - {(*m_log) << MSG::ERROR << " ROBDataProviderSvc not loaded. Can't read ByteStream." << endmsg; - return StatusCode::FAILURE; - } + if (!m_rdpSvc) { + ATH_MSG_ERROR( " ROBDataProviderSvc not loaded. Can't read ByteStream." ); + return StatusCode::FAILURE; + } ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress - if (!pRE_Addr) - {(*m_log) << MSG::ERROR << "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" << endmsg; - return StatusCode::FAILURE; - } + if (!pRE_Addr) { + ATH_MSG_ERROR( "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" ); + return StatusCode::FAILURE; + } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {(*m_log) << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + } const std::string& key = *(pAddr->par()); // Get key used in the StoreGateSvc::retrieve function // get gain and pass to convert function. CaloGain::CaloGain gain=CaloGain::LARNGAIN; //At this place, LARNGAINS means Automatic gain. @@ -135,11 +91,12 @@ LArAccumulatedCalibDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, Data gain=CaloGain::LARLOWGAIN; // Convert the RawEvent to LArAccumulatedCalibDigitContainer - (*m_log) << MSG::DEBUG << "Converting LArAccumulatedCalibDigits (from ByteStream). key=" << key << " ,gain=" << gain << endmsg; + ATH_MSG_DEBUG( "Converting LArAccumulatedCalibDigits (from ByteStream). key=" << key << " ,gain=" << gain ); LArAccumulatedCalibDigitContainer *DigitContainer=new LArAccumulatedCalibDigitContainer; StatusCode sc=m_tool->convert(re,DigitContainer,gain); - if (sc!=StatusCode::SUCCESS) - (*m_log) << MSG::WARNING << "Conversion tool returned an error. LArAccumulatedCalibDigitContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArAccumulatedCalibDigitContainer might be empty." ); + } DigitContainer->setDelayScale(25./240.); //FIXME should not be hardcoded! pObj = SG::asStorable(DigitContainer) ; @@ -148,9 +105,9 @@ LArAccumulatedCalibDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, Data // IWS 19.07.2005 StatusCode - LArAccumulatedCalibDigitContByteStreamCnv::createRep(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) + LArAccumulatedCalibDigitContByteStreamCnv::createRepConst(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) const {// convert LArAccumulatedCalibDigits from StoreGate into ByteStream - (*m_log) << MSG::ERROR << "CreateRep method of LArAccumulatedCalibDigitContainer not implemented" << endmsg; + ATH_MSG_ERROR( "CreateRep method of LArAccumulatedCalibDigitContainer not implemented" ); return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx index 562dfa424e0ef7b20a84542ba021ba506ff992ad..162656aaa1ff43dfa0cdf353711614ceebd2ba49 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArAccumulatedDigitContByteStreamCnv.h" @@ -32,98 +32,55 @@ LArAccumulatedDigitContByteStreamCnv::LArAccumulatedDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + AthConstConverter(storageType(), classID(),svcloc,"LArAccumulatedDigitContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_rdpSvc("ROBDataProviderSvc", name()) +{} const CLID& LArAccumulatedDigitContByteStreamCnv::classID(){ return ClassID_traits<LArAccumulatedDigitContainer>::ID() ; } LArAccumulatedDigitContByteStreamCnv::~LArAccumulatedDigitContByteStreamCnv() { - if (m_log) - delete m_log; } StatusCode LArAccumulatedDigitContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - m_log = new MsgStream(msgSvc(),"LArAccumulatedDigitBSCnv"); - IService* svc; - //Get ByteStreamCnvSvc - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - (*m_log) << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - (*m_log) <<MSG::ERROR<< " LArAccumulatedDigitContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - //Get ByteStreamInputSvc (only necessary for reading of digits, not for writing and for channels) - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - (*m_log) << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - (*m_log) <<MSG::ERROR<< " LArAccumulatedDigitContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } - } - - // retrieve ToolSvc - IToolSvc* toolSvc; + ATH_CHECK( AthConstConverter::initialize() ); - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } - //Get LArByteStreamTool - std::string toolType = "LArRawDataContByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get LArRawDataByteStreamTool " << endmsg; - return StatusCode::FAILURE; - } + ATH_CHECK( m_tool.retrieve() ); - //Get StoreGateSvc - return service("StoreGateSvc", m_storeGate); + return StatusCode::SUCCESS; } StatusCode -LArAccumulatedDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) +LArAccumulatedDigitContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const {//Convert Accumulated Digits from ByteStream to StoreGate - MsgStream log(msgSvc(), "LArAccumulatedDigitContByteStreamCnv"); - (*m_log) << MSG::VERBOSE << "Executing CreateObj method for LArAccumulatedDigitContainer " << endmsg; - - - if (!m_rdpSvc) - {(*m_log) << MSG::ERROR << " ROBDataProviderSvc not loaded. Can't read ByteStream." << endmsg; - return StatusCode::FAILURE; - } + ATH_MSG_VERBOSE( "Executing CreateObj method for LArAccumulatedDigitContainer "); + + if (!m_rdpSvc) { + ATH_MSG_ERROR( " ROBDataProviderSvc not loaded. Can't read ByteStream." ); + return StatusCode::FAILURE; + } ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress - if (!pRE_Addr) - {(*m_log) << MSG::ERROR << "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" << endmsg; - return StatusCode::FAILURE; - } + if (!pRE_Addr) { + ATH_MSG_ERROR( "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" ); + return StatusCode::FAILURE; + } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {(*m_log) << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + return StatusCode::FAILURE; + } const std::string& key = *(pAddr->par()); // Get key used in the StoreGateSvc::retrieve function // get gain and pass to convert function. CaloGain::CaloGain gain=CaloGain::LARNGAIN; //At this place, LARNGAINS means Automatic gain. @@ -135,20 +92,21 @@ LArAccumulatedDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObjec gain=CaloGain::LARLOWGAIN; // Convert the RawEvent to LArAccumulatedDigitContainer - (*m_log) << MSG::DEBUG << "Converting LArAccumulatedDigits (from ByteStream). key=" << key << " ,gain=" << gain << endmsg; + ATH_MSG_DEBUG( "Converting LArAccumulatedDigits (from ByteStream). key=" << key << " ,gain=" << gain ); LArAccumulatedDigitContainer *DigitContainer=new LArAccumulatedDigitContainer(SG::VIEW_ELEMENTS); StatusCode sc=m_tool->convert(re,DigitContainer,gain); - if (sc!=StatusCode::SUCCESS) - (*m_log) << MSG::WARNING << "Conversion tool returned an error. LArAccumulatedDigitContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArAccumulatedDigitContainer might be empty." ); + } pObj = SG::asStorable(DigitContainer) ; return StatusCode::SUCCESS; } // IWS 19.07.2005 StatusCode - LArAccumulatedDigitContByteStreamCnv::createRep(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) + LArAccumulatedDigitContByteStreamCnv::createRepConst(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) const {// convert LArAccumulatedDigits from StoreGate into ByteStream - (*m_log) << MSG::ERROR << "CreateRep method of LArAccumulatedDigitContainer not implemented" << endmsg; + ATH_MSG_ERROR( "CreateRep method of LArAccumulatedDigitContainer not implemented" ); return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx index f86ce40b28a1c16a483a6d5a906cc2343503fa46..750f18aedca4702e262c1f9a5b96b72288009308 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArCalibDigitContByteStreamCnv.h" @@ -11,18 +11,9 @@ #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/DataObject.h" -#include "GaudiKernel/IRegistry.h" - #include "LArRawEvent/LArCalibDigitContainer.h" -#include "StoreGate/StoreGateSvc.h" -#include "AthenaKernel/CLASS_DEF.h" - -// Tool -#include "GaudiKernel/IToolSvc.h" +#include "AthenaKernel/StorableConversions.h" //STL-Stuff #include <map> @@ -30,12 +21,14 @@ LArCalibDigitContByteStreamCnv::LArCalibDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc), - m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL) {} + AthConstConverter(storageType(), classID(),svcloc,"LArCalibDigitContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_rdpSvc("ROBDataProviderSvc", name()), + m_byteStreamEventAccess("ByteStreamCnvSvc", name()), + m_byteStreamCnvSvc(nullptr) +{} LArCalibDigitContByteStreamCnv::~LArCalibDigitContByteStreamCnv() { - if (m_log) - delete m_log; } const CLID& LArCalibDigitContByteStreamCnv::classID(){ @@ -46,81 +39,41 @@ const CLID& LArCalibDigitContByteStreamCnv::classID(){ StatusCode LArCalibDigitContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - m_log = new MsgStream(msgSvc(),"LArCalibDigitBSCnv"); - (*m_log) << MSG::DEBUG<< " initialize " <<endmsg; - - IService* svc; - //Get ByteStreamCnvSvc - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - (*m_log) << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - (*m_log) <<MSG::ERROR<< " LArCalibDigitContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - //Get ByteStreamInputSvc (only necessary for reading of digits, not for writing and for channels) - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - (*m_log) << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - (*m_log) <<MSG::ERROR<< "Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } - } + ATH_CHECK( AthConstConverter::initialize() ); - // retrieve ToolSvc - IToolSvc* toolSvc=0; - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; - } - //Get LArByteStreamTool - std::string toolType = "LArRawDataContByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get LArRawDataByteStreamTool " << endmsg; - return StatusCode::FAILURE; + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } + + ATH_CHECK( m_byteStreamEventAccess.retrieve() ); + m_byteStreamCnvSvc = dynamic_cast<ByteStreamCnvSvc*>(&*m_byteStreamEventAccess); + + ATH_CHECK( m_tool.retrieve() ); - //Get StoreGateSvc - return service("StoreGateSvc", m_storeGate); + return StatusCode::SUCCESS; } StatusCode -LArCalibDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) +LArCalibDigitContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const {//Convert Digits from ByteStream to StoreGate - (*m_log) << MSG::VERBOSE << "Executing CreateObj method for LArCalibDigitContainer " << endmsg; + ATH_MSG_VERBOSE( "Executing CreateObj method for LArCalibDigitContainer " ); - if (!m_rdpSvc) - {(*m_log) << MSG::ERROR << " ROBDataProviderSvc not loaded. Can't read ByteStream." << endmsg; - return StatusCode::FAILURE; - } + if (!m_rdpSvc) { + ATH_MSG_ERROR( " ROBDataProviderSvc not loaded. Can't read ByteStream." ); + return StatusCode::FAILURE; + } ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress - if (!pRE_Addr) - {(*m_log) << MSG::ERROR << "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" << endmsg; - return StatusCode::FAILURE; - } - + if (!pRE_Addr) { + ATH_MSG_ERROR( "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" ); + return StatusCode::FAILURE; + } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {(*m_log) << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + return StatusCode::FAILURE; + } const std::string& key = *(pAddr->par()); // Get key used in the StoreGateSvc::retrieve function // get gain an pass to convert function. // get gain and pass to convert function. @@ -132,57 +85,36 @@ LArCalibDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pO else if (key=="LOW") gain=CaloGain::LARLOWGAIN; // Convert the RawEvent to LArCalibDigitContainer - (*m_log) << MSG::DEBUG << "Converting LArCalibDigits (from ByteStream). key=" << key << " ,gain=" << gain << endmsg; + ATH_MSG_DEBUG( "Converting LArCalibDigits (from ByteStream). key=" << key << " ,gain=" << gain ); LArCalibDigitContainer *CalibDigitContainer=new LArCalibDigitContainer; StatusCode sc=m_tool->convert(re,CalibDigitContainer,gain); - if (sc!=StatusCode::SUCCESS) - (*m_log) << MSG::WARNING << "Conversion tool returned an error. LArCalibDigitContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArCalibDigitContainer might be empty." ); + } pObj = SG::asStorable(CalibDigitContainer) ; return StatusCode::SUCCESS; } - StatusCode -LArCalibDigitContByteStreamCnv::createRep(DataObject* pObj, IOpaqueAddress*& pAddr) +StatusCode +LArCalibDigitContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const {// convert LArDigits from StoreGate into ByteStream - (*m_log) << MSG::VERBOSE << "Execute CreateRep method of LArCalibDigitContainer " << endmsg; - StatusCode sc; + ATH_MSG_VERBOSE( "Execute CreateRep method of LArCalibDigitContainer " ); // Get Full Event Assembler FullEventAssembler<Hid2RESrcID> *fea = 0; - std::string key("LAr"); - sc=m_ByteStreamEventAccess->getFullEventAssembler(fea,key); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot get full event assember with key \"LAr\" from ByteStreamEventAccess." << endmsg; - return sc; - } - - if (!fea->idMap().isInitialized()) - { - sc = fea->idMap().initialize(); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot initialize Hid2RESrcID " << endmsg; - return sc; - } - } - - + ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler(fea,"LAr") ); LArCalibDigitContainer* CalibDigitContainer=0; - ATH_CHECK( m_storeGate->fromStorable(pObj, CalibDigitContainer) ); - if(!CalibDigitContainer){ - (*m_log) << MSG::ERROR << "Cannot get LArCalibDigitContainer for DataObject. Key=" << pObj->registry()->name() << endmsg ; - return StatusCode::FAILURE; + if (!SG::fromStorable (pObj, CalibDigitContainer) || !CalibDigitContainer) { + ATH_MSG_ERROR( "Cannot get LArCalibDigitContainer for DataObject. Key=" << pObj->registry()->name() ); + return StatusCode::FAILURE; } - std::string nm = pObj->registry()->name(); - ByteStreamAddress* addr = new - ByteStreamAddress(classID(),nm,""); - pAddr = addr; + std::string nm = pObj->registry()->name(); + pAddr = new ByteStreamAddress(classID(),nm,""); - sc=m_tool->WriteLArCalibDigits(CalibDigitContainer, fea); - if (sc.isFailure()) - return sc; + ATH_CHECK( m_tool->WriteLArCalibDigits(CalibDigitContainer, *fea) ); - return StatusCode::SUCCESS; + return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx index 4328971c37cbe58d675a826bca41f05cef2fdaef..3bfcf354cdbb8745247222c03af746150aa9536c 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArDigitContByteStreamCnv.h" @@ -15,31 +15,26 @@ #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/DataObject.h" -#include "GaudiKernel/IRegistry.h" - -//#include "LArRawEvent/LArRawChannelContainer.h" #include "LArRawEvent/LArDigitContainer.h" -#include "StoreGate/StoreGateSvc.h" +#include "AthenaKernel/StorableConversions.h" #include "AthenaKernel/CLASS_DEF.h" -// Tool -#include "GaudiKernel/IToolSvc.h" - //STL-Stuff #include <map> #include <iostream> LArDigitContByteStreamCnv::LArDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc), m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + AthConstConverter(storageType(), classID(),svcloc,"LArDigitContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_scTool("LArABBADecoder"), + m_rdpSvc("ROBDataProviderSvc", name()), + m_byteStreamEventAccess("ByteStreamCnvSvc", name()), + m_byteStreamCnvSvc(nullptr) +{} LArDigitContByteStreamCnv::~LArDigitContByteStreamCnv() { - if (m_log) - delete m_log; } const CLID& LArDigitContByteStreamCnv::classID(){ @@ -50,90 +45,42 @@ const CLID& LArDigitContByteStreamCnv::classID(){ StatusCode LArDigitContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - m_log = new MsgStream(msgSvc(),"LArDigitBSCnv"); - (*m_log) << MSG::DEBUG<< " initialize " <<endmsg; - IService* svc; - //Get ByteStreamCnvSvc - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - (*m_log) << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - (*m_log) <<MSG::ERROR<< " LArDigitContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - //Get ByteStreamInputSvc (only necessary for reading of digits, not for writing and for channels) - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - (*m_log) << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - (*m_log) <<MSG::ERROR<< " LArDigitContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } - } - - // retrieve ToolSvc - IToolSvc* toolSvc; + ATH_CHECK( AthConstConverter::initialize() ); - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } - //Get LArByteStreamTool - std::string toolType = "LArRawDataContByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get LArRawDataByteStreamTool " << endmsg; - return StatusCode::FAILURE; - } - - //Get SuperCellTool - sc=toolSvc->retrieveTool("LArABBADecoder",m_scTool); - if (sc.isFailure()) { - (*m_log) << MSG::ERROR << "Can't get LArABBADecoder Tool" << endmsg; - return sc; - } + ATH_CHECK( m_byteStreamEventAccess.retrieve() ); + m_byteStreamCnvSvc = dynamic_cast<ByteStreamCnvSvc*>(&*m_byteStreamEventAccess); - //Get StoreGateSvc - return service("StoreGateSvc", m_storeGate); + ATH_CHECK( m_tool.retrieve() ); + ATH_CHECK( m_scTool.retrieve() ); + return StatusCode::SUCCESS; } StatusCode -LArDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) +LArDigitContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const {//Convert Digits from ByteStream to StoreGate - (*m_log) << MSG::VERBOSE << "Executing CreateObj method for LArDigitContainer " << endmsg; + ATH_MSG_VERBOSE( "Executing CreateObj method for LArDigitContainer " ); - - if (!m_rdpSvc) - {(*m_log) << MSG::ERROR << " ROBDataProviderSvc not loaded. Can't read ByteStream." << endmsg; - return StatusCode::FAILURE; - } + if (!m_rdpSvc) { + ATH_MSG_ERROR( " ROBDataProviderSvc not loaded. Can't read ByteStream." ); + return StatusCode::FAILURE; + } ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress - if (!pRE_Addr) - {(*m_log) << MSG::ERROR << "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" << endmsg; - return StatusCode::FAILURE; - } + if (!pRE_Addr) { + ATH_MSG_ERROR( "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" ); + return StatusCode::FAILURE; + } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {(*m_log) << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + return StatusCode::FAILURE; + } const std::string& key = *(pAddr->par()); // Get key used in the StoreGateSvc::retrieve function // get gain and pass to convert function. CaloGain::CaloGain gain=CaloGain::LARNGAIN; //At this place, LARNGAINS means Automatic gain. @@ -148,7 +95,7 @@ LArDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) isSC=true; // Convert the RawEvent to LArDigitContainer - (*m_log) << MSG::DEBUG << "Converting LArDigits (from ByteStream). key=" << key << " ,gain=" << gain << endmsg; + ATH_MSG_DEBUG( "Converting LArDigits (from ByteStream). key=" << key << " ,gain=" << gain ); LArDigitContainer *DigitContainer=new LArDigitContainer; StatusCode sc; if (!isSC) {//Regular readout @@ -157,58 +104,33 @@ LArDigitContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) else { //Supercell readout sc=m_scTool->convert(re,DigitContainer); } - if (sc!=StatusCode::SUCCESS) - (*m_log) << MSG::WARNING << "Conversion tool returned an error. LArDigitContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArDigitContainer might be empty." ); + } pObj = SG::asStorable(DigitContainer) ; return StatusCode::SUCCESS; } - StatusCode -LArDigitContByteStreamCnv::createRep(DataObject* pObj, IOpaqueAddress*& pAddr) +StatusCode +LArDigitContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const {// convert LArDigits from StoreGate into ByteStream - (*m_log) << MSG::VERBOSE << "Execute CreateRep method of LArDigitContainer " << endmsg; - StatusCode sc; + ATH_MSG_VERBOSE( "Execute CreateRep method of LArDigitContainer " ); - // Get the already existing part of the RawEvent - //RawEvent* re = m_ByteStreamEventAccess->getRawEvent(); // Get Full Event Assembler FullEventAssembler<Hid2RESrcID> *fea = 0; - std::string key("LAr"); - sc=m_ByteStreamEventAccess->getFullEventAssembler(fea,key); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot get full event assember with key \"LAr\" from ByteStreamEventAccess." << endmsg; - return sc; - } -// fea=new FullEventAssembler<Hid2RESrcID>; - if (!fea->idMap().isInitialized()) - { - sc = fea->idMap().initialize(); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot initialize Hid2RESrcID " << endmsg; - return sc; - } - } - + ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler(fea,"LAr") ); + LArDigitContainer* DigitContainer=0; - ATH_CHECK( m_storeGate->fromStorable(pObj, DigitContainer) ); - if(!DigitContainer){ - (*m_log) << MSG::ERROR << "Cannot get LArDigitContainer for DataObject. Key=" << pObj->registry()->name() << endmsg ; - return StatusCode::FAILURE; + if (!SG::fromStorable (pObj, DigitContainer) || !DigitContainer) { + ATH_MSG_ERROR( "Cannot get LArDigitContainer for DataObject. Key=" << pObj->registry()->name() ); + return StatusCode::FAILURE; } - std::string nm = pObj->registry()->name(); - ByteStreamAddress* addr = new - ByteStreamAddress(classID(),nm,""); - - pAddr = addr; - - //(*m_log) << MSG::VERBOSE << "Start conversion of LArDigitContainer requested. Writing channels and digits. " << endmsg; - //return m_tool->convert(ChannelContainer, DigitContainer, DigitContainerArray, re, log); - sc=m_tool->WriteLArDigits(DigitContainer, fea); - if (sc.isFailure()) - return sc; - //fea->fill(re,log); - //delete fea; - return StatusCode::SUCCESS; + + std::string nm = pObj->registry()->name(); + pAddr = new ByteStreamAddress(classID(),nm,""); + + ATH_CHECK( m_tool->WriteLArDigits(DigitContainer, *fea) ); + return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx index eed4ce7041c200c09ef713c29c24a178735573f6..3a9be59e28fb2b3c684a381cd1290b176d840f9c 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArFebHeaderContByteStreamCnv.h" @@ -13,27 +13,20 @@ #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/DataObject.h" -#include "GaudiKernel/IRegistry.h" - -//#include "LArRawEvent/LArRawChannelContainer.h" #include "LArRawEvent/LArFebHeaderContainer.h" -#include "StoreGate/StoreGateSvc.h" #include "AthenaKernel/CLASS_DEF.h" -// Tool -#include "GaudiKernel/IToolSvc.h" - //STL-Stuff #include <map> #include <iostream> LArFebHeaderContByteStreamCnv::LArFebHeaderContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + AthConstConverter(storageType(), classID(),svcloc,"LArFebHeaderContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_rdpSvc("ROBDataProviderSvc", name()) +{} const CLID& LArFebHeaderContByteStreamCnv::classID(){ return ClassID_traits<LArFebHeaderContainer>::ID() ; @@ -43,99 +36,54 @@ const CLID& LArFebHeaderContByteStreamCnv::classID(){ StatusCode LArFebHeaderContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - MsgStream log(msgSvc(), "LArFebHeaderContByteStreamCnv"); - log << MSG::DEBUG<< " initialize " <<endmsg; - IService* svc; - //Get ByteStreamCnvSvc - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - log << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - log<<MSG::ERROR<< " LArFebHeaderContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - //Get ByteStreamInputSvc (only necessary for reading of digits, not for writing and for channels) - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - log << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - log<<MSG::ERROR<< " LArFebHeaderContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } - } + ATH_CHECK( AthConstConverter::initialize() ); - // retrieve ToolSvc - IToolSvc* toolSvc; - - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - log << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; - } - - //Get LArByteStreamTool - std::string toolType = "LArRawDataContByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - log << MSG::ERROR << " Can't get LArRawDataByteStreamTool " << endmsg; - return StatusCode::FAILURE; + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } - //Get StoreGateSvc - return service("StoreGateSvc", m_storeGate); + ATH_CHECK( m_tool.retrieve() ); + return StatusCode::SUCCESS; } -StatusCode LArFebHeaderContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) + +StatusCode LArFebHeaderContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const {//Convert Digits from ByteStream to StoreGate - MsgStream log(msgSvc(), "LArFebHeaderContByteStreamCnv"); - log << MSG::VERBOSE << "Executing CreateObj method for LArFebHeaderContainer " << endmsg; - - - if (!m_rdpSvc) - {log << MSG::ERROR << " ROBDataProviderSvc not loaded. Can't read ByteStream." << endmsg; - return StatusCode::FAILURE; - } + ATH_MSG_VERBOSE( "Executing CreateObj method for LArFebHeaderContainer " ); + + if (!m_rdpSvc) { + ATH_MSG_ERROR( " ROBDataProviderSvc not loaded. Can't read ByteStream." ); + return StatusCode::FAILURE; + } ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress - if (!pRE_Addr) - {log << MSG::ERROR << "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" << endmsg; - return StatusCode::FAILURE; - } + if (!pRE_Addr) { + ATH_MSG_ERROR( "dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" ); + return StatusCode::FAILURE; + } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {log << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + return StatusCode::FAILURE; + } // Convert the RawEvent to LArFebHeaderContainer - log << MSG::DEBUG << "Converting LArFebHeaders (from ByteStream)." << endmsg; + ATH_MSG_DEBUG( "Converting LArFebHeaders (from ByteStream)." ); LArFebHeaderContainer *febHeaderContainer=new LArFebHeaderContainer; StatusCode sc=m_tool->convert(re,febHeaderContainer,(CaloGain::CaloGain)0); - if (sc!=StatusCode::SUCCESS) - log << MSG::WARNING << "Conversion tool returned an error. LArFebHeaderContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArFebHeaderContainer might be empty." ); + } pObj = SG::asStorable(febHeaderContainer) ; return StatusCode::SUCCESS; } -StatusCode LArFebHeaderContByteStreamCnv::createRep(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) +StatusCode LArFebHeaderContByteStreamCnv::createRepConst(DataObject* /*pObj*/, IOpaqueAddress*& /*pAddr*/) const {// convert LArFebHeaders from StoreGate into ByteStream - MsgStream log(msgSvc(), "LArFebHeaderContByteStreamCnv"); - log<< MSG::ERROR << "CreateRep method of LArFebHeaderContainer not implemented!" << endmsg; + ATH_MSG_ERROR( "CreateRep method of LArFebHeaderContainer not implemented!" ); return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx index f1139d9ba36e1c3f3335915cdf21416dfa3e2640..d702953edb1919604a4ec2d3829962d3d0956712 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArRawChannelContByteStreamCnv.h" @@ -11,20 +11,11 @@ #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/DataObject.h" -#include "GaudiKernel/IRegistry.h" - #include "LArRawEvent/LArRawChannelContainer.h" #include "LArRawEvent/LArDigitContainer.h" -#include "StoreGate/StoreGateSvc.h" #include "AthenaKernel/CLASS_DEF.h" -// Tool -#include "GaudiKernel/IToolSvc.h" - //STL-Stuff #include <map> #include <iostream> @@ -32,8 +23,12 @@ LArRawChannelContByteStreamCnv::LArRawChannelContByteStreamCnv(ISvcLocator* svcloc) : - Converter(storageType(), classID(),svcloc), m_log(NULL), - m_tool(NULL),m_ByteStreamEventAccess(0),m_rdpSvc(0),m_storeGate(0),m_contSize(0) + AthConstConverter(storageType(), classID(),svcloc,"LArRawChannelContByteStreamCnv"), + m_tool("LArRawDataContByteStreamTool"), + m_rdpSvc("ROBDataProviderSvc", name()), + m_byteStreamEventAccess("ByteStreamCnvSvc", name()), + m_byteStreamCnvSvc(nullptr), + m_contSize(0) {} const CLID& LArRawChannelContByteStreamCnv::classID(){ @@ -41,100 +36,60 @@ const CLID& LArRawChannelContByteStreamCnv::classID(){ } LArRawChannelContByteStreamCnv::~LArRawChannelContByteStreamCnv() { - if (m_log) - delete m_log; } StatusCode LArRawChannelContByteStreamCnv::initialize() { - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - m_log = new MsgStream(msgSvc(),"LArRawChannelBSCnv"); - (*m_log) << MSG::DEBUG<< " initialize " <<endmsg; + ATH_CHECK( AthConstConverter::initialize() ); - //Get ByteStreamCnvSvc - IService* svc; - if(StatusCode::SUCCESS != serviceLocator()->getService("ByteStreamCnvSvc",svc)){ - (*m_log) << MSG::ERROR << " Can't get ByteStreamEventAccess interface " << endmsg; - return StatusCode::FAILURE; - } - m_ByteStreamEventAccess=dynamic_cast<ByteStreamCnvSvc*>(svc); - if (m_ByteStreamEventAccess==NULL) - { - (*m_log) << MSG::ERROR<< " LArDigitContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<endmsg; - return StatusCode::FAILURE ; - } - - if(StatusCode::SUCCESS != serviceLocator()->getService("ROBDataProviderSvc",svc)){ - (*m_log) << MSG::WARNING << " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " << endmsg; - m_rdpSvc=0; - } - else { - m_rdpSvc=dynamic_cast<IROBDataProviderSvc*>(svc); - if(m_rdpSvc == 0 ) { - (*m_log) <<MSG::ERROR<< " LArDigitContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<endmsg; - return StatusCode::FAILURE; - } + if ( m_rdpSvc.retrieve().isFailure()) { + ATH_MSG_WARNING( " Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " ); } - // retrieve ToolSvc - IToolSvc* toolSvc; + ATH_CHECK( m_byteStreamEventAccess.retrieve() ); + m_byteStreamCnvSvc = dynamic_cast<ByteStreamCnvSvc*>(&*m_byteStreamEventAccess); - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; - } - // retrieve ConversionTool - if(StatusCode::SUCCESS !=toolSvc->retrieveTool("LArRawDataContByteStreamTool",m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get ByteStreamTool " << endmsg; - return StatusCode::FAILURE; - } - //retrieve StoreGateSvc - return service("StoreGateSvc", m_storeGate); + ATH_CHECK( m_tool.retrieve() ); + return StatusCode::SUCCESS; } StatusCode -LArRawChannelContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) +LArRawChannelContByteStreamCnv::createObjConst(IOpaqueAddress* pAddr, DataObject*& pObj) const { //Convert RawChannels from ByteStream to StoreGate - //(*m_log) << MSG::VERBOSE << "Executing CreateObj method for LArRawChannelContainer " << endmsg; ByteStreamAddress *pRE_Addr; pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); if(!pRE_Addr) { - (*m_log) << MSG::ERROR << " Can not cast to ByteStreamAddress " << endmsg ; + ATH_MSG_ERROR( " Can not cast to ByteStreamAddress " ); return StatusCode::FAILURE; } const RawEvent* re = m_rdpSvc->getEvent(); - if (!re) - {(*m_log) << MSG::ERROR << "Could not get raw event from ByteStreamInputSvc" << endmsg; - return StatusCode::FAILURE; - } + if (!re) { + ATH_MSG_ERROR( "Could not get raw event from ByteStreamInputSvc" ); + return StatusCode::FAILURE; + } // create LArRawChannelContainer LArRawChannelContainer* channelContainer = new LArRawChannelContainer() ; if (m_contSize) channelContainer->reserve(m_contSize); StatusCode sc=m_tool->convert(re,channelContainer,CaloGain::CaloGain(0)); //Gain is a dummy variable in this case... - if (sc!=StatusCode::SUCCESS) - (*m_log) << MSG::WARNING << "Conversion tool returned an error. LArRawChannelContainer might be empty." << endmsg; + if (sc!=StatusCode::SUCCESS) { + ATH_MSG_WARNING( "Conversion tool returned an error. LArRawChannelContainer might be empty." ); + } pObj = StoreGateSvc::asStorable( channelContainer ) ; - if (m_log->level()<=MSG::DEBUG) { - (*m_log) << MSG::DEBUG << "Created a LArRawChannelContainer of size" << channelContainer->size() << endmsg; - } + ATH_MSG_DEBUG( "Created a LArRawChannelContainer of size" << channelContainer->size() ); + if (!m_contSize) { m_contSize=channelContainer->size(); - (*m_log) << MSG::DEBUG << "For the following events, we will reserve space for " - << m_contSize << " LArRawchannels" << endmsg; + ATH_MSG_DEBUG( "For the following events, we will reserve space for " + << m_contSize << " LArRawchannels" ); } return StatusCode::SUCCESS; @@ -142,46 +97,24 @@ LArRawChannelContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObject*& pO } - StatusCode -LArRawChannelContByteStreamCnv::createRep(DataObject* pObj, IOpaqueAddress*& pAddr) +StatusCode +LArRawChannelContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const { // convert LArRawChannels in the container into ByteStream - //(*m_log) << MSG::VERBOSE << "Executing CreateRep method of LArRawChannelContainer" << endmsg; - StatusCode sc; // Get Full Event Assembler - FullEventAssembler<Hid2RESrcID> *fea = 0; - sc=m_ByteStreamEventAccess->getFullEventAssembler(fea,"LAr"); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot get full event assember with key \"LAr\" from ByteStreamEventAccess." << endmsg; - return sc; - } - if (!fea->idMap().isInitialized()) - { - sc = fea->idMap().initialize(); - if (sc.isFailure()) - {(*m_log) << MSG::ERROR << "Cannot initialize Hid2RESrcID " << endmsg; - return sc; - } - } - - - LArRawChannelContainer* ChannelContainer=0; - StoreGateSvc::fromStorable(pObj, ChannelContainer ); - if(!ChannelContainer){ - (*m_log) << MSG::ERROR << " Can not cast to LArRawChannelContainer " << endmsg ; + FullEventAssembler<Hid2RESrcID> *fea = 0; + ATH_CHECK( m_byteStreamCnvSvc->getFullEventAssembler(fea,"LAr") ); + + LArRawChannelContainer* ChannelContainer = nullptr; + if (!SG::fromStorable (pObj, ChannelContainer ) || !ChannelContainer) { + ATH_MSG_ERROR( " Can not cast to LArRawChannelContainer " ); return StatusCode::FAILURE; - } + } - const std::string& nm = pObj->registry()->name(); + const std::string& nm = pObj->registry()->name(); - ByteStreamAddress* addr = new - ByteStreamAddress(classID(),nm,""); + pAddr = new ByteStreamAddress(classID(),nm,""); - pAddr = addr; - sc=m_tool->WriteLArRawChannels(ChannelContainer,fea); - if (sc.isFailure()) - return sc; - //fea->fill(re,log); - return StatusCode::SUCCESS; - + ATH_CHECK( m_tool->WriteLArRawChannels(ChannelContainer,*fea) ); + return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawDataContByteStreamTool.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawDataContByteStreamTool.cxx index c64b071b6b30ee96323cdc7c9266e5454a844609..17cbb683866e90ba9e2486bcb2ba349bb120be84 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawDataContByteStreamTool.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawDataContByteStreamTool.cxx @@ -49,7 +49,6 @@ LArRawDataContByteStreamTool::LArRawDataContByteStreamTool declareProperty("IncludeDigits",m_includeDigits=false); declareProperty("DigitsContainer",m_DigitContName="LArDigitContainer_MC_Thinned"); m_RodBlockStructure=NULL; - m_lastEvent = 0xFFFFFFFF; } LArRawDataContByteStreamTool::~LArRawDataContByteStreamTool() { @@ -128,7 +127,10 @@ LArRawDataContByteStreamTool::finalize() } -StatusCode LArRawDataContByteStreamTool::WriteLArDigits(const LArDigitContainer* digitCont, FullEventAssembler<Hid2RESrcID> *fea) { +StatusCode +LArRawDataContByteStreamTool::WriteLArDigits(const LArDigitContainer* digitCont, + FEA_t& fea) const +{ if (!m_initializeForWriting) { ATH_MSG_ERROR ( "Tool not setup for writing! Use property " << name()<<".InitializeForWriting" ); @@ -144,11 +146,11 @@ StatusCode LArRawDataContByteStreamTool::WriteLArDigits(const LArDigitContainer* return StatusCode::FAILURE; } //prepareWriting(); - fea->setRodMinorVersion(m_RodBlockVersion); - fea->setDetEvtType(m_DSPRunMode); + fea.setRodMinorVersion(m_RodBlockVersion); + fea.setDetEvtType(m_DSPRunMode); ATH_MSG_DEBUG ( "Setting Detector Event Type to " << m_DSPRunMode << " and Minor Version Number to " << m_RodBlockVersion ); - FullEventAssembler<Hid2RESrcID>::RODDATA* theROD; + FEA_t::RODDATA* theROD; LArDigitContainer::const_iterator it_b=digitCont->begin(); LArDigitContainer::const_iterator it_e=digitCont->end(); if (it_b==it_e) { @@ -197,20 +199,21 @@ StatusCode LArRawDataContByteStreamTool::WriteLArDigits(const LArDigitContainer* // LArRodEncoder has collected all the channels, now can fill the // ROD block data. for(; it!=it_end;++it) { - theROD = fea->getRodData( (*it).first ); + theROD = fea.getRodData( (*it).first ); ((*it).second).fillROD(*theROD,msg(), **noise, m_nfebsigma ) ; } ATH_MSG_DEBUG ( "Filled " << mapEncoder.size() << " Rod Blocks" ); // Finally, fill full event - //fea->fill(re,log); + //fea.fill(re,log); return StatusCode::SUCCESS; } -StatusCode LArRawDataContByteStreamTool::WriteLArCalibDigits(const LArCalibDigitContainer* digitCont, - FullEventAssembler<Hid2RESrcID> *fea) { - +StatusCode +LArRawDataContByteStreamTool::WriteLArCalibDigits(const LArCalibDigitContainer* digitCont, + FEA_t& fea) const +{ if (!m_initializeForWriting) { ATH_MSG_ERROR ( "Tool not setup for writing! Use property " << name()<<".InitializeForWriting" ); @@ -226,11 +229,11 @@ StatusCode LArRawDataContByteStreamTool::WriteLArCalibDigits(const LArCalibDigit return StatusCode::FAILURE; } //prepareWriting(); - fea->setRodMinorVersion(m_RodBlockVersion); - fea->setDetEvtType(m_DSPRunMode); + fea.setRodMinorVersion(m_RodBlockVersion); + fea.setDetEvtType(m_DSPRunMode); ATH_MSG_DEBUG ( "Setting Detector Event Type to " << m_DSPRunMode << "and Minor Version Number to " << m_RodBlockVersion ); - FullEventAssembler<Hid2RESrcID>::RODDATA* theROD; + FEA_t::RODDATA* theROD; LArCalibDigitContainer::const_iterator it_b=digitCont->begin(); LArCalibDigitContainer::const_iterator it_e=digitCont->end(); if (it_b==it_e) { @@ -266,7 +269,7 @@ StatusCode LArRawDataContByteStreamTool::WriteLArCalibDigits(const LArCalibDigit // LArRodEncoder has collected all the channels, now can fill the // ROD block data. for(; it!=it_end;++it) { - theROD = fea->getRodData( (*it).first ); + theROD = fea.getRodData( (*it).first ); ((*it).second).fillROD( *theROD,msg(), **noise, m_nfebsigma ) ; } ATH_MSG_DEBUG ( "Filled " << mapEncoder.size() << " Rod Blocks" ); @@ -274,8 +277,10 @@ StatusCode LArRawDataContByteStreamTool::WriteLArCalibDigits(const LArCalibDigit } -StatusCode LArRawDataContByteStreamTool::WriteLArRawChannels(const LArRawChannelContainer* channelCont, - FullEventAssembler<Hid2RESrcID> *fea) { +StatusCode +LArRawDataContByteStreamTool::WriteLArRawChannels(const LArRawChannelContainer* channelCont, + FEA_t& fea) const +{ if (!m_initializeForWriting) { ATH_MSG_ERROR ( "Tool not setup for writing! Use property " << name()<<".InitializeForWriting" ); @@ -289,9 +294,9 @@ StatusCode LArRawDataContByteStreamTool::WriteLArRawChannels(const LArRawChannel ATH_MSG_DEBUG ( "This instance of LArRodBlockStructure can't hold LArRawChannels!" ); return StatusCode::FAILURE; } - FullEventAssembler<Hid2RESrcID>::RODDATA* theROD; - fea->setRodMinorVersion(m_RodBlockVersion); - fea->setDetEvtType(m_DSPRunMode); + FEA_t::RODDATA* theROD; + fea.setRodMinorVersion(m_RodBlockVersion); + fea.setDetEvtType(m_DSPRunMode); ATH_MSG_DEBUG ( "Setting Detector Event Type to " << m_DSPRunMode << "and Minor Version Number to " << m_RodBlockVersion ); LArRawChannelContainer::const_iterator it = channelCont->begin(); @@ -353,7 +358,7 @@ StatusCode LArRawDataContByteStreamTool::WriteLArRawChannels(const LArRawChannel // LArRodEncoder has collected all the channels, now can fill the // ROD block data. for(; it_m!=it_m_e;++it_m) { - theROD = fea->getRodData( (*it_m).first ); + theROD = fea.getRodData( (*it_m).first ); ((*it_m).second).fillROD( *theROD,msg(), **noise, m_nfebsigma ) ; // delete ((*it_m).second); // ((*it_m).second)=NULL; @@ -363,15 +368,14 @@ StatusCode LArRawDataContByteStreamTool::WriteLArRawChannels(const LArRawChannel } -StatusCode LArRawDataContByteStreamTool::prepareRobIndex(const RawEvent* re) +StatusCode +LArRawDataContByteStreamTool::prepareRobIndex(const RawEvent* re, + RobIndex_t& robIndex) const { // This `optimization' leads to disaster if there ever happen to be // two adjacent events with identical L1 IDs --- in that case, // we'd be using the dangling ROB pointers from the last event. - // We should generally come through here only once per event anyway, - // so just remove this test. -if ( 1/*re->lvl1_id() != m_lastEvent*/ ) { - m_lastEvent = re->lvl1_id(); + // We should generally come through here only once per event anyway. ATH_MSG_DEBUG( "Converting event (from ByteStream)" ); if (!re) { @@ -386,11 +390,10 @@ if ( 1/*re->lvl1_id() != m_lastEvent*/ ) { ATH_MSG_VERBOSE ("Fragment size in words: " << re->fragment_size_word() ); // Need to clear up or it will accumulate - m_robIndex.clear(); - eformat::helper::build_toc(*re, m_robIndex ); - if ( m_robIndex.empty() ) { // This is a problem + robIndex.clear(); + eformat::helper::build_toc(*re, robIndex ); + if ( robIndex.empty() ) { // This is a problem return StatusCode::FAILURE; } - } return StatusCode::SUCCESS; }