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 class MThermalResponse; 00036 class MFixTTTChannels; 00037 class MOTAmplitude; 00038 class MOTShiftBack; 00039 00040 Q_BEGIN_NAMESPACE 00041 00042 class QRawEventBase : public QEventData { 00043 00044 public: 00046 virtual ~QRawEventBase (); 00047 00049 int GetRun() const { return fRun; } 00050 00052 int GetEventNumber() const { return fEventNumber; } 00053 00055 const QTime& GetTime() const {return fTime;} 00056 00058 const QMainPulse& GetPulse() const {return fPulse; } 00059 00061 const std::vector<QPulse>& GetSidePulses() const {return fSidePulses; } 00062 00064 const QiMuonVeto& GetQiMuonVeto() const {return fQiMuonVeto;} 00065 00067 const bool& GetIsBolometer() const { return fIsBolometer; } 00068 00070 const bool& GetIsMuonVeto() const { return fIsMuonVeto; } 00071 00072 protected: 00073 00075 QRawEventBase(); 00076 00078 void Clear(); 00079 00081 void SetRun(unsigned int run) { fRun = run; SetIsSet(true); } 00083 void SetEventNumber(unsigned int eventNumber) { fEventNumber = eventNumber; SetIsSet(true); } 00085 void SetIsBolometer(const bool& isBolometer) { fIsBolometer = isBolometer; SetIsSet(true); } 00087 void SetIsMuonVeto(const bool& isMuonVeto) { fIsMuonVeto = isMuonVeto; SetIsSet(true); } 00089 QTime& GetTime() { return fTime; } 00091 QMainPulse& GetPulse() {return fPulse;} 00093 std::vector<QPulse>& GetSidePulses() {return fSidePulses; } 00095 QiMuonVeto& GetQiMuonVeto() {return fQiMuonVeto;} 00097 void SetIsApollo(const bool& isApollo) { fIsApollo = isApollo; SetIsSet(true); } 00099 bool GetIsApollo() const {return fIsApollo;} 00100 00101 private: 00102 00104 unsigned int fRun; 00106 unsigned int fEventNumber; 00108 QTime fTime; 00110 QMainPulse fPulse;; 00112 std::vector<QPulse> fSidePulses; 00114 QiMuonVeto fQiMuonVeto; 00116 bool fIsBolometer; 00118 bool fIsMuonVeto; 00120 bool fIsApollo; 00121 00122 friend class ::QRawEventR_01; 00123 00124 }; 00125 00133 class QRawEvent : public QRawEventBase { 00134 00135 public: 00137 QRawEvent(); 00138 00140 ~QRawEvent(); 00141 00142 private: 00143 friend class ::MQinoDataReader; 00144 friend class ::MQinoMiCompleteDataReaderFast; 00145 friend class ::MQinoNtpReader; 00146 friend class ::MQinoMiNtpReader; 00147 friend class ::MSetHeaterFlag; 00148 friend class ::MPulseGenerator; 00149 friend class ::MLCEventBuilder; 00150 friend class ::MDefaults; 00151 friend class ::MOpenApolloFlag; 00152 friend class ::QEventFiller; 00153 friend class ::MCalSimulationReader; 00154 friend class ::MQuickFileReader; 00155 friend class ::MClearEvent; 00156 friend class ::MThermalResponse; 00157 friend class ::MFixTTTChannels; 00158 friend class ::MOTAmplitude; 00159 friend class ::MOTShiftBack; 00160 }; 00161 00162 Q_END_NAMESPACE 00163 00164 #endif