File ProtoLayer.hpp

namespace Acts

Set the Geometry Context PLUGIN.

Set the Calibration Context PLUGIN.

Convenience functions to ease creation of and Acts::InterpolatedMaterialMap and to avoid code duplication.

Set the Mangetic Field Context PLUGIN.

Convenience functions to ease creation of and Acts::InterpolatedBFieldMap and to avoid code duplication.

Currently implemented for the two most common formats: rz and xyz.

struct ProtoLayer
#include <Acts/Geometry/ProtoLayer.hpp>

Encapsulates min/max boundaries that will be turned into a layer.

The struct allows this information to be obtained in a consistent way, or be caller provided.

Public Types

using Range = std::pair<double, double>

The envelope parameters.

Public Functions

ProtoLayer(const GeometryContext &gctx, const std::vector<const Surface*> &surfaces)

Constructor.

Loops over a provided vector of surface and calculates the various min/max values in one go. Also takes into account the thickness of an associated DetectorElement, if it exists.

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • surfaces – The vector of surfaces to consider

ProtoLayer(const GeometryContext &gctx, const std::vector<std::shared_ptr<const Surface>> &surfaces)

Constructor.

Loops over a provided vector of surface and calculates the various min/max values in one go. Also takes into account the thickness of an associated DetectorElement, if it exists.

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • surfaces – The vector of surfaces to consider

ProtoLayer() = default
void add(const GeometryContext &gctx, const Surface &surface)

Add a surface, this will also increase the extent.

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • surface – The surface which is added to the ProtoLayer

double max(BinningValue bval, bool addenv = true) const
Parameters
  • bval – The accessed binning value

  • addenv – The steering if enevlope is added or not

double medium(BinningValue bval, bool addenv = true) const
Parameters
  • bval – The accessed binning value

  • addenv – The steering if enevlope is added or not

double min(BinningValue bval, bool addenv = true) const

Get the parameters : min.

Parameters
  • bval – The accessed binning value

  • addenv – The steering if enevlope is added or not

double range(BinningValue bval, bool addenv = true) const
Parameters
  • bval – The accessed binning value

  • addenv – The steering if enevlope is added or not

inline const std::vector<const Surface*> &surfaces() const

Give access to the surfaces used/assigned to the ProtoLayer.

std::ostream &toStream(std::ostream &sl) const

Output to ostream.

Parameters

sl – the input ostream

Public Members

std::vector<Range> envelope = {(int)binValues, {0., 0.}}
Extent extent

The extent of the ProtoLayer.

Private Functions

void measure(const GeometryContext &gctx, const std::vector<const Surface*> &surfaces)

Helper method which performs the actual min/max calculation.

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • surfaces – The surfaces to build this protolayer out of

Private Members

std::vector<const Surface*> m_surfaces = {}

Store the list of surfaces used for this proto layer.