ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Experimental::PadBlueprintNode Class Referencefinal

Wraps a single child blueprint node and pads it into a larger volume whose dimensions are evaluated at construction time using the child's extent plus a configurable envelope. More...

#include <Acts/Geometry/PadBlueprintNode.hpp>

Inheritance diagram for Acts::Experimental::PadBlueprintNode:
[legend]
Collaboration diagram for Acts::Experimental::PadBlueprintNode:
[legend]

Public Member Functions

 PadBlueprintNode (const std::string &name, const ExtentEnvelope &envelope)
 Main constructor for the padding node.
Volumebuild (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 This method is called during the build phase of the blueprint tree construction.
TrackingVolumetrackingVolume () const
 Get the tracking volume for this node.
Public Member Functions inherited from Acts::Experimental::StaticBlueprintNode
 StaticBlueprintNode (std::unique_ptr< TrackingVolume > volume)
 Construct the static node from an existing volume.
Volumebuild (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 This method is called during the build phase of the blueprint tree construction.
PortalShellBaseconnect (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 This method is called during the connect phase.
void finalize (const BlueprintOptions &options, const GeometryContext &gctx, TrackingVolume &parent, const Logger &logger=Acts::getDummyLogger()) override
 This method is called during the finalize phase.
const std::string & name () const override
 Get the name of this node.
const NavigationPolicyFactorynavigationPolicyFactory () const
 Get the navigation policy factory for this node.
std::unique_ptr< TrackingVolumereleaseVolume ()
 Release ownership of the wrapped tracking volume.
virtual StaticBlueprintNodesetNavigationPolicyFactory (std::shared_ptr< NavigationPolicyFactory > navigationPolicyFactory)
 Set the navigation policy factory for this node.
Public Member Functions inherited from Acts::Experimental::BlueprintNode
virtual ~BlueprintNode ()=default
 Virtual destructor to ensure correct cleanup.
BlueprintNodeaddChild (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.
StaticBlueprintNodeaddStaticVolume (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.
StaticBlueprintNodeaddStaticVolume (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.
CylinderContainerBlueprintNodeaddCylinderContainer (const std::string &name, AxisDirection direction, const std::function< void(CylinderContainerBlueprintNode &cylinder)> &callback={})
 Convenience method for creating a cylinder specialization of Acts::Experimental::ContainerBlueprintNode.
CuboidContainerBlueprintNodeaddCuboidContainer (const std::string &name, AxisDirection direction, const std::function< void(CuboidContainerBlueprintNode &cylinder)> &callback={})
 Convenience method for creating a cuboid specialization of Acts::Experimental::ContainerBlueprintNode.
MaterialDesignatorBlueprintNodeaddMaterial (const std::string &name, const std::function< void(MaterialDesignatorBlueprintNode &material)> &callback={})
 Convenience method for creating a Acts::Experimental::MaterialDesignatorBlueprintNode.
PortalDesignatorBlueprintNodeaddPortalDesignator (const std::string &name, const std::function< void(PortalDesignatorBlueprintNode &portals)> &callback={})
 Convenience method for creating a Acts::Experimental::PortalDesignatorBlueprintNode.
LayerBlueprintNodeaddLayer (const std::string &name, const std::function< void(LayerBlueprintNode &layer)> &callback={})
 Convenience method for creating a Acts::Experimental::LayerBlueprintNode.
GeometryIdentifierBlueprintNodewithGeometryIdentifier (const std::function< void(GeometryIdentifierBlueprintNode &geometryIdentifier)> &callback={})
 Convenience method for creating a Acts::Experimental::GeometryIdentifierBlueprintNode.

Additional Inherited Members

Public Types inherited from Acts::Experimental::BlueprintNode
using ChildRange
 A range-like object that allows range based for loops and index access.
using MutableChildRange
 A range-like object that allows range based for loops and index access.
Protected Member Functions inherited from Acts::Experimental::StaticBlueprintNode
void addToGraphviz (std::ostream &os) const override
 Method that writes a representatiohn of this node only to graphviz.
Protected Member Functions inherited from Acts::Experimental::BlueprintNode
std::span< std::shared_ptr< BlueprintNode > > childPtr ()
 Return a span over the children's shared_ptrs.
std::span< const std::shared_ptr< BlueprintNode > > childPtr () const
 Return a span over the children's shared_ptrs.
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.
Protected Attributes inherited from Acts::Experimental::StaticBlueprintNode
std::shared_ptr< NavigationPolicyFactorym_navigationPolicyFactory
 Factory for creating navigation policies for this volume.
std::unique_ptr< PortalShellBasem_shell
 Portal shell representation for geometry connection.
std::unique_ptr< TrackingVolumem_volume
 The wrapped tracking volume managed by this blueprint node.

Detailed Description

Wraps a single child blueprint node and pads it into a larger volume whose dimensions are evaluated at construction time using the child's extent plus a configurable envelope.

Note
This node can only have a single child. This is not an error during tree building, but during geometry construction. It defers most of the functionality to Acts::Experimental::StaticBlueprintNode, and only implements the build phase to perform the padding.

Constructor & Destructor Documentation

◆ PadBlueprintNode()

Acts::Experimental::PadBlueprintNode::PadBlueprintNode ( const std::string & name,
const ExtentEnvelope & envelope )
explicit

Main constructor for the padding node.

Parameters
nameThe name of the padded volume.
envelopeThe envelope to apply to the child node's extent to create the padded volume.

Member Function Documentation

◆ build()

Volume & Acts::Experimental::PadBlueprintNode::build ( const BlueprintOptions & options,
const GeometryContext & gctx,
const Logger & logger = Acts::getDummyLogger() )
overridevirtual

This method is called during the build phase of the blueprint tree construction.

It returns a single Acts::Volume which represents transform and bounds of the entire subtree. This does not have to correspond to the final Acts::TrackingVolume, some node types will produce temporary volume representations. Lifetime of the returned volume is managed by the source node! Nodes higher in the hierarchy will issue resizes down the tree hierarchy. This is not done through a direct hierarchy, but coordinated by the respective node type, by internally consulting its children.

Note
Generally, you should not need to to call this method directly. The construction should usually be done through the special Acts::Experimental::Blueprint class.
Parameters
optionsThe global construction options
gctxThe geometry context for construction (usually nominal)
loggerThe logger to use for output during construction
Returns
The volume used for communicating transform and size up the hierarchy Build-phase of the blueprint construction. Returns the padded volume.

Implements Acts::Experimental::BlueprintNode.

◆ trackingVolume()

TrackingVolume * Acts::Experimental::PadBlueprintNode::trackingVolume ( ) const

Get the tracking volume for this node.

Returns
Pointer to the tracking volume (may be nullptr)