pmt_slow_encoder Class Reference
[EncoderEncoder]

Encoder class implemented as analysis module. More...

#include <pmt_slow_encoder.hh>

Inheritance diagram for pmt_slow_encoder:

ana_base decoder_base List of all members.

Public Member Functions

 pmt_slow_encoder ()
 Default constructor.
virtual ~pmt_slow_encoder ()
 Default destructor.
virtual bool initialize ()
 IMPLEMENT in Name.cc! Initialization method to be called before the analysis event loop.
virtual bool analyze (storage_manager *storage)
 IMPLEMENT in Name.cc! Analyze a data event-by-event.
virtual bool finalize ()
 IMPLEMENT in Name.cc! Finalize method to be called after all events processed.
void set_mode (bin_io_handler::MODE mode)
void set_filename (std::string name)
virtual PMT::word_t format (PMT::PMT_WORD type, PMT::word_t word=0x0) const
void set_output_file (TFile *fout)
 A setter for analysis output file poitner.
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.

Protected Member Functions

virtual void encode_event_header (const pmt_wf_collection *data)
virtual void encode_ch_word (const pmt_wf_collection *data)

Protected Attributes

bin_io_handler _bin_file
PMT::word_t _words [60000]
uint16_t _index
TFile * _fout
 Analysis output file pointer.
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

Detailed Description

Encoder class implemented as analysis module.

Definition at line 26 of file pmt_slow_encoder.hh.


Constructor & Destructor Documentation

pmt_slow_encoder::pmt_slow_encoder (  )  [inline]

Default constructor.

Definition at line 31 of file pmt_slow_encoder.hh.

References ana_base::_fout, and decoder_base::_name.

00031 : _bin_file() { _name="pmt_slow_encoder"; _fout=0;};

virtual pmt_slow_encoder::~pmt_slow_encoder (  )  [inline, virtual]

Default destructor.

Definition at line 34 of file pmt_slow_encoder.hh.

00034 {};


Member Function Documentation

bool pmt_slow_encoder::analyze ( storage_manager storage  )  [virtual]

IMPLEMENT in Name.cc! Analyze a data event-by-event.

Implements ana_base.

Definition at line 16 of file pmt_slow_encoder.cc.

References _bin_file, _index, _words, encode_ch_word(), encode_event_header(), storage_manager::get_data(), DATA_STRUCT::PMT_WF_COLLECTION, and bin_io_handler::write_multi_word().

00016                                                       {
00017 
00018   _index=0;
00019 
00020   pmt_wf_collection *data = (pmt_wf_collection*)(storage->get_data(DATA_STRUCT::PMT_WF_COLLECTION));
00021 
00022   encode_event_header(data);
00023   encode_ch_word(data);
00024 
00025   _bin_file.write_multi_word(_words,_index+1);
00026   _index=0;
00027   return true;
00028 }

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;};

void pmt_slow_encoder::encode_ch_word ( const pmt_wf_collection data  )  [protected, virtual]

Definition at line 69 of file pmt_slow_encoder.cc.

Referenced by analyze().

00069                                                                    {
00070 
00071 
00072   for(pmt_wf_collection::const_iterator iter(data->begin());
00073       iter!=data->end();
00074       ++iter){
00075 
00076     
00077 
00078   }
00079 
00080 }

void pmt_slow_encoder::encode_event_header ( const pmt_wf_collection data  )  [protected, virtual]

Definition at line 30 of file pmt_slow_encoder.cc.

References _index, _words, pmt_wf_collection::checksum(), pmt_wf_collection::event_frame_id(), pmt_wf_collection::event_id(), PMT::FEM_HEADER, format(), pmt_wf_collection::module_address(), pmt_wf_collection::module_id(), pmt_wf_collection::nwords(), pmt_wf_collection::trigger_frame_id(), and pmt_wf_collection::trigger_timeslice().

Referenced by analyze().

00030                                                                         {
00031 
00032   // (1) First 32-bit word include module address and id
00033   _words[_index]  = (format(PMT::FEM_HEADER,
00034                 ((data->module_id())<<5) + data->module_address()))<<16;
00035   _words[_index] += format(PMT::FEM_HEADER,0xfff);
00036   _index++;
00037 
00038   // (2) Second 32-bit word include word counts
00039   _words[_index]  = format(PMT::FEM_HEADER,(data->nwords())>>12);
00040   _words[_index] += (format(PMT::FEM_HEADER,(data->nwords()) & 0xfff))<<16;
00041   _index++;
00042   
00043   // (3) Third 32-bit word include event number
00044   _words[_index]  = format(PMT::FEM_HEADER,(data->event_id())>>12);
00045   _words[_index] += (format(PMT::FEM_HEADER,(data->event_id()) & 0xfff))<<16;
00046   _index++;
00047 
00048   // (4) Forth 32-bit word include frame number
00049   _words[_index]  = format(PMT::FEM_HEADER,(data->event_frame_id())>>12);
00050   _words[_index] += (format(PMT::FEM_HEADER,(data->event_frame_id()) & 0xfff))<<16;
00051   _index++;
00052 
00053   // (5) Fifth 32-bit word include checksum
00054   _words[_index]  = format(PMT::FEM_HEADER,
00055                (data->checksum())>>12);
00056   _words[_index] += (format(PMT::FEM_HEADER,
00057                 (data->checksum()) & 0xfff))<<16;
00058   _index++;
00059 
00060   // (6) Six-th 32-bit word include trigger info
00061   _words[_index]  = (format(PMT::FEM_HEADER,
00062                 (data->trigger_timeslice()) & 0xff))<<16;
00063   _words[_index] += format(PMT::FEM_HEADER,
00064                (((data->trigger_frame_id()) & 0xf)<<4) + ((data->trigger_timeslice() & 0xffff)>>8));
00065   _index++;
00066   
00067 }

