|
ACTS
Experiment-independent tracking
|
The static blueprint node wraps a single already-constructred TrackingVolume.
More...
#include <Acts/Geometry/StaticBlueprintNode.hpp>
Public Member Functions | |
| StaticBlueprintNode (std::unique_ptr< TrackingVolume > volume) | |
| Construct the static node from an existing volume. | |
| Volume & | build (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. | |
| PortalShellBase & | connect (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 NavigationPolicyFactory * | navigationPolicyFactory () const |
| Get the navigation policy factory for this node. | |
| virtual StaticBlueprintNode & | setNavigationPolicyFactory (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. | |
| 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. | |
| 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. | |
Protected Member Functions | |
| 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::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 | |
| std::shared_ptr< NavigationPolicyFactory > | m_navigationPolicyFactory |
| Factory for creating navigation policies for this volume. | |
| std::unique_ptr< PortalShellBase > | m_shell |
| Portal shell representation for geometry connection. | |
| std::unique_ptr< TrackingVolume > | m_volume |
| The wrapped tracking volume managed by this blueprint node. | |
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. | |
The static blueprint node wraps a single already-constructred TrackingVolume.
The node will present this volume to its hierarchy. The volume is given as mutable, and will be potentially enlarged in order to connect to neighboring volumes.
|
explicit |
Construct the static node from an existing volume.
| volume | The volume to wrap |
|
overrideprotectedvirtual |
Method that writes a representatiohn of this node only to graphviz.
This should generally not be called on its own, but through the BlueprintNode::graphviz method.
| os | The stream to print to |
Reimplemented from Acts::Experimental::BlueprintNode.
|
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.
| options | The global construction options |
| gctx | The geometry context for construction (usually nominal) |
| logger | The logger to use for output during construction |
Implements Acts::Experimental::BlueprintNode.
|
overridevirtual |
This method is called during the connect phase.
This phase handles the creation and connection of portals (instances of Acts::PortalLinkBase). After the build-phase has completed, the volume sizes are final. Each node will consult its fully sized volume to produce boundary surfaces. Each boundary surface is then turned into a Acts::TrivialPortalLink, which in turn produces a one-sided portal (see Acts::Portal documentation)
Some nodes (like Acts::Experimental::ContainerBlueprintNode) will take action on their children, and unify the connected portals.
After a node's processing has completed, it returns a reference to a Acts::PortalShellBase, which represents a set of portals in a specific geometry arrangement. The returned object lifetime is managed by the returning node.
| options | The global construction options |
| gctx | The geometry context for construction (usually nominal) |
| logger | The logger to use for output during construction |
Implements Acts::Experimental::BlueprintNode.
|
overridevirtual |
This method is called during the finalize phase.
This phase handles:
At the end of this phase, each node will have transferred any temporary resources created during the build, that need to be retained, into the final Acts::TrackingGeometry, and can be safely destroyed.
parent for volumes, portals, etc to be registered in is passed in as an argument, rather than being implicitly determined from the parent node. This is done so that nodes can remove themselves from the final volume hierarchy, like container nodes or the Acts::Experimental::MaterialDesignatorBlueprintNode.| options | The global construction options |
| gctx | The geometry context for construction (usually nominal) |
| parent | The parent volume to register in |
| logger | The logger to use for output during construction |
Implements Acts::Experimental::BlueprintNode.
|
overridevirtual |
Get the name of this node.
It is automatically taken from the wrapped volume
Implements Acts::Experimental::BlueprintNode.
| const NavigationPolicyFactory * Acts::Experimental::StaticBlueprintNode::navigationPolicyFactory | ( | ) | const |
Get the navigation policy factory for this node.
|
virtual |
Set the navigation policy factory for this node.
| navigationPolicyFactory | Shared pointer to navigation policy factory |