ATLAS Offline Software
SCTRawContByteStreamCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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, "SCTRawContByteStreamCnv"),
21  m_rawContByteStreamTool{"SCTRawContByteStreamTool"},
22  m_byteStreamEventAccess{"ByteStreamCnvSvc", "SCTRawContByteStreamCnv"}
23 {
24 }
25 
26 // Initialize
27 
29 {
31  ATH_MSG_DEBUG( " initialize " );
32 
33  // Retrieve ByteStreamCnvSvc
35  ATH_MSG_INFO( "Retrieved service " << m_byteStreamEventAccess );
36 
37  // Retrieve byte stream tool
39  ATH_MSG_INFO( "Retrieved tool " << m_rawContByteStreamTool );
40 
41  return StatusCode::SUCCESS;
42 }
43 
44 // Method to create RawEvent fragments
45 
46 StatusCode SCTRawContByteStreamCnv::createRepConst(DataObject* pDataObject, IOpaqueAddress*& pOpaqueAddress) const
47 {
48  // Get IDC for SCT Raw Data
49  SCT_RDO_Container* sctRDOCont{nullptr};
50  if (not SG::fromStorable(pDataObject, sctRDOCont)) {
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  if ( pOpaqueAddress != nullptr ) pOpaqueAddress->release();
58  pOpaqueAddress = new ByteStreamAddress(classID(), dataObjectName, "");
59  pOpaqueAddress->addRef();
60 
61  // Use the tool to do the conversion
62  ATH_CHECK(m_rawContByteStreamTool->convert(sctRDOCont) );
63 
64  return StatusCode::SUCCESS;
65 }
ISCTRawContByteStreamTool.h
AthCheckMacros.h
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
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
SCTRawContByteStreamCnv::initialize
virtual StatusCode initialize() override
Initialize.
Definition: SCTRawContByteStreamCnv.cxx:28
InDetRawDataContainer
Definition: InDetRawDataContainer.h:27
AthConstConverter
Gaudi converter base class with const interfaces.
Definition: AthConstConverter.h:33
SCTRawContByteStreamCnv::m_rawContByteStreamTool
ToolHandle< ISCTRawContByteStreamTool > m_rawContByteStreamTool
Tool to do coversion from SCT RDO container to ByteStream.
Definition: SCTRawContByteStreamCnv.h:69
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
SCTRawContByteStreamCnv::SCTRawContByteStreamCnv
SCTRawContByteStreamCnv(ISvcLocator *svcLoc)
Constructor.
Definition: SCTRawContByteStreamCnv.cxx:19
SCTRawContByteStreamCnv::m_byteStreamEventAccess
ServiceHandle< IByteStreamEventAccess > m_byteStreamEventAccess
Interface for accessing raw data.
Definition: SCTRawContByteStreamCnv.h:72
SCTRawContByteStreamCnv::classID
static const CLID & classID()
Class ID.
Definition: SCTRawContByteStreamCnv.h:48
SCTRawContByteStreamCnv.h
StoreGateSvc.h
SCTRawContByteStreamCnv::createRepConst
virtual StatusCode createRepConst(DataObject *pDataObject, IOpaqueAddress *&pOpaqueAddress) const override
Method to convert SCT Raw Data into ByteStream.
Definition: SCTRawContByteStreamCnv.cxx:46