xmit_event_search Class Reference

#include <xmit_event_search.hh>

Inheritance diagram for xmit_event_search:

decoder_base List of all members.

Public Member Functions

 xmit_event_search ()
 ~xmit_event_search ()
void set_target_id (PMT::word_t id)
void set_filename (std::string name)
void set_continue_mode (bool mode)
void set_format (FORMAT::INPUT_FILE fmt)
void set_slow_readout (bool slow=true)
void set_read_by_block (bool doit)
bool run ()
void print_word (std::vector< PMT::word_t > *in_array)
bool new_event (PMT::word_t word) const
void set_verbosity (MSG::Level level)
 Setter for the verbosity level.
MSG::Level get_verbosity () const
 Getter for the verbosity level.
const std::string class_name () const
 Getter for the class name.

Static Public Attributes

static const size_t XMIT_INDEX_EVENT_ID = 3
static const size_t SLOW_INDEX_EVENT_ID = 2

Protected Attributes

char _buf [200]
 char buffer for message manipulation
bool _verbosity [MSG::MSG_TYPE_MAX]
 holder for enabled message levels
MSG::Level _verbosity_level
 holder for specified verbosity level
std::string _name
 class name holder

Private Attributes

bin_io_handler _fin
PMT::word_t _target_id
bool _continue_mode
bool _slow_readout
bool _read_by_block
size_t _index_event_id
algo_base_algo

Detailed Description

Definition at line 8 of file xmit_event_search.hh.


Constructor & Destructor Documentation

xmit_event_search::xmit_event_search (  ) 

Definition at line 9 of file xmit_event_search.cc.

References _algo, _continue_mode, _fin, _index_event_id, _read_by_block, _slow_readout, _target_id, FORMAT::BINARY, PMT::INVALID_WORD, bin_io_handler::READ, bin_io_handler::set_format(), and bin_io_handler::set_mode().

00009                                      : 
00010   decoder_base() 
00011 {
00012   _continue_mode=false;
00013   _target_id=PMT::INVALID_WORD;
00014   _fin.set_format(FORMAT::BINARY);
00015   _fin.set_mode(bin_io_handler::READ);
00016   _read_by_block=true;
00017   _index_event_id=0x0;
00018   _slow_readout=false;
00019   _algo = 0;
00020 
00021 }

xmit_event_search::~xmit_event_search (  )  [inline]

Definition at line 12 of file xmit_event_search.hh.

00012 {};


Member Function Documentation

const std::string decoder_base::class_name (  )  const [inline, inherited]

Getter for the class name.

Definition at line 46 of file decoder_base.hh.

References decoder_base::_name.

00046 {return _name;};

MSG::Level decoder_base::get_verbosity (  )  const [inline, inherited]

Getter for the verbosity level.

Definition at line 43 of file decoder_base.hh.

References decoder_base::_verbosity_level.

00043 {return _verbosity_level;};

bool xmit_event_search::new_event ( PMT::word_t  word  )  const [inline]

Definition at line 30 of file xmit_event_search.hh.

References _slow_readout.

Referenced by run().

00030                                              {
00031     if(_slow_readout) return ( 0xffff == (word & 0xffff) );
00032     else return (0xffffffff == word); 
00033   };

void xmit_event_search::print_word ( std::vector< PMT::word_t > *  in_array  ) 

Definition at line 91 of file xmit_event_search.cc.

References _algo, PMT::CHANNEL_HEADER, PMT::CHANNEL_LAST_WORD, PMT::CHANNEL_WORD, PMT::EVENT_HEADER, PMT::EVENT_LAST_WORD, PMT::FEM_FIRST_WORD, PMT::FEM_HEADER, PMT::FEM_LAST_WORD, algo_base::get_word_class(), and PMT::UNDEFINED_WORD.

Referenced by run().

