ATLAS Offline Software
Loading...
Searching...
No Matches
CscRdoContByteStreamCnv.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
9#include "GaudiKernel/IRegistry.h"
12
14 AthConstConverter(storageType(), classID(), svcloc, "CscRdoContByteStreamCnv"), m_tool("Muon::CscRdoContByteStreamTool") {}
15
16// class ID
18
20
21// initialize
23 ATH_MSG_DEBUG(" initialize ");
24
25 ATH_CHECK(AthConstConverter::initialize());
26 ATH_CHECK(m_tool.retrieve());
27 return StatusCode::SUCCESS;
28}
29
30// convert CSC RDOs in the container into ByteStream
31StatusCode CscRdoContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress*& pAddr) const {
32 // retrieve CSC RDO container
33 CscRawDataContainer* cont = nullptr;
34 SG::fromStorable(pObj, cont);
35 if (!cont) {
36 ATH_MSG_ERROR(" Can not cast to CscRawDataContainer");
37 return StatusCode::FAILURE;
38 }
39
40 // create address
41 std::string nm = pObj->registry()->name();
42 pAddr = new ByteStreamAddress(classID(), nm, "");
43
44 return m_tool->convert(cont, msg());
45}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
uint32_t CLID
The Class ID type.
convert to and from a SG storable
AthConstConverter(long storage_type, const CLID &class_type, ISvcLocator *svc, const std::string &name)
MsgStream & msg() const
The standard message stream.
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
static constexpr long storageType()
This container provides access to collections of CSC RDOs and a mechanism for recording them.
ToolHandle< Muon::ICSC_RDOtoByteStreamTool > m_tool
CscRdoContByteStreamCnv(ISvcLocator *svcloc)
virtual StatusCode initialize() override
virtual StatusCode createRepConst(DataObject *pObj, IOpaqueAddress *&pAddr) const override
Convert the transient object to the requested representation.
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)