CMS 3D CMS Logo

DDVectorRegistryESProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: DetectorDescription/DDCMS
4 // Class: DDVectorRegistryESProducer
5 //
13 //
14 // Original Author: Ianna Osborne
15 // Created: Fri, 07 Dec 2018 11:20:52 GMT
16 //
17 //
18 
19 #include <memory>
20 
24 
31 #include "DD4hep/Detector.h"
32 
33 using namespace std;
34 using namespace cms;
35 
37 public:
38 
40 
42  ~DDVectorRegistryESProducer() override;
43 
44  using ReturnType = unique_ptr<DDVectorRegistry>;
45 
47 
48  ReturnType produce(const DDVectorRegistryRcd&);
49 };
50 
52 {
53  setWhatProduced(this);
54 }
55 
57 {
58 }
59 
60 void
62 {
64  descriptions.addDefault(desc);
65 }
66 
69 {
71  iRecord.getRecord<DetectorDescriptionRcd>().get(det);
72 
73  DDVectorsMap* registry = det->description().extension<DDVectorsMap>();
74 
75  auto product = std::make_unique<DDVectorRegistry>();
76  product->vectors.insert(registry->begin(), registry->end());
77  return product;
78 }
79 
cms::DDDetector::DDVectorsMap DDVectorsMap
unique_ptr< DDVectorRegistry > ReturnType
static void fillDescriptions(edm::ConfigurationDescriptions &)
void addDefault(ParameterSetDescription const &psetDescription)
Namespace of DDCMS conversion namespace.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
DDVectorRegistryESProducer(const edm::ParameterSet &)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
std::unordered_map< std::string, std::vector< double >> DDVectorsMap
Definition: DDDetector.h:16
ReturnType produce(const DDVectorRegistryRcd &)
static Interceptor::Registry registry("Interceptor")
dd4hep::Detector & description() const
Definition: DDDetector.h:21