12#include "GaudiKernel/MsgStream.h"
13#include "GaudiKernel/StatusCode.h"
14#include "GaudiKernel/IRegistry.h"
15#include "GaudiKernel/Converter.h"
17#include "GaudiKernel/ThreadGaudi.h"
20#include "RawEvent/DigiEvent.h"
21#include "RawDataCnv/RawDataAddress.h"
22#include "RawDataCnv/RawDataInputSvc.h"
23#include "RawDataCnv/PackedRawDataCnvSvc.h"
24#include "RawDataCnv/EventManagement/RawEvent.h"
25#include "RawDataCnv/RawDataDigiCnv.h"
46 std::string PackedRawDataCnvSvc_Name(
"PackedRawDataCnvSvc");
47 std::string RawDataInputSvc_Name(
"RawDataInputSvc");
48 std::string RawDataDigiCnv_Name(
"RawDataDigiCnv");
52 SmartIF<IService> pCnvSvc(conversionSvc());
54 if (isGaudiThreaded(pCnvSvc->name())){
55 PackedRawDataCnvSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
56 RawDataInputSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
57 RawDataDigiCnv_Name += getGaudiThreadIDfromName(pCnvSvc->name());
62 if(StatusCode::SUCCESS!=sc)
67 MsgStream log(messageService(), RawDataDigiCnv_Name.c_str());
70 sc = serviceLocator()->service(PackedRawDataCnvSvc_Name.c_str(), svc);
71 if (sc != StatusCode::SUCCESS) {
72 log << MSG::ERROR <<
"Can't get RawDataAccess interface" << endreq;
73 return StatusCode::FAILURE;
77 if (m_RawDataAccess == 0 ) {
78 log << MSG::ERROR <<
"RawDataCnv: Cant cast to RawDataCnvSvc" << endreq;
79 return StatusCode::FAILURE;
82 sc = serviceLocator()->getService(RawDataInputSvc_Name.c_str(), svc);
83 if(sc != StatusCode::SUCCESS ) {
84 log << MSG::WARNING <<
"Cant get RawDataInputSvc " << endreq;
89 if(m_inputSvc == 0 ) {
90 log << MSG::ERROR <<
"Cant cast to RawDataInputSvc" << endreq;
91 return StatusCode::FAILURE ;
94 return StatusCode::SUCCESS;
104 return Converter::updateObj(pAddr, pObj);
110 MsgStream log(
msgSvc(),
"RawDataDigiCnv");
119 return StatusCode::SUCCESS;
126 StatusCode sc = StatusCode::SUCCESS ;
132 std::string nm = pObj->registry()->name();
138 return StatusCode::SUCCESS;
const CLID & CLID_DigiEvent
Raw event and Digi IDs.
unsigned const long PACKEDRAWEVENT_StorageType
const CLID & CLID_DigiEvent
Raw event and Digi IDs.
void initialize(bool fromMc)
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr)
Convert the transient object to the requested representation.
StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj)
virtual StatusCode updateObj(IOpaqueAddress *, DataObject *)
override the RawDataBaseCnv version
RawDataDigiCnv(ISvcLocator *svc)
static const CLID & classID()