00001 /* 00002 * AdReconFigs 00003 * 00004 * Generate basic AD figures from reconstructed data 00005 * 00006 * dandwyer@caltech.edu 2010/06/20 00007 */ 00008 00009 00010 #ifndef ADRECONFIGS_H 00011 #define ADRECONFIGS_H 00012 00013 // Fast index for histograms 00014 #define ADENERGY 0 00015 #define ADZVSRHO 1 00016 #define ADYVSX 2 00017 #define ADZVSXCAL 3 00018 #define NRECHISTOGRAMS 4 00019 00020 #define NSITES 5 00021 #define NDETECTORS 5 00022 00023 #define MAXRECHISTS NSITES*NDETECTORS*NRECHISTOGRAMS 00024 00025 #include "GaudiAlg/GaudiAlgorithm.h" 00026 #include "Context/TimeStamp.h" 00027 #include "Conventions/Detectors.h" 00028 #include <vector> 00029 #include <map> 00030 #include <string> 00031 00032 class IStatisticsSvc; 00033 class TH1; 00034 00035 class AdReconFigs : public GaudiAlgorithm 00036 { 00037 00038 public: 00039 AdReconFigs(const std::string& name, ISvcLocator* pSvcLocator); 00040 virtual ~AdReconFigs(); 00041 00042 virtual StatusCode initialize(); 00043 virtual StatusCode execute(); 00044 virtual StatusCode finalize(); 00045 00046 private: 00047 TH1* getOrMakeHist(int run, const DayaBay::Detector& detector, 00048 int histogram); 00049 std::string getPath(int run, const char* detectorName, 00050 const char* histName); 00051 void extendRange(TH1* hist, int xBinsAdd, int yBinsAdd=0); 00052 00053 // Property: ReconLocation: 00054 // Generate histograms for this reconstruction 00055 std::string m_reconLocation; 00056 00057 // Handle for statistics service 00058 IStatisticsSvc* m_statsSvc; 00059 // Internal variables 00060 TimeStamp* m_firstTriggerTime; 00061 std::map<DayaBay::Detector,TimeStamp> m_lastTriggerTime; 00062 std::map<int,TH1**> m_shortCuts; 00063 std::vector<TH1*> m_normalize; 00064 00065 }; 00066 00067 #endif // ADRECONFIGS_H