File indexing completed on 2024-09-11 04:32:39
0001 #ifndef SiStripMonitorClient_SiStripOfflineDQM_h
0002 #define SiStripMonitorClient_SiStripOfflineDQM_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include <string>
0024
0025 #include "DQM/SiStripMonitorClient/interface/SiStripActionExecutor.h"
0026 #include "FWCore/Framework/interface/one/EDProducer.h"
0027 #include "FWCore/Framework/interface/ESHandle.h"
0028 #include "FWCore/Framework/interface/EventSetup.h"
0029 #include "FWCore/Framework/interface/LuminosityBlock.h"
0030 #include "FWCore/Framework/interface/Run.h"
0031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0032 #include "DQMServices/Core/interface/DQMStore.h"
0033
0034
0035 #include "CalibTracker/Records/interface/SiStripDetCablingRcd.h"
0036 #include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h"
0037 #include "CondFormats/DataRecord/interface/RunSummaryRcd.h"
0038
0039 #include <iostream>
0040 #include <fstream>
0041 #include <string>
0042 #include <vector>
0043 #include <map>
0044 #include <TTree.h>
0045
0046 class SiStripDetCabling;
0047 class RunInfo;
0048
0049 class SiStripOfflineDQM : public edm::one::EDProducer<edm::one::WatchLuminosityBlocks,
0050 edm::one::WatchRuns,
0051 edm::EndRunProducer,
0052 edm::EndLuminosityBlockProducer,
0053 edm::one::SharedResources> {
0054 public:
0055 typedef dqm::harvesting::MonitorElement MonitorElement;
0056 typedef dqm::harvesting::DQMStore DQMStore;
0057
0058 SiStripOfflineDQM(edm::ParameterSet const& ps);
0059
0060 private:
0061 void beginJob() override;
0062 void beginRun(edm::Run const& run, edm::EventSetup const& eSetup) override;
0063 void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& iSetup) override {}
0064 void produce(edm::Event& e, edm::EventSetup const& eSetup) override;
0065 void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& iSetup) override;
0066 void endLuminosityBlockProduce(edm::LuminosityBlock&, edm::EventSetup const&) override {}
0067 void endRun(edm::Run const& run, edm::EventSetup const& eSetup) override;
0068 void endRunProduce(edm::Run&, edm::EventSetup const&) override {}
0069 void endJob() override;
0070
0071 void checkTrackerFEDs(edm::Event const& e);
0072 bool openInputFile(DQMStore& dqm_store);
0073
0074 SiStripActionExecutor actionExecutor_;
0075
0076 bool usedWithEDMtoMEConverter_;
0077 bool createSummary_;
0078 bool const createTkMap_, createTkInfoFile_;
0079 std::string const inputFileName_;
0080 std::string const outputFileName_;
0081 int globalStatusFilling_;
0082 bool trackerFEDsFound_;
0083 bool printFaultyModuleList_;
0084 TTree* tkinfoTree_{nullptr};
0085 edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> detCablingToken_;
0086 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
0087 edm::ESGetToken<TkDetMap, TrackerTopologyRcd> tkDetMapToken_;
0088 edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
0089 edm::ESGetToken<RunInfo, RunInfoRcd> runInfoToken_;
0090
0091 struct MapOptions {
0092 std::string type;
0093 edm::ParameterSet pset;
0094 bool useSSQ;
0095 edm::ESGetToken<SiStripQuality, SiStripQualityRcd> token;
0096
0097 MapOptions(const std::string type_,
0098 edm::ParameterSet&& pset_,
0099 bool useSSQ_,
0100 edm::ESGetToken<SiStripQuality, SiStripQualityRcd>&& token_)
0101 : type(type_), pset(std::move(pset_)), useSSQ(useSSQ_), token(std::move(token_)) {}
0102 };
0103 std::vector<MapOptions> tkMapOptions_;
0104 };
0105 #endif