/data3/calcul/jacquem/working_dir/Micromegas/micromegasFrameWork/include/parser/MicrorocMergeReader.hh

Go to the documentation of this file.
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 

Generated on Mon Jan 7 13:15:20 2013 for MicromegasFramework by  doxygen 1.4.7