Back to home page

Project CMSSW displayed by LXR

 
 

    


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     // Context is not used.
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       //record not found
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 }  // namespace edmtest