bool pmt_slow_encoder::finalize (  )  [virtual]

IMPLEMENT in Name.cc! Finalize method to be called after all events processed.

Implements ana_base.

Definition at line 82 of file pmt_slow_encoder.cc.

References _bin_file, and bin_io_handler::close().

00082                                 {
00083 
00084   _bin_file.close();
00085   return true;
00086 }

virtual PMT::word_t pmt_slow_encoder::format ( PMT::PMT_WORD  type,
PMT::word_t  word = 0x0 
) const [inline, virtual]

Definition at line 55 of file pmt_slow_encoder.hh.

References 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, and PMT::UNDEFINED_WORD.

Referenced by encode_event_header().

00056   {
00057     switch(type){
00058     case PMT::EVENT_HEADER:
00059       word = 0xffffffff;
00060       break;
00061     case PMT::FEM_HEADER:
00062       word = 0xf000 + (0xfff & word);
00063       break;
00064     case PMT::FEM_FIRST_WORD:
00065       word = 0x4000 + (0xfff & word);
00066       break;
00067     case PMT::CHANNEL_HEADER:
00068       word = 0x9000 + (0xfff & word);
00069       break;
00070     case PMT::CHANNEL_WORD:
00071       word = 0xa000 + (0xfff & word);
00072       break;
00073     case PMT::CHANNEL_LAST_WORD:
00074       word = 0xb000 + (0xfff & word);
00075       break;
00076     case PMT::FEM_LAST_WORD:
00077       word = 0xc000;
00078       break;
00079     case PMT::EVENT_LAST_WORD:
00080       word = 0xe000;
00081       break;
00082     case PMT::UNDEFINED_WORD:
00083       word = 0x0;
00084     }
00085     return word;
00086   };

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 pmt_slow_encoder::initialize (  )  [virtual]

IMPLEMENT in Name.cc! Initialization method to be called before the analysis event loop.

Implements ana_base.

Definition at line 10 of file pmt_slow_encoder.cc.

References _bin_file, bin_io_handler::is_open(), and bin_io_handler::open().

00010                                   {
00011 
00012   _bin_file.open();
00013   return _bin_file.is_open();
00014 }

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

Definition at line 53 of file pmt_slow_encoder.hh.

References _bin_file, and bin_io_handler::set_filename().

00053 {_bin_file.set_filename(name);};

void pmt_slow_encoder::set_mode ( bin_io_handler::MODE  mode  )  [inline]

Definition at line 51 of file pmt_slow_encoder.hh.

References _bin_file, and bin_io_handler::set_mode().

00051 {_bin_file.set_mode(mode);};

void ana_base::set_output_file ( TFile *  fout  )  [inline, inherited]

A setter for analysis output file poitner.

Definition at line 46 of file ana_base.hh.

References ana_base::_fout.

00046 {_fout=fout;};

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(), xmit_event_search::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

bin_io_handler pmt_slow_encoder::_bin_file [protected]

Definition at line 93 of file pmt_slow_encoder.hh.

Referenced by analyze(), finalize(), initialize(), set_filename(), and set_mode().

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().

TFile* ana_base::_fout [protected, inherited]

Analysis output file pointer.

Definition at line 46 of file ana_base.hh.

Referenced by ana_base::ana_base(), waveform_sampler::finalize(), pulse_reco::finalize(), pulse_analyzer::finalize(), pmtbaseline_ana::finalize(), pmtbaseline::finalize(), led_pulse_analyzer::finalize(), beamgate_debugger::finalize(), pulse_analyzer::initialize(), pmt_slow_encoder(), pmtbaseline::pmtbaseline(), pmtbaseline_ana::pmtbaseline_ana(), pulse_selector_base::pulse_selector_base(), pulse_selector_simple::pulse_selector_simple(), waveform_sampler::sample_waveform(), ana_base::set_output_file(), and waveform_sampler::waveform_sampler().

uint16_t pmt_slow_encoder::_index [protected]

Definition at line 95 of file pmt_slow_encoder.hh.

Referenced by analyze(), and encode_event_header().

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(), 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 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().

PMT::word_t pmt_slow_encoder::_words[60000] [protected]

Definition at line 94 of file pmt_slow_encoder.hh.

Referenced by analyze(), and encode_event_header().


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