24 std::unique_ptr<const Logger> logger)
25 : m_cfg(), m_logger(std::move(logger)) {
36 std::unique_ptr<const Logger> newLogger) {
37 m_logger = std::move(newLogger);
42 return endcapLayers(gctx, 1);
47 return endcapLayers(gctx, -1);
54 size_t numpnLayers = m_cfg.posnegLayerPositionZ.size();
55 if (numpnLayers != 0
u) {
56 ACTS_DEBUG(
"Configured to build " << numpnLayers
57 <<
" passive layers on side :" << side);
58 eLayers.reserve(numpnLayers);
60 for (
size_t ipnl = 0; ipnl < numpnLayers; ++ipnl) {
64 <<
" at = " << side * m_cfg.posnegLayerPositionZ.at(ipnl)
65 <<
" and rMin/rMax = " << m_cfg.posnegLayerRmin.at(ipnl)
66 <<
" / " << m_cfg.posnegLayerRmax.at(ipnl));
68 std::shared_ptr<const DiscBounds> dBounds =
69 std::make_shared<const RadialBounds>(m_cfg.posnegLayerRmin.at(ipnl),
70 m_cfg.posnegLayerRmax.at(ipnl));
73 Translation3D(0., 0., side * m_cfg.posnegLayerPositionZ.at(ipnl)));
76 std::shared_ptr<const Transform3D>(eTransform), dBounds,
nullptr,
77 m_cfg.posnegLayerThickness.at(ipnl));
80 std::shared_ptr<const ISurfaceMaterial>
material =
nullptr;
82 if (!m_cfg.posnegLayerMaterial.empty()) {
84 material = m_cfg.posnegLayerMaterial.at(ipnl);
86 eLayer->surfaceRepresentation().assignSurfaceMaterial(material);
89 eLayers.push_back(eLayer);
99 size_t numcLayers = m_cfg.centralLayerRadii.size();
100 if (numcLayers != 0
u) {
101 ACTS_DEBUG(
"Configured to build " << numcLayers
102 <<
" passive central layers.");
103 cLayers.reserve(numcLayers);
105 for (
size_t icl = 0; icl < numcLayers; ++icl) {
109 <<
" with radius = " << m_cfg.centralLayerRadii.at(icl)
110 <<
" and halfZ = " << m_cfg.centralLayerHalflengthZ.at(icl));
112 auto cBounds = std::make_shared<const CylinderBounds>(
113 m_cfg.centralLayerRadii[icl], m_cfg.centralLayerHalflengthZ.at(icl));
116 nullptr, cBounds,
nullptr, m_cfg.centralLayerThickness.at(icl));
118 std::shared_ptr<const ISurfaceMaterial>
material =
nullptr;
120 if (!m_cfg.centralLayerMaterial.empty()) {
122 material = m_cfg.centralLayerMaterial.at(icl);
124 cLayer->surfaceRepresentation().assignSurfaceMaterial(material);
127 cLayers.push_back(cLayer);