00001 /* @version $Revision: 1328 $ * @modifiedby $Author: jacquem $ * @lastmodified $Date: 2011-10-03 17:04:17 +0200 (Mon, 03 Oct 2011) $ */ 00002 00003 #ifndef MICROROCLABVIEWREADER_HH 00004 #define MICROROCLABVIEWREADER_HH 00005 00006 ////////////////////////////////////////////////////////////////////////// 00007 // // 00008 // MicrorocLabviewReader for MICROMEGAS READOUT // 00009 // From Labview and Crossdaq DAQ 00010 // // 00011 ////////////////////////////////////////////////////////////////////////// 00012 00013 #include "mTypes.h" 00014 #include "MicrorocReader.hh" 00015 #include <map> 00016 00017 #define LABVIEWMR "labviewMR" 00018 #define NBLINE 4 00019 #define NBCHIP 16 00020 #define NBCHANNEL 64 00021 00022 00023 class Run; 00024 class Event; 00025 class Detector; 00026 00027 #include <set> 00028 00029 ////////////////////////////////////////////////////////////////////////// 00030 /// CLASS DATAREADER // 00031 ////////////////////////////////////////////////////////////////////////// 00032 class MicrorocLabviewReader : public MicrorocReader { 00033 public: 00034 MicrorocLabviewReader(Run& aRun, FILE *aFile, ui32 lastEventId); 00035 ~MicrorocLabviewReader(); 00036 static const char *type(const int subtype = 0) { return LABVIEWMR; }; 00037 00038 int getScData(); 00039 int getNextEvent(Event& eventToFill) ; 00040 int getAcqData(Event& event) ; 00041 int getAnalogData(Event& event) ; 00042 00043 private: 00044 //void getCellFromChipId(cell_t &cell, i32 difId, i32 chipId); 00045 00046 00047 private: 00048 //ui16 analogData[NBLINE][NBCHIP][NBCHANNEL]; 00049 std::map<ui16,std::map<ui16,ui16> >analogData; //first key is chip Id, second one is channel Id. Data is channel analog value 00050 //i16 getAnalogValue(i32 chipId,ui32 channel,ui16 nbChipPerLine); 00051 ui16 nbChipPerLine; 00052 bool analogDataActivate; 00053 bool analogDataActivatedLine[NBLINE]; 00054 00055 00056 00057 }; // class MicrorocLabviewReader 00058 00059 #endif 00060