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 
10 
12 #include "StoreGate/StoreGateSvc.h"
13 
14 #include "GaudiKernel/DataObject.h"
15 #include "GaudiKernel/MsgStream.h"
16 
17 // Constructor
18 
20  AthConstConverter(storageType(), classID(), svcLoc, "ITkStripsRawContByteStreamCnv"),
21  m_rawContByteStreamTool{"ITkStripsRawContByteStreamTool"},
22  m_byteStreamEventAccess{"ByteStreamCnvSvc", "ITkStripsRawContByteStreamCnv"}
23 {
24 }
25 
26 // Initialize
27 
29 {
31  ATH_MSG_DEBUG( " initialize " );
32 
33  // Retrieve ByteStreamCnvSvc
35  ATH_MSG_VERBOSE( "Retrieved service " << m_byteStreamEventAccess );
36 
37  // Retrieve byte stream tool
39  ATH_MSG_VERBOSE( "Retrieved tool " << m_rawContByteStreamTool );
40 
41  return StatusCode::SUCCESS;
42 }
43 
44 // Method to create RawEvent fragments
45 
46 StatusCode ITkStripsRawContByteStreamCnv::createRepConst(DataObject* pDataObject, IOpaqueAddress*& pOpaqueAddress) const
47 {
48  // Get IDC for ITK Raw Data
49  SCT_RDO_Container* itkStripsRDOCont{nullptr};
50  if (not SG::fromStorable(pDataObject, itkStripsRDOCont)) {
51  ATH_MSG_ERROR( " Can not cast to SCTRawContainer " );
52  return StatusCode::FAILURE;
53  }
54 
55  // Set up the IOpaqueAddress for Storegate
56  std::string dataObjectName{pDataObject->registry()->name()};
57  pOpaqueAddress = new ByteStreamAddress(classID(), dataObjectName, "");
58  pOpaqueAddress->addRef();//avoid memory leak
59  // Use the tool to do the conversion
60  ATH_CHECK(m_rawContByteStreamTool->convert(itkStripsRDOCont) );
61 
62  return StatusCode::SUCCESS;
63 }
AthCheckMacros.h
SG::fromStorable
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:167
initialize
void initialize()
Definition: run_EoverP.cxx:894
ITkStripsRawContByteStreamCnv::ITkStripsRawContByteStreamCnv
ITkStripsRawContByteStreamCnv(ISvcLocator *svcLoc)
Constructor.
Definition: ITkStripsRawContByteStreamCnv.cxx:19
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
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:28
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:46
StoreGateSvc.h