CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/HcalMonitorTasks/interface/HcalTrigPrimMonitor.h

Go to the documentation of this file.
00001 #ifndef DQM_HCALMONITORTASKS_HCALTRIGPRIMMONITOR_H
00002 #define DQM_HCALMONITORTASKS_HCALTRIGPRIMMONITOR_H
00003 
00004 #include "DQM/HcalMonitorTasks/interface/HcalBaseDQMonitor.h"
00005 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
00006 
00014 //class HcalTrigPrimMonitor: public HcalBaseMonitor {
00015 class HcalTrigPrimMonitor: public HcalBaseDQMonitor {
00016    public:
00017       HcalTrigPrimMonitor(const edm::ParameterSet& ps);
00018       ~HcalTrigPrimMonitor(); 
00019   
00020       void setup();
00021       void analyze(const edm::Event& e, const edm::EventSetup& c);
00022       void processEvent(const edm::Handle<HcalTrigPrimDigiCollection>& data_tp_col,
00023                         const edm::Handle<HcalTrigPrimDigiCollection>& emul_tp_col);
00024       void reset();
00025       void beginRun(const edm::Run& run, const edm::EventSetup& c);
00026       void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c) ;
00027       void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c);
00028       void cleanup();
00029       void endJob();
00030 
00031    private:
00032       edm::InputTag dataLabel_;
00033       edm::InputTag emulLabel_;
00034       std::vector<int> ZSAlarmThreshold_;
00035 
00036       MonitorElement* create_summary(const std::string& folder, const std::string& name);
00037       MonitorElement* create_errorflag(const std::string& folder, const std::string& name);
00038       MonitorElement* create_tp_correlation(const std::string& folder, const std::string& name);
00039       MonitorElement* create_fg_correlation(const std::string& folder, const std::string& name);
00040       MonitorElement* create_map(const std::string& folder, const std::string& name);
00041       MonitorElement* create_et_histogram(const std::string& folder, const std::string& name);
00042 
00043       enum ErrorFlag{
00044          kZeroTP=-1,
00045          kMatched = 0,
00046          kMismatchedEt = 1,
00047          kMismatchedFG = 2,
00048          kMissingData = 3,
00049          kMissingEmul = 4,
00050          kNErrorFlag = 5,
00051          kUnknown = kNErrorFlag
00052       };
00053 
00054       // Index: [isZS]
00055       MonitorElement* good_tps[2];
00056       MonitorElement* bad_tps[2];
00057       MonitorElement* errorflag[2];
00058       std::map<ErrorFlag, MonitorElement*> problem_map[2];
00059 
00060       // Index: [isZS][isHF]
00061       MonitorElement* tp_corr[2][2];
00062       MonitorElement* fg_corr[2][2];
00063       std::map<ErrorFlag, MonitorElement*> problem_et[2][2];
00064 
00065       MonitorElement* TPOccupancy_;
00066       MonitorElement* TPOccupancyEta_;
00067       MonitorElement* TPOccupancyPhi_;
00068       MonitorElement* TPOccupancyPhiHFP_;
00069       MonitorElement* TPOccupancyPhiHFM_;
00070 
00071       int nBad_TP_per_LS_HB_;
00072       int nBad_TP_per_LS_HE_;
00073       int nBad_TP_per_LS_HF_;
00074 };
00075 #endif