File indexing completed on 2024-04-06 12:09:09
0001 #ifndef _TrackingQualityChecker_h_
0002 #define _TrackingQualityChecker_h_
0003
0004 #include "DQMServices/Core/interface/DQMStore.h"
0005 #include "FWCore/Framework/interface/ESHandle.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008
0009 #include <fstream>
0010 #include <sstream>
0011 #include <map>
0012 #include <vector>
0013 #include <string>
0014
0015 class TrackingDetCabling;
0016
0017 class TrackingQualityChecker {
0018 public:
0019 typedef dqm::harvesting::DQMStore DQMStore;
0020 typedef dqm::harvesting::MonitorElement MonitorElement;
0021
0022 TrackingQualityChecker(edm::ParameterSet const& ps);
0023 virtual ~TrackingQualityChecker();
0024
0025 void bookGlobalStatus(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0026 void bookLSStatus(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0027 void resetGlobalStatus();
0028 void resetLSStatus();
0029 void fillDummyGlobalStatus();
0030 void fillDummyLSStatus();
0031 void fillGlobalStatus(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0032 void fillLSStatus(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0033
0034 private:
0035 struct TrackingMEs {
0036 MonitorElement* TrackingFlag;
0037 std::string HistoDir;
0038 std::string HistoName;
0039 };
0040
0041 struct TrackingLSMEs {
0042 MonitorElement* TrackingFlag;
0043 std::string HistoLSDir;
0044 std::string HistoLSName;
0045 float HistoLSLowerCut;
0046 float HistoLSUpperCut;
0047 };
0048
0049 void fillTrackingStatus(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0050 void fillTrackingStatusAtLumi(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter);
0051
0052 void fillStatusHistogram(MonitorElement*, int xbin, int ybin, float val);
0053
0054 std::map<std::string, TrackingMEs> TrackingMEsMap;
0055 std::map<std::string, TrackingLSMEs> TrackingLSMEsMap;
0056
0057 MonitorElement* TrackGlobalSummaryReportMap;
0058 MonitorElement* TrackGlobalSummaryReportGlobal;
0059
0060 MonitorElement* TrackLSSummaryReportGlobal;
0061
0062 edm::ParameterSet pSet_;
0063 bool verbose_;
0064
0065 bool bookedTrackingGlobalStatus_;
0066 bool bookedTrackingLSStatus_;
0067
0068 std::string TopFolderName_;
0069 };
0070 #endif