#include <xmit_event_search.hh>
Inheritance diagram for xmit_event_search:

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 |
Definition at line 8 of file xmit_event_search.hh.
| 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] |
| 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] |
| 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 }
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] |
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] |
const size_t xmit_event_search::XMIT_INDEX_EVENT_ID = 3 [static] |
1.4.7