3131#include < utility>
3232
3333#include < DD4hep/DetElement.h>
34- #include < DD4hep/Detector.h>
3534
3635namespace {
3736
@@ -46,9 +45,8 @@ const std::regex kLongStripLayerFilter{
4645// / The callback is invoked once per layer during blueprint construction.
4746auto makeLayerCustomizer (ActsPlugins::DD4hep::BlueprintBuilder& builder,
4847 const Acts::ExtentEnvelope& layerEnvelope,
49- auto constant, std::string det,
50- std::regex layerFilter) {
51- return [&builder, layerEnvelope, constant, det = std::move (det),
48+ std::string det, std::regex layerFilter) {
49+ return [&builder, layerEnvelope, det = std::move (det),
5250 layerFilter = std::move (layerFilter)](
5351 const std::optional<dd4hep::DetElement>& elem,
5452 Acts::Experimental::LayerBlueprintNode& layer) {
@@ -73,20 +71,21 @@ auto makeLayerCustomizer(ActsPlugins::DD4hep::BlueprintBuilder& builder,
7371 using SrfArrayNavPol = Acts::SurfaceArrayNavigationPolicy;
7472 using enum SrfArrayNavPol::LayerType;
7573
74+ const auto & backend = builder.backend ();
7675 SrfArrayNavPol::Config navCfg;
7776 const bool isBarrelLayer =
7877 elem.has_value ()
79- ? builder. backend () .isBarrel (*elem)
78+ ? backend.isBarrel (*elem)
8079 : layer.layerType () ==
8180 Acts::Experimental::LayerBlueprintNode::LayerType::Cylinder;
8281 if (isBarrelLayer) {
8382 navCfg.layerType = Cylinder;
84- navCfg.bins = {constant (" {}_b{}_sf_b_phi" , det, layerIdx),
85- constant (" {}_b_sf_b_z" , det)};
83+ navCfg.bins = {backend. constant (" {}_b{}_sf_b_phi" , det, layerIdx),
84+ backend. constant (" {}_b_sf_b_z" , det)};
8685 } else {
8786 navCfg.layerType = Disc;
88- navCfg.bins = {constant (" {}_e_sf_b_r" , det),
89- constant (" {}_e_sf_b_phi" , det)};
87+ navCfg.bins = {backend. constant (" {}_e_sf_b_r" , det),
88+ backend. constant (" {}_e_sf_b_phi" , det)};
9089 }
9190
9291 layer.setNavigationPolicyFactory (Acts::NavigationPolicyFactory{}
@@ -156,12 +155,6 @@ void OpenDataDetector::constructBarrelEndcap(
156155
157156 outer.addChild (builder.backend ().makeBeampipe ());
158157
159- auto constant = [this ]<typename ... Args>(std::format_string<Args...> fmt,
160- Args&&... values) -> int {
161- return dd4hepDetector ().constant <int >(
162- std::format (fmt, std::forward<Args>(values)...));
163- };
164-
165158 auto addSubsystem = [&](std::string assembly, std::string det,
166159 const std::regex& layerFilter) {
167160 const auto assemblyElement = builder.findDetElementByName (assembly);
@@ -174,7 +167,7 @@ void OpenDataDetector::constructBarrelEndcap(
174167 .setAssembly (*assemblyElement)
175168 .setSensorAxes (" XYZ" , " XZY" )
176169 .setLayerFilter (layerFilter)
177- .onLayer (makeLayerCustomizer (builder, m_cfg.layerEnvelope , constant,
170+ .onLayer (makeLayerCustomizer (builder, m_cfg.layerEnvelope ,
178171 std::move (det), layerFilter))
179172 .onContainer (
180173 [](const auto &,
@@ -216,12 +209,6 @@ void OpenDataDetector::constructDirectLayer(const Acts::GeometryContext& gctx) {
216209
217210 outer.addChild (builder.backend ().makeBeampipe ());
218211
219- auto constant = [this ]<typename ... Args>(std::format_string<Args...> fmt,
220- Args&&... values) -> int {
221- return dd4hepDetector ().constant <int >(
222- std::format (fmt, std::forward<Args>(values)...));
223- };
224-
225212 auto addSubsystem = [&](std::string assembly, std::string det,
226213 const std::regex& layerFilter) {
227214 const auto assemblyElement = builder.findDetElementByName (assembly);
@@ -239,7 +226,7 @@ void OpenDataDetector::constructDirectLayer(const Acts::GeometryContext& gctx) {
239226 assemblyName, Acts::AxisDirection::AxisZ);
240227
241228 auto layerCustomizer = makeLayerCustomizer (
242- builder, m_cfg.layerEnvelope , constant, std::move (det), layerFilter);
229+ builder, m_cfg.layerEnvelope , std::move (det), layerFilter);
243230
244231 for (const auto & barrel : barrels) {
245232 auto barrelNode = builder.layers ()
@@ -303,12 +290,6 @@ void OpenDataDetector::constructDirectLayerGrouped(
303290
304291 outer.addChild (builder.backend ().makeBeampipe ());
305292
306- auto constant = [this ]<typename ... Args>(std::format_string<Args...> fmt,
307- Args&&... values) -> int {
308- return dd4hepDetector ().constant <int >(
309- std::format (fmt, std::forward<Args>(values)...));
310- };
311-
312293 auto addSubsystem = [&](std::string assembly, std::string det,
313294 const std::regex& layerFilter) {
314295 const auto assemblyElement = builder.findDetElementByName (assembly);
@@ -326,7 +307,7 @@ void OpenDataDetector::constructDirectLayerGrouped(
326307 assemblyName, Acts::AxisDirection::AxisZ);
327308
328309 auto layerCustomizer = makeLayerCustomizer (
329- builder, m_cfg.layerEnvelope , constant, std::move (det), layerFilter);
310+ builder, m_cfg.layerEnvelope , std::move (det), layerFilter);
330311
331312 // Walks the parent chain of a sensor element and returns the name of the
332313 // first ancestor whose name matches layerFilter, formatted as "layerN".
0 commit comments