Namespace Acts::Experimental::Blueprint
-
namespace Blueprint
A Blueprint is an instruction tree that allows you to defina a tree sequence of volume building using the provided tools.
It follows tree nomenclature and can define:
a root node (the top of the tree)
a branch node (also called inner node)
leaf node (also called terminal node)
Leaf nodes can have internal builders attached, while all the external builders will be created when the blueprint is interpreted.
-
struct Node
- #include <Acts/Detector/Blueprint.hpp>
Public Functions
-
inline Node(const std::string &n, const Transform3 &t, VolumeBounds::BoundsType bt, const std::vector<ActsScalar> &bv, const std::vector<BinningValue> &bss, std::vector<std::unique_ptr<Node>> cs = {})
Branch constructor.
- Parameters
n – name of the node
t – the transform
bt – the boundary type
bv – the boundary values
bss – the binning values
cs – the children of the node
Leaf constructor.
- Parameters
n – name of the node
t – the transform
bt – the boundary type
bv – the boundary values
isb – the internal structure builder (optional)
-
inline void add(std::unique_ptr<Node> c)
Method to add a child to this branch.
- Parameters
c – the child to be added
-
template<typename stream_type>
inline void dotStream(stream_type &ss, const std::string &graphName = "blueprint") const Turn into a dot output.
-
inline bool isLeaf() const
Check if it is a leaf node.
-
inline bool isRoot() const
Check is it is a root.
Public Members
-
std::vector<BinningValue> binning = {}
Branch definition binning.
-
std::vector<ActsScalar> boundaryValues = {}
The boundary type.
-
VolumeBounds::BoundsType boundsType = VolumeBounds::eOther
Boundary definition of this node.
-
std::vector<std::unique_ptr<Node>> children = {}
Branch definitions: children.
-
std::shared_ptr<const IGeometryIdGenerator> geoIdGenerator = nullptr
Geometry id generator.
-
std::shared_ptr<const IInternalStructureBuilder> internalsBuilder = nullptr
Internal structure builder - for leaf nodes.
-
std::string name = ""
Name identification of this node.
-
const Node *parent = nullptr
Parent node - nullptr for root only.
-
std::shared_ptr<const IRootVolumeFinderBuilder> rootVolumeFinderBuilder = nullptr
Builders and helper tools that can be attached.
-
Transform3 transform = Transform3::Identity()
Transform definition of this node.
-
inline Node(const std::string &n, const Transform3 &t, VolumeBounds::BoundsType bt, const std::vector<ActsScalar> &bv, const std::vector<BinningValue> &bss, std::vector<std::unique_ptr<Node>> cs = {})