00091                                                                 {
00092 
00093   size_t ctr=0;
00094   std::string msg("");
00095 
00096   std::vector<PMT::word_t> word_array;
00097   word_array.reserve(in_array->size() * 2);
00098   for(std::vector<PMT::word_t>::const_iterator iter(in_array->begin());
00099       iter!=in_array->end();
00100       ++iter){
00101     word_array.push_back( (*iter) & 0xffff);
00102     word_array.push_back( (*iter) >> 16 );
00103   }
00104 
00105   for(std::vector<PMT::word_t>::const_iterator iter(word_array.begin());
00106       iter!=word_array.end();
00107       ++iter){
00108 
00109     PMT::PMT_WORD word_type=_algo->get_word_class((*iter));
00110     
00111     switch(word_type){
00112     case PMT::UNDEFINED_WORD:
00113     case PMT::CHANNEL_WORD:
00114       msg+=Form(" %04x ",(*iter));
00115       break;
00116     case PMT::EVENT_HEADER:
00117     case PMT::FEM_HEADER:
00118     case PMT::EVENT_LAST_WORD:
00119       msg+=" \033[93m";
00120       msg+=Form("%04x ",(*iter));
00121       msg+="\033[0m";
00122     break;
00123     case PMT::FEM_FIRST_WORD:
00124     case PMT::FEM_LAST_WORD:
00125       msg+=" \033[91m";
00126       msg+=Form("%04x ",(*iter));
00127       msg+="\033[0m";
00128       break;
00129     case PMT::CHANNEL_HEADER:
00130     case PMT::CHANNEL_LAST_WORD:
00131       msg+=" \033[95m";
00132       msg+=Form("%04x ",(*iter));
00133       msg+="\033[0m";
00134       break;
00135     }
00136     ctr+=1;
00137     if(ctr && ctr%8==0){
00138       std::cout<<msg.c_str()<<std::endl;
00139       msg="";
00140     }
00141   }
00142   if(msg.size()>0) std::cout<<msg.c_str()<<std::endl;
00143   std::cout<<" ... continue to next event ... " <<std::endl;
00144 }

bool xmit_event_search::run (  ) 

Definition at line 23 of file xmit_event_search.cc.

References _algo, _continue_mode, _fin, _index_event_id, _read_by_block, _slow_readout, _target_id, bin_io_handler::close(), bin_io_handler::eof(), MSG::ERROR, PMT::INVALID_WORD, bin_io_handler::is_open(), new_event(), bin_io_handler::open(), print_word(), bin_io_handler::read_multi_word(), bin_io_handler::read_word(), Message::send(), decoder_base::set_verbosity(), SLOW_INDEX_EVENT_ID, and XMIT_INDEX_EVENT_ID.

00023                             {
00024 
00025   if(_target_id==PMT::INVALID_WORD){
00026     Message::send(MSG::ERROR,__FUNCTION__,"Event ID not specified!");
00027     return false;
00028   }
00029 
00030   _index_event_id = _slow_readout ? SLOW_INDEX_EVENT_ID : XMIT_INDEX_EVENT_ID;
00031 
00032   if(_algo) delete _algo;
00033 
00034   _algo = (_slow_readout) ? (new algo_slow_readout_decoder) : (new algo_xmit_decoder);  
00035   
00036   _target_id = (0xf0000000 + ((_target_id & 0xfff) << 16) + 0x0000f000 + ((_target_id >> 12) & 0xfff));
00037   
00038   std::vector<PMT::word_t> word_array(4,0);
00039   PMT::word_t word=0x0;
00040   bool fire=false;
00041 
00042   _fin.set_verbosity(MSG::ERROR);
00043   _fin.open();
00044   
00045   if(!_fin.is_open()) return false;
00046   
00047   while(1){
00048 
00049     word = (_read_by_block) ? _fin.read_multi_word() : _fin.read_word();
00050     word = _fin.read_word();
00051 
00052     if(_fin.eof()) break;
00053 
00054     if(fire && new_event(word)){
00055 
00056       word_array.push_back(word);
00057 
00058       if(!_continue_mode) break;
00059 
00060       print_word(&word_array);
00061 
00062       fire=false;
00063       word_array.clear();
00064       word_array.reserve(_index_event_id+1);
00065       for(size_t i=0; i<=_index_event_id; i++)
00066     word_array.push_back(0x0);
00067     }
00068 
00069     if(!fire){
00070 
00071       for(size_t i=0; i<_index_event_id; i++)
00072     word_array[i]=word_array[i+1];
00073 
00074       word_array[_index_event_id] = word;
00075 
00076       if(new_event(word_array[0]) && word_array[_index_event_id]==_target_id){
00077     fire=true;
00078       }
00079     }else
00080       word_array.push_back(word);
00081   }
00082   
00083   if(!_continue_mode){
00084     print_word(&word_array);
00085   }
00086   
00087   _fin.close();
00088   return true;
00089 }

void xmit_event_search::set_continue_mode ( bool  mode  )  [inline]

Definition at line 18 of file xmit_event_search.hh.

References _continue_mode.

00018 {_continue_mode=mode;};

