Class LayerCreator

Nested Relationships

Nested Types

Class Documentation

class Acts::LayerCreator

The LayerCreator is able to build cylinde,r disc layers or plane layers from detector elements.

Public Functions

LayerCreator(const Config &lcConfig, std::unique_ptr<const Logger> logger = getDefaultLogger("LayerCreator", Logging::INFO))

Constructor.

Parameters
  • lcConfig: is the configuration object

  • logger: logging instance

~LayerCreator() = default

Destructor.

void associateSurfacesToLayer(Layer &layer) const
MutableLayerPtr cylinderLayer(const GeometryContext &gctx, std::vector<std::shared_ptr<const Surface>> surfaces, size_t binsPhi, size_t binsZ, std::optional<ProtoLayer> _protoLayer = std::nullopt, const Transform3 &transform = Transform3::Identity(), std::unique_ptr<ApproachDescriptor> ad = nullptr) const

returning a cylindrical layer

Pre

the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed

Return

shared pointer to a newly created layer

Parameters
  • gctx: ist the geometry context with which the geometry is built

  • surfaces: is the vector of pointers to sensitive surfaces represented by this layer

Parameters
  • binsPhi: is number of bins the sensitive surfaces are ordered in phi

  • binsZ: is number of bins the sensitive surfaces are ordered in Z

  • _protoLayer: (optional) proto layer specifying the dimensions and envelopes

  • transform: is the (optional) transform of the layer

  • ad: possibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer

MutableLayerPtr cylinderLayer(const GeometryContext &gctx, std::vector<std::shared_ptr<const Surface>> surfaces, BinningType bTypePhi, BinningType bTypeZ, std::optional<ProtoLayer> _protoLayer = std::nullopt, const Transform3 &transform = Transform3::Identity(), std::unique_ptr<ApproachDescriptor> ad = nullptr) const

returning a cylindrical layer

Pre

the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed

Return

shared pointer to a newly created layer

Parameters
  • gctx: ist the geometry context with which the geometry is built

  • surfaces: is the vector of pointers to sensitive surfaces represented by this layer

Parameters
  • bTypePhi: binning type in phi (equidistant/arbitrary)

  • bTypeZ: binning type in z (equidistant/arbitrary)

  • _protoLayer: (optional) proto layer specifying the dimensions and envelopes

  • transform: is the (optional) transform of the layer

  • ad: possibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer

MutableLayerPtr discLayer(const GeometryContext &gctx, std::vector<std::shared_ptr<const Surface>> surfaces, size_t binsR, size_t binsPhi, std::optional<ProtoLayer> _protoLayer = std::nullopt, const Transform3 &transform = Transform3::Identity(), std::unique_ptr<ApproachDescriptor> ad = nullptr) const

returning a disc layer

Pre

the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed

Return

shared pointer to a newly created layer

Parameters
  • gctx: ist the geometry context with which the geometry is built

  • surfaces: is the vector of pointers to sensitive surfaces represented by this layer

Parameters
  • binsR: is number of bins the sensitive surfaces are ordered in R

  • binsPhi: is number of bins the sensitive surfaces are ordered in Phi

  • transform: is the (optional) transform of the layer

  • _protoLayer: (optional) proto layer specifying the dimensions and envelopes

  • ad: possibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer

MutableLayerPtr discLayer(const GeometryContext &gctx, std::vector<std::shared_ptr<const Surface>> surfaces, BinningType bTypeR, BinningType bTypePhi, std::optional<ProtoLayer> _protoLayer = std::nullopt, const Transform3 &transform = Transform3::Identity(), std::unique_ptr<ApproachDescriptor> ad = nullptr) const

returning a disc layer

Pre

the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed

Return

shared pointer to a newly created layer

Parameters
  • gctx: ist the geometry context with which the geometry is built

  • surfaces: is the vector of pointers to sensitive surfaces represented by this layer

Parameters
  • bTypeR: binning type in r (equidistant/arbitrary)

  • bTypePhi: binning type in phi (equidistant/arbitrary)

  • transform: is the (optional) transform of the layer

  • _protoLayer: (optional) proto layer specifying the dimensions and envelopes

  • ad: possibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer

Config getConfiguration() const

Access th configuration object.

MutableLayerPtr planeLayer(const GeometryContext &gctx, std::vector<std::shared_ptr<const Surface>> surfaces, size_t bins1, size_t bins2, BinningValue bValue, std::optional<ProtoLayer> _protoLayer = std::nullopt, const Transform3 &transform = Transform3::Identity(), std::unique_ptr<ApproachDescriptor> ad = nullptr) const

returning a plane layer

Pre

the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed

Return

shared pointer to a newly created layer

Parameters
  • gctx: ist the geometry context with which the geometry is built

  • [in] surfaces: is the vector of pointers to sensitive surfaces represented by this layer

Parameters
  • [in] bins1: is the number of bins in the orthogonal direction to bValue

  • [in] bins2: is the number of bins in the orthogonal direction to bValue

  • [in] bValue: Direction of the aligned surfaces

  • [in] transform: is the (optional) transform of the layer

  • [in] _protoLayer: (optional) proto layer specifying the dimensions and envelopes

  • [in] ad: possibility to hand over a specific ApproachDescriptor, which is needed for material mapping. Otherwise the default ApproachDescriptor will be taken used for this layer

void setConfiguration(const Config &lcConfig)

Set the configuration object.

Parameters
  • lcConfig: is the configuration struct

void setLogger(std::unique_ptr<const Logger> newLogger)

set logging instance

Parameters
  • newLogger: the logger instance

struct Config

Configuration for the LayerCreator This is the nexted configuration struct for the LayerCreator class.

Public Functions

Config() = default

standard constructor

Public Members

double cylinderPhiTolerance = {0.1}

cylinder module phi tolerance : it counts at same phi, if …

double cylinderZtolerance = {10.}

cylinder module z tolerance : it counts at same z, if …

std::shared_ptr<const SurfaceArrayCreator> surfaceArrayCreator = nullptr

surface array helper