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

This node type registers material proxies into its child volume during the blueprint construction. More...

#include <Acts/Geometry/MaterialDesignatorBlueprintNode.hpp>

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

Public Member Functions

 MaterialDesignatorBlueprintNode (const std::string &name)
 Main constructor for the material designator node.
 ~MaterialDesignatorBlueprintNode () override
Volumebuild (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 This method participates in the geometry construction.
MaterialDesignatorBlueprintNodeconfigureFace (CuboidVolumeBounds::Face face, const DirectedProtoAxis &loc0, const DirectedProtoAxis &loc1)
 Configure the designator with a cuboid face and corresponding binning information.
MaterialDesignatorBlueprintNodeconfigureFace (CuboidVolumeBounds::Face face, std::shared_ptr< const Acts::ISurfaceMaterial > material)
 Configure the designator with a cuboid face and a homogeneous surface material.
MaterialDesignatorBlueprintNodeconfigureFace (CylinderVolumeBounds::Face face, const DirectedProtoAxis &loc0, const DirectedProtoAxis &loc1)
 Configure the designator with a cylinder face and corresponding binning information.
MaterialDesignatorBlueprintNodeconfigureFace (CylinderVolumeBounds::Face face, std::shared_ptr< const Acts::ISurfaceMaterial > material)
 Configure the designator with a cylinder face and a homogeneous surface material.
PortalShellBaseconnect (const BlueprintOptions &options, const GeometryContext &gctx, const Logger &logger=Acts::getDummyLogger()) override
 This method participates in the geometry construction.
void finalize (const BlueprintOptions &options, const GeometryContext &gctx, TrackingVolume &parent, const Logger &logger) override
 This method participates in the geometry construction.
const std::string & name () const override
 Get the name of this node.
void toStream (std::ostream &os) const override
 Virtual method to determine stream representation.
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.
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::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.

Detailed Description

This node type registers material proxies into its child volume during the blueprint construction.

It is configured ahead of time which volume faces to mark up, and how do to so.

Note
This node can only have a single child. This is not an error during tree building, but during geometry construction.

Constructor & Destructor Documentation

◆ MaterialDesignatorBlueprintNode()

Acts::Experimental::MaterialDesignatorBlueprintNode::MaterialDesignatorBlueprintNode ( const std::string & name)
explicit

Main constructor for the material designator node.

Parameters
nameThe name of the node (for debug only)

◆ ~MaterialDesignatorBlueprintNode()

Acts::Experimental::MaterialDesignatorBlueprintNode::~MaterialDesignatorBlueprintNode ( )
override

Member Function Documentation

◆ build()

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

This method participates in the geometry construction.

It checks that this node only has a single child, is correctly configured, and forwards the call.

Parameters
optionsThe global blueprint options
gctxThe geometry context (nominal usually)
loggerThe logger to use
Returns
The child volume

Implements Acts::Experimental::BlueprintNode.

◆ configureFace() [1/4]

MaterialDesignatorBlueprintNode & Acts::Experimental::MaterialDesignatorBlueprintNode::configureFace ( CuboidVolumeBounds::Face face,
const DirectedProtoAxis & loc0,
const DirectedProtoAxis & loc1 )

Configure the designator with a cuboid face and corresponding binning information.

Note
This method can be called multiple times to configure different faces.
Parameters
faceThe face of the cuboid to configure
loc0The first binning configuration along local axis 0
loc1The second binning configuration along local axis 1
Returns
The material designator node
Note
If this node has previously been configured with a different volume shape, this will throw an exception.

◆ configureFace() [2/4]

MaterialDesignatorBlueprintNode & Acts::Experimental::MaterialDesignatorBlueprintNode::configureFace ( CuboidVolumeBounds::Face face,
std::shared_ptr< const Acts::ISurfaceMaterial > material )

Configure the designator with a cuboid face and a homogeneous surface material.

Parameters
faceThe face of the cuboid to configure
materialThe material to use
Returns
The material designator node
Note
If this node has previously been configured with a different volume shape, this will throw an exception.

◆ configureFace() [3/4]

MaterialDesignatorBlueprintNode & Acts::Experimental::MaterialDesignatorBlueprintNode::configureFace ( CylinderVolumeBounds::Face face,
const DirectedProtoAxis & loc0,
const DirectedProtoAxis & loc1 )

Configure the designator with a cylinder face and corresponding binning information.

Note
This method can be called multiple times to configure different faces.
Parameters
faceThe face of the cylinder to configure
loc0The first binning configuration along local axis 0
loc1The first binning configuration along local axis 1
Returns
The material designator node
Note
If this node has previously been configured with a different volume shape, this will throw an exception.

◆ configureFace() [4/4]

MaterialDesignatorBlueprintNode & Acts::Experimental::MaterialDesignatorBlueprintNode::configureFace ( CylinderVolumeBounds::Face face,
std::shared_ptr< const Acts::ISurfaceMaterial > material )

Configure the designator with a cylinder face and a homogeneous surface material.

Parameters
faceThe face of the cylinder to configure
materialThe material to use
Returns
The material designator node
Note
If this node has previously been configured with a different volume shape, this will throw an exception.

◆ connect()

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

This method participates in the geometry construction.

It receives the populated portal shell from its only child and attaches material proxies by consulting the configuration stored in the node.

Note
Currently, this node will unconditionally attach Acts::ProtoGridSurfaceMaterial
Parameters
optionsThe global blueprint options
gctxThe geometry context (nominal usually)
loggerThe logger to use
Returns
The portal shell with material proxies attached

Implements Acts::Experimental::BlueprintNode.

◆ finalize()

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

This method participates in the geometry construction.

Passes through the call to its only child.

Parameters
optionsThe global blueprint options
gctxThe geometry context (nominal usually)
parentThe parent volume
loggerThe logger to use during construction

Implements Acts::Experimental::BlueprintNode.

◆ name()

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

Get the name of this node.

Returns
Reference to the node name string

Implements Acts::Experimental::BlueprintNode.

◆ toStream()

void Acts::Experimental::MaterialDesignatorBlueprintNode::toStream ( std::ostream & os) const
overridevirtual

Virtual method to determine stream representation.

Parameters
osOutput stream to write to
Note
This method is called by the stream operator.

Reimplemented from Acts::Experimental::BlueprintNode.