Fluent builder that assembles multiple cylindrical or disc-like detector layers directly from sensor elements into a CylinderContainerBlueprintNode.
More...
|
| 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 | Element = typename BackendT::Element |
| | Backend detector element handle type.
|
|
using | LayerCustomizer = detail::LayerCustomizer<Element> |
| | Callback type that can replace or wrap a LayerBlueprintNode.
|
|
using | LayerGrouper = std::function<std::string(const Element&)> |
| | Callable that maps a sensor element to a string group key.
|
|
using | LayerSpec = typename BackendT::LayerSpec |
| | Backend layer-specification type.
|
|
using | LayerType = LayerBlueprintNode::LayerType |
| | Distinguishes barrel (Cylinder) from endcap (Disc) layer geometry.
|
|
| void | addTo (BlueprintNode &node) const && |
| | Build the container node and attach it as a child of node.
|
| SensorLayerAssembler && | barrel () && |
| | Shorthand for setLayerType(LayerType::Cylinder).
|
| std::shared_ptr< ContainerBlueprintNode > | build () const |
| | Build and return the assembled container node.
|
| SensorLayerAssembler && | endcap () && |
| | Shorthand for setLayerType(LayerType::Disc).
|
| SensorLayerAssembler && | groupBy (LayerGrouper grouper) && |
| | Group sensors into layers by key (required).
|
template<typename CustomizerT>
requires ( detail::LayerNodeReturningCallable<Element, std::decay_t<CustomizerT>> || detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>) |
| SensorLayerAssembler && | onLayer (CustomizerT customizer) && |
| | Register a callback invoked for each created layer node.
|
| SensorLayerAssembler && | planar () && |
| | Shorthand for setLayerType(LayerType::Plane).
|
| SensorLayerAssembler && | setAttachmentStrategy (std::optional< Acts::VolumeAttachmentStrategy > strategy) && |
| | Override the attachment strategy for the container node.
|
| SensorLayerAssembler && | setContainerName (std::string containerName) && |
| | Set the output container node name (required).
|
| SensorLayerAssembler && | setEnvelope (const Acts::ExtentEnvelope &envelope) && |
| | Set an envelope applied to every produced layer node.
|
| SensorLayerAssembler && | setLayerType (LayerType layerType) && |
| | Set the layer geometry type explicitly.
|
template<typename B = BackendT>
requires (detail::HasAxisDefinition<B>) |
| SensorLayerAssembler && | setSensorAxes (typename B::AxisDefinition axes) && |
| | Set the axis definition used to orient sensitive surfaces.
|
| SensorLayerAssembler && | setSensors (std::vector< Element > sensors) && |
| | Set the sensor elements to assemble into layers.
|
template<detail::BlueprintBackend BackendT>
class Acts::Experimental::SensorLayerAssembler< BackendT >
Fluent builder that assembles multiple cylindrical or disc-like detector layers directly from sensor elements into a CylinderContainerBlueprintNode.
Unlike ElementLayerAssembler, no layer-representative element is assumed to exist. Names and transforms are never deduced from the element hierarchy; they come solely from groupBy keys. Obtained from BlueprintBuilder::layersFromSensors().
A groupBy function is required: sensors mapped to the same key are merged into one layer, and the key becomes the layer name.
For a single layer (no grouping), use SensorLayer via BlueprintBuilder::layerFromSensors() instead.
builder.layersFromSensors()
.barrel()
.setSensorAxes(myAxes)
.setSensors(sensorElements)
.groupBy(keyExtractor)
.setContainerName("MyBarrel")
.addTo(parentNode);
- Template Parameters
-
| BackendT | Geometry backend that provides detector elements, layer specifications, hierarchy traversal, sensitive-element classification, and surface construction. |