|
ACTS
Experiment-independent tracking
|
Fluent builder that assembles a combined barrel + endcap subdetector into a CylinderContainerBlueprintNode arranged along the Z axis. More...
#include <Acts/Geometry/BlueprintBuilder.hpp>
Public Types | |
| using | AxisDefinition |
| Axis definition type, or std::monostate when the backend does not support axis definitions. | |
| using | Builder = BlueprintBuilder<BackendT> |
| The associated BlueprintBuilder type. | |
| using | ContainerCustomizer = detail::ContainerCustomizer<Element> |
| Callback type that can replace or wrap a CylinderContainerBlueprintNode. | |
| using | Element = typename BackendT::Element |
| Backend detector element handle type. | |
| using | ElementLayerAssembler |
| The ElementLayerAssembler specialisation for this backend. | |
Public Member Functions | |
| BarrelEndcapAssembler (const Builder &builder) | |
Construct a BarrelEndcapAssembler bound to builder. | |
| void | addTo (BlueprintNode &node) const && |
Build the container node and attach it as a child of node. | |
| std::shared_ptr< CylinderContainerBlueprintNode > | build () const |
| Build and return the assembled barrel+endcap container node. | |
| template<typename CustomizerT> requires (detail::ContainerNodeReturningCallable< Element, std::decay_t<CustomizerT>> || detail::ContainerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>) | |
| BarrelEndcapAssembler && | onContainer (CustomizerT customizer) && |
| Register a callback invoked for each barrel or endcap container node. | |
| template<typename CustomizerT> requires ( detail::LayerNodeReturningCallable<Element, std::decay_t<CustomizerT>> || detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>) | |
| BarrelEndcapAssembler && | onLayer (CustomizerT customizer) && |
| Register a layer callback forwarded to each inner ElementLayerAssembler. | |
| BarrelEndcapAssembler && | setAssembly (const Element &assembly) && |
| Set the top-level detector element whose subtree is searched for barrel and endcap elements. | |
| BarrelEndcapAssembler && | setEndcapAxes (AxisDefinition axes) && |
| Set the axis definition used for endcap layers only. | |
| BarrelEndcapAssembler && | setLayerFilter (const std::regex &pattern) && |
| Set the regex filter used to select individual layer elements within each barrel or endcap container. | |
| BarrelEndcapAssembler && | setSensorAxes (AxisDefinition barrel, AxisDefinition endcap) && |
| Set the axis definitions for both barrel and endcap layers at once. | |
Fluent builder that assembles a combined barrel + endcap subdetector into a CylinderContainerBlueprintNode arranged along the Z axis.
Instances are obtained from BlueprintBuilder::barrelEndcap(). The builder inspects the subtree of the provided assembly element for barrel and endcap children (using the backend's isBarrel / isEndcap / isTracker predicates, when available) and delegates individual layer assembly to ElementLayerAssembler internally.
Typical usage:
This builder requires backend predicates that classify elements as barrel, endcap, and tracker components.
| BackendT | Geometry backend that provides detector elements, layer specifications, hierarchy traversal, sensitive-element classification, and surface construction. |
| using Acts::Experimental::BarrelEndcapAssembler< BackendT >::AxisDefinition |
Axis definition type, or std::monostate when the backend does not support axis definitions.
| using Acts::Experimental::BarrelEndcapAssembler< BackendT >::ElementLayerAssembler |
The ElementLayerAssembler specialisation for this backend.
|
explicit |
Construct a BarrelEndcapAssembler bound to builder.
| builder | The owning BlueprintBuilder; must outlive this object. |
| void Acts::Experimental::BarrelEndcapAssembler< BackendT >::addTo | ( | BlueprintNode & | node | ) | const && |
Build the container node and attach it as a child of node.
Equivalent to node.addChild(build()).
| node | Blueprint node that will receive the built container as a child. |
|
nodiscard |
Build and return the assembled barrel+endcap container node.
Locates barrel and endcap sub-elements inside the assembly, creates one ElementLayerAssembler -based barrel container and one or more endcap containers, then returns a Z-axis CylinderContainerBlueprintNode holding them all.
| std::runtime_error | if the assembly element has not been set, if axes are required by the backend but not provided, if the layer filter has not been set, or if more than one barrel element is found inside the assembly. |
|
nodiscard |
Register a callback invoked for each barrel or endcap container node.
The callback may either return a (possibly replaced/wrapped) container node, or mutate a container node in-place and return void.
| customizer | Callback applied to each created barrel or endcap container node. |
|
nodiscard |
Register a layer callback forwarded to each inner ElementLayerAssembler.
The callback may either return a (possibly replaced/wrapped) layer node, or mutate a layer node in-place and return void.
| customizer | Callback applied to each created layer node. |
|
nodiscard |
Set the top-level detector element whose subtree is searched for barrel and endcap elements.
| assembly | Root element of the barrel+endcap sub-detector. |
|
nodiscard |
Set the axis definition used for endcap layers only.
Only available when the backend defines an AxisDefinition type and stores optional surface-axis information in LayerSpec.
| axes | Axis definition forwarded to endcap ElementLayerAssembler s. |
|
nodiscard |
Set the regex filter used to select individual layer elements within each barrel or endcap container.
| pattern | Regular expression matched against child element names. |
|
nodiscard |
Set the axis definitions for both barrel and endcap layers at once.
Only available when the backend defines an AxisDefinition type and stores optional surface-axis information in LayerSpec.
| barrel | Axis definition forwarded to barrel ElementLayerAssembler s. |
| endcap | Axis definition forwarded to endcap ElementLayerAssembler s. |