#ifndef __MDDATWORDVLSBMASTER_H #define __MDDATWORDVLSBMASTER_H #include "MDdataWord.h" #include #include #include #include using namespace std; class MDdataWordVLSBMaster : public MDdataWord { public: MDdataWordVLSBMaster( void *d = 0 ); ~MDdataWordVLSBMaster(){} bool IsValid() { if (!_data) return false; int16_t type = (Get32bWordPtr(0)[0] & DataType_Mask) >> DataType_Shift; if (type != VLSBMDataType) return false; return true; } int16_t GetNTriggers() { if (!IsValid()) return 0; return (Get32bWordPtr(0)[0] & NTriggers_Mask) >> NTriggers_Shift; } int16_t getTriggerDataTDC() { if (!IsValid()) return 0; return (Get32bWordPtr(0)[0] & TriggerDataTDC_Mask) >> TriggerDataTDC_Shift; } virtual void Dump( int atTheTime = 1 ); private: enum MasterWord { TriggerDataTDC_Mask = 0x0000FFFF, TriggerDataTDC_Shift = 0, NTriggers_Mask = 0x0FFF0000, NTriggers_Shift = 16, VLSBMDataType = 0xA, DataType_Mask = 0xF0000000, DataType_Shift = 28 }; }; ostream &operator<<(ostream &s,MDdataWordVLSBMaster &dw); istream &operator>>(istream &s,MDdataWordVLSBMaster &dw); #endif