- #ifndef MAMBA_DECODER
- #define MAMBA_DECODER
-
- #include <stdint.h>
- #include <vector>
- #include <fstream>
-
- class mamba_decoder
- {
-
- private:
- bool& m_isAType;
-
- int nBeetles;
- int nSubsets;
- int nCH;
- int startADC;
- int stopADC;
- int nADCs;
-
- uint64_t _pack_id;
- uint64_t _trig_id;
- uint64_t _timestamp;
- uint64_t _ts_timestamp;
- uint64_t _coincidence_id;
- uint64_t _padding;
- std::vector<int> _ADC;
- std::vector<int> _bHeader0;
- std::vector<int> _bHeader1;
- std::vector<int> _bHeader2;
- std::vector<int> _bHeader3;
- std::vector<int> _bHeader3P1;
- std::vector<int> _bHeader3P2;
- unsigned int _TDC;
- double _baseline;
-
- public:
-
- mamba_decoder( bool& isAType);
-
- virtual ~mamba_decoder();
-
- bool eof(){ return ifile->eof(); }
-
- bool open(const char * filename);
- void close();
- void rewind(){ ifile->clear(); ifile->seekg(0, std::ios::beg); }
-
- std::ifstream * ifile;
- bool find_mamba_header();
- bool check_mamba_footer();
-
- int find_beetle_header( int * subsADCs, int thr) ;
-
- bool read_event();
-
- uint64_t PackID(){ return _pack_id; }
- uint64_t TrigID(){ return _trig_id; }
- uint64_t Timestamp(){ return _timestamp; }
- uint64_t TsTimestamp(){ return _ts_timestamp; }
- uint64_t CoincidenceID(){ return _coincidence_id; }
- uint64_t Padding(){ return _padding; }
- std::vector<int> ADC(){
- return _ADC;
- }
- std::vector<int> BHeader0() {
- return _bHeader0;
- }
- std::vector<int> BHeader1() {
- return _bHeader1;
- }
- std::vector<int> BHeader2() {
- return _bHeader2;
- }
- std::vector<int> BHeader3() {
- return _bHeader3;
- }
- std::vector<int> BHeader3P1() {
- return _bHeader3P1;
- }
- std::vector<int> BHeader3P2() {
- return _bHeader3P2;
- }
- unsigned int TDC(){ return _TDC; }
-
- };
-
-
- #endif