Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:11:44

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