00001 #ifndef DQM_HCALMONITORTASKS_HCALNZSMONITOR_H 00002 #define DQM_HCALMONITORTASKS_HCALNZSMONITOR_H 00003 00004 #include "DQM/HcalMonitorTasks/interface/HcalBaseDQMonitor.h" 00005 #include "EventFilter/HcalRawToDigi/interface/HcalHTRData.h" 00006 #include "EventFilter/HcalRawToDigi/interface/HcalUnpacker.h" // need for emap 00007 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" 00008 #include "DataFormats/Common/interface/TriggerResults.h" 00009 00010 class HcalNZSMonitor: public HcalBaseDQMonitor 00011 { 00012 public: 00013 HcalNZSMonitor(const edm::ParameterSet& ps); 00014 ~HcalNZSMonitor(); 00015 00016 00017 void setup(); 00018 void beginRun(const edm::Run& run, const edm::EventSetup& c); 00019 void analyze(edm::Event const&e, edm::EventSetup const&s); 00020 void processEvent(const FEDRawDataCollection& rawraw, edm::TriggerResults, int bxNum,const edm::TriggerNames & triggerNames); 00021 00022 00023 00024 void unpack(const FEDRawData& raw, const HcalElectronicsMap& emap); 00025 void cleanup(); 00026 void reset(); 00027 00028 private: 00029 // Data accessors 00030 std::vector<int> selFEDs_; 00031 00032 std::vector<std::string> triggers_; 00033 int period_; 00034 00035 //Monitoring elements 00036 MonitorElement* meFEDsizeVsLumi_; 00037 00038 MonitorElement* meFEDsizesNZS_; 00039 MonitorElement* meL1evtNumber_; 00040 MonitorElement* meIsUS_; 00041 MonitorElement* meBXtriggered_; 00042 MonitorElement* meTrigFrac_; 00043 MonitorElement* meFullCMSdataSize_; 00044 00045 bool isUnsuppressed (HcalHTRData& payload); //Return the US bit: ExtHdr7[bit 15] 00046 uint64_t UScount[32][15]; 00047 00048 int nAndAcc; 00049 int nAcc_Total; 00050 std::vector<int> nAcc; 00051 00052 edm::InputTag rawdataLabel_; 00053 edm::InputTag hltresultsLabel_; 00054 }; 00055 00056 00057 #endif