File indexing completed on 2023-03-17 10:59:02
0001 #include "FWCore/Framework/interface/Frameworkfwd.h"
0002 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0003
0004 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0005
0006 class DemoHarvester : public DQMEDHarvester {
0007 private:
0008 std::string target_;
0009 int ctr_ = 0;
0010
0011 public:
0012 explicit DemoHarvester(const edm::ParameterSet &);
0013 ~DemoHarvester() override {}
0014
0015 void beginRun(const edm::Run &run, const edm::EventSetup &c) override;
0016 void dqmEndJob(DQMStore::IBooker &ib, DQMStore::IGetter &ig) override;
0017 void dqmEndLuminosityBlock(DQMStore::IBooker &ib,
0018 DQMStore::IGetter &ig,
0019 edm::LuminosityBlock const &lumi,
0020 edm::EventSetup const &) override;
0021 };
0022
0023 DemoHarvester::DemoHarvester(const edm::ParameterSet &iConfig)
0024 : DQMEDHarvester(iConfig), target_(iConfig.getParameter<std::string>("target")) {}
0025
0026 void DemoHarvester::beginRun(const edm::Run &run, const edm::EventSetup &iSetup) {}
0027
0028 void DemoHarvester::dqmEndJob(DQMStore::IBooker &ib, DQMStore::IGetter &ig) {
0029 ig.setCurrentFolder(target_);
0030 MonitorElement *me = ig.get(target_ + "/EXAMPLE");
0031 me->getTH1()->Fill(3);
0032
0033 ib.setCurrentFolder(target_ + "_runsummary");
0034 MonitorElement *out = ib.book1D("EXAMPLE", "EXAMPLE", 100, 0., 100.);
0035 out->setBinContent(5, me->getBinContent(5));
0036 }
0037
0038 void DemoHarvester::dqmEndLuminosityBlock(DQMStore::IBooker &ib,
0039 DQMStore::IGetter &ig,
0040 edm::LuminosityBlock const &lumi,
0041 edm::EventSetup const &) {
0042 ig.setCurrentFolder(target_);
0043 MonitorElement *me = ig.get(target_ + "/EXAMPLE");
0044 me->getTH1()->Fill(4);
0045
0046 ctr_++;
0047
0048 ib.setCurrentFolder(target_ + "_lumisummary");
0049 MonitorElement *out = ib.book1D("EXAMPLE", "EXAMPLE", 100, 0., 100.);
0050 out->setBinContent(ctr_, lumi.luminosityBlock());
0051 }
0052
0053 #include "FWCore/Framework/interface/MakerMacros.h"
0054
0055 DEFINE_FWK_MODULE(DemoHarvester);