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
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> ZSBadTPThreshold_;
00035 std::vector<int> ZSAlarmThreshold_;
00036
00037 MonitorElement* create_summary(const std::string& folder, const std::string& name);
00038 MonitorElement* create_errorflag(const std::string& folder, const std::string& name);
00039 MonitorElement* create_tp_correlation(const std::string& folder, const std::string& name);
00040 MonitorElement* create_fg_correlation(const std::string& folder, const std::string& name);
00041 MonitorElement* create_map(const std::string& folder, const std::string& name);
00042 MonitorElement* create_et_histogram(const std::string& folder, const std::string& name);
00043
00044 enum ErrorFlag{
00045 kZeroTP=-1,
00046 kMatched = 0,
00047 kMismatchedEt = 1,
00048 kMismatchedFG = 2,
00049 kMissingData = 3,
00050 kMissingEmul = 4,
00051 kNErrorFlag = 5,
00052 kUnknown = kNErrorFlag
00053 };
00054
00055
00056 MonitorElement* good_tps[2];
00057 MonitorElement* bad_tps[2];
00058 MonitorElement* errorflag[2];
00059 std::map<ErrorFlag, MonitorElement*> problem_map[2];
00060
00061
00062 MonitorElement* good_tps_oot[2];
00063 MonitorElement* bad_tps_oot[2];
00064 MonitorElement* errorflag_oot[2];
00065 std::map<ErrorFlag, MonitorElement*> problem_map_oot[2];
00066
00067
00068 MonitorElement* tp_corr[2][2];
00069 MonitorElement* fg_corr[2][2];
00070 std::map<ErrorFlag, MonitorElement*> problem_et[2][2];
00071
00072
00073 MonitorElement* tp_corr_oot[2][2];
00074 MonitorElement* fg_corr_oot[2][2];
00075 std::map<ErrorFlag, MonitorElement*> problem_et_oot[2][2];
00076
00077 MonitorElement* TPOccupancy_;
00078 MonitorElement* TPOccupancyEta_;
00079 MonitorElement* TPOccupancyPhi_;
00080 MonitorElement* TPOccupancyPhiHFP_;
00081 MonitorElement* TPOccupancyPhiHFM_;
00082
00083 int nBad_TP_per_LS_HB_;
00084 int nBad_TP_per_LS_HE_;
00085 int nBad_TP_per_LS_HF_;
00086 };
00087 #endif