ATLAS Offline Software
ITkStripsRawContByteStreamCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
11 
13 #include "StoreGate/StoreGateSvc.h"
14 
15 #include "GaudiKernel/DataObject.h"
16 #include "GaudiKernel/MsgStream.h"
17 
18 // Constructor
19 
21  AthConstConverter(storageType(), classID(), svcLoc, "ITkStripsRawContByteStreamCnv"),
22  m_rawContByteStreamTool{"ITkStripsRawContByteStreamTool"},
23  m_byteStreamEventAccess{"ByteStreamCnvSvc", "ITkStripsRawContByteStreamCnv"}
24 {
25 }
26 
27 // Initialize
28 
30 {
32  ATH_MSG_DEBUG( " initialize " );
33 
34  // Retrieve ByteStreamCnvSvc
36  ATH_MSG_VERBOSE( "Retrieved service " << m_byteStreamEventAccess );
37 
38  // Retrieve byte stream tool
40  ATH_MSG_VERBOSE( "Retrieved tool " << m_rawContByteStreamTool );
41 
42  return StatusCode::SUCCESS;
43 }
44 
45 // Method to create RawEvent fragments
46 
47 StatusCode ITkStripsRawContByteStreamCnv::createRepConst(DataObject* pDataObject, IOpaqueAddress*& pOpaqueAddress) const
48 {
49  // Get IDC for ITK Raw Data
50  SCT_RDO_Container* itkStripsRDOCont{nullptr};
51  if (not SG::fromStorable(pDataObject, itkStripsRDOCont)) {
52  ATH_MSG_ERROR( " Can not cast to SCTRawContainer " );
53  return StatusCode::FAILURE;
54  }
55 
56  // Set up the IOpaqueAddress for Storegate
57  std::string dataObjectName{pDataObject->registry()->name()};
58  pOpaqueAddress = new ByteStreamAddress(classID(), dataObjectName, "");
59  pOpaqueAddress->addRef();//avoid memory leak
60  // Use the tool to do the conversion
61  ATH_CHECK(m_rawContByteStreamTool->convert(itkStripsRDOCont) );
62 
63  return StatusCode::SUCCESS;
64 }
AthCheckMacros.h
SG::fromStorable
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:180
initialize
void initialize()
Definition: run_EoverP.cxx:894
ITkStripsRawContByteStreamCnv::ITkStripsRawContByteStreamCnv
ITkStripsRawContByteStreamCnv(ISvcLocator *svcLoc)
Constructor.
Definition: ITkStripsRawContByteStreamCnv.cxx:20
ITkStripsRawContByteStreamCnv::m_rawContByteStreamTool
ToolHandle< IITkStripsRawContByteStreamTool > m_rawContByteStreamTool
Tool to do coversion from ITkStrips RDO container to ByteStream.
Definition: ITkStripsRawContByteStreamCnv.h:66
ITkStripsRawContByteStreamCnv::m_byteStreamEventAccess
ServiceHandle< IByteStreamEventAccess > m_byteStreamEventAccess
Interface for accessing raw data.
Definition: ITkStripsRawContByteStreamCnv.h:69
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
IByteStreamEventAccess.h
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
AthConstConverter
Gaudi converter base class with const interfaces.
Definition: AthConstConverter.h:33
ITkStripsRawContByteStreamCnv::classID
static const CLID & classID()
Class ID.
Definition: ITkStripsRawContByteStreamCnv.h:45
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
RawEvent.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ByteStreamAddress
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Definition: ByteStreamAddress.h:28
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ByteStreamAddress.h
ITkStripsRawContByteStreamCnv::initialize
virtual StatusCode initialize() override
Initialize.
Definition: ITkStripsRawContByteStreamCnv.cxx:29
ITkStripsRawContByteStreamCnv.h
IITkStripsRawContByteStreamTool.h
ITkStripsRawContByteStreamCnv::createRepConst
virtual StatusCode createRepConst(DataObject *pDataObject, IOpaqueAddress *&pOpaqueAddress) const override
Method to convert ITkStrips Raw Data into ByteStream.
Definition: ITkStripsRawContByteStreamCnv.cxx:47
StoreGateSvc.h