00001 #ifndef EETestPulseClient_H 00002 #define EETestPulseClient_H 00003 00004 /* 00005 * \file EETestPulseClient.h 00006 * 00007 * $Date: 2008/10/07 18:34:23 $ 00008 * $Revision: 1.32 $ 00009 * \author G. Della Ricca 00010 * \author F. Cossutti 00011 * 00012 */ 00013 00014 #include <vector> 00015 #include <string> 00016 00017 #include "TROOT.h" 00018 #include "TProfile2D.h" 00019 #include "TH1F.h" 00020 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 00023 #include "DQM/EcalEndcapMonitorClient/interface/EEClient.h" 00024 00025 class MonitorElement; 00026 class DQMStore; 00027 class EcalCondDBInterface; 00028 class RunIOV; 00029 class MonRunIOV; 00030 00031 class EETestPulseClient : public EEClient { 00032 00033 friend class EESummaryClient; 00034 00035 public: 00036 00038 EETestPulseClient(const edm::ParameterSet& ps); 00039 00041 virtual ~EETestPulseClient(); 00042 00044 void analyze(void); 00045 00047 void beginJob(DQMStore* dqmStore); 00048 00050 void endJob(void); 00051 00053 void beginRun(void); 00054 00056 void endRun(void); 00057 00059 void setup(void); 00060 00062 void cleanup(void); 00063 00065 void softReset(bool flag); 00066 00068 void htmlOutput(int run, std::string& htmlDir, std::string& htmlName); 00069 00071 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag); 00072 00074 inline int getEvtPerJob() { return ievt_; } 00075 inline int getEvtPerRun() { return jevt_; } 00076 00077 private: 00078 00079 int ievt_; 00080 int jevt_; 00081 00082 bool cloneME_; 00083 00084 bool verbose_; 00085 bool debug_; 00086 00087 std::string prefixME_; 00088 00089 bool enableCleanup_; 00090 00091 std::vector<int> superModules_; 00092 00093 DQMStore* dqmStore_; 00094 00095 TProfile2D* ha01_[18]; 00096 TProfile2D* ha02_[18]; 00097 TProfile2D* ha03_[18]; 00098 00099 TProfile2D* hs01_[18]; 00100 TProfile2D* hs02_[18]; 00101 TProfile2D* hs03_[18]; 00102 00103 MonitorElement* meg01_[18]; 00104 MonitorElement* meg02_[18]; 00105 MonitorElement* meg03_[18]; 00106 00107 MonitorElement* meg04_[18]; 00108 MonitorElement* meg05_[18]; 00109 00110 MonitorElement* mea01_[18]; 00111 MonitorElement* mea02_[18]; 00112 MonitorElement* mea03_[18]; 00113 00114 MonitorElement* mer04_[18]; 00115 MonitorElement* mer05_[18]; 00116 00117 MonitorElement* me_hs01_[18]; 00118 MonitorElement* me_hs02_[18]; 00119 MonitorElement* me_hs03_[18]; 00120 00121 TProfile* i01_[18]; 00122 TProfile* i02_[18]; 00123 TProfile* i03_[18]; 00124 TProfile* i04_[18]; 00125 00126 // Quality check on crystals 00127 00128 float percentVariation_; 00129 float RMSThreshold_; 00130 float amplitudeThreshold_; 00131 00132 // Quality check on PNs 00133 00134 float amplitudeThresholdPnG01_; 00135 float amplitudeThresholdPnG16_; 00136 float pedPnExpectedMean_[2]; 00137 float pedPnDiscrepancyMean_[2]; 00138 float pedPnRMSThreshold_[2]; 00139 00140 }; 00141 00142 #endif