00001 #ifndef ReconDataHistogram_H 00002 #define ReconDataHistogram_H 00003 00004 00005 #define NSITES 5 00006 #define NDETECTORS 5 00007 #define NRECHISTOGRAMS 4 00008 00009 #define MAXRECHISTS NSITES*NDETECTORS*NRECHISTOGRAMS 00010 00011 class IStatisticsSvc; 00012 class TH1; 00013 00014 namespace DayaBay 00015 { 00016 class Detector; 00017 } 00018 00019 #include "GaudiAlg/GaudiAlgorithm.h" 00020 #include <string> 00021 #include <vector> 00022 #include "Context/TimeStamp.h" 00023 00024 class ReconDataHistogram : public GaudiAlgorithm 00025 { 00026 public: 00027 00028 ReconDataHistogram (const std::string& name, 00029 ISvcLocator* pSvcLocator); 00030 virtual ~ReconDataHistogram (); 00031 virtual StatusCode initialize(); 00032 virtual StatusCode finalize(); 00033 virtual StatusCode execute(); 00034 00035 private: 00036 IStatisticsSvc* m_statsSvc; 00037 TimeStamp* m_firstTriggerTime; 00038 TimeStamp m_lastTriggerTime; 00039 TH1* getOrMakeHist(int run, const DayaBay::Detector &detector, 00040 int histIndex); 00041 std::string getPath(int run, const DayaBay::Detector &detector, 00042 const char* histName); 00043 00044 std::map<int,TH1**> m_hist; 00045 std::vector<TH1*> m_scale; 00046 00047 00048 // properties 00049 unsigned long m_eventCount; 00050 00051 enum Fig_t { 00052 kEnergyVsR, 00053 kEnergyVsZ, 00054 kRateVsR, 00055 kRateVsZ 00056 }; 00057 }; 00058 #endif