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

inline Node(const std::string &n, const Transform3 &t, VolumeBounds::BoundsType bt, const std::vector<ActsScalar> &bv, std::shared_ptr<const IInternalStructureBuilder> isb = nullptr)

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.