00001 #ifndef EvtNavigatorCnv_H 00002 #define EvtNavigatorCnv_H 1 00003 00004 #include <iostream> 00005 #include <map> 00006 #include "RootCnvSvc/RootEventBaseCnv.h" 00007 00008 #include "RootEventData/TEvtNavigator.h" 00009 #include "RootCnvSvc/commonData.h" 00010 00011 //extern const CLID& CLID_Event; 00012 extern const CLID CLID_EventNavigator; 00013 00014 // Abstract factory to create the converter 00015 template <class TYPE> class CnvFactory; 00016 00021 class EvtNavigatorCnv : public RootEventBaseCnv { 00022 00023 friend class CnvFactory<EvtNavigatorCnv>; 00024 00025 public: 00026 static const CLID& classID() 00027 { 00028 return CLID_EventNavigator; 00029 } 00030 00031 virtual ~EvtNavigatorCnv() { }; 00032 00033 00034 virtual StatusCode initialize(); 00035 00037 static TEvtNavigator* getWriteObject() { return m_evtNavigatorW;} 00038 00039 protected: 00040 EvtNavigatorCnv(ISvcLocator* svc); 00041 00043 virtual StatusCode DataObjectToTObject(DataObject* obj, RootAddress* addr); 00044 00046 virtual StatusCode TObjectToDataObject(DataObject*& refpObject); 00047 00048 private: 00050 static TEvtNavigator* m_evtNavigatorR; 00051 static TEvtNavigator* m_evtNavigatorW; 00052 00053 std::multimap<int, int> m_mcMdcMcHits; 00054 std::multimap<int, int> m_mcMdcTracks; 00055 std::multimap<int, int> m_mcEmcMcHits; 00056 std::multimap<int, int> m_mcEmcRecShowers; 00057 00058 commonData m_common; 00059 }; 00060 00061 #endif // EvtNavigatorCnv_H