00001 #ifndef EBBeamCaloClient_H 00002 #define EBBeamCaloClient_H 00003 00004 /* 00005 * \file EBBeamCaloClient.h 00006 * 00007 * $Date: 2008/06/25 15:08:17 $ 00008 * $Revision: 1.42 $ 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/EcalBarrelMonitorClient/interface/EBClient.h" 00025 00026 class MonitorElement; 00027 class DQMStore; 00028 class EcalCondDBInterface; 00029 class RunIOV; 00030 class MonRunIOV; 00031 00032 class EBBeamCaloClient : public EBClient { 00033 00034 public: 00035 00037 EBBeamCaloClient(const edm::ParameterSet& ps); 00038 00040 virtual ~EBBeamCaloClient(); 00041 00043 void analyze(void); 00044 00046 void beginJob(DQMStore* dqmStore); 00047 00049 void endJob(void); 00050 00052 void beginRun(void); 00053 00055 void endRun(void); 00056 00058 void setup(void); 00059 00061 void cleanup(void); 00062 00064 void softReset(bool flag); 00065 00067 void htmlOutput(int run, std::string& htmlDir, std::string& htmlName); 00068 00070 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag); 00071 00072 template<class T> void AdjustRange(T obj); 00073 00075 inline int getEvtPerJob() { return ievt_; } 00076 inline int getEvtPerRun() { return jevt_; } 00077 00078 private: 00079 00080 const static int cryInArray_ = 9; 00081 00082 int ievt_; 00083 int jevt_; 00084 00085 bool cloneME_; 00086 00087 bool verbose_; 00088 bool debug_; 00089 00090 std::string prefixME_; 00091 00092 bool enableCleanup_; 00093 00094 std::vector<int> superModules_; 00095 00096 DQMStore* dqmStore_; 00097 00098 //specific task me 00099 std::vector<int> checkedSteps_; 00100 float prescaling_; 00101 //specific task me 00102 00103 TH1F* hBGains_[cryInArray_]; 00104 TProfile* hBpulse_[cryInArray_]; 00105 00106 TH1F* hBEne1_; 00107 00108 //TH1F* hBGainsMoving_[cryInArray_]; 00109 //TH1F* hBEne1Moving_; 00110 00111 TH1F* hBAllNeededCry_; 00112 00113 TH1F* hBNumReadCry_; 00114 00115 TH1F* hBE3x3_; 00116 00117 TH1F* hBE3x3Moving_; 00118 00119 TH2F* hBCryOnBeam_; 00120 00121 TH2F* hBMaxEneCry_; 00122 00123 TH1F* hBReadCryErrors_; 00124 00125 TProfile* hBE1vsCry_; 00126 00127 TProfile* hBE3x3vsCry_; 00128 00129 TH1F* hBEntriesvsCry_; 00130 00131 TH1F* hBcryDone_; 00132 00133 TH2F* hBBeamCentered_; 00134 00135 TH1F* hbTBmoving_; 00136 00137 TH1F* hbE1MaxCry_; 00138 00139 TH1F* hbDesync_; 00140 00141 TProfile* pBCriInBeamEvents_; 00142 00143 MonitorElement* meEBBCaloRedGreen_; 00144 MonitorElement* meEBBCaloRedGreenReadCry_; 00145 MonitorElement* meEBBCaloRedGreenSteps_; 00146 00147 // quality check parameters 00148 00149 int minEvtNum_; 00150 00151 float aveEne1_; 00152 float E1Th_; 00153 float aveEne3x3_; 00154 float E3x3Th_; 00155 float RMSEne3x3_; 00156 float ReadCryErrThr_; 00157 00158 }; 00159 00160 #endif