File indexing completed on 2024-04-06 12:15:18
0001 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0002 #include "FWCore/Framework/interface/MakerMacros.h"
0003 #include "FWCore/Framework/interface/ESTransientHandle.h"
0004 #include "FWCore/Framework/interface/EventSetup.h"
0005 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0006 #include "Geometry/Records/interface/MuonNumberingRecord.h"
0007 #include "Geometry/MuonNumbering/interface/DD4hep_MuonNumbering.h"
0008
0009 class DDTestMuonNumbering : public edm::one::EDAnalyzer<> {
0010 public:
0011 explicit DDTestMuonNumbering(const edm::ParameterSet&) : numberingToken_(esConsumes()) {}
0012
0013 void analyze(edm::Event const& iEvent, edm::EventSetup const&) override;
0014
0015 private:
0016 const edm::ESGetToken<cms::MuonNumbering, MuonNumberingRecord> numberingToken_;
0017 };
0018
0019 void DDTestMuonNumbering::analyze(const edm::Event&, const edm::EventSetup& iEventSetup) {
0020 edm::LogVerbatim("Geometry") << "DDTestMuonNumbering::analyze";
0021 auto numbering = iEventSetup.getTransientHandle(numberingToken_);
0022
0023 edm::LogVerbatim("Geometry") << "MuonNumbering size: " << numbering->values().size();
0024 edm::LogVerbatim("Geometry").log([&numbering](auto& log) {
0025 for (const auto& i : numbering->values()) {
0026 log << " " << i.first << " = " << i.second;
0027 log << '\n';
0028 }
0029 });
0030 }
0031
0032 DEFINE_FWK_MODULE(DDTestMuonNumbering);