File indexing completed on 2024-04-06 12:08:40
0001 #ifndef _SiStripActionExecutor_h_
0002 #define _SiStripActionExecutor_h_
0003
0004 #include "DQM/SiStripMonitorClient/interface/SiStripConfigWriter.h"
0005 #include "DQM/SiStripMonitorClient/interface/SiStripQualityChecker.h"
0006 #include "DQM/SiStripMonitorClient/interface/SiStripSummaryCreator.h"
0007 #include "DQM/SiStripMonitorClient/interface/SiStripTrackerMapCreator.h"
0008
0009 #include "DQMServices/Core/interface/DQMStore.h"
0010
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012
0013 #include <map>
0014 #include <vector>
0015 #include <string>
0016 #include <TTree.h>
0017
0018 class MonitorUserInterface;
0019 class SiStripFedCabling;
0020 class SiStripDetCabling;
0021
0022 class SiStripActionExecutor {
0023 public:
0024 typedef dqm::harvesting::MonitorElement MonitorElement;
0025 typedef dqm::harvesting::DQMStore DQMStore;
0026
0027 SiStripActionExecutor(edm::ParameterSet const& ps);
0028 virtual ~SiStripActionExecutor();
0029
0030 bool readConfiguration();
0031 bool readTkMapConfiguration(const SiStripDetCabling* detCabling,
0032 const TkDetMap* tkDetMap,
0033 const TrackerTopology* tTopo);
0034
0035 void saveMEs(DQMStore& dqm_store, std::string fname);
0036 void createSummary(DQMStore& dqm_store);
0037 void createSummaryOffline(DQMStore& dqm_store);
0038 void createTkMap(const edm::ParameterSet& tkmapPset, DQMStore& dqm_store, const std::string& map_type);
0039 void createOfflineTkMap(const edm::ParameterSet& tkmapPset,
0040 DQMStore& dqm_store,
0041 std::string& map_type,
0042 const SiStripQuality* stripQuality);
0043 void createTkInfoFile(std::vector<std::string> tkhmap_names,
0044 TTree* tkinfo_tree,
0045 DQMStore& dqm_store,
0046 const GeometricDet* geomDet);
0047
0048 void createStatus(DQMStore& dqm_store);
0049 void fillDummyStatus();
0050 void fillStatus(DQMStore& dqm_store,
0051 const SiStripDetCabling* cabling,
0052 const TkDetMap* tkDetMap,
0053 const TrackerTopology* tTopo);
0054 void fillStatusAtLumi(DQMStore& dqm_store);
0055
0056 void createDummyShiftReport();
0057 void createShiftReport(DQMStore& dqm_store);
0058 void printReportSummary(MonitorElement* me, std::ostringstream& str_val, std::string name);
0059 void printShiftHistoParameters(DQMStore& dqm_store,
0060 std::map<std::string, std::vector<std::string>> const& layout_map,
0061 std::ostringstream& str_val);
0062 void printFaultyModuleList(DQMStore& dqm_store, std::ostringstream& str_val);
0063 void createFaultyModuleMEs(DQMStore& dqm_store);
0064
0065 private:
0066 std::vector<std::string> tkMapMENames{};
0067
0068 std::unique_ptr<SiStripSummaryCreator> summaryCreator_{nullptr};
0069 std::unique_ptr<SiStripTrackerMapCreator> tkMapCreator_{nullptr};
0070 std::unique_ptr<SiStripQualityChecker> qualityChecker_{nullptr};
0071 std::unique_ptr<SiStripConfigWriter> configWriter_{nullptr};
0072
0073 edm::ParameterSet const pSet_;
0074 };
0075 #endif