00001 #ifndef TL2249Data_hxx_seen 00002 #define TL2249Data_hxx_seen 00003 00004 #include <vector> 00005 00006 #include "TGenericData.hxx" 00007 00008 /// Class for each ADC measurement 00009 /// For the definition of obscure variables see the LeCroy2249 manual. 00010 class LADCMeasurement { 00011 00012 friend class TL2249Data; 00013 00014 public: 00015 00016 /// Get the ADC measurement 00017 uint32_t GetMeasurement() const {return (adc_measurement_word & 0xfff);} 00018 00019 00020 private: 00021 00022 /// Fields to hold the header, measurement, trailer and error words. 00023 uint32_t adc_measurement_word; 00024 00025 /// Constructor; need to pass in header and measurement. 00026 LADCMeasurement(uint32_t header, uint32_t measurement): 00027 adc_measurement_word(measurement){ 00028 00029 } 00030 00031 00032 LADCMeasurement(); 00033 }; 00034 00035 00036 /// Class for storing data from LeCroy 2249 module 00037 class TL2249Data: public TGenericData { 00038 00039 00040 public: 00041 00042 /// Constructor 00043 TL2249Data(int bklen, int bktype, const char* name, void *pdata); 00044 00045 00046 void Print(); 00047 00048 /// Get the Vector of ADC Measurements. 00049 std::vector<LADCMeasurement>& GetMeasurements() {return fMeasurements;} 00050 00051 00052 private: 00053 00054 /// Vector of ADC Measurements. 00055 std::vector<LADCMeasurement> fMeasurements; 00056 00057 00058 /// Fields to hold the measurement 00059 00060 }; 00061 00062 #endif