CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/DQM/HcalMonitorClient/interface/HcalSummaryClient.h

Go to the documentation of this file.
00001 #ifndef HcalSummaryClient_GUARD_H
00002 #define HcalSummaryClient_GUARD_H
00003 
00004 #include "DQM/HcalMonitorClient/interface/HcalBaseDQClient.h"
00005 #include "FWCore/Framework/interface/MakerMacros.h"
00006 #include "FWCore/ServiceRegistry/interface/Service.h"
00007 
00008 class EtaPhiHists;
00009 class MonitorElement;
00010 class HcalBaseDQClient;
00011 
00012 class HcalSummaryClient : public HcalBaseDQClient {
00013 
00014  public:
00015 
00017   HcalSummaryClient(){name_="";};
00018   HcalSummaryClient(std::string myname);//{ name_=myname;};
00019   HcalSummaryClient(std::string myname, const edm::ParameterSet& ps);
00020 
00021   void analyze(int LS=-1);
00022   void updateChannelStatus(std::map<HcalDetId, unsigned int>& myqual);
00023   void beginJob(void);
00024   void endJob(void);
00025   void beginRun(void);
00026   void endRun(void); 
00027   void setup(void);  
00028   void cleanup(void);
00029   
00030   void fillReportSummary(int LS);
00031   void fillReportSummaryLSbyLS(int LS);
00032 
00033   bool hasErrors_Temp(void);  
00034   bool hasWarnings_Temp(void);
00035   bool hasOther_Temp(void);
00036   bool test_enabled(void);
00037 
00038   void getFriends(std::vector<HcalBaseDQClient*> clients){clients_=clients;};
00039 
00041   ~HcalSummaryClient();
00042 
00043  private:
00044   int nevts_;
00045   EtaPhiHists* SummaryMapByDepth; // used to store & calculate problems
00046   MonitorElement* StatusVsLS_;
00047   MonitorElement* EnoughEvents_;
00048   MonitorElement* MinEvents_;
00049   MonitorElement* MinErrorRate_;
00050   MonitorElement* reportMapShift_;
00051   MonitorElement* reportMap_;
00052   MonitorElement* certificationMap_;
00053 
00054   double status_global_, status_HB_, status_HE_, status_HO_, status_HF_;
00055   double status_HO0_, status_HO12_, status_HFlumi_;
00056   int NLumiBlocks_;
00057   bool UseBadChannelStatusInSummary_;  // if turned on, the channel status DB output is checked and any channels reporting 'NaN' are counted as bad in the summary.
00058 
00059   std::vector<HcalBaseDQClient*> clients_;
00060   std::map<std::string, int> subdetCells_;
00061   int HBpresent_, HEpresent_, HOpresent_, HFpresent_;
00062 };
00063 
00064 #endif