File indexing completed on 2024-04-06 12:03:18
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/Event.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/Framework/interface/MakerMacros.h"
0009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011
0012 #include "CondFormats/RunInfo/interface/L1TriggerScaler.h"
0013
0014 #include "CondFormats/DataRecord/interface/L1TriggerScalerRcd.h"
0015
0016 namespace edmtest {
0017 class L1TriggerScalerESAnalyzer : public edm::one::EDAnalyzer<edm::one::WatchRuns> {
0018 public:
0019 explicit L1TriggerScalerESAnalyzer(edm::ParameterSet const& p)
0020 : scaler1Token_(esConsumes<L1TriggerScaler, L1TriggerScalerRcd, edm::Transition::BeginRun>()),
0021 scaler2Token_(esConsumes<L1TriggerScaler, L1TriggerScalerRcd>()) {
0022 edm::LogVerbatim("L1TriggerScaler") << "L1TriggerScalerESAnalyzer";
0023 }
0024 explicit L1TriggerScalerESAnalyzer(int i)
0025 : scaler1Token_(esConsumes<L1TriggerScaler, L1TriggerScalerRcd, edm::Transition::BeginRun>()),
0026 scaler2Token_(esConsumes<L1TriggerScaler, L1TriggerScalerRcd>()) {
0027 edm::LogVerbatim("L1TriggerScaler") << "L1TriggerScalerESAnalyzer " << i;
0028 }
0029 ~L1TriggerScalerESAnalyzer() override { edm::LogVerbatim("L1TriggerScaler") << "~L1TriggerScalerESAnalyzer "; }
0030 void beginJob() override;
0031 void beginRun(const edm::Run&, const edm::EventSetup& context) override;
0032 void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0033 void endRun(const edm::Run&, const edm::EventSetup& context) override {}
0034
0035 private:
0036 const edm::ESGetToken<L1TriggerScaler, L1TriggerScalerRcd> scaler1Token_;
0037 const edm::ESGetToken<L1TriggerScaler, L1TriggerScalerRcd> scaler2Token_;
0038 };
0039
0040 void L1TriggerScalerESAnalyzer::beginRun(const edm::Run&, const edm::EventSetup& context) {
0041 edm::LogVerbatim("L1TriggerScaler") << "###L1TriggerScalerESAnalyzer::beginRun";
0042 const edm::ESHandle<L1TriggerScaler>& L1TriggerScaler_lumiarray = context.getHandle(scaler1Token_);
0043 edm::LogVerbatim("L1TriggerScaler") << " got eshandle with flag " << L1TriggerScaler_lumiarray.isValid()
0044 << " got data";
0045 }
0046
0047 void L1TriggerScalerESAnalyzer::beginJob() {
0048 edm::LogVerbatim("L1TriggerScaler") << "###L1TriggerScalerESAnalyzer::beginJob";
0049 }
0050
0051 void L1TriggerScalerESAnalyzer::analyze(const edm::Event& e, const edm::EventSetup& context) {
0052 using namespace edm::eventsetup;
0053 edm::LogVerbatim("L1TriggerScaler") << "###L1TriggerScalerESAnalyzer::analyze";
0054
0055
0056 edm::LogVerbatim("L1TriggerScaler") << " I AM IN RUN NUMBER " << e.id().run();
0057 edm::LogVerbatim("L1TriggerScaler") << " ---EVENT NUMBER " << e.id().event();
0058 edm::eventsetup::EventSetupRecordKey recordKey(
0059 edm::eventsetup::EventSetupRecordKey::TypeTag::findType("L1TriggerScalerRcd"));
0060 if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
0061
0062 edm::LogVerbatim("L1TriggerScaler") << "Record \"L1TriggerScalerRcd"
0063 << "\" does not exist ";
0064 }
0065 const edm::ESHandle<L1TriggerScaler>& l1tr = context.getHandle(scaler2Token_);
0066 edm::LogVerbatim("L1TriggerScaler") << " got eshandle\n got context";
0067 const L1TriggerScaler* l1lumiscaler = l1tr.product();
0068 edm::LogVerbatim("L1TriggerScaler") << "got L1TriggerScaler* ";
0069
0070 edm::LogVerbatim("L1TriggerScaler") << "print result";
0071 l1lumiscaler->printRunValue();
0072 l1lumiscaler->printLumiSegmentValues();
0073 l1lumiscaler->printFormat();
0074 l1lumiscaler->printGTAlgoCounts();
0075 l1lumiscaler->printGTAlgoRates();
0076 l1lumiscaler->printGTAlgoPrescaling();
0077 l1lumiscaler->printGTTechCounts();
0078 l1lumiscaler->printGTTechRates();
0079 l1lumiscaler->printGTTechPrescaling();
0080 l1lumiscaler->printGTPartition0TriggerCounts();
0081 l1lumiscaler->printGTPartition0TriggerRates();
0082 l1lumiscaler->printGTPartition0DeadTime();
0083 l1lumiscaler->printGTPartition0DeadTimeRatio();
0084 edm::LogVerbatim("L1TriggerScaler") << "print finished";
0085 }
0086 DEFINE_FWK_MODULE(L1TriggerScalerESAnalyzer);
0087 }