File indexing completed on 2024-09-12 04:16:47
0001 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0002 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0003 #include "FWCore/Framework/interface/Event.h"
0004 #include "FWCore/Framework/interface/LuminosityBlock.h"
0005 #include "FWCore/Framework/interface/NoRecordException.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Framework/interface/MakerMacros.h"
0008 #include "FWCore/Framework/interface/EventSetup.h"
0009 #include "FWCore/Framework/interface/EventSetupRecord.h"
0010 #include "RecoLuminosity/LumiProducer/interface/DIPLumiSummary.h"
0011 #include "RecoLuminosity/LumiProducer/interface/DIPLumiDetail.h"
0012 #include "RecoLuminosity/LumiProducer/interface/DIPLuminosityRcd.h"
0013
0014 #include <iostream>
0015
0016 namespace edm {
0017 class EventSetup;
0018 }
0019
0020 using namespace std;
0021 using namespace edm;
0022
0023 class TestDIPLumiProducer : public edm::one::EDAnalyzer<edm::one::WatchLuminosityBlocks> {
0024 public:
0025 explicit TestDIPLumiProducer(edm::ParameterSet const&);
0026
0027 void beginLuminosityBlock(LuminosityBlock const& lumiBlock, EventSetup const& c) override {}
0028 void analyze(edm::Event const& e, edm::EventSetup const& c) override;
0029 void endLuminosityBlock(LuminosityBlock const& lumiBlock, EventSetup const& c) override;
0030
0031 private:
0032 edm::ESGetToken<DIPLumiSummary, DIPLuminosityRcd> token_;
0033 };
0034
0035
0036
0037 TestDIPLumiProducer::TestDIPLumiProducer(edm::ParameterSet const& ps) : token_(esConsumes()) {}
0038
0039
0040
0041 void TestDIPLumiProducer::analyze(edm::Event const& e, edm::EventSetup const&) {}
0042
0043
0044
0045 void TestDIPLumiProducer::endLuminosityBlock(edm::LuminosityBlock const& lumiBlock, EventSetup const& es) {
0046 std::cout << " I AM IN RUN NUMBER " << lumiBlock.run() << " LS NUMBER " << lumiBlock.luminosityBlock() << std::endl;
0047 edm::eventsetup::EventSetupRecordKey recordKey(
0048 edm::eventsetup::EventSetupRecordKey::TypeTag::findType("DIPLuminosityRcd"));
0049 if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
0050 std::cout << "Record \"DIPLuminosityRcd"
0051 << "\" does not exist " << std::endl;
0052 }
0053 try {
0054 edm::ESHandle<DIPLumiSummary> datahandle = es.getHandle(token_);
0055 if (datahandle.isValid()) {
0056 const DIPLumiSummary* mydata = datahandle.product();
0057 if (!mydata->isNull()) {
0058 std::cout << "from Run " << mydata->fromRun() << " from LS " << mydata->fromLS() << std::endl;
0059 std::cout << mydata->intgDelLumiByLS() << std::endl;
0060 } else {
0061 std::cout << "data empty" << std::endl;
0062 }
0063 } else {
0064 std::cout << "no valid record found" << std::endl;
0065 }
0066 } catch (const edm::eventsetup::NoRecordException<DIPLuminosityRcd>& er) {
0067 std::cout << "no data found" << std::endl;
0068 } catch (const cms::Exception& ee) {
0069 std::cout << ee.what() << std::endl;
0070 }
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088 }
0089
0090 DEFINE_FWK_MODULE(TestDIPLumiProducer);