File indexing completed on 2023-10-25 09:38:10
0001 #include <stdexcept>
0002 #include <string>
0003 #include <iostream>
0004 #include <map>
0005 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "FWCore/Framework/interface/MakerMacros.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "CondFormats/RunInfo/interface/RunSummary.h"
0011 #include "CondFormats/DataRecord/interface/RunSummaryRcd.h"
0012
0013 using namespace std;
0014
0015 namespace edmtest {
0016 class RunSummaryESAnalyzer : public edm::one::EDAnalyzer<> {
0017 private:
0018 const edm::ESGetToken<RunSummary, RunSummaryRcd> m_RunSummaryToken;
0019
0020 public:
0021 explicit RunSummaryESAnalyzer(edm::ParameterSet const& p) : m_RunSummaryToken(esConsumes()) {
0022 edm::LogPrint("RunSummaryESAnalyzer") << "RunSummaryESAnalyzer" << std::endl;
0023 }
0024 explicit RunSummaryESAnalyzer(int i) {
0025 edm::LogPrint("RunSummaryESAnalyzer") << "RunSummaryESAnalyzer " << i << std::endl;
0026 }
0027 ~RunSummaryESAnalyzer() override { edm::LogPrint("RunSummaryESAnalyzer") << "~RunSummaryESAnalyzer " << std::endl; }
0028 void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0029
0030 private:
0031 };
0032
0033 void RunSummaryESAnalyzer::analyze(const edm::Event& e, const edm::EventSetup& context) {
0034 using namespace edm::eventsetup;
0035 edm::LogPrint("RunSummaryESAnalyzer") << "###RunSummaryESAnalyzer::analyze" << std::endl;
0036
0037
0038 edm::LogPrint("RunSummaryESAnalyzer") << " I AM IN RUN NUMBER " << e.id().run() << std::endl;
0039 edm::LogPrint("RunSummaryESAnalyzer") << " ---EVENT NUMBER " << e.id().event() << std::endl;
0040 edm::eventsetup::EventSetupRecordKey recordKey(
0041 edm::eventsetup::EventSetupRecordKey::TypeTag::findType("RunSummaryRcd"));
0042 if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
0043
0044 edm::LogPrint("RunSummaryESAnalyzer") << "Record \"RunSummaryRcd"
0045 << "\" does not exist " << std::endl;
0046 }
0047 edm::LogPrint("RunSummaryESAnalyzer") << "got eshandle" << std::endl;
0048 edm::ESHandle<RunSummary> sum = context.getHandle(m_RunSummaryToken);
0049 edm::LogPrint("RunSummaryESAnalyzer") << "got context" << std::endl;
0050 const RunSummary* summary = sum.product();
0051 edm::LogPrint("RunSummaryESAnalyzer") << "got RunSummary* " << std::endl;
0052
0053 edm::LogPrint("RunSummaryESAnalyzer") << "print result" << std::endl;
0054 summary->printAllValues();
0055 std::vector<std::string> subdet = summary->getSubdtIn();
0056 edm::LogPrint("RunSummaryESAnalyzer") << "subdetector in the run " << std::endl;
0057 for (size_t i = 0; i < subdet.size(); i++) {
0058 edm::LogPrint("RunSummaryESAnalyzer") << "--> " << subdet[i] << std::endl;
0059 }
0060 }
0061 DEFINE_FWK_MODULE(RunSummaryESAnalyzer);
0062 }