00001 /* @version $Revision: 1865 $ * @modifiedby $Author: jacquem $ * @lastmodified $Date: 2012-08-23 14:00:59 +0200 (Thu, 23 Aug 2012) $ */ 00002 00003 #ifndef MICROROCMERGEREADER_HH 00004 #define MICROROCMERGEREADER_HH 00005 00006 ////////////////////////////////////////////////////////////////////////// 00007 // // 00008 // MicrorocMergeReader for MICROMEGAS READOUT // 00009 // // 00010 ////////////////////////////////////////////////////////////////////////// 00011 00012 #include "mTypes.h" 00013 #include "MicrorocReader.hh" 00014 00015 00016 #define NBLINE 4 00017 00018 00019 class Run; 00020 class Event; 00021 class Detector; 00022 00023 #include <set> 00024 00025 ////////////////////////////////////////////////////////////////////////// 00026 /// CLASS DATAREADER // 00027 ////////////////////////////////////////////////////////////////////////// 00028 class MicrorocMergeReader : public MicrorocReader { 00029 public: 00030 MicrorocMergeReader(Run& aRun, FILE *aFile, ui32 lastEventId, bool forceAnalog,std::set<unsigned int>* = NULL); 00031 ~MicrorocMergeReader(); 00032 static const char *type(const int subtype = 0) ; 00033 virtual int getNextEvent(Event& eventToFill) = 0; 00034 00035 protected: 00036 void localReset(void); 00037 int getAcqData(Event& event, bool temperatureFill=false); 00038 virtual unsigned int getSpecificData(const unsigned int nBytes) = 0; 00039 int decodeData(Event& event); 00040 int getScData(void); // get slow control data 00041 00042 00043 00044 protected: 00045 bool slowControlSet; 00046 00047 ui32 hexTemperatureAsu1; 00048 ui32 hexTemperatureAsu2; 00049 ui16 hexTemperatureDif; 00050 00051 bool forceAnalog; 00052 std::set<unsigned int> *difList; 00053 std::map<ui16,std::map<ui16,ui16> >analogData; //first key is chip Id, second one is channel Id. Data is channel analog value 00054 ui16 nbChipPerLine; 00055 bool analogDataActivate; 00056 bool analogDataActivatedLine[NBLINE]; 00057 ui32 debugEventId; 00058 00059 00060 00061 00062 }; // class MicrorocMergeReader 00063 00064 #endif 00065