ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Experimental::GeometryIdentifierBlueprintNode Class Reference

Blueprint node for configuring and applying geometry identifiers to volumes. More...

#include <Acts/Geometry/GeometryIdentifierBlueprintNode.hpp>

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

Public Types

using CompareVolumes
 Predicate function to compare two Acts::TrackingVolume with each other to determine their closure order.
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.

Public Member Functions

 GeometryIdentifierBlueprintNode ()
 Default constructor.
 ~GeometryIdentifierBlueprintNode () override
 Virtual destructor pushed to cpp file to avoid defining implementation details.
Volumebuild (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 Build the volume hierarchy under this node.
PortalShellBaseconnect (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 Connect portals in the volume hierarchy.
void finalize (const BlueprintOptions &options, const GeometryContext &gctx, TrackingVolume &parent, const Logger &logger=Acts::getDummyLogger()) override
 Finalize the volume hierarchy and apply geometry identifier configurations.
GeometryIdentifierBlueprintNodeincrementLayerIds (GeometryIdentifier::Value start=0)
 Incrementally assign layer IDs to volumes in this subtree.
const std::string & name () const override
 Get the name of this node.
GeometryIdentifierBlueprintNodesetAllVolumeIdsTo (GeometryIdentifier::Value volumeId)
 Set the same volume ID for all volumes in this subtree.
GeometryIdentifierBlueprintNodesetLayerIdTo (GeometryIdentifier::Value layer)
 Set a fixed layer ID for volumes in this subtree.
GeometryIdentifierBlueprintNodesortBy (const CompareVolumes &compare)
 Configure this node to order eligible tracking volumes using the provided function.
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.
virtual void addToGraphviz (std::ostream &os) const
 Method that writes a representatiohn of this node only to graphviz.
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.
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

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.

Detailed Description

Blueprint node for configuring and applying geometry identifiers to volumes.

This node must have exactly one child and applies geometry identifier configurations to the volumes in its subtree during finalization. Multiple configurations can be chained using the fluent interface.

Member Typedef Documentation

◆ CompareVolumes

Initial value:
std::function<bool(const TrackingVolume&, const TrackingVolume&)>
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure.
Definition TrackingVolume.hpp:100

Predicate function to compare two Acts::TrackingVolume with each other to determine their closure order.

Constructor & Destructor Documentation

◆ ~GeometryIdentifierBlueprintNode()

Acts::Experimental::GeometryIdentifierBlueprintNode::~GeometryIdentifierBlueprintNode ( )
override

Virtual destructor pushed to cpp file to avoid defining implementation details.

◆ GeometryIdentifierBlueprintNode()

Acts::Experimental::GeometryIdentifierBlueprintNode::GeometryIdentifierBlueprintNode ( )

Default constructor.

Member Function Documentation

◆ build()

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

Build the volume hierarchy under this node.

Parameters
optionsBlueprint build options
gctxThe geometry context
loggerThe logger instance
Returns
Reference to the built volume
Note
Requires exactly one child node

Implements Acts::Experimental::BlueprintNode.

◆ connect()

PortalShellBase & Acts::Experimental::GeometryIdentifierBlueprintNode::connect ( const BlueprintOptions & options,
const GeometryContext & gctx,
const Logger & logger = Acts::getDummyLogger() )
overridevirtual

Connect portals in the volume hierarchy.

Parameters
optionsBlueprint build options
gctxThe geometry context
loggerThe logger instance
Returns
Reference to the connected portal shell

Implements Acts::Experimental::BlueprintNode.

◆ finalize()

void Acts::Experimental::GeometryIdentifierBlueprintNode::finalize ( const BlueprintOptions & options,
const GeometryContext & gctx,
TrackingVolume & parent,
const Logger & logger = Acts::getDummyLogger() )
overridevirtual

Finalize the volume hierarchy and apply geometry identifier configurations.

Parameters
optionsBlueprint build options
gctxThe geometry context
parentThe parent tracking volume
loggerThe logger instance
Note
Applies all configured geometry ID assignments to new volumes in the subtree

Implements Acts::Experimental::BlueprintNode.

◆ incrementLayerIds()

GeometryIdentifierBlueprintNode & Acts::Experimental::GeometryIdentifierBlueprintNode::incrementLayerIds ( GeometryIdentifier::Value start = 0)

Incrementally assign layer IDs to volumes in this subtree.

Parameters
startThe starting layer ID value (default: 0)
Returns
Reference to this node for method chaining
Note
Will throw if volumes already have layer IDs assigned
Layer IDs are assigned sequentially starting from the given value

◆ name()

const std::string & Acts::Experimental::GeometryIdentifierBlueprintNode::name ( ) const
overridevirtual

Get the name of this node.

Returns
String containing concatenated configuration names

Implements Acts::Experimental::BlueprintNode.

◆ setAllVolumeIdsTo()

GeometryIdentifierBlueprintNode & Acts::Experimental::GeometryIdentifierBlueprintNode::setAllVolumeIdsTo ( GeometryIdentifier::Value volumeId)

Set the same volume ID for all volumes in this subtree.

Parameters
volumeIdThe volume ID to set
Returns
Reference to this node for method chaining
Note
Will throw if volumes already have volume IDs assigned
Applies recursively to all descendant volumes

◆ setLayerIdTo()

GeometryIdentifierBlueprintNode & Acts::Experimental::GeometryIdentifierBlueprintNode::setLayerIdTo ( GeometryIdentifier::Value layer)

Set a fixed layer ID for volumes in this subtree.

Parameters
layerThe layer ID value to set
Returns
Reference to this node for method chaining
Note
Will throw if volumes already have layer IDs assigned

◆ sortBy()

GeometryIdentifierBlueprintNode & Acts::Experimental::GeometryIdentifierBlueprintNode::sortBy ( const CompareVolumes & compare)

Configure this node to order eligible tracking volumes using the provided function.

Parameters
compareFunction to use for sorting volumes
Returns
Reference to this node for method chaining