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