File indexing completed on 2024-04-06 12:26:39
0001
0002 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/LuminosityBlock.h"
0006 #include "DataFormats/Common/interface/Handle.h"
0007 #include "DataFormats/Luminosity/interface/LumiDetails.h"
0008 #include "DataFormats/Luminosity/interface/LumiSummary.h"
0009 #include "FWCore/Framework/interface/MakerMacros.h"
0010
0011 #include <cmath>
0012 #include <iostream>
0013
0014 namespace edm {
0015 class EventSetup;
0016 }
0017
0018 using namespace std;
0019 using namespace edm;
0020
0021 namespace edmtest {
0022
0023 class TestLumiProducer : public edm::one::EDAnalyzer<edm::one::WatchLuminosityBlocks> {
0024 public:
0025 explicit TestLumiProducer(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
0032
0033
0034 TestLumiProducer::TestLumiProducer(edm::ParameterSet const& ps) {
0035 consumes<LumiSummary, edm::InLumi>(edm::InputTag("lumiProducer", ""));
0036 consumes<LumiDetails, edm::InLumi>(edm::InputTag("lumiProducer", ""));
0037 }
0038
0039
0040
0041 void TestLumiProducer::analyze(edm::Event const& e, edm::EventSetup const&) {}
0042
0043
0044
0045 void TestLumiProducer::endLuminosityBlock(LuminosityBlock const& lumiBlock, EventSetup const& c) {
0046 Handle<LumiSummary> lumiSummary;
0047 lumiBlock.getByLabel("lumiProducer", lumiSummary);
0048 if (lumiSummary->isValid()) {
0049 std::cout << *lumiSummary << "\n";
0050 } else {
0051 std::cout << "no valid lumi summary data" << std::endl;
0052 }
0053 Handle<LumiDetails> lumiDetails;
0054 lumiBlock.getByLabel("lumiProducer", lumiDetails);
0055 if (lumiDetails->isValid()) {
0056
0057 std::cout << "lumivalue beamintensity 1 " << lumiDetails->lumiBeam1Intensity(1) << " "
0058 << lumiDetails->lumiBeam2Intensity(1) << std::endl;
0059 std::cout << "lumivalue 1 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 1) * 6.37 << " "
0060 << lumiDetails->lumiBeam1Intensity(1) << std::endl;
0061 std::cout << "lumivalue 214 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 214) * 6.37 << " "
0062 << lumiDetails->lumiBeam1Intensity(214) << std::endl;
0063 std::cout << "lumivalue 643 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 643) * 6.37 << " "
0064 << lumiDetails->lumiBeam1Intensity(643) << std::endl;
0065 std::cout << "lumivalue 895 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 895) * 6.37 << " "
0066 << lumiDetails->lumiBeam1Intensity(895) << std::endl;
0067 std::cout << "lumivalue 901 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 901) * 6.37 << " "
0068 << lumiDetails->lumiBeam1Intensity(901) << std::endl;
0069 std::cout << "lumivalue 1000 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 1000) * 6.37 << " "
0070 << lumiDetails->lumiBeam1Intensity(1000) << std::endl;
0071 std::cout << "lumivalue 1475 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 1475) * 6.37 << " "
0072 << lumiDetails->lumiBeam1Intensity(1475) << std::endl;
0073 std::cout << "lumivalue 2053 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 2053) * 6.37 << " "
0074 << lumiDetails->lumiBeam1Intensity(2053) << std::endl;
0075 std::cout << "lumivalue 2765 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 2765) * 6.37 << " "
0076 << lumiDetails->lumiBeam1Intensity(2765) << std::endl;
0077 std::cout << "lumivalue 3500 " << lumiDetails->lumiValue(LumiDetails::kOCC1, 3500) * 6.37 << " "
0078 << lumiDetails->lumiBeam1Intensity(3500) << std::endl;
0079 } else {
0080 std::cout << "no valid lumi detail data" << std::endl;
0081 }
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143 }
0144 }
0145
0146 using edmtest::TestLumiProducer;
0147
0148 DEFINE_FWK_MODULE(TestLumiProducer);