00001 #ifndef HcalDeadCellClient_H 00002 #define HcalDeadCellClient_H 00003 00004 #include "DQM/HcalMonitorClient/interface/HcalBaseClient.h" 00005 #include "FWCore/Framework/interface/ESHandle.h" 00006 #include "DQMServices/Core/interface/DQMStore.h" 00007 00008 #include "DQM/HcalMonitorClient/interface/HcalClientUtils.h" 00009 #include "DQM/HcalMonitorClient/interface/HcalHistoUtils.h" 00010 00011 00012 class HcalDeadCellClient : public HcalBaseClient { 00013 00014 public: 00015 00017 HcalDeadCellClient(); 00019 ~HcalDeadCellClient(); 00020 00021 void init(const edm::ParameterSet& ps, DQMStore* dbe, string clientName); 00022 00024 void analyze(void); 00025 00027 void beginJob(const EventSetup& c); 00028 00030 void endJob(void); 00031 00033 void beginRun(void); 00034 00036 void endRun(void); 00037 00039 void setup(void); 00040 00042 void cleanup(void); 00043 00045 void htmlOutput(int run, string htmlDir, string htmlName); 00046 void htmlExpertOutput(int run, string htmlDir, string htmlName); 00047 void getHistograms(); 00048 void loadHistograms(TFile* f); 00049 00051 void report(); 00052 00053 void resetAllME(); 00054 void createTests(); 00055 00056 private: 00057 00058 vector <std::string> subdets_; 00059 00060 double minErrorFlag_; // minimum error rate which causes problem cells to be dumped in client 00061 bool deadclient_makeDiagnostics_; 00062 00063 bool deadclient_test_occupancy_; 00064 bool deadclient_test_rechit_occupancy_; 00065 bool deadclient_test_pedestal_; 00066 bool deadclient_test_neighbor_; 00067 bool deadclient_test_energy_; 00068 00069 int deadclient_checkNevents_; 00070 int deadclient_checkNevents_occupancy_; 00071 int deadclient_checkNevents_rechit_occupancy_; 00072 int deadclient_checkNevents_pedestal_; 00073 int deadclient_checkNevents_neighbor_; 00074 int deadclient_checkNevents_energy_; 00075 00076 // Histograms 00077 TH2F* ProblemDeadCells; 00078 TH2F* ProblemDeadCellsByDepth[6]; 00079 TH2F* UnoccupiedDeadCellsByDepth[6]; 00080 TH2F* UnoccupiedRecHitsByDepth[6]; 00081 TH2F* BelowPedestalDeadCellsByDepth[6]; 00082 TH2F* BelowNeighborsDeadCellsByDepth[6]; 00083 TH2F* BelowEnergyThresholdCellsByDepth[6]; 00084 00085 // diagnostic histograms 00086 TH1F* d_HBnormped; 00087 TH1F* d_HEnormped; 00088 TH1F* d_HOnormped; 00089 TH1F* d_HFnormped; 00090 00091 TH1F* d_HBrechitenergy; 00092 TH1F* d_HErechitenergy; 00093 TH1F* d_HOrechitenergy; 00094 TH1F* d_HFrechitenergy; 00095 00096 TH2F* d_HBenergyVsNeighbor; 00097 TH2F* d_HEenergyVsNeighbor; 00098 TH2F* d_HOenergyVsNeighbor; 00099 TH2F* d_HFenergyVsNeighbor; 00100 }; 00101 00102 #endif