CMS 3D CMS Logo

DDCMSDetector.cc
Go to the documentation of this file.
12 #include "DD4hep/Detector.h"
13 
14 #include <memory>
15 #include <string>
16 
17 using namespace std;
18 using namespace cms;
19 using namespace edm;
20 using namespace dd4hep;
21 
22 class DDCMSDetector : public one::EDAnalyzer<> {
23 public:
24  explicit DDCMSDetector(const ParameterSet& p);
25 
26  void beginJob() override {}
27  void analyze(Event const& iEvent, EventSetup const&) override;
28  void endJob() override;
29 
30 private:
32 };
33 
34 DDCMSDetector::DDCMSDetector(const ParameterSet& iConfig) : m_tag(iConfig.getParameter<ESInputTag>("DDDetector")) {}
35 
36 void DDCMSDetector::analyze(const Event&, const EventSetup& iEventSetup) {
38  iEventSetup.get<IdealGeometryRecord>().get(m_tag, det);
39 
40  LogVerbatim("Geometry") << "Iterate over the detectors:\n";
41  LogVerbatim("Geometry").log([&](auto& log) {
42  for (auto const& it : det->detectors()) {
43  dd4hep::DetElement det(it.second);
44  log << it.first << ": " << det.path();
45  }
46  });
47  LogVerbatim("Geometry") << "..done!";
48 
50  iEventSetup.get<DDVectorRegistryRcd>().get(m_tag, registry);
51 
52  LogVerbatim("Geometry") << "DD Vector Registry size: " << registry->vectors.size();
53  LogVerbatim("Geometry").log([&](auto& log) {
54  for (const auto& p : registry->vectors) {
55  log << " " << p.first << " => ";
56  for (const auto& i : p.second)
57  log << i << ", ";
58  log << '\n';
59  }
60  });
61 }
62 
64 
EDAnalyzer.h
edm::ESInputTag
Definition: ESInputTag.h:87
ESTransientHandle.h
MessageLogger.h
cms::DDVectorRegistry::vectors
tbb::concurrent_unordered_map< std::string, tbb::concurrent_vector< double > > vectors
Definition: DDVectorRegistry.h:10
cms::DDDetector::detectors
const HandleMap & detectors() const
The map of sub-detectors.
Definition: DDDetector.cc:53
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
DDCMSDetector::endJob
void endJob() override
Definition: DDCMSDetector.cc:63
DDVectorRegistryRcd
Definition: DDVectorRegistryRcd.h:8
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
DDDetector.h
DDCMSDetector
Definition: DDCMSDetector.cc:22
FileInPath.h
MakerMacros.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
DDVectorRegistry.h
edm::ParameterSet
Definition: ParameterSet.h:36
DDCMSDetector::m_tag
const ESInputTag m_tag
Definition: DDCMSDetector.cc:31
DDCMSDetector::beginJob
void beginJob() override
Definition: DDCMSDetector.cc:26
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::LogVerbatim::log
LogVerbatim & log(F &&iF)
Definition: MessageLogger.h:327
edm::LogVerbatim
Definition: MessageLogger.h:297
analyze
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
IdealGeometryRecord.h
DDCMSDetector::analyze
void analyze(Event const &iEvent, EventSetup const &) override
Definition: DDCMSDetector.cc:36
edm::EventSetup
Definition: EventSetup.h:57
get
#define get
DDCMSDetector::DDCMSDetector
DDCMSDetector(const ParameterSet &p)
Definition: DDCMSDetector.cc:34
edm::ESTransientHandle
Definition: ESTransientHandle.h:41
std
Definition: JetResolutionObject.h:76
dd4hep
Definition: DDPlugins.h:8
EventSetup.h
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
ParameterSet.h
edm::Event
Definition: Event.h:73
DDVectorRegistryRcd.h
IdealGeometryRecord
Definition: IdealGeometryRecord.h:27
cms
Namespace of DDCMS conversion namespace.
Definition: ProducerAnalyzer.cc:21