CMS 3D CMS Logo

MuonNumberingESProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: DetectorDescription/MuonNumberingESProducer
4 // Class: MuonNumberingESProducer
5 //
13 //
14 // Original Author: Ianna Osborne
15 // Created: Tue, 15 Jan 2019 09:10:32 GMT
16 //
17 //
18 
19 #include <memory>
20 
29 
31 public:
33  ~MuonNumberingESProducer() override;
34 
35  using ReturnType = std::unique_ptr<cms::MuonNumbering>;
36 
38 
39 private:
43 };
44 
46  : m_label(iConfig.getParameter<std::string>("label")),
47  m_key(iConfig.getParameter<std::string>("key")),
48  m_token(setWhatProduced(this).consumesFrom<cms::DDSpecParRegistry, DDSpecParRegistryRcd>(
49  edm::ESInputTag("", m_label))) {}
50 
52 
54  LogDebug("Geometry") << "MuonNumberingESProducer::produce from " << m_label << " with " << m_key;
55  auto product = std::make_unique<cms::MuonNumbering>();
56 
57  cms::DDSpecParRegistry const& registry = iRecord.get(m_token);
58  auto it = registry.specpars.find(m_key);
59  if (it != end(registry.specpars)) {
60  for (const auto& l : it->second.spars) {
61  if (l.first == "OnlyForMuonNumbering") {
62  for (const auto& k : it->second.numpars) {
63  for (const auto& ik : k.second) {
64  product->put(k.first, static_cast<int>(ik)); //values.emplace(k.first, static_cast<int>(ik));
65  }
66  }
67  }
68  }
69  }
70  return product;
71 }
72 
#define LogDebug(id)
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:138
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
std::unique_ptr< cms::MuonNumbering > ReturnType
MuonNumberingESProducer(const edm::ParameterSet &)
#define end
Definition: vmac.h:39
ReturnType produce(const MuonNumberingRecord &)
Namespace of DDCMS conversion namespace.
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
const edm::ESGetToken< cms::DDSpecParRegistry, DDSpecParRegistryRcd > m_token
HLT enums.