21 std::unique_ptr<const Logger> logger)
22 : m_cfg(), m_logger(std::move(logger)) {
33 std::unique_ptr<const Logger> newLogger) {
34 m_logger = std::move(newLogger);
39 return endcapLayers(gctx, 1);
44 return endcapLayers(gctx, -1);
51 size_t numpnLayers = m_cfg.posnegLayerPositionZ.size();
52 if (numpnLayers != 0
u) {
53 ACTS_DEBUG(
"Configured to build " << numpnLayers
54 <<
" passive layers on side :" << side);
55 eLayers.reserve(numpnLayers);
57 for (
size_t ipnl = 0; ipnl < numpnLayers; ++ipnl) {
61 <<
" at = " << side * m_cfg.posnegLayerPositionZ.at(ipnl)
62 <<
" and rMin/rMax = " << m_cfg.posnegLayerRmin.at(ipnl)
63 <<
" / " << m_cfg.posnegLayerRmax.at(ipnl));
65 std::shared_ptr<const DiscBounds> dBounds =
66 std::make_shared<const RadialBounds>(m_cfg.posnegLayerRmin.at(ipnl),
67 m_cfg.posnegLayerRmax.at(ipnl));
70 Translation3D(0., 0., side * m_cfg.posnegLayerPositionZ.at(ipnl)));
73 eTransform, dBounds,
nullptr, m_cfg.posnegLayerThickness.at(ipnl));
76 std::shared_ptr<const ISurfaceMaterial>
material =
nullptr;
78 if (!m_cfg.posnegLayerMaterial.empty()) {
80 material = m_cfg.posnegLayerMaterial.at(ipnl);
82 eLayer->surfaceRepresentation().assignSurfaceMaterial(material);
85 eLayers.push_back(eLayer);
95 size_t numcLayers = m_cfg.centralLayerRadii.size();
96 if (numcLayers != 0
u) {
97 ACTS_DEBUG(
"Configured to build " << numcLayers
98 <<
" passive central layers.");
99 cLayers.reserve(numcLayers);
101 for (
size_t icl = 0; icl < numcLayers; ++icl) {
105 <<
" with radius = " << m_cfg.centralLayerRadii.at(icl)
106 <<
" and halfZ = " << m_cfg.centralLayerHalflengthZ.at(icl));
108 auto cBounds = std::make_shared<const CylinderBounds>(
109 m_cfg.centralLayerRadii[icl], m_cfg.centralLayerHalflengthZ.at(icl));
112 s_idTransform, cBounds,
nullptr, m_cfg.centralLayerThickness.at(icl));
114 std::shared_ptr<const ISurfaceMaterial>
material =
nullptr;
116 if (!m_cfg.centralLayerMaterial.empty()) {
118 material = m_cfg.centralLayerMaterial.at(icl);
120 cLayer->surfaceRepresentation().assignSurfaceMaterial(material);
123 cLayers.push_back(cLayer);