|
| | ContainerBlueprintNode (const std::string &name, AxisDirection axis, VolumeAttachmentStrategy attachmentStrategy, std::pair< VolumeResizeStrategy, VolumeResizeStrategy > resizeStrategies) |
| | Main constructor for the container node.
|
| | ContainerBlueprintNode (const std::string &name, AxisDirection axis, VolumeAttachmentStrategy attachmentStrategy=VolumeAttachmentStrategy::Midpoint, VolumeResizeStrategy resizeStrategy=VolumeResizeStrategy::Expand) |
| | Main constructor for the container node.
|
| void | addToGraphviz (std::ostream &os) const override |
| | Method that writes a representatiohn of this node only to graphviz.
|
| VolumeAttachmentStrategy | attachmentStrategy () const |
| | Accessor to the attachment strategy.
|
| Volume & | build (const Experimental::BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override |
| | This participates in the construction of the geometry via the blueprint tree.
|
| AxisDirection | direction () const |
| | Accessor to the stacking direction.
|
| void | finalize (const Experimental::BlueprintOptions &options, const GeometryContext &gctx, TrackingVolume &parent, const Logger &logger) override |
| | This participates in the construction of the geometry via the blueprint tree.
|
| const std::string & | name () const override |
| | Get the name of this node.
|
| std::pair< VolumeResizeStrategy, VolumeResizeStrategy > | resizeStrategies () const |
| | Accessor to the resize strategies.
|
| ContainerBlueprintNode & | setAttachmentStrategy (VolumeAttachmentStrategy attachmentStrategy) |
| | Setter for the attachment strategy.
|
| ContainerBlueprintNode & | setDirection (AxisDirection direction) |
| | Setter for the stacking direction.
|
| ContainerBlueprintNode & | setResizeStrategies (VolumeResizeStrategy inner, VolumeResizeStrategy outer) |
| | Setter for the resize strategies.
|
| ContainerBlueprintNode & | setResizeStrategy (VolumeResizeStrategy resizeStrategy) |
| | Setter for the resize strategy.
|
| virtual | ~BlueprintNode ()=default |
| | Virtual destructor to ensure correct cleanup.
|
| BlueprintNode & | addChild (std::shared_ptr< BlueprintNode > child) |
| | Register a child to this node.
|
| MutableChildRange | children () |
| | Return a MutableChildRange to the children of this node.
|
| ChildRange | children () const |
| | Return a ChildRange to the children of this node.
|
| void | clearChildren () |
| | Remove all children from this node.
|
| std::size_t | depth () const |
| | Return the depth of this node in the blueprint tree.
|
| void | graphviz (std::ostream &os) const |
| | Print the node tree starting from this node to graphviz format.
|
| virtual PortalShellBase & | connect (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger())=0 |
| | This method is called during the connect phase.
|
| StaticBlueprintNode & | addStaticVolume (std::unique_ptr< TrackingVolume > volume, const std::function< void(StaticBlueprintNode &cylinder)> &callback={}) |
| | This method creates a new Acts::Experimental::StaticBlueprintNode wrapping volume and adds it to this node as a child.
|
| StaticBlueprintNode & | addStaticVolume (const Transform3 &transform, std::shared_ptr< VolumeBounds > volumeBounds, const std::string &volumeName="undefined", const std::function< void(StaticBlueprintNode &cylinder)> &callback={}) |
| | Alternative overload for creating a Acts::Experimental::StaticBlueprintNode.
|
| CylinderContainerBlueprintNode & | addCylinderContainer (const std::string &name, AxisDirection direction, const std::function< void(CylinderContainerBlueprintNode &cylinder)> &callback={}) |
| | Convenience method for creating a cylinder specialization of Acts::Experimental::ContainerBlueprintNode.
|
| CuboidContainerBlueprintNode & | addCuboidContainer (const std::string &name, AxisDirection direction, const std::function< void(CuboidContainerBlueprintNode &cylinder)> &callback={}) |
| | Convenience method for creating a cuboid specialization of Acts::Experimental::ContainerBlueprintNode.
|
| MaterialDesignatorBlueprintNode & | addMaterial (const std::string &name, const std::function< void(MaterialDesignatorBlueprintNode &material)> &callback={}) |
| | Convenience method for creating a Acts::Experimental::MaterialDesignatorBlueprintNode.
|
| LayerBlueprintNode & | addLayer (const std::string &name, const std::function< void(LayerBlueprintNode &layer)> &callback={}) |
| | Convenience method for creating a Acts::Experimental::LayerBlueprintNode.
|
| GeometryIdentifierBlueprintNode & | withGeometryIdentifier (const std::function< void(GeometryIdentifierBlueprintNode &geometryIdentifier)> &callback={}) |
| | Convenience method for creating a Acts::Experimental::GeometryIdentifierBlueprintNode.
|
|
| template<typename BaseShell, typename SingleShell> |
| std::vector< BaseShell * > | collectChildShells (const Experimental::BlueprintOptions &options, const GeometryContext &gctx, VolumeStack &stack, const std::string &prefix, const Logger &logger) |
| | Collect shells from child nodes and gap volumes.
|
| template<typename BaseShell, typename SingleShell, typename ShellStack> |
| PortalShellBase & | connectImpl (const Experimental::BlueprintOptions &options, const GeometryContext &gctx, VolumeStack *stack, const std::string &prefix, const Logger &logger) |
| | Implementation of the connect method for container nodes.
|
| virtual std::unique_ptr< VolumeStack > | makeStack (const GeometryContext &gctx, std::vector< Volume * > &volumes, const Logger &logger)=0 |
| | Make the volume stack for the container.
|
| virtual const std::string & | typeName () const =0 |
| | Get the type name of the container.
|
| std::string | indent () const |
| | An indentation depending on the depth of this node.
|
| std::string | prefix () const |
| | Printing helper returning a prefix including an indent depending on the depth.
|
| void | setDepth (std::size_t depth) |
| | Set the depth to depth and update children recursively.
|
| virtual void | toStream (std::ostream &os) const |
| | Virtual method to determine stream representation.
|
A blueprint node that can contain multiple child volumes.
It is responsible for managing the child volumes and their shells. The child volumes can be either gap volumes or volumes from child nodes.
The container node is responsible for:
- Managing the child volumes and their shells
- Creating gap volumes between child volumes
- Collecting shells from child nodes and gap volumes
- Building the volume stack
The container node is an abstract base class. Derived classes must implement:
- makeStack - to create the appropriate volume stack
- typeName - to provide the type name for debug output
template<typename BaseShell, typename SingleShell>
Collect shells from child nodes and gap volumes.
This function is responsible for collecting shells from child nodes and creating shells for gap volumes. It is used by the connect method to prepare the shells for the volume stack.
The function processes each volume in m_childVolumes in two ways:
- For gap volumes:
- Creates a TrackingVolume from the gap volume
- Assigns a unique name (ContainerName::GapN)
- Creates a single shell for the gap volume
- Stores both the shell and gap volume in m_gaps for later use
- For child volumes:
- Looks up the corresponding child node in m_volumeToNode
- Calls connect() on the child node to get its shell
- Validates that the shell type matches the expected type
- Ensures the shell is valid
The function maintains the order of volumes as they appear in m_childVolumes, which is important for the final stack shell construction.
- Template Parameters
-
| BaseShell | The base shell type (e.g. CylinderPortalShell) |
| SingleShell | The single shell type (e.g. SingleCylinderPortalShell) |
- Parameters
-
| options | The blueprint options |
| gctx | The geometry context |
| stack | The volume stack |
| prefix | The prefix for debug output |
| logger | The logger to use |
- Returns
- A vector of shells in the same order as m_childVolumes