pmt_waveform.hh

Go to the documentation of this file.
00001 
00014 #ifndef PMT_WAVEFORM_HH
00015 #define PMT_WAVEFORM_HH
00016 
00017 #include "data_base.hh"
00018 
00023 class pmt_waveform : public std::vector<PMT::ch_adc_t>, 
00024              public data_base {
00025 
00026 public:
00027 
00029   pmt_waveform(PMT::ch_number_t   ch        = PMT::INVALID_CH,
00030            PMT::word_t        ch_frame  = PMT::INVALID_WORD,
00031            PMT::DISCRIMINATOR disc_id   = PMT::DISC_MAX,
00032            PMT::word_t        timeslice = PMT::INVALID_WORD,
00033            size_t len=0) 
00034     : std::vector<PMT::ch_adc_t>(len), 
00035       data_base(),
00036       _channel_number(ch), 
00037       _channel_frame_id(ch_frame),
00038       _timeslice(timeslice),
00039       _disc_id(disc_id)
00040   {};
00041 
00043   pmt_waveform(const pmt_waveform& original)
00044     : std::vector<PMT::ch_adc_t>(original),
00045       data_base(original),
00046       _channel_number(original._channel_number),
00047       _channel_frame_id(original._channel_frame_id),
00048       _timeslice(original._timeslice),
00049       _disc_id(original._disc_id)
00050   {};
00051 
00053   void set_channel_number   (PMT::ch_number_t ch)   {_channel_number=ch;};
00054 
00056   void set_channel_frame_id (PMT::word_t id)        {_channel_frame_id=id;};
00057 
00059   void set_disc_id          (PMT::DISCRIMINATOR id) {_disc_id=id;};
00060 
00062   void set_timeslice        (PMT::word_t t)         {_timeslice=t;};
00063 
00065   PMT::ch_number_t channel_number() const {return _channel_number;};
00066 
00068   PMT::word_t channel_frame_id()    const {return _channel_frame_id;};
00069 
00071   PMT::DISCRIMINATOR disc_id()      const {return _disc_id;};
00072 
00074   PMT::word_t timeslice()           const {return _timeslice;};
00075 
00077   virtual void clear_data();
00078 
00080   ~pmt_waveform(){};
00081 
00082 
00083 private:
00084 
00086   void init_vars();
00087 
00088   PMT::ch_number_t _channel_number; 
00089   PMT::word_t _channel_frame_id;    
00090   PMT::word_t _timeslice;           
00091   PMT::DISCRIMINATOR _disc_id;      
00092   
00094   ClassDef(pmt_waveform,3)
00096 };
00097 
00098 
00099 
00104 class pmt_wf_collection : public std::vector<pmt_waveform>, 
00105               public data_base {
00106   
00107 public:
00108 
00110   pmt_wf_collection(size_t len = 0) :
00111     std::vector<pmt_waveform>(len), 
00112     data_base()
00113   {};
00114 
00116   pmt_wf_collection(const pmt_wf_collection& original)
00117     : std::vector<pmt_waveform>(original),
00118       data_base(original),
00119       _event_id(original._event_id),
00120       _event_frame_id(original._event_frame_id),
00121       _module_address(original._module_address),
00122       _module_id(original._module_id),
00123       _channel_header_count(original._channel_header_count),
00124       _checksum(original._checksum),
00125       _nwords(original._nwords)
00126   {};
00127 
00129   ~pmt_wf_collection(){};
00130 
00132   void set_event_id(PMT::word_t id)       {_event_id=id;};
00133 
00135   void set_event_frame_id(PMT::word_t id) {_event_frame_id=id;};
00136 
00138   void set_module_address(PMT::word_t id) {_module_address=id;};
00139 
00141   void set_module_id(PMT::word_t id)      {_module_id=id;};
00142 
00144   void set_channel_header_count(size_t n) {_channel_header_count=n;};
00145 
00147   void set_checksum(PMT::word_t sum)      {_checksum=sum;};
00148 
00150   void set_nwords(PMT::word_t n)          {_nwords=n;};
00151 
00153   void set_trigger_frame_id(PMT::word_t id) {_trigger_frame_id=id;};
00154 
00156   void set_trigger_timeslice(PMT::word_t n) {_trigger_timeslice=n;};
00157 
00159   PMT::word_t event_id()       const {return _event_id;};
00160 
00162   PMT::word_t event_frame_id() const {return _event_frame_id;};
00163 
00165   PMT::word_t module_address() const {return _module_address;};
00166 
00168   PMT::word_t module_id()      const {return _module_id;};
00169 
00171   size_t      channel_header_count() const {return _channel_header_count;};
00172 
00174   PMT::word_t checksum()       const {return _checksum;}; 
00175 
00177   PMT::word_t nwords()         const {return _nwords;};
00178 
00180   PMT::word_t trigger_frame_id() const {return _trigger_frame_id;};
00181 
00183   PMT::word_t trigger_timeslice() const {return _trigger_timeslice;};
00184 
00186   virtual void clear_data();
00187 
00188 
00189 private:
00190 
00191   void init_vars();
00193 
00194   PMT::word_t _event_id;             
00195   PMT::word_t _event_frame_id;       
00196   PMT::word_t _module_address;       
00197   PMT::word_t _module_id;            
00198   size_t      _channel_header_count; 
00199 
00200   PMT::word_t _trigger_frame_id;     
00201   PMT::word_t _trigger_timeslice;    
00202 
00203   PMT::word_t _checksum;             
00204   PMT::word_t _nwords;               
00205 
00207   ClassDef(pmt_wf_collection,3)
00209 };
00210 
00211 #endif
00212  // end of doxygen group 

Generated on Mon Apr 7 15:35:12 2014 for MyProject by  doxygen 1.4.7