void xmit_event_search::set_filename ( std::string  name  )  [inline]

Definition at line 16 of file xmit_event_search.hh.

References _fin, and bin_io_handler::set_filename().

00016 {_fin.set_filename(name);};

void xmit_event_search::set_format ( FORMAT::INPUT_FILE  fmt  )  [inline]

Definition at line 20 of file xmit_event_search.hh.

References _fin, and bin_io_handler::set_format().

00020 {_fin.set_format(fmt);};

void xmit_event_search::set_read_by_block ( bool  doit  )  [inline]

Definition at line 24 of file xmit_event_search.hh.

References _read_by_block.

00024 {_read_by_block=doit;};

void xmit_event_search::set_slow_readout ( bool  slow = true  )  [inline]

Definition at line 22 of file xmit_event_search.hh.

References _slow_readout.

00022 {_slow_readout=slow;};

void xmit_event_search::set_target_id ( PMT::word_t  id  )  [inline]

Definition at line 14 of file xmit_event_search.hh.

References _target_id.

00014 {_target_id=id;};

void decoder_base::set_verbosity ( MSG::Level  level  )  [inherited]

Setter for the verbosity level.

Reimplemented in ana_processor.

Definition at line 11 of file decoder_base.cc.

References decoder_base::_verbosity, decoder_base::_verbosity_level, MSG::DEBUG, MSG::ERROR, MSG::INFO, MSG::MSG_TYPE_MAX, MSG::NORMAL, and MSG::WARNING.

Referenced by algo_slow_readout_decoder::algo_slow_readout_decoder(), compare_content(), decoder_base::decoder_base(), decoder_manager::decoder_manager(), decoder_manager::initialize(), main(), run(), bin_word_search::run(), and ana_processor::set_verbosity().

00011                                               {
00012 
00013   _verbosity_level=level;
00014 
00015   for(size_t i=(size_t)(MSG::DEBUG); i<(size_t)(MSG::MSG_TYPE_MAX); ++i)
00016     _verbosity[i]=false;
00017 
00018   switch(level){
00019   case MSG::DEBUG:
00020     _verbosity[MSG::DEBUG]=true;
00021   case MSG::INFO:
00022     _verbosity[MSG::INFO]=true;
00023   case MSG::NORMAL:
00024     _verbosity[MSG::NORMAL]=true;
00025   case MSG::WARNING:
00026     _verbosity[MSG::WARNING]=true;
00027   case MSG::ERROR:
00028     _verbosity[MSG::ERROR]=true;
00029   case MSG::MSG_TYPE_MAX:
00030     break;
00031   }
00032 
00033 }


Member Data Documentation

algo_base* xmit_event_search::_algo [private]

Definition at line 46 of file xmit_event_search.hh.

Referenced by print_word(), run(), and xmit_event_search().

char decoder_base::_buf[200] [protected, inherited]

char buffer for message manipulation

Definition at line 46 of file decoder_base.hh.

Referenced by reco_wf::analyze(), pulse_viewer::analyze(), algo_slow_readout_decoder::check_event_quality(), storage_manager::close(), bin_io_handler::close(), decoder_manager::decode(), algo_slow_readout_decoder::decode_ch_word(), algo_pmt_xmit::decode_ch_word(), algo_slow_readout_decoder::decode_event_header(), pulse_viewer::get_waveform(), ana_processor::initialize(), pulse_viewer::next_pulse(), storage_manager::open(), bin_io_handler::open(), storage_manager::prepare_tree(), pulse_viewer::previous_pulse(), algo_slow_readout_decoder::print_adc_values(), algo_tpc_xmit::process_ch_word(), algo_slow_readout_decoder::process_ch_word(), algo_pmt_xmit::process_ch_word(), algo_fem_decoder_base::process_fem_header(), algo_xmit_decoder::process_header(), algo_slow_readout_decoder::process_header(), algo_slow_readout_decoder::process_word(), bin_io_handler::read_multi_word(), bin_io_handler::read_word(), and ana_processor::run().

bool xmit_event_search::_continue_mode [private]

Definition at line 42 of file xmit_event_search.hh.

Referenced by run(), set_continue_mode(), and xmit_event_search().

bin_io_handler xmit_event_search::_fin [private]

Definition at line 40 of file xmit_event_search.hh.

Referenced by run(), set_filename(), set_format(), and xmit_event_search().

size_t xmit_event_search::_index_event_id [private]

Definition at line 45 of file xmit_event_search.hh.

