Class Acts::DD4hepLayerBuilder

class DD4hepLayerBuilder : public Acts::ILayerBuilder

build layers of one cylinder-endcap setup from DD4hep input

This class is an implementation of the Acts::ILayerBuilder, creating the central (layers of barrel), the negative and positive layers (layers of endcaps) of one hierarchy (e.g. PixelDetector, StripDetector,…) with input from DD4hep.

Public Functions

DD4hepLayerBuilder(const Acts::DD4hepLayerBuilder::Config &config, std::unique_ptr<const Logger> logger)

Constructor.

Parameters
  • config – is the configuration struct

  • logger – is the logging instance

~DD4hepLayerBuilder() override

Destructor.

virtual const LayerVector centralLayers(const GeometryContext &gctx) const final

LayerBuilder interface method.

Parameters

gctx – the geometry context for this build call

Returns

the layers at the central sector

inline Config getConfiguration() const

get the configuration object

inline virtual const std::string &identification() const final

Name identification.

Returns

the string based identification of this configuration

virtual const LayerVector negativeLayers(const GeometryContext &gctx) const final

LayerBuilder interface method.

Parameters

gctx – the geometry context for this build call

Returns

the layers at negative side

virtual const LayerVector positiveLayers(const GeometryContext &gctx) const final

LayerBuilder interface method.

Parameters

gctx – the geometry context for this build call

Returns

the layers at positive side

void setConfiguration(const Config &config)

set the configuration object

Parameters

config – is the configuration struct

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

set logging instance

struct Config

nested configuration struct for steering of the layer builder

Public Members

BinningType bTypePhi = equidistant

the binning type of the contained surfaces in phi (equidistant/arbitrary)

BinningType bTypeR = equidistant

the binning type of the contained surfaces in r (equidistant/arbitrary)

BinningType bTypeZ = equidistant

the binning type of the contained surfaces in z (equidistant/arbitrary)

std::vector<dd4hep::DetElement> centralLayers

the DD4hep::DetElements of the layers of the central volume (barrel)

Note

if the current volume has no layers this parameter will not be set

std::string configurationName = "undefined"

string based identification

double defaultThickness = UnitConstants::fm

In case no surfaces (to be contained by the layer) are handed over, the layer thickness will be set to this value.

Attention

The default thickness should be set thin enough that no touching or overlapping with the next layer can happen.

Note

Layers containing surfaces per default are not allowed to be attached to each other (navigation will bail at this point). However, to allow material layers (not containing surfaces) to be attached to each other, this default thickness is needed. In this way, the layer will be thin (with space to the next layer), but the material will have the’real’ thickness.

std::shared_ptr<const LayerCreator> layerCreator = nullptr

layer creator which is internally used to build layers

std::vector<dd4hep::DetElement> negativeLayers

the DD4hep::DetElements of the layers of the negative volume (negative endcap)

Note

if the current volume has no endcaps or no layers this parameter will not be set

std::vector<dd4hep::DetElement> positiveLayers

the DD4hep::DetElements of the layers of the positive volume (positive endcap)

Note

if the current volume has no endcaps or no layers this parameter will not be set