00001 #ifndef HcalDigiClient_H 00002 #define HcalDigiClient_H 00003 00004 #include "DQM/HcalMonitorClient/interface/HcalBaseClient.h" 00005 #include "DQMServices/Core/interface/DQMStore.h" 00006 00007 #include "DQM/HcalMonitorClient/interface/HcalClientUtils.h" 00008 #include "DQM/HcalMonitorClient/interface/HcalHistoUtils.h" 00009 00010 struct DigiClientHists 00011 { 00012 // structures of histograms for each subdetector 00013 00014 TH1F* shape; 00015 TH1F* shapeThresh; 00016 TH1F* presample; 00017 TH1F* BQ; 00018 TH1F* BQFrac; 00019 TH1F* DigiFirstCapID; 00020 TH1F* DVerr; 00021 TH1F* CapID; 00022 TH1F* ADC; 00023 TH1F* ADCsum; 00024 TH1F* TS_sum_plus[9]; 00025 TH1F* TS_sum_minus[9]; 00026 }; 00027 00028 class HcalDigiClient : public HcalBaseClient { 00029 00030 public: 00031 00033 HcalDigiClient(); 00034 00036 ~HcalDigiClient(); 00037 00038 void init(const edm::ParameterSet& ps, DQMStore* dbe, string clientName); 00039 00041 void analyze(void); 00042 00044 void beginJob(void); 00045 00047 void endJob(void); 00048 00050 void beginRun(void); 00051 00053 void endRun(void); 00054 00056 void setup(void); 00057 00059 void cleanup(void); 00060 00061 00063 void report(); 00064 00066 void htmlOutput(int run, string htmlDir, string htmlName); 00067 void htmlExpertOutput(int run, string htmlDir, string htmlName); 00068 void getHistograms(); 00069 void loadHistograms(TFile* f); 00070 00071 void resetAllME(); 00072 void createTests(); 00073 00074 private: 00075 00076 vector <std::string> subdets_; 00077 bool digiclient_makeDiagnostics_; 00078 int digiclient_checkNevents_; 00079 00080 00081 // Histograms 00082 TH2F* ProblemDigis; 00083 TH2F* ProblemDigisByDepth[6]; 00084 TH2F* DigiErrorsBadCapID[6]; 00085 TH2F* DigiErrorsBadDigiSize[6]; 00086 TH2F* DigiErrorsBadADCSum[6]; 00087 TH2F* DigiErrorsNoDigi[6]; 00088 TH2F* DigiErrorsDVErr[6]; 00089 TH2F* DigiOccupancyByDepth[6]; 00090 TH2F* DigiOccupancyVME; 00091 TH2F* DigiOccupancySpigot; 00092 TH2F* DigiErrorEtaPhi; 00093 TH2F* DigiErrorVME; 00094 TH2F* DigiErrorSpigot; 00095 00096 TH2F* DigiSize; 00097 TH1F* DigiOccupancyEta; 00098 TH1F* DigiOccupancyPhi; 00099 TH1F* DigiNum; 00100 TH1F* DigiBQ; 00101 TH1F* DigiBQFrac; 00102 00103 DigiClientHists hbHists, heHists, hoHists, hfHists; 00104 }; 00105 00106 #endif