00001 #ifndef DQM_HCALMONITORTASKS_HCALZDCMONITOR_H 00002 #define DQM_HCALMONITORTASKS_HCALZDCMONITOR_H 00003 00004 #include "DQM/HcalMonitorTasks/interface/HcalBaseMonitor.h" 00005 #include "DQMServices/Core/interface/DQMStore.h" 00006 #include "DQMServices/Core/interface/MonitorElement.h" 00007 #include "EventFilter/HcalRawToDigi/interface/HcalUnpacker.h" 00008 #include "CondFormats/HcalObjects/interface/HcalPedestal.h" 00009 #include "CondFormats/HcalObjects/interface/HcalPedestalWidth.h" 00010 #include <cmath> 00011 00019 class HcalZDCMonitor: public HcalBaseMonitor 00020 { 00021 public: 00022 HcalZDCMonitor(); 00023 ~HcalZDCMonitor(); 00024 void setup(const edm::ParameterSet& ps, DQMStore* dbe); 00025 void processEvent(const ZDCDigiCollection& digi, 00026 const ZDCRecHitCollection& rechit); 00027 //void done(); 00028 void reset(); 00029 void endLuminosityBlock(void); 00030 private: 00031 //virtual void endJob(); 00032 //void endLuminosityBlock(void); 00033 //void zeroCounters(); 00034 //void fillHistos(); 00035 //void setZDClabels(MonitorElement* h); 00036 double getTime(std::vector<double> fData, unsigned int ts_min, unsigned int ts_max, double& fSum); 00037 //int getTSMax(std::vector<double> fData); 00038 //bool isGood(std::vector<double> fData, double fCut, double fPercentage); 00039 00040 bool checkZDC_; 00041 int NumBadZDC; 00042 MonitorElement* ProblemsVsLB_ZDC; 00043 00044 const HcalQIEShape* shape_; 00045 const HcalQIECoder* channelCoder_; 00046 HcalCalibrations calibs_; 00047 int ievt_; 00048 //int zdc_checkNevents_; 00049 MonitorElement* meEVT_; 00050 MonitorElement* h_2D_saturation; 00051 MonitorElement* h_2D_charge; 00052 MonitorElement* h_2D_TSMean; 00053 MonitorElement* h_2D_RecHitEnergy; 00054 MonitorElement* h_2D_RecHitTime; 00055 MonitorElement* h_ZDCP_EM_Pulse[5]; 00056 MonitorElement* h_ZDCM_EM_Pulse[5]; 00057 MonitorElement* h_ZDCP_EM_Charge[5]; 00058 MonitorElement* h_ZDCM_EM_Charge[5]; 00059 MonitorElement* h_ZDCP_EM_TSMean[5]; 00060 MonitorElement* h_ZDCM_EM_TSMean[5]; 00061 MonitorElement* h_ZDCP_HAD_Pulse[4]; 00062 MonitorElement* h_ZDCM_HAD_Pulse[4]; 00063 MonitorElement* h_ZDCP_HAD_Charge[4]; 00064 MonitorElement* h_ZDCM_HAD_Charge[4]; 00065 MonitorElement* h_ZDCP_HAD_TSMean[4]; 00066 MonitorElement* h_ZDCM_HAD_TSMean[4]; 00067 MonitorElement* h_ZDCP_EM_RecHitEnergy[5]; 00068 MonitorElement* h_ZDCM_EM_RecHitEnergy[5]; 00069 MonitorElement* h_ZDCP_EM_RecHitTiming[5]; 00070 MonitorElement* h_ZDCM_EM_RecHitTiming[5]; 00071 MonitorElement* h_ZDCP_HAD_RecHitEnergy[4]; 00072 MonitorElement* h_ZDCM_HAD_RecHitEnergy[4]; 00073 MonitorElement* h_ZDCP_HAD_RecHitTiming[4]; 00074 MonitorElement* h_ZDCM_HAD_RecHitTiming[4]; 00075 }; 00076 00077 #endif