00001 #ifndef _RAWEVENT_h_
00002 #define _RAWEVENT_h_
00003
00004 #include <stdint.h>
00005 #include <vector>
00006 #include "RawDataCnv/Util/BufferHolder.h"
00007
00008 class RAWEVENT
00009 {
00010 public:
00011 class RawEventHeader
00012 {
00013 public:
00014 RawEventHeader() {};
00015 ~RawEventHeader() {};
00016 void setRunNo(uint32_t runno) { m_run_number = runno; }
00017 void setEventNo(uint32_t eventno) { m_event_number = eventno; }
00018 void setTime(uint32_t time) { m_time = time; }
00019 void setFlag1(uint32_t flag1) { m_flag1 = flag1; }
00020 void setFlag2(uint32_t flag2) { m_flag2 = flag2; }
00021
00022 uint32_t run_number() const { return m_run_number; }
00023 uint32_t event_number() const { return m_event_number; }
00024 uint32_t time() const { return m_time; }
00025 uint32_t event_type() const { return m_event_type; }
00026 uint32_t flag1() const { return m_flag1; }
00027 uint32_t flag2() const { return m_flag2; }
00028
00029 private:
00030 uint32_t m_run_number;
00031 uint32_t m_event_number;
00032 uint32_t m_time;
00033 uint32_t m_event_type;
00034
00035 uint32_t m_flag1;
00036 uint32_t m_flag2;
00037 };
00038
00039 RAWEVENT();
00040 virtual ~RAWEVENT() {}
00041
00042 typedef std::vector<uint32_t> int_vector;
00043
00044
00045 void reset();
00046 void setRunNo(uint32_t run_no) { m_eventHeader.setRunNo(run_no); }
00047 void setEventNo(uint32_t event_no) { m_eventHeader.setEventNo(event_no); }
00048 void setTime(uint32_t time) { m_eventHeader.setTime(time); }
00049 void setFlag1(uint32_t flag1) { m_eventHeader.setFlag1(flag1); }
00050 void setFlag2(uint32_t flag2) { m_eventHeader.setFlag2(flag2); }
00051
00052
00053 void addReMdcDigi(uint32_t* digi, uint32_t size) {
00054 m_bufMdcDigi.addBuffer(digi, size);
00055 }
00056 void addReEmcDigi(uint32_t* digi, uint32_t size) {
00057 m_bufEmcDigi.addBuffer(digi, size);
00058 }
00059 void addReTofDigi(uint32_t* digi, uint32_t size) {
00060 m_bufTofDigi.addBuffer(digi, size);
00061 }
00062 void addReMucDigi(uint32_t* digi, uint32_t size) {
00063 m_bufMucDigi.addBuffer(digi, size);
00064 }
00065 void addReTrigGTD(uint32_t* digi, uint32_t size) {
00066 m_bufTrigGTD.addBuffer(digi, size);
00067 }
00068 void addReZddDigi(uint32_t* digi, uint32_t size) {
00069 m_bufZddDigi.addBuffer(digi, size);
00070 }
00071 void addReHltRaw(uint32_t* digi, uint32_t size) {
00072 m_bufHltRaw.addBuffer(digi, size);
00073 }
00074 void addReEtfDigi(uint32_t* digi, uint32_t size) {
00075 m_bufEtfDigi.addBuffer(digi, size);
00076 }
00077
00078
00079 void addMcParticle(uint32_t* buf, uint32_t size) {
00080 m_bufMcPar.addBuffer(buf, size);
00081 }
00082
00083
00084 void setReMdcTruth(int_vector& ReMdcTruth) { m_ReMdcTruth = ReMdcTruth; }
00085 void setReEmcTruth(int_vector& ReEmcTruth) { m_ReEmcTruth = ReEmcTruth; }
00086 void setReTofTruth(int_vector& ReTofTruth) { m_ReTofTruth = ReTofTruth; }
00087 void setReMucTruth(int_vector& ReMucTruth) { m_ReMucTruth = ReMucTruth; }
00088
00089
00090 const RawEventHeader& eventHeader() const { return m_eventHeader; }
00091
00092 const BufferHolder& getMdcBuf() const { return m_bufMdcDigi; }
00093 const BufferHolder& getTofBuf() const { return m_bufTofDigi; }
00094 const BufferHolder& getEmcBuf() const { return m_bufEmcDigi; }
00095 const BufferHolder& getMucBuf() const { return m_bufMucDigi; }
00096 const BufferHolder& getGTDBuf() const { return m_bufTrigGTD; }
00097 const BufferHolder& getZddBuf() const { return m_bufZddDigi; }
00098 const BufferHolder& getHltBuf() const { return m_bufHltRaw; }
00099 const BufferHolder& getEtfBuf() const { return m_bufEtfDigi; }
00100
00101 const BufferHolder& getMcParBuf() const { return m_bufMcPar; }
00102
00103
00104 const int_vector& getMdcTruth() const { return m_ReMdcTruth; }
00105 const int_vector& getEmcTruth() const { return m_ReEmcTruth; }
00106 const int_vector& getTofTruth() const { return m_ReTofTruth; }
00107 const int_vector& getMucTruth() const { return m_ReMucTruth; }
00108
00109 private:
00110 RawEventHeader m_eventHeader;
00111
00112
00113 BufferHolder m_bufMdcDigi;
00114 BufferHolder m_bufTofDigi;
00115 BufferHolder m_bufEmcDigi;
00116 BufferHolder m_bufMucDigi;
00117 BufferHolder m_bufTrigGTD;
00118 BufferHolder m_bufZddDigi;
00119 BufferHolder m_bufHltRaw;
00120 BufferHolder m_bufEtfDigi;
00121
00122
00123 BufferHolder m_bufMcPar;
00124
00125
00126 int_vector m_ReMdcTruth;
00127 int_vector m_ReEmcTruth;
00128 int_vector m_ReTofTruth;
00129 int_vector m_ReMucTruth;
00130 };
00131
00132 #endif // _RAWEVENT_h_