File indexing completed on 2024-04-06 12:12:17
0001
0002 #include "FWCore/Framework/test/stubs/RunLumiEventAnalyzer.h"
0003
0004 #include "DataFormats/Common/interface/Handle.h"
0005 #include "DataFormats/Common/interface/TriggerResults.h"
0006 #include "FWCore/Framework/interface/Event.h"
0007 #include "FWCore/Framework/interface/LuminosityBlock.h"
0008 #include "FWCore/Framework/interface/MakerMacros.h"
0009 #include "FWCore/Framework/interface/Run.h"
0010 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/Utilities/interface/Exception.h"
0013
0014 #include <cassert>
0015 #include <iostream>
0016
0017 namespace edmtest {
0018
0019 RunLumiEventAnalyzer::RunLumiEventAnalyzer(edm::ParameterSet const& pset)
0020 : expectedRunLumisEvents0_(),
0021 expectedRunLumisEvents1_(),
0022 expectedRunLumisEvents_(&expectedRunLumisEvents0_),
0023 index_(0),
0024 verbose_(pset.getUntrackedParameter<bool>("verbose", false)),
0025 dumpTriggerResults_(pset.getUntrackedParameter<bool>("dumpTriggerResults", false)),
0026 expectedEndingIndex0_(pset.getUntrackedParameter<int>("expectedEndingIndex", -1)),
0027 expectedEndingIndex1_(pset.getUntrackedParameter<int>("expectedEndingIndex1", -1)),
0028 expectedEndingIndex_(expectedEndingIndex0_) {
0029 if (pset.existsAs<std::vector<unsigned int> >("expectedRunLumiEvents", false)) {
0030 std::vector<unsigned int> temp = pset.getUntrackedParameter<std::vector<unsigned int> >("expectedRunLumiEvents");
0031 expectedRunLumisEvents0_.assign(temp.begin(), temp.end());
0032 } else {
0033 expectedRunLumisEvents0_ = pset.getUntrackedParameter<std::vector<unsigned long long> >(
0034 "expectedRunLumiEvents", std::vector<unsigned long long>());
0035 }
0036
0037 if (pset.existsAs<std::vector<unsigned int> >("expectedRunLumiEvents1", false)) {
0038 std::vector<unsigned int> temp = pset.getUntrackedParameter<std::vector<unsigned int> >("expectedRunLumiEvents1");
0039 expectedRunLumisEvents1_.assign(temp.begin(), temp.end());
0040 } else {
0041 expectedRunLumisEvents1_ = pset.getUntrackedParameter<std::vector<unsigned long long> >(
0042 "expectedRunLumiEvents1", std::vector<unsigned long long>());
0043 }
0044 if (dumpTriggerResults_) {
0045 triggerResultsToken_ = consumes(edm::InputTag("TriggerResults"));
0046 }
0047 }
0048
0049 void RunLumiEventAnalyzer::analyze(edm::Event const& event, edm::EventSetup const&) {
0050 if (verbose_) {
0051 edm::LogAbsolute("RunLumiEvent") << "RUN_LUMI_EVENT " << event.run() << ", " << event.luminosityBlock() << ", "
0052 << event.id().event();
0053 }
0054
0055 if (dumpTriggerResults_) {
0056 if (auto triggerResults = event.getHandle(triggerResultsToken_)) {
0057 edm::LogAbsolute("RunLumiEvent") << "TestFailuresAnalyzer dumping TriggerResults";
0058 edm::LogAbsolute("RunLumiEvent") << *triggerResults;
0059 } else {
0060 edm::LogAbsolute("RunLumiEvent") << "TriggerResults not found\n";
0061 }
0062 }
0063
0064 if ((index_ + 2U) < expectedRunLumisEvents_->size()) {
0065 assert(expectedRunLumisEvents_->at(index_) == event.run());
0066 ++index_;
0067 assert(expectedRunLumisEvents_->at(index_) == event.luminosityBlock());
0068 ++index_;
0069 assert(expectedRunLumisEvents_->at(index_) == event.id().event());
0070 ++index_;
0071 }
0072 }
0073
0074 void RunLumiEventAnalyzer::beginRun(edm::Run const& run, edm::EventSetup const&) {
0075 if (verbose_) {
0076 edm::LogAbsolute("RunLumiEvent") << "RUN_LUMI_EVENT " << run.run() << ", " << 0 << ", " << 0;
0077 }
0078
0079 if ((index_ + 2U) < expectedRunLumisEvents_->size()) {
0080 assert(expectedRunLumisEvents_->at(index_) == run.run());
0081 ++index_;
0082 assert(expectedRunLumisEvents_->at(index_) == 0);
0083 ++index_;
0084 assert(expectedRunLumisEvents_->at(index_) == 0);
0085 ++index_;
0086 }
0087 }
0088
0089 void RunLumiEventAnalyzer::endRun(edm::Run const& run, edm::EventSetup const&) {
0090 if (verbose_) {
0091 edm::LogAbsolute("RunLumiEvent") << "RUN_LUMI_EVENT " << run.run() << ", " << 0 << ", " << 0;
0092 }
0093
0094 if ((index_ + 2U) < expectedRunLumisEvents_->size()) {
0095 if (!(expectedRunLumisEvents_->at(index_) == run.run())) {
0096 throw cms::Exception("UnexpectedRun") << "RunLumiEventAnalyzer::endRun unexpected run\n"
0097 " expected "
0098 << expectedRunLumisEvents_->at(index_) << " found " << run.run();
0099 }
0100 ++index_;
0101 if (!(expectedRunLumisEvents_->at(index_) == 0)) {
0102 throw cms::Exception("UnexpectedLumi") << "RunLumiEventAnalyzer::endRun unexpected lumi\n"
0103 " expected "
0104 << expectedRunLumisEvents_->at(index_) << " found 0";
0105 }
0106 ++index_;
0107 if (!(expectedRunLumisEvents_->at(index_) == 0)) {
0108 throw cms::Exception("UnexpectedEvent") << "RunLumiEventAnalyzer::endRun unexpected event\n"
0109 " expected "
0110 << expectedRunLumisEvents_->at(index_) << " found 0";
0111 }
0112 ++index_;
0113 }
0114 }
0115
0116 void RunLumiEventAnalyzer::beginLuminosityBlock(edm::LuminosityBlock const& lumi, edm::EventSetup const&) {
0117 if (verbose_) {
0118 edm::LogAbsolute("RunLumiEvent") << "RUN_LUMI_EVENT " << lumi.run() << ", " << lumi.luminosityBlock() << ", "
0119 << 0;
0120 }
0121
0122 if ((index_ + 2U) < expectedRunLumisEvents_->size()) {
0123 assert(expectedRunLumisEvents_->at(index_) == lumi.run());
0124 ++index_;
0125 assert(expectedRunLumisEvents_->at(index_) == lumi.luminosityBlock());
0126 ++index_;
0127 assert(expectedRunLumisEvents_->at(index_) == 0);
0128 ++index_;
0129 }
0130 }
0131
0132 void RunLumiEventAnalyzer::endLuminosityBlock(edm::LuminosityBlock const& lumi, edm::EventSetup const&) {
0133 if (verbose_) {
0134 edm::LogAbsolute("RunLumiEvent") << "RUN_LUMI_EVENT " << lumi.run() << ", " << lumi.luminosityBlock() << ", "
0135 << 0;
0136 }
0137
0138 if ((index_ + 2U) < expectedRunLumisEvents_->size()) {
0139 if (!(expectedRunLumisEvents_->at(index_) == lumi.run())) {
0140 throw cms::Exception("UnexpectedRun") << "RunLumiEventAnalyzer::endLuminosityBlock unexpected run\n"
0141 " expected "
0142 << expectedRunLumisEvents_->at(index_) << " found " << lumi.run();
0143 }
0144 ++index_;
0145 if (!(expectedRunLumisEvents_->at(index_) == lumi.luminosityBlock())) {
0146 throw cms::Exception("UnexpectedLumi")
0147 << "RunLumiEventAnalyzer::endLuminosityBlock unexpected lumi"
0148 " expected "
0149 << expectedRunLumisEvents_->at(index_) << " found " << lumi.luminosityBlock();
0150 }
0151 ++index_;
0152 if (!(expectedRunLumisEvents_->at(index_) == 0)) {
0153 throw cms::Exception("UnexpectedEvent") << "RunLumiEventAnalyzer::endLuminosityBlock unexpected event"
0154 " expected "
0155 << expectedRunLumisEvents_->at(index_) << " found 0";
0156 }
0157 ++index_;
0158 }
0159 }
0160
0161 void RunLumiEventAnalyzer::endJob() {
0162 if (expectedEndingIndex_ != -1 && index_ != expectedEndingIndex_) {
0163 throw cms::Exception("UnexpectedEvent",
0164 "RunLumiEventAnalyzer::endJob. Unexpected number of runs, lumis, and events");
0165 }
0166 }
0167
0168 }
0169 using edmtest::RunLumiEventAnalyzer;
0170 DEFINE_FWK_MODULE(RunLumiEventAnalyzer);