CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DQM/SiStripMonitorClient/interface/SiStripQualityChecker.h

Go to the documentation of this file.
00001 #ifndef _SiStripQualityChecker_h_
00002 #define _SiStripQualityChecker_h_
00003 
00004 #include "DQMServices/Core/interface/MonitorElement.h"
00005 #include "FWCore/Framework/interface/ESHandle.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 
00008 #include <iostream>
00009 #include <fstream>
00010 #include <sstream>
00011 #include <map>
00012 #include <vector>
00013 #include <string>
00014 
00015 class DQMStore;
00016 class MonitorElement;
00017 class TkDetMap;
00018 class SiStripDetCabling;
00019 
00020 class SiStripQualityChecker {
00021 
00022  public:
00023 
00024 
00025   SiStripQualityChecker(edm::ParameterSet const& ps);
00026   virtual ~SiStripQualityChecker();
00027 
00028 
00029  void bookStatus(DQMStore* dqm_store);     
00030   void resetStatus();
00031   void fillDummyStatus();
00032   void fillStatus(DQMStore* dqm_store, const edm::ESHandle< SiStripDetCabling >& cabling);
00033   void fillStatusAtLumi(DQMStore* dqm_store);
00034   void printStatusReport();
00035   void fillFaultyModuleStatus(DQMStore* dqm_store);
00036   
00037  private:
00038 
00039   struct SubDetMEs{
00040     MonitorElement* DetFraction;
00041     MonitorElement* SToNFlag;
00042     MonitorElement* SummaryFlag;
00043     std::string     detectorTag;
00044   };
00045 
00046   struct TrackingMEs{
00047     std::string     HistoName;
00048     MonitorElement* TrackingFlag;
00049     float           LowerCut;
00050     float           UpperCut; 
00051   };
00052 
00053   void fillDetectorStatus(DQMStore* dqm_store, const edm::ESHandle< SiStripDetCabling >& cabling);
00054   void fillTrackingStatus(DQMStore* dqm_store);
00055   void fillSubDetStatus(DQMStore* dqm_store,const edm::ESHandle< SiStripDetCabling >& cabling, SubDetMEs& mes, unsigned int xbin,float& gflag);
00056   void getModuleStatus(std::vector<MonitorElement*>& layer_mes, int& errdet);
00057 
00058   void fillStatusHistogram(MonitorElement*, int xbin, int ybin, float val);
00059   void initialiseBadModuleList();  
00060 
00061   void fillDetectorStatusAtLumi(DQMStore* dqm_store);
00062   void fillTrackingStatusAtLumi(DQMStore* dqm_store);
00063   
00064   std::map<std::string, SubDetMEs> SubDetMEsMap;
00065   std::map<std::string, std::string> SubDetFolderMap;
00066   std::map<std::string, TrackingMEs> TrackingMEsMap;
00067   
00068   MonitorElement* DetFractionReportMap;
00069   MonitorElement* SToNReportMap;
00070   MonitorElement* SummaryReportMap;
00071 
00072   MonitorElement* SummaryReportGlobal;
00073 
00074   MonitorElement* TrackSummaryReportMap;
00075 
00076   MonitorElement* TrackSummaryReportGlobal;
00077 
00078   std::map<uint32_t,uint16_t> badModuleList;
00079  
00080   edm::ParameterSet pSet_;
00081 
00082   bool bookedStripStatus_;
00083   bool bookedTrackingStatus_;
00084   int globalStatusFilling_;
00085 
00086   TkDetMap* tkDetMap_;
00087  
00088   float cutoffTrackRate_;
00089   float cutoffChi2overDoF_;
00090   float cutoffRecHits_;
00091 
00092 };
00093 #endif