Referenced by run(), and xmit_event_search().

std::string decoder_base::_name [protected, inherited]

class name holder

Definition at line 53 of file decoder_base.hh.

Referenced by algo_base::algo_base(), algo_fem_decoder_base::algo_fem_decoder_base(), algo_fixed_window::algo_fixed_window(), algo_slow_readout_decoder::algo_slow_readout_decoder(), algo_threshold::algo_threshold(), algo_tpc_huffman::algo_tpc_huffman(), algo_trig_decoder::algo_trig_decoder(), ana_base::ana_base(), ana_processor::ana_processor(), beamgate_debugger::beamgate_debugger(), bin_io_handler::bin_io_handler(), decoder_base::class_name(), led_pulse_analyzer::led_pulse_analyzer(), led_pulse_selector::led_pulse_selector(), pmt_slow_encoder::pmt_slow_encoder(), pmtbaseline::pmtbaseline(), pmtbaseline_ana::pmtbaseline_ana(), preco_algo_base::preco_algo_base(), pulse_analyzer::pulse_analyzer(), pulse_reco::pulse_reco(), pulse_selector_base::pulse_selector_base(), pulse_selector_simple::pulse_selector_simple(), pulse_viewer::pulse_viewer(), reco_wf::reco_wf(), storage_manager::storage_manager(), and waveform_sampler::waveform_sampler().

bool xmit_event_search::_read_by_block [private]

Definition at line 44 of file xmit_event_search.hh.

Referenced by run(), set_read_by_block(), and xmit_event_search().

bool xmit_event_search::_slow_readout [private]

Definition at line 43 of file xmit_event_search.hh.

Referenced by new_event(), run(), set_slow_readout(), and xmit_event_search().

PMT::word_t xmit_event_search::_target_id [private]

Definition at line 41 of file xmit_event_search.hh.

Referenced by run(), set_target_id(), and xmit_event_search().

bool decoder_base::_verbosity[MSG::MSG_TYPE_MAX] [protected, inherited]

holder for enabled message levels

Definition at line 51 of file decoder_base.hh.

Referenced by reco_wf::analyze(), algo_slow_readout_decoder::check_event_quality(), storage_manager::close(), decoder_manager::decode(), algo_slow_readout_decoder::decode_ch_word(), algo_pmt_xmit::decode_ch_word(), algo_slow_readout_decoder::decode_event_header(), algo_fem_decoder_base::decode_fem_header(), algo_trig_decoder::decode_trigger_words(), decoder_manager::finalize(), beamgate_debugger::finalize(), ana_processor::finalize(), decoder_manager::initialize(), beamgate_debugger::initialize(), ana_processor::initialize(), storage_manager::open(), beamgate_debugger::prepare_histo(), storage_manager::prepare_tree(), algo_tpc_xmit::process_ch_word(), algo_tpc_huffman::process_ch_word(), algo_slow_readout_decoder::process_ch_word(), algo_pmt_xmit::process_ch_word(), algo_tpc_xmit::process_event_last_word(), algo_pmt_xmit::process_event_last_word(), algo_fem_decoder_base::process_fem_header(), algo_pmt_xmit::process_fem_last_word(), algo_xmit_decoder::process_header(), algo_slow_readout_decoder::process_header(), algo_fem_decoder_base::process_word(), bin_io_handler::read_multi_word(), storage_manager::reset(), beamgate_debugger::reset(), ana_processor::reset(), decoder_manager::run(), ana_processor::run(), decoder_base::set_verbosity(), algo_tpc_xmit::store_event(), and algo_pmt_xmit::store_event().

MSG::Level decoder_base::_verbosity_level [protected, inherited]

holder for specified verbosity level

Definition at line 52 of file decoder_base.hh.

Referenced by pulse_viewer::analyze(), decoder_base::get_verbosity(), pulse_viewer::initialize(), decoder_manager::initialize(), ana_processor::initialize(), bin_io_handler::read_multi_word(), bin_io_handler::read_word(), and decoder_base::set_verbosity().

const size_t xmit_event_search::SLOW_INDEX_EVENT_ID = 2 [static]

Definition at line 36 of file xmit_event_search.hh.

Referenced by run().

const size_t xmit_event_search::XMIT_INDEX_EVENT_ID = 3 [static]

Definition at line 33 of file xmit_event_search.hh.

Referenced by run().


The documentation for this class was generated from the following files:
Generated on Mon Apr 7 15:35:13 2014 for MyProject by  doxygen 1.4.7