00001
00014 #ifndef TPC_WAVEFORM_HH
00015 #define TPC_WAVEFORM_HH
00016
00017 #include "data_base.hh"
00018
00023 class tpc_waveform : public std::vector<PMT::ch_adc_t>,
00024 public data_base {
00025
00026 public:
00027
00029 tpc_waveform(PMT::ch_number_t ch = PMT::INVALID_CH,
00030 size_t len=0)
00031 : std::vector<PMT::ch_adc_t>(len),
00032 data_base(),
00033 _channel_number(ch)
00034 {};
00035
00037 tpc_waveform(const tpc_waveform& original)
00038 : std::vector<PMT::ch_adc_t>(original),
00039 data_base(original),
00040 _channel_number(original._channel_number)
00041 {};
00042
00044 void set_channel_number (PMT::ch_number_t ch) {_channel_number=ch;};
00045
00047 PMT::ch_number_t channel_number() const {return _channel_number;};
00048
00050 virtual void clear_data();
00051
00053 ~tpc_waveform(){};
00054
00055
00056 private:
00057
00059 void init_vars();
00060
00061 PMT::ch_number_t _channel_number;
00062
00064 ClassDef(tpc_waveform,3)
00066 };
00067
00068
00069
00074 class tpc_wf_collection : public std::vector<tpc_waveform>,
00075 public data_base {
00076
00077 public:
00078
00080 tpc_wf_collection(size_t len = 0) :
00081 std::vector<tpc_waveform>(len),
00082 data_base()
00083 {};
00084
00086 tpc_wf_collection(const tpc_wf_collection& original)
00087 : std::vector<tpc_waveform>(original),
00088 data_base(original),
00089 _event_id(original._event_id),
00090 _event_frame_id(original._event_frame_id),
00091 _module_address(original._module_address),
00092 _module_id(original._module_id),
00093 _channel_header_count(original._channel_header_count),
00094 _checksum(original._checksum),
00095 _nwords(original._nwords)
00096 {};
00097
00099 ~tpc_wf_collection(){};
00100
00102 void set_event_id(PMT::word_t id) {_event_id=id;};
00103
00105 void set_event_frame_id(PMT::word_t id) {_event_frame_id=id;};
00106
00108 void set_module_address(PMT::word_t id) {_module_address=id;};
00109
00111 void set_module_id(PMT::word_t id) {_module_id=id;};
00112
00114 void set_channel_header_count(size_t n) {_channel_header_count=n;};
00115
00117 void set_checksum(PMT::word_t sum) {_checksum=sum;};
00118
00120 void set_nwords(PMT::word_t n) {_nwords=n;};
00121
00123 void set_trigger_frame_id(PMT::word_t id) {_trigger_frame_id=id;};
00124
00126 void set_trigger_timeslice(PMT::word_t n) {_trigger_timeslice=n;};
00127
00129 PMT::word_t event_id() const {return _event_id;};
00130
00132 PMT::word_t event_frame_id() const {return _event_frame_id;};
00133
00135 PMT::word_t module_address() const {return _module_address;};
00136
00138 PMT::word_t module_id() const {return _module_id;};
00139
00141 size_t channel_header_count() const {return _channel_header_count;};
00142
00144 PMT::word_t checksum() const {return _checksum;};
00145
00147 PMT::word_t nwords() const {return _nwords;};
00148
00150 PMT::word_t trigger_frame_id() const {return _trigger_frame_id;};
00151
00153 PMT::word_t trigger_timeslice() const {return _trigger_timeslice;};
00154
00156 virtual void clear_data();
00157
00158
00159 private:
00160
00161 void init_vars();
00163
00164 PMT::word_t _event_id;
00165 PMT::word_t _event_frame_id;
00166 PMT::word_t _module_address;
00167 PMT::word_t _module_id;
00168 size_t _channel_header_count;
00169
00170 PMT::word_t _trigger_frame_id;
00171 PMT::word_t _trigger_timeslice;
00172
00173 PMT::word_t _checksum;
00174 PMT::word_t _nwords;
00175
00177 ClassDef(tpc_wf_collection,3)
00179 };
00180
00181 #endif
00182