![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
17 #include "GaudiKernel/MsgStream.h"
18 #include "GaudiKernel/StatusCode.h"
19 #include "GaudiKernel/DataObject.h"
20 #include "GaudiKernel/IRegistry.h"
30 #include "GaudiKernel/IToolSvc.h"
38 Converter(storageType(), classID(),svcloc), m_log(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){}
54 if(StatusCode::SUCCESS!=
sc)
58 m_log =
new MsgStream(
msgSvc(),
"LArLATOMEHeaderBSCnv");
62 if(StatusCode::SUCCESS != serviceLocator()->getService(
"ByteStreamCnvSvc",
svc)){
63 (*m_log) << MSG::ERROR <<
" Can't get ByteStreamEventAccess interface " <<
endmsg;
64 return StatusCode::FAILURE;
69 (*m_log) <<MSG::ERROR<<
" LArRawScContByteStreamCnv: Can't cast to ByteStreamCnvSvc " <<
endmsg;
70 return StatusCode::FAILURE ;
75 if(StatusCode::SUCCESS != serviceLocator()->getService(
"ROBDataProviderSvc",
svc)){
76 (*m_log) << MSG::WARNING <<
" Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. " <<
endmsg;
82 (*m_log) <<MSG::ERROR<<
" LArRawScContByteStreamCnv: Can't cast to ByteStreamInputSvc " <<
endmsg;
83 return StatusCode::FAILURE;
90 if(StatusCode::SUCCESS != service(
"ToolSvc",toolSvc)){
91 (*m_log) << MSG::ERROR <<
" Can't get ToolSvc " <<
endmsg;
92 return StatusCode::FAILURE;
96 sc=toolSvc->retrieveTool(
"LArLATOMEDecoder",
m_scTool);
98 (*m_log) << MSG::ERROR <<
"Can't get LArLATOMEDecoder Tool" <<
endmsg;
101 (*m_log) << MSG::INFO <<
"Retrieved LArLATOMEDecoder Tool" <<
endmsg;
112 (*m_log) <<
MSG::VERBOSE <<
"Executing CreateObj method for LArLATOMEHeaderContainer" <<
endmsg;
115 {(*m_log) << MSG::ERROR <<
" ROBDataProviderSvc not loaded. Can't read ByteStream." <<
endmsg;
116 return StatusCode::FAILURE;
121 {(*m_log) << MSG::ERROR <<
"dynamic_cast of OpaqueAdress to ByteStreamAddress failed!" <<
endmsg;
122 return StatusCode::FAILURE;
126 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
130 {(*m_log) << MSG::ERROR <<
"Could not get raw event from ByteStreamInputSvc" <<
endmsg;
131 return StatusCode::FAILURE;
133 const std::string&
key = *(pAddr->par());
144 else if(
key==
"SC_ET_ID"){
148 (*m_log) <<
MSG::DEBUG <<
"Converting LArRawSCContainer (from ByteStream). key=" <<
key <<
endmsg;
152 sc=
m_scTool->
convert(robFrags,
nullptr,adc_coll, adc_bas_coll, et_coll, et_id_coll, header_coll);
153 if (
sc!=StatusCode::SUCCESS)
154 (*m_log) << MSG::WARNING <<
"Conversion tool returned an error. LAr SC containers might be empty." <<
endmsg;
159 else if(
key==
"SC_ET_ID"){
164 return StatusCode::SUCCESS;
171 return StatusCode::SUCCESS;
StatusCode convert(const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &robFrags, const LArLATOMEMapping *map, LArDigitContainer *adc_coll, LArDigitContainer *adc_bas_coll, LArRawSCContainer *et_coll, LArRawSCContainer *et_id_coll, LArLATOMEHeaderContainer *header_coll) const
Converter.
StoreGateSvc * m_storeGate
Container class for LArRawSC.
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
LArLATOMEDecoder * m_scTool
DataObject * asStorable(T *pObject)
static const CLID & ID()
the CLID of T
Interface class for managing ROB for both online and offline.
Gaudi Conversion Service class for ByteStream Persistency.
virtual void getROBData(const std::vector< uint32_t > &robIds, VROBFRAG &robFragments, const std::string_view callerName="UNKNOWN")=0
Retrieve ROBFragments for given ROB ids from cache.
msgSvc
Provide convenience handles for various services.
::StatusCode StatusCode
StatusCode definition for legacy code.
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
AthROOTErrorHandlerSvc * svc
uint32_t CLID
The Class ID type.
IROBDataProviderSvc * m_rdpSvc
virtual const RawEvent * getEvent()=0
Retrieve the whole event.
virtual StatusCode initialize()
static const CLID & classID()
virtual ~LArRawScContByteStreamCnv()
const boost::regex re(r_e)
Container class for LArDigit.
Byte stream converter of LATOME.
ByteStreamCnvSvc * m_ByteStreamEventAccess
LArRawScContByteStreamCnv(ISvcLocator *svcloc)
macros to associate a CLID to a type
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)