CMS 3D CMS Logo

DDTestSpecParsFilter.cc
Go to the documentation of this file.
8 
9 #include <iostream>
10 
11 using namespace std;
12 using namespace cms;
13 using namespace edm;
14 
15 class DDTestSpecParsFilter : public one::EDAnalyzer<> {
16 public:
17  explicit DDTestSpecParsFilter(const ParameterSet& iConfig)
18  : m_tag(iConfig.getParameter<ESInputTag>("DDDetector")),
19  m_attribute(iConfig.getUntrackedParameter<string>("attribute", "")),
20  m_value(iConfig.getUntrackedParameter<string>("value", ""))
21  {}
22 
23  void beginJob() override {}
24  void analyze(Event const& iEvent, EventSetup const&) override;
25  void endJob() override {}
26 
27 private:
29  const string m_attribute;
30  const string m_value;
31 };
32 
33 void
34 DDTestSpecParsFilter::analyze(const Event&, const EventSetup& iEventSetup)
35 {
36  LogVerbatim("Geometry") << "DDTestSpecParsFilter::analyze: " << m_tag;
38  iEventSetup.get<DDSpecParRegistryRcd>().get(m_tag.module(), registry);
39 
40  LogVerbatim("Geometry") << "DDTestSpecParsFilter::analyze: " << m_tag.module()
41  << " for attribute " << m_attribute << " and value " << m_value;
42  LogVerbatim("Geometry") << "DD SpecPar Registry size: " << registry->specpars.size();
43 
44  DDSpecParRefs myReg;
45  registry->filter(myReg, m_attribute, m_value);
46 
47  LogVerbatim("Geometry").log([&myReg](auto& log) {
48  log << "Filtered DD SpecPar Registry size: " << myReg.size();
49  for(const auto& t: myReg) {
50  log << " = { ";
51  for(const auto& ki : t->paths)
52  log << ki << ", ";
53  log << " };\n ";
54  for(const auto& kl : t->spars) {
55  log << kl.first << " = { ";
56  for(const auto& kil : kl.second) {
57  log << kil << ", ";
58  }
59  log << " };\n ";
60  }
61  }
62  });
63 }
64 
void filter(DDSpecParRefs &, std::string_view, std::string_view) const
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
LogVerbatim & log(F &&iF)
Namespace of DDCMS conversion namespace.
std::vector< const DDSpecPar * > DDSpecParRefs
void analyze(Event const &iEvent, EventSetup const &) override
HLT enums.
DDTestSpecParsFilter(const ParameterSet &iConfig)
T get() const
Definition: EventSetup.h:71
static Interceptor::Registry registry("Interceptor")