00001 00009 #ifndef _QRAWEVENT_HH_ 00010 #define _QRAWEVENT_HH_ 00011 00012 #include "QEventData.hh" 00013 #include "QTime.hh" 00014 #include "QPulse.hh" 00015 #include "QMainPulse.hh" 00016 #include "QSampleInfo.hh" 00017 #include "QiMuonVeto.hh" 00018 00019 #include <vector> 00020 00021 class QRawEventR_01; 00022 class MQinoDataReader; 00023 class MQinoMiCompleteDataReaderFast; 00024 class MQinoNtpReader; 00025 class MQinoMiNtpReader; 00026 class MSetHeaterFlag; 00027 class MPulseGenerator; 00028 class MLCEventBuilder; 00029 class MDefaults; 00030 class MOpenApolloFlag; 00031 class QEventFiller; 00032 class MCalSimulationReader; 00033 class MQuickFileReader; 00034 class MClearEvent; 00035 00036 Q_BEGIN_NAMESPACE 00037 00038 class QRawEventBase : public QEventData { 00039 00040 public: 00042 virtual ~QRawEventBase (); 00043 00045 int GetRun() const { return fRun; } 00046 00048 int GetEventNumber() const { return fEventNumber; } 00049 00051 const QTime& GetTime() const {return fTime;} 00052 00054 const QMainPulse& GetPulse() const {return fPulse; } 00055 00057 const std::vector<QPulse>& GetSidePulses() const {return fSidePulses; } 00058 00060 const QiMuonVeto& GetQiMuonVeto() const {return fQiMuonVeto;} 00061 00063 const bool& GetIsBolometer() const { return fIsBolometer; } 00064 00066 const bool& GetIsMuonVeto() const { return fIsMuonVeto; } 00067 00068 protected: 00069 00071 QRawEventBase(); 00072 00074 void Clear(); 00075 00077 void SetRun(unsigned int run) { fRun = run; SetIsSet(true); } 00079 void SetEventNumber(unsigned int eventNumber) { fEventNumber = eventNumber; SetIsSet(true); } 00081 void SetIsBolometer(const bool& isBolometer) { fIsBolometer = isBolometer; SetIsSet(true); } 00083 void SetIsMuonVeto(const bool& isMuonVeto) { fIsMuonVeto = isMuonVeto; SetIsSet(true); } 00085 QTime& GetTime() { return fTime; } 00087 QMainPulse& GetPulse() {return fPulse;} 00089 std::vector<QPulse>& GetSidePulses() {return fSidePulses; } 00091 QiMuonVeto& GetQiMuonVeto() {return fQiMuonVeto;} 00093 void SetIsApollo(const bool& isApollo) { fIsApollo = isApollo; SetIsSet(true); } 00095 bool GetIsApollo() const {return fIsApollo;} 00096 00097 private: 00098 00100 unsigned int fRun; 00102 unsigned int fEventNumber; 00104 QTime fTime; 00106 QMainPulse fPulse;; 00108 std::vector<QPulse> fSidePulses; 00110 QiMuonVeto fQiMuonVeto; 00112 bool fIsBolometer; 00114 bool fIsMuonVeto; 00116 bool fIsApollo; 00117 00118 friend class ::QRawEventR_01; 00119 00120 }; 00121 00129 class QRawEvent : public QRawEventBase { 00130 00131 public: 00133 QRawEvent(); 00134 00136 ~QRawEvent(); 00137 00138 private: 00139 friend class ::MQinoDataReader; 00140 friend class ::MQinoMiCompleteDataReaderFast; 00141 friend class ::MQinoNtpReader; 00142 friend class ::MQinoMiNtpReader; 00143 friend class ::MSetHeaterFlag; 00144 friend class ::MPulseGenerator; 00145 friend class ::MLCEventBuilder; 00146 friend class ::MDefaults; 00147 friend class ::MOpenApolloFlag; 00148 friend class ::QEventFiller; 00149 friend class ::MCalSimulationReader; 00150 friend class ::MQuickFileReader; 00151 friend class ::MClearEvent; 00152 }; 00153 00154 Q_END_NAMESPACE 00155 00156 #endif