ATLAS Offline Software
Loading...
Searching...
No Matches
SCTRawContByteStreamCnv.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
7
11
14
15#include "GaudiKernel/DataObject.h"
16#include "GaudiKernel/MsgStream.h"
17
18// Constructor
19
21 AthConstConverter(storageType(), classID(), svcLoc, "SCTRawContByteStreamCnv"),
22 m_rawContByteStreamToolProvider{"SCTRawContByteStreamToolProviderTool"},
23 m_rawContByteStreamTool(nullptr), // {"SCTRawContByteStreamTool"},
24 m_byteStreamEventAccess{"ByteStreamCnvSvc", "SCTRawContByteStreamCnv"}
25{
26}
27
28// Initialize
29
31{
32 ATH_CHECK(AthConstConverter::initialize());
33 ATH_MSG_DEBUG( " initialize " );
34
38 ATH_MSG_FATAL("Failed to get SCTRawContByteStreamTool");
39 return StatusCode::FAILURE;
40 }
41
42 // Retrieve ByteStreamCnvSvc
44 ATH_MSG_INFO( "Retrieved service " << m_byteStreamEventAccess );
45
46 return StatusCode::SUCCESS;
47}
48
49// Method to create RawEvent fragments
50
51StatusCode SCTRawContByteStreamCnv::createRepConst(DataObject* pDataObject, IOpaqueAddress*& pOpaqueAddress) const
52{
53 // Get IDC for SCT Raw Data
54 SCT_RDO_Container* sctRDOCont{nullptr};
55 if (not SG::fromStorable(pDataObject, sctRDOCont)) {
56 ATH_MSG_ERROR( " Can not cast to SCTRawContainer " );
57 return StatusCode::FAILURE;
58 }
59
60 // Set up the IOpaqueAddress for Storegate
61 std::string dataObjectName{pDataObject->registry()->name()};
62 if ( pOpaqueAddress != nullptr ) pOpaqueAddress->release();
63 pOpaqueAddress = new ByteStreamAddress(classID(), dataObjectName, "");
64 pOpaqueAddress->addRef();
65
66 // Use the tool to do the conversion
67 ATH_CHECK(m_rawContByteStreamTool->convert(sctRDOCont) );
68
69 return StatusCode::SUCCESS;
70}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_FATAL(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
Athena Algorithm Tool to fill Collections of SCT RDO Containers.
InDetRawDataContainer< InDetRawDataCollection< SCT_RDORawData > > SCT_RDO_Container
AthConstConverter(long storage_type, const CLID &class_type, ISvcLocator *svc, const std::string &name)
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
virtual StatusCode initialize() override
Initialize.
PublicToolHandle< ISCTRawContByteStreamToolProviderTool > m_rawContByteStreamToolProvider
Tool to do coversion from SCT RDO container to ByteStream.
SCTRawContByteStreamCnv(ISvcLocator *svcLoc)
Constructor.
ServiceHandle< IByteStreamEventAccess > m_byteStreamEventAccess
Interface for accessing raw data.
static long storageType()
Storage type.
virtual StatusCode createRepConst(DataObject *pDataObject, IOpaqueAddress *&pOpaqueAddress) const override
Method to convert SCT Raw Data into ByteStream.
static const CLID & classID()
Class ID.
const ISCTRawContByteStreamTool * m_rawContByteStreamTool
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)