00001 #ifndef HcalBaseClient_H
00002 #define HcalBaseClient_H
00003
00004 #include "FWCore/Framework/interface/Event.h"
00005 #include "FWCore/Framework/interface/MakerMacros.h"
00006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 #include "FWCore/Utilities/interface/CPUTimer.h"
00009
00010 #include "DQMServices/Core/interface/DQMStore.h"
00011 #include "DQMServices/Core/interface/MonitorElement.h"
00012 #include "DQMServices/Core/interface/DQMOldReceiver.h"
00013
00014 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00015
00016 #include "TROOT.h"
00017 #include "TStyle.h"
00018 #include "TColor.h"
00019
00020 #include "TH1F.h"
00021 #include "TH2F.h"
00022 #include "TFile.h"
00023
00024 #include "DQM/HcalMonitorClient/interface/HcalClientUtils.h"
00025 #include "DQM/HcalMonitorClient/interface/HcalHistoUtils.h"
00026
00027 #include <memory>
00028 #include <iostream>
00029 #include <fstream>
00030 #include <vector>
00031 #include <string>
00032
00033
00034
00035
00036 using namespace cms;
00037 using namespace edm;
00038 using namespace std;
00039
00040 class HcalBaseClient{
00041
00042 public:
00043
00045 HcalBaseClient();
00046
00048 virtual ~HcalBaseClient();
00049
00050 virtual void init(const ParameterSet& ps, DQMStore* dbe_, string clientName);
00051
00052 void errorOutput();
00053 void getTestResults(int& totalTests,
00054 map<string, vector<QReport*> >& err,
00055 map<string, vector<QReport*> >& warn,
00056 map<string, vector<QReport*> >& other);
00057 bool hasErrors() const { return dqmReportMapErr_.size(); }
00058 bool hasWarnings() const { return dqmReportMapWarn_.size(); }
00059 bool hasOther() const { return dqmReportMapOther_.size(); }
00060 bool validDetId(HcalSubdetector sd, int ies, int ip, int dp);
00061
00062 void getSJ6histos( char* dir, char* name, TH2F* h[6]);
00063 void getSJ6histos( char* dir, char* name, TH1F* h[6]);
00064
00065 protected:
00066
00067 int ievt_;
00068 int jevt_;
00069
00070 bool cloneME_;
00071 int debug_;
00072 string process_;
00073 string baseFolder_;
00074 string clientName_;
00075
00076 bool showTiming_;
00077 edm::CPUTimer cpu_timer;
00078 bool fillUnphysical_;
00079
00080 DQMStore* dbe_;
00081
00082 bool subDetsOn_[4];
00083
00084
00085 int pcol_error_[20];
00086 float rgb_error_[20][3];
00087
00088
00089
00090 map<string, vector<QReport*> > dqmReportMapErr_;
00091 map<string, vector<QReport*> > dqmReportMapWarn_;
00092 map<string, vector<QReport*> > dqmReportMapOther_;
00093 map<string, string> dqmQtests_;
00094
00095 };
00096
00097 #endif