5#ifndef ACTSGEOMETRY_ACTSLAYERBUILDER_H
6#define ACTSGEOMETRY_ACTSLAYERBUILDER_H
16#include "Acts/Geometry/ILayerBuilder.hpp"
17#include "Acts/Utilities/Logger.hpp"
18#include "Acts/Utilities/BinningType.hpp"
19#include "Acts/Utilities/AxisDefinitions.hpp"
20#include "Acts/Geometry/GeometryContext.hpp"
21#include "Acts/Definitions/Units.hpp"
26class ActsTrackingGeomtrySvc;
59 Acts::BinningType
bTypePhi = Acts::equidistant;
62 Acts::BinningType
bTypeR = Acts::equidistant;
65 Acts::BinningType
bTypeZ = Acts::equidistant;
69 2 * Acts::UnitConstants::mm};
71 2 * Acts::UnitConstants::mm};
74 2 * Acts::UnitConstants::mm};
76 2 * Acts::UnitConstants::mm};
89 std::function<bool(
const Acts::GeometryContext &, Acts::AxisDirection,
90 const Acts::Surface *,
const Acts::Surface *)>
111 std::unique_ptr<const Acts::Logger>
logger
112 = Acts::getDefaultLogger(
"GMLayBldr", Acts::Logging::INFO));
117 const Acts::LayerVector
120 const Acts::LayerVector
121 centralLayers(
const Acts::GeometryContext& gctx)
const override;
123 const Acts::LayerVector
150 return m_cfg.configurationName;
168 std::vector<std::shared_ptr<const ActsDetectorElement>>
182 buildBarrel(
const Acts::GeometryContext& gctx, Acts::LayerVector& layersOutput)
const;
185 buildEndcap(
const Acts::GeometryContext& gctx, Acts::LayerVector& layersOutput,
int type = 0)
const;
Helper to hold elements for deletion.
std::ostream & operator<<(std::ostream &os, const ActsLayerBuilder::Mode &mode)
Define macros for attributes used to control the static checker.
Helper to hold elements for deletion.
ActsElementVector ElementVector
void setConfiguration(const Config &cfg)
Name identification.
const ActsLayerBuilder::Config & getConfiguration() const
get the configuration object
void buildBarrel(const Acts::GeometryContext &gctx, Acts::LayerVector &layersOutput) const
~ActsLayerBuilder()
Destructor.
void setLogger(std::unique_ptr< const Acts::Logger > logger)
set logging instance
const Acts::LayerVector centralLayers(const Acts::GeometryContext &gctx) const override
void buildEndcap(const Acts::GeometryContext &gctx, Acts::LayerVector &layersOutput, int type=0) const
std::unique_ptr< const Acts::Logger > m_logger
logging instance
const Acts::LayerVector positiveLayers(const Acts::GeometryContext &gctx) const override
const Acts::LayerVector negativeLayers(const Acts::GeometryContext &gctx) const override
std::vector< std::shared_ptr< const ActsDetectorElement > > getDetectorElements() const
virtual const std::string & identification() const override
const Acts::Logger & logger() const
Private access to the logger.
ActsLayerBuilder(const Config &cfg, std::unique_ptr< const Acts::Logger > logger=Acts::getDefaultLogger("GMLayBldr", Acts::Logging::INFO))
Constructor.
Config m_cfg
configuration object
Base class for Pixel and SCT Detector managers.
nested configuration struct for steering of the layer builder
std::string configurationName
string based identification
std::array< double, 2 > endcapEnvelopeZ
std::vector< float > passiveBarrelLayerHalflengthZ
std::vector< float > passiveBarrelLayerThickness
double numberOfBinsFactor
controls how many bins are created for the sensitive surface grid.
Acts::BinningType bTypeZ
the binning type of the contained surfaces in z (equidistant/arbitrary)
std::pair< size_t, size_t > endcapMaterialBins
std::vector< float > passiveBarrelLayerRadii
the specifications for building additional passive cylinders in the barrel region: for each cylinder ...
std::shared_ptr< const Acts::LayerCreator > layerCreator
std::array< double, 2 > barrelEnvelopeZ
const InDetDD::SiDetectorManager * mng
std::array< double, 2 > barrelEnvelopeR
bool doEndcapLayerMerging
Acts::BinningType bTypeR
the binning type of the contained surfaces in r (equidistant/arbitrary)
std::shared_ptr< ElementVector > elementStore
std::array< double, 2 > endcapEnvelopeR
std::pair< size_t, size_t > barrelMaterialBins
Acts::BinningType bTypePhi
the binning type of the contained surfaces in phi (equidistant/arbitrary)
double numberOfInnermostLayerBinsFactor
Special treatment for the innermost pixel layer to have more control on bin size to account for shall...
std::function< bool(const Acts::GeometryContext &, Acts::AxisDirection, const Acts::Surface *, const Acts::Surface *)> surfaceMatcher