| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DaqDataHistogram.h

Go to the documentation of this file.
00001 #ifndef DaqDataHistogram_H
00002 #define DaqDataHistogram_H
00003 
00004 // For AD
00005 #define MAXMODNUM 21
00006 #define MAXCHNNUM 16
00007 
00008 #define NSITES 5
00009 #define NDETECTORS 5
00010 #define NBOARDS 21
00011 #define NCONNECTORS 16
00012 #define NSUM 20
00013 #define NHISTOGRAMS 30
00014 
00015 #define MAXHISTS NBOARDS*NCONNECTORS*NHISTOGRAMS
00016 
00017 // For RPC
00018 #define NROW 9
00019 #define NCOLUMN 9
00020 #define NRPCHISTOGRAMS 30 // Nor sure about the number
00021 
00022 #define MAXRPCHISTS NROW*NCOLUMN*NRPCHISTOGRAMS
00023 
00024 class IStatisticsSvc;
00025 class TH1;
00026 
00027 namespace DayaBay
00028 {
00029   class Detector;
00030 }
00031 
00032 namespace DybDaq {
00033   class FecReadout;
00034   class FecData;
00035   class RtmReadout;
00036   class RtmData;
00037   class EventReadout;
00038 }
00039 
00040 #include "GaudiAlg/GaudiAlgorithm.h"
00041 #include <string>
00042 
00043 class DaqDataHistogram : public GaudiAlgorithm
00044 {
00045   public:
00046 
00047     DaqDataHistogram (const std::string& name,
00048         ISvcLocator* pSvcLocator);
00049     virtual ~DaqDataHistogram ();
00050     virtual StatusCode initialize();
00051     virtual StatusCode finalize();
00052     virtual StatusCode execute();
00053 
00054   private:
00055     int daqTrigType(int offTrigType);
00056 
00057   private:
00058     IStatisticsSvc* m_statsSvc;
00059 
00060     TH1* getOrMakeHist(int run, const DayaBay::Detector &detector,
00061         int board, int connector, int histIndex);
00062     std::string getPath(int run, const DayaBay::Detector &detector,
00063         int board, int connector,
00064         const char* histName);
00065     TH1* m_scale;
00066 
00067     std::map<int,TH1**> m_hist;
00068     
00069     TH1* rpcGetOrMakeHist(int run, int detector, int row, int column, int histIndex);
00070     std::string rpcGetPath(int run, int detector, int row, int column, const char* histName);
00071 
00072     std::map<int, TH1**> m_rpcHist;
00073     std::map<int, std::string> m_rpcHistPath;
00074     
00075     void handleFecReadout(const DybDaq::FecReadout& fecReadout);
00076     void handleFecData(const DybDaq::FecData* fecData);
00077 
00078     void handleRtmReadout(const DybDaq::RtmReadout& rtmReadout);
00079     void handleRtmData(const DybDaq::RtmData* rtmData);
00080 
00081     bool m_daqCrateOrNot;
00082 
00083     // properties
00084     int m_printFreq;
00085     int m_adcSumMax;
00086     double m_highGainFactor;
00087     double m_tIntervalMax;
00088 
00089     double m_firstTriggerTime;
00090     double m_lastTriggerTime;
00091 
00092     unsigned long m_eventCount;
00093 
00094     enum Fig_t {
00095       //for single channel
00096       kTdc,
00097       kAdcFine,
00098       kAdcCoarse,
00099       kPeakCycle,
00100       kRange,
00101       kHitCount,
00102       kPreAdcFine,
00103       kPreAdcCoarse,
00104       kDarkNoise,
00105       //for event
00106       kTriggerType,
00107       kRateVsTriggerType,
00108       kAdcSum,
00109       kNchannel,
00110       kHitRate,
00111       kHitNumber,
00112       kAdcMean,
00113       kAdcRMS,
00114       kTdcMean,
00115       kTdcRMS,
00116       kPreAdcMean,
00117       kPreAdcRMS,
00118       kAdcVsChannel,
00119       kTdcVsChannel,
00120       kPreAdcVsChannel,
00121       kDarkRate,
00122       kDarkNoiseVsChannel,
00123       kAdcSumVsTriggerType
00124     };
00125 
00126     enum rpcFig_t {
00127       kFecId,
00128       kHitMap
00129     };
00130 };
00131 #endif 
00132 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:26:19 2011 for DQMRawData by doxygen 1.4.7