BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtRecCnv.cxx
Go to the documentation of this file.
1#include "GaudiKernel/MsgStream.h"
2
3#include "EventModel/EventModel.h"
4#include "EvtRecEvent/EvtRecObject.h"
5#include "RootEventData/TEvtRecObject.h"
6
7#include "RootCnvSvc/EvtRec/EvtRecCnv.h"
8#include "RootCnvSvc/RootAddress.h"
9
10TEvtRecObject* EvtRecCnv::m_objWrite = 0;
11
12EvtRecCnv::EvtRecCnv( ISvcLocator* svc ) : RootEventBaseCnv( classID(), svc ) {
14}
15
17 StatusCode status = RootEventBaseCnv::initialize();
18
19 m_cnvSvc->setEvtRecCnv( this );
20
21 return status;
22}
23
24StatusCode EvtRecCnv::TObjectToDataObject( DataObject*& refpObject ) {
25 MsgStream log( msgSvc(), "EvtRecCnv" );
26 log << MSG::DEBUG << "EvtRecCnv::TObjectToDataObject" << endmsg;
27
28 // create the TDS location for the EvtRecObject
29 EvtRecObject* evtRecObject = new EvtRecObject;
30 refpObject = evtRecObject;
31
32 return StatusCode::SUCCESS;
33}
34
35StatusCode EvtRecCnv::DataObjectToTObject( DataObject* obj, RootAddress* rootaddr ) {
36
37 MsgStream log( msgSvc(), "EvtRecCnv" );
38 log << MSG::DEBUG << "EvtRecCnv::DataObjectToTObject" << endmsg;
39
40 if ( m_common.m_evtRecObject != NULL ) return StatusCode::SUCCESS;
41
42 EvtRecObject* evtRecObject = dynamic_cast<EvtRecObject*>( obj );
43 if ( !evtRecObject )
44 {
45 log << MSG::ERROR << "Could not downcast to EvtRecObject" << endmsg;
46 return StatusCode::FAILURE;
47 }
48
49 m_objWrite = new TEvtRecObject();
50 m_common.m_evtRecObject = m_objWrite;
51
52 // create branch if not yet done
53 if ( m_branchNrEvtRec < 0 )
54 {
55 StatusCode sc = m_rootInterface->createBranch( rootaddr->getTreename(), "TEvtRecObject",
56 m_objWrite->ClassName(), &m_objWrite,
58
59 if ( sc.isFailure() )
60 {
61 cout << "Could not create branch TEvtRecObject" << endl;
62 log << MSG::ERROR << "Could not create branch TEvtRecObject" << endmsg;
63 return sc;
64 }
65 }
66
67 m_objWrite->initialize();
68
69 return StatusCode::SUCCESS;
70}
IMessageSvc * msgSvc()
virtual StatusCode initialize()
Definition EvtRecCnv.cxx:16
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
Definition EvtRecCnv.cxx:35
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
Definition EvtRecCnv.cxx:24
EvtRecCnv(ISvcLocator *svc)
Definition EvtRecCnv.cxx:12
Definition of a Root address, derived from IOpaqueAddress.
virtual StatusCode initialize()
RootInterface * m_rootInterface
pointer to the RootInterface
std::string m_rootBranchname
root branchname (may be concatenated of severals)
RootEventBaseCnv(const CLID &clid, ISvcLocator *svc)