00001 #ifndef EvtRecCnv_H 00002 #define EvtRecCnv_H 00003 00004 #include "RootCnvSvc/RootEventBaseCnv.h" 00005 #include "RootCnvSvc/commonData.h" 00006 #include "RootEventData/TEvtRecObject.h" 00007 00008 class RootAddress; 00009 00010 extern const CLID& CLID_EvtRecObject; 00011 00012 // Abstract factory to create the converter 00013 template <class TYPE> class CnvFactory; 00014 00015 class EvtRecCnv : public RootEventBaseCnv { 00016 00017 friend class CnvFactory<EvtRecCnv>; 00018 00019 public: 00020 static const CLID& classID() { return CLID_EvtRecObject; } 00021 00022 virtual ~EvtRecCnv() {} 00023 00024 virtual StatusCode initialize(); 00025 00026 static TEvtRecObject* getWriteObject() { return m_objWrite; } 00027 00028 protected: 00029 EvtRecCnv(ISvcLocator* svc); 00030 00032 virtual StatusCode DataObjectToTObject(DataObject* obj, RootAddress* addr); 00033 00035 virtual StatusCode TObjectToDataObject(DataObject*& obj); 00036 00037 private: 00038 00040 commonData m_common; 00041 00042 static TEvtRecObject* m_objWrite; 00043 }; 00044 00045 #endif