12 std::shared_ptr<DD4hepDetectorSurfaceFactory> surfaceFactory,
13 std::unique_ptr<const Logger>
logger)
16 throw std::invalid_argument(
17 "DD4hepLayerStructure: no surface factory provided");
21 std::shared_ptr<Acts::Experimental::LayerStructureBuilder>
24 const dd4hep::DetElement& dd4hepElement,
const Options&
options)
const {
26 if (dd4hepStore.find(options.
name) != dd4hepStore.end()) {
27 std::string reMessage =
"DD4hepLayerStructure: structure with name '";
28 reMessage += options.
name;
29 reMessage +=
"' already registered in DetectorElementStore";
30 throw std::runtime_error(reMessage.c_str());
38 <<
" sensitive surfaces");
41 <<
" passive surfaces");
47 "Surface binning neither provided nor found, navigation will be "
48 "'tryAll' (could result in slow navigation).");
53 lsbConfig.
auxiliary =
"*** DD4hep driven builder for: ";
59 std::vector<std::shared_ptr<Surface>> lSurfaces;
63 std::vector<std::shared_ptr<DD4hepDetectorElement>> cElements;
68 lSurfaces.push_back(ds);
69 cElements.push_back(de);
71 dd4hepStore[options.
name] = cElements;
77 lSurfaces.push_back(
ps);
83 lsbConfig.
supports.push_back(pSupport);
88 std::make_shared<Experimental::LayerStructureBuilder::SurfacesHolder>(
96 return std::make_shared<LayerStructureBuilder>(