00001 #ifndef DQM_HCALMONITORTASKS_HCALCOARSEPEDESTALDQMONITOR_H 00002 #define DQM_HCALMONITORTASKS_HCALCOARSEPEDESTALDQMONITOR_H 00003 00004 #include "DQM/HcalMonitorTasks/interface/HcalBaseDQMonitor.h" 00005 #include "EventFilter/HcalRawToDigi/interface/HcalUnpacker.h" 00006 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00007 #include "CalibFormats/HcalObjects/interface/HcalDbService.h" 00008 #include "CalibFormats/HcalObjects/interface/HcalDbRecord.h" 00009 00018 class HcalCoarsePedestalMonitor: public HcalBaseDQMonitor { 00019 public: 00020 HcalCoarsePedestalMonitor(const edm::ParameterSet& ps); 00021 ~HcalCoarsePedestalMonitor(); 00022 00023 void setup(); 00024 void beginRun(const edm::Run& run, const edm::EventSetup& c); 00025 void cleanup(); 00026 00027 void analyze(const edm::Event& e, const edm::EventSetup& c); 00028 00029 void processEvent(const HBHEDigiCollection& hbhe, 00030 const HODigiCollection& ho, 00031 const HFDigiCollection& hf, 00032 const HcalUnpackerReport& report); 00033 00034 00035 // Begin LumiBlock 00036 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00037 const edm::EventSetup& c) ; 00038 00039 // End LumiBlock 00040 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00041 const edm::EventSetup& c); 00042 00043 00044 void endRun(const edm::Run& run, const edm::EventSetup& c); 00045 void endJob(); 00046 void reset(); 00047 00048 private: 00049 00050 void fill_Nevents(); 00051 void zeroCounters(); 00052 00053 // Store sum of pedestal values over all events 00054 EtaPhiHists CoarsePedestalsSumByDepth; 00055 EtaPhiHists CoarsePedestalsOccByDepth; 00056 00057 double pedestalsum_[85][72][4]; // sum of pedestal values over all events 00058 int pedestalocc_[85][72][4]; 00059 00060 double ADCDiffThresh_; // store difference value that causes channel to be considered in error 00061 00062 edm::InputTag digiLabel_; 00063 int minEvents_; 00064 bool excludeHORing2_; 00065 00066 }; 00067 00068 #endif