00001 #ifndef _Q_BASEEVENT_R_HH_ 00002 #define _Q_BASEEVENT_R_HH_ 00003 00004 #include <TObject.h> 00005 #include "Rtypes.h" 00006 #include "QEventDataR.hh" 00007 #include <map> 00008 #include <list> 00009 00010 00011 namespace Cuore {class QEvent;} 00012 class QBaseRawEventR; 00013 00014 class QBaseEventR : public TObject 00015 { 00016 public: 00017 virtual QBaseRawEventR* GetBaseRawEvent() = 0; 00018 00019 virtual ~QBaseEventR(); 00020 00021 std::map<std::string,std::string> GetAliases() { return fAliases_01; } 00022 00027 void Assign(const Cuore::QEvent& ev); 00028 00029 protected: 00030 QBaseEventR(); 00031 00032 void Initialize() { if(!fIsInitialized) { Init(); SetAliases(); fIsInitialized = true;} } 00033 00034 virtual void Init() {} 00039 virtual void Fill(Cuore::QEvent& ev) const; 00040 00042 std::list<QEventDataR*> fEventData; 00044 std::list<QEventDataR*> fEventData_01; 00045 00046 private: 00047 void SetAliases(); 00049 std::map<std::string,std::string> fAliases; 00051 std::map<std::string,std::string> fAliases_01; 00052 00053 Bool_t fIsInitialized; 00054 00055 friend class MRootFileReader; 00056 friend class MLightRootFileReader; 00057 friend class MLiveTime; 00058 00059 ClassDef(QBaseEventR,2); 00060 00061 }; 00062 00063 #endif