algo_tpc_xmit.hh

Go to the documentation of this file.
00001 
00014 #ifndef ALGO_TPC_XMIT_HH
00015 #define ALGO_TPC_XMIT_HH
00016 
00017 #include "algo_base.hh"
00018 #include "algo_fem_decoder_base.hh"
00019 
00036 class algo_tpc_xmit : public algo_fem_decoder_base {
00037 
00038 public:
00039 
00041   algo_tpc_xmit();
00042 
00044   virtual ~algo_tpc_xmit(){};
00045 
00046 
00048   virtual inline PMT::PMT_WORD get_word_class(const PMT::word_t word) const {
00049     // One of core functions to identify PMT binary word format
00050     if( (word & 0xffffffff) == 0xffffffff )
00051       return PMT::EVENT_HEADER;
00052     else if( (word & 0xffffffff) == 0xe0000000 )
00053       return PMT::EVENT_LAST_WORD;
00054     if( (word & 0xffff) == 0xffff )
00055       return PMT::FEM_HEADER;
00056     else if( (word & 0xf000) == 0xf000 )
00057       return PMT::FEM_HEADER;
00058     else if( (word & 0xf000) == 0x4000 )
00059       return PMT::CHANNEL_HEADER;
00060     else if( (word & 0xf000) == 0x0000 ||
00061          (word & 0xf000) == 0x8000   )
00062       return PMT::CHANNEL_WORD;
00063     else if( (word & 0xf000) == 0x5000 )
00064       return PMT::CHANNEL_LAST_WORD;
00065     else
00066       return PMT::UNDEFINED_WORD;
00067   };
00068 
00069 protected:
00070 
00071   virtual bool check_event_quality();
00072 
00073   virtual void clear_event();
00074   
00075   bool store_event();
00076 
00077   bool decode_ch_word                   (const PMT::word_t word, PMT::word_t &last_word);
00078 
00079   virtual void reset();
00080 
00081   virtual inline bool is_compressed(const PMT::word_t word){ return ( word & 0xf000 ); };
00082 
00086   virtual bool process_event_header(const PMT::word_t word,
00087                     PMT::word_t &last_word);
00088 
00092   virtual bool process_ch_word(const PMT::word_t word, PMT::word_t &last_word);
00093 
00097   virtual bool process_fem_last_word(const PMT::word_t word,
00098                      PMT::word_t &last_word);
00099 
00103   virtual bool process_event_last_word(const PMT::word_t word,
00104                        PMT::word_t &last_word);
00105 
00106 protected:
00107 
00108   tpc_waveform       _ch_data;
00109 
00110   tpc_wf_collection* _event_data;
00111 
00112 };
00113 
00114 #endif
00115  // end of doxygen group 

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