00001 #ifndef EEBeamCaloClient_H 00002 #define EEBeamCaloClient_H 00003 00004 /* 00005 * \file EEBeamCaloClient.h 00006 * 00007 * $Date: 2008/06/25 15:08:19 $ 00008 * $Revision: 1.22 $ 00009 * \author G. Della Ricca 00010 * \author A. Ghezzi 00011 * 00012 */ 00013 00014 #include <vector> 00015 #include <string> 00016 00017 #include "TROOT.h" 00018 #include "TProfile2D.h" 00019 #include "TProfile.h" 00020 #include "TH1F.h" 00021 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 00024 #include "DQM/EcalEndcapMonitorClient/interface/EEClient.h" 00025 00026 class MonitorElement; 00027 class DQMStore; 00028 class EcalCondDBInterface; 00029 class MonRunIOV; 00030 00031 class EEBeamCaloClient : public EEClient { 00032 00033 public: 00034 00036 EEBeamCaloClient(const edm::ParameterSet& ps); 00037 00039 virtual ~EEBeamCaloClient(); 00040 00042 void analyze(void); 00043 00045 void beginJob(DQMStore* dqmStore); 00046 00048 void endJob(void); 00049 00051 void beginRun(void); 00052 00054 void endRun(void); 00055 00057 void setup(void); 00058 00060 void cleanup(void); 00061 00063 void softReset(bool flag); 00064 00066 void htmlOutput(int run, std::string& htmlDir, std::string& htmlName); 00067 00069 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag); 00070 00071 template<class T> void AdjustRange(T obj); 00072 00074 inline int getEvtPerJob() { return ievt_; } 00075 inline int getEvtPerRun() { return jevt_; } 00076 00077 private: 00078 00079 const static int cryInArray_ = 9; 00080 00081 int ievt_; 00082 int jevt_; 00083 00084 bool cloneME_; 00085 00086 bool verbose_; 00087 bool debug_; 00088 00089 std::string prefixME_; 00090 00091 bool enableCleanup_; 00092 00093 std::vector<int> superModules_; 00094 00095 DQMStore* dqmStore_; 00096 00097 //specific task me 00098 vector<int> checkedSteps_; 00099 float prescaling_; 00100 //specific task me 00101 00102 TH1F* hBGains_[cryInArray_]; 00103 TProfile* hBpulse_[cryInArray_]; 00104 00105 TH1F* hBEne1_; 00106 00107 //TH1F* hBGainsMoving_[cryInArray_]; 00108 //TH1F* hBEne1Moving_; 00109 00110 TH1F* hBAllNeededCry_; 00111 00112 TH1F* hBNumReadCry_; 00113 00114 TH1F* hBE3x3_; 00115 00116 TH1F* hBE3x3Moving_; 00117 00118 TH2F* hBCryOnBeam_; 00119 00120 TH2F* hBMaxEneCry_; 00121 00122 TH1F* hBReadCryErrors_; 00123 00124 TProfile* hBE1vsCry_; 00125 00126 TProfile* hBE3x3vsCry_; 00127 00128 TH1F* hBEntriesvsCry_; 00129 00130 TH1F* hBcryDone_; 00131 00132 TH2F* hBBeamCentered_; 00133 00134 TH1F* hbTBmoving_; 00135 00136 TH1F* hbE1MaxCry_; 00137 00138 TH1F* hbDesync_; 00139 00140 TProfile* pBCriInBeamEvents_; 00141 00142 MonitorElement* meEEBCaloRedGreen_; 00143 MonitorElement* meEEBCaloRedGreenReadCry_; 00144 MonitorElement* meEEBCaloRedGreenSteps_; 00145 00146 // quality check parameters 00147 00148 int minEvtNum_; 00149 00150 float aveEne1_; 00151 float E1Th_; 00152 float aveEne3x3_; 00153 float E3x3Th_; 00154 float RMSEne3x3_; 00155 float ReadCryErrThr_; 00156 00157 }; 00158 00159 #endif