00001 #ifndef FIFO_CC 00002 #define FIFO_CC 00003 00004 #include "fifo.hh" 00005 00006 namespace larlight { 00007 00008 //*************************************************************************** 00009 fifo::fifo(DATA::DATA_TYPE type) : std::vector<UShort_t>(), 00010 data_base(type) 00011 //*************************************************************************** 00012 { 00013 00014 if(_type!=DATA::FIFO && 00015 _type!=DATA::PMTFIFO && 00016 _type!=DATA::TPCFIFO) { 00017 00018 Message::send(MSG::ERROR,__FUNCTION__, 00019 Form("Provided data type (%s) not supported! Reset to default.",DATA::DATA_TREE_NAME[_type].c_str())); 00020 _type=DATA::FIFO; 00021 } 00022 00023 clear_data(); 00024 } 00025 00026 //*************************************************************************** 00027 void fifo::clear_data() 00028 //*************************************************************************** 00029 { 00030 00031 data_base::clear_data(); 00032 clear(); 00033 init_vars(); 00034 } 00035 00036 //*************************************************************************** 00037 void fifo::init_vars() 00038 //*************************************************************************** 00039 { 00040 _channel_number=FEM::INVALID_CH; 00041 _module_address=DATA::INVALID_UCHAR; 00042 _module_id=DATA::INVALID_UCHAR; 00043 _readout_frame_number=FEM::INVALID_WORD; 00044 _readout_sample_number=FEM::INVALID_WORD; 00045 } 00046 00048 00049 //*************************************************************************** 00050 event_fifo::event_fifo(DATA::DATA_TYPE type) : std::vector<larlight::fifo>(), 00051 event_base(type) 00052 //*************************************************************************** 00053 { 00054 if(_type!=DATA::FIFO && 00055 _type!=DATA::PMTFIFO && 00056 _type!=DATA::TPCFIFO) { 00057 00058 Message::send(MSG::ERROR,__FUNCTION__, 00059 Form("Provided data type (%s) not supported! Reset to default.",DATA::DATA_TREE_NAME[_type].c_str())); 00060 _type=DATA::FIFO; 00061 } 00062 clear_data(); 00063 } 00064 00065 //*************************************************************************** 00066 void event_fifo::clear_data(){ 00067 //*************************************************************************** 00068 event_base::clear_data(); 00069 clear(); 00070 init_vars(); 00071 } 00072 00073 //*************************************************************************** 00074 void event_fifo::init_vars(){ 00075 //*************************************************************************** 00076 _event_frame_number=FEM::INVALID_WORD; 00077 _module_address=DATA::INVALID_UCHAR; 00078 _module_id=DATA::INVALID_UCHAR; 00079 _checksum=FEM::INVALID_WORD; 00080 _nwords=FEM::INVALID_WORD; 00081 _fem_trig_frame_number=FEM::INVALID_WORD; 00082 _fem_trig_sample_number=FEM::INVALID_WORD; 00083 } 00084 00085 } 00086 #endif