51 double radius,
double zStagger,
double moduleHalfLength,
double lOverlap,
52 const std::pair<int, int>& binningSchema);
76 double z,
double ringStagger, std::vector<double> phiStagger,
77 std::vector<double> phiSubStagger,
double innerRadius,
double outerRadius,
78 const std::vector<size_t>& discBinning,
79 const std::vector<double>& moduleHalfLength);
100 template <
typename detector_element_t>
102 const typename detector_element_t::ContextType&
gctx,
103 std::vector<std::vector<std::shared_ptr<detector_element_t>>>&
106 std::shared_ptr<const Acts::IMaterialDecorator> matDecorator =
nullptr,
107 bool protoMaterial =
false,
116 auto surfaceArrayCreator = std::make_shared<const Acts::SurfaceArrayCreator>(
121 auto layerCreator = std::make_shared<const Acts::LayerCreator>(
125 auto layerArrayCreator = std::make_shared<const Acts::LayerArrayCreator>(
129 auto tVolumeArrayCreator =
130 std::make_shared<const Acts::TrackingVolumeArrayCreator>(
136 cvhConfig.trackingVolumeArrayCreator = tVolumeArrayCreator;
137 auto cylinderVolumeHelper =
138 std::make_shared<const Acts::CylinderVolumeHelper>(
143 std::vector<std::shared_ptr<const Acts::ITrackingVolumeBuilder>>
150 auto pCylinderMaterial =
151 std::make_shared<const Acts::ProtoSurfaceMaterial>(pCylinderUtility);
156 std::make_shared<const Acts::ProtoSurfaceMaterial>(pDiscUtility);
159 auto pPlaneMaterial =
160 std::make_shared<const Acts::ProtoSurfaceMaterial>(pPlaneUtility);
166 std::shared_ptr<const Acts::ISurfaceMaterial> beamPipeMaterial =
167 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
170 beamPipeMaterial = pCylinderMaterial;
180 auto beamPipeBuilder = std::make_shared<const Acts::PassiveLayerBuilder>(
185 bpvConfig.volumeName =
"BeamPipe";
186 bpvConfig.layerBuilder = beamPipeBuilder;
188 bpvConfig.buildToRadiusZero =
true;
189 bpvConfig.volumeSignature = 0;
190 auto beamPipeVolumeBuilder =
191 std::make_shared<const Acts::CylinderVolumeBuilder>(
195 volumeBuilders.push_back(beamPipeVolumeBuilder);
203 std::pair<double, double> pcEnvelope(2., 2.);
205 double pCentralModuleT = 0.15;
206 double pEndcapModuleT = 0.15;
223 std::shared_ptr<const Acts::ISurfaceMaterial> pCentralMaterial =
224 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(pcmbProperties);
225 std::shared_ptr<const Acts::ISurfaceMaterial> pEndcapMaterial =
226 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(pcmecProperties);
227 std::shared_ptr<const Acts::ISurfaceMaterial> pCentralModuleMaterial =
228 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
230 std::shared_ptr<const Acts::ISurfaceMaterial> pEndcapModuleMaterial =
231 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
234 pCentralMaterial = pCylinderMaterial;
235 pCentralModuleMaterial = pPlaneMaterial;
236 pEndcapMaterial = pDiscMaterial;
237 pEndcapModuleMaterial = pPlaneMaterial;
243 pplConfig.approachSurfaceEnvelope = 1.;
247 pplConfig.centralLayerBinMultipliers = {1, 1};
248 pplConfig.centralLayerRadii = {32., 72., 116., 172.};
249 pplConfig.centralLayerEnvelopes = {pcEnvelope, pcEnvelope, pcEnvelope,
251 pplConfig.centralModuleBinningSchema = {
252 {16, 14}, {32, 14}, {52, 14}, {78, 14}};
253 pplConfig.centralModuleTiltPhi = {0.14, 0.14, 0.14, 0.14};
254 pplConfig.centralModuleHalfX = {8.4, 8.4, 8.4, 8.4};
255 pplConfig.centralModuleHalfY = {36., 36., 36., 36.};
256 pplConfig.centralModuleThickness = {pCentralModuleT, pCentralModuleT,
257 pCentralModuleT, pCentralModuleT};
258 pplConfig.centralModuleMaterial = {
259 pCentralModuleMaterial, pCentralModuleMaterial, pCentralModuleMaterial,
260 pCentralModuleMaterial};
262 pplConfig.centralModuleReadoutBinsX = {336, 336, 336, 336};
263 pplConfig.centralModuleReadoutBinsY = {1280, 1280, 1280, 1280};
264 pplConfig.centralModuleReadoutSide = {-1, -1, -1, -1};
265 pplConfig.centralModuleLorentzAngle = {0.12, 0.12, 0.12, 0.12};
268 pplConfig.centralModuleFrontsideStereo = {};
269 pplConfig.centralModuleBacksideStereo = {};
270 pplConfig.centralModuleBacksideGap = {};
272 std::vector<std::vector<Acts::Vector3D>> pplCentralModulePositions;
273 for (
size_t plb = 0; plb < pplConfig.centralLayerRadii.size(); ++plb) {
275 pplCentralModulePositions.push_back(
278 pplConfig.centralModuleHalfY[plb],
280 pplConfig.centralModuleBinningSchema[plb]));
282 pplConfig.centralModulePositions = pplCentralModulePositions;
286 pplConfig.posnegLayerBinMultipliers = {1, 1};
288 pplConfig.posnegLayerPositionsZ = {
291 1500 * Acts::units::_mm};
293 pplConfig.posnegLayerEnvelopeR = {
297 std::vector<double> perHX = {8.4, 8.4};
298 std::vector<double> perHY = {36., 36.};
299 std::vector<size_t> perBP = {40, 68};
300 std::vector<double> perT = {pEndcapModuleT,
302 std::vector<size_t> perBX = {336, 336};
303 std::vector<size_t> perBY = {1280, 1280};
304 std::vector<int> perRS = {-1, -1};
305 std::vector<double> perLA = {0., 0.};
306 std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>> perM = {
307 pEndcapModuleMaterial, pEndcapModuleMaterial};
309 pplConfig.posnegModuleMinHalfX = std::vector<std::vector<double>>(7, perHX);
310 pplConfig.posnegModuleMaxHalfX = {};
311 pplConfig.posnegModuleHalfY = std::vector<std::vector<double>>(7, perHY);
312 pplConfig.posnegModulePhiBins = std::vector<std::vector<size_t>>(7, perBP);
313 pplConfig.posnegModuleThickness = std::vector<std::vector<double>>(7, perT);
314 pplConfig.posnegModuleReadoutBinsX =
315 std::vector<std::vector<size_t>>(7, perBX);
316 pplConfig.posnegModuleReadoutBinsY =
317 std::vector<std::vector<size_t>>(7, perBY);
318 pplConfig.posnegModuleReadoutSide = std::vector<std::vector<int>>(7, perRS);
319 pplConfig.posnegModuleLorentzAngle =
320 std::vector<std::vector<double>>(7, perLA);
321 pplConfig.posnegModuleMaterial =
322 std::vector<std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>>>(
326 pplConfig.posnegModuleFrontsideStereo = {};
327 pplConfig.posnegModuleBacksideStereo = {};
328 pplConfig.posnegModuleBacksideGap = {};
330 std::vector<std::vector<std::vector<Acts::Vector3D>>>
331 pplPosnegModulePositions;
332 for (
size_t id = 0;
id < pplConfig.posnegLayerPositionsZ.size(); ++id) {
334 pplConfig.posnegLayerPositionsZ[
id], 0.0, {4.0, 4.0}, {0.5, 0.}, 30.,
335 176., pplConfig.posnegModulePhiBins[id],
336 pplConfig.posnegModuleHalfY[id]));
338 pplConfig.posnegModulePositions = pplPosnegModulePositions;
341 ProtoLayerCreator pplCreator(
346 plbConfig.layerCreator = layerCreator;
347 plbConfig.layerIdentification =
"Pixel";
349 plbConfig.centralProtoLayers =
350 pplCreator.centralProtoLayers(
gctx, detectorStore);
351 plbConfig.centralLayerMaterialConcentration = {1, 1, 1, 1};
352 plbConfig.centralLayerMaterial = {pCentralMaterial, pCentralMaterial,
353 pCentralMaterial, pCentralMaterial};
356 plbConfig.posnegLayerMaterialConcentration = std::vector<int>(7, 0);
358 plbConfig.posnegLayerMaterial = {
359 pEndcapMaterial, pEndcapMaterial, pEndcapMaterial, pEndcapMaterial,
360 pEndcapMaterial, pEndcapMaterial, pEndcapMaterial};
362 plbConfig.negativeProtoLayers =
363 pplCreator.negativeProtoLayers(
gctx, detectorStore);
364 plbConfig.positiveProtoLayers =
365 pplCreator.positiveProtoLayers(
gctx, detectorStore);
368 auto pixelLayerBuilder = std::make_shared<const LayerBuilder>(
374 pvbConfig.volumeName =
"Pixel";
375 pvbConfig.buildToRadiusZero =
false;
377 pvbConfig.layerBuilder = pixelLayerBuilder;
378 pvbConfig.volumeSignature = 0;
379 auto pixelVolumeBuilder = std::make_shared<const Acts::CylinderVolumeBuilder>(
382 volumeBuilders.push_back(pixelVolumeBuilder);
390 std::shared_ptr<const Acts::ISurfaceMaterial> pstMaterial =
391 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
394 pstMaterial = pCylinderMaterial;
401 pstConfig.centralLayerHalflengthZ = std::vector<double>(1, 2800.);
402 pstConfig.centralLayerThickness = std::vector<double>(1, 1.8);
403 pstConfig.centralLayerMaterial = {pstMaterial};
404 auto pstBuilder = std::make_shared<const Acts::PassiveLayerBuilder>(
409 pstvolConfig.volumeName =
"PST";
410 pstvolConfig.buildToRadiusZero =
false;
411 pstvolConfig.layerBuilder = pstBuilder;
412 pstvolConfig.volumeSignature = 0;
413 auto pstVolumeBuilder = std::make_shared<const Acts::CylinderVolumeBuilder>(
416 volumeBuilders.push_back(pstVolumeBuilder);
428 double ssCentralModuleT = 0.25;
429 double ssEndcapModuleT = 0.25;
431 std::pair<double, double> ssEnvelope(2., 2.);
448 std::shared_ptr<const Acts::ISurfaceMaterial> ssCentralMaterial =
449 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
451 std::shared_ptr<const Acts::ISurfaceMaterial> ssEndcapMaterial =
452 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
454 std::shared_ptr<const Acts::ISurfaceMaterial> ssCentralModuleMaterial =
455 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
457 std::shared_ptr<const Acts::ISurfaceMaterial> ssEndcapModuleMaterial =
458 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
461 ssCentralMaterial = pCylinderMaterial;
462 ssCentralModuleMaterial = pPlaneMaterial;
463 ssEndcapMaterial = pDiscMaterial;
464 ssEndcapModuleMaterial = pPlaneMaterial;
471 ssplConfig.centralLayerBinMultipliers = {1, 1};
472 ssplConfig.centralLayerRadii = {260., 360., 500., 660.};
473 ssplConfig.centralLayerEnvelopes = {ssEnvelope, ssEnvelope, ssEnvelope,
476 ssplConfig.centralModuleBinningSchema = {
477 {40, 21}, {56, 21}, {78, 21}, {102, 21}};
478 ssplConfig.centralModuleTiltPhi = {-0.15, -0.15, -0.15, -0.15};
479 ssplConfig.centralModuleHalfX = {24., 24., 24., 24.};
480 ssplConfig.centralModuleHalfY = {54., 54., 54., 54.};
481 ssplConfig.centralModuleThickness = {ssCentralModuleT, ssCentralModuleT,
482 ssCentralModuleT, ssCentralModuleT};
484 ssplConfig.centralModuleReadoutBinsX = {600, 600, 600, 600};
485 ssplConfig.centralModuleReadoutBinsY = {90, 90, 90, 90};
486 ssplConfig.centralModuleReadoutSide = {1, 1, 1, 1};
487 ssplConfig.centralModuleLorentzAngle = {0.12, 0.12, 0.12, 0.12};
489 ssplConfig.centralModuleMaterial = {
490 ssCentralModuleMaterial, ssCentralModuleMaterial,
491 ssCentralModuleMaterial, ssCentralModuleMaterial};
492 ssplConfig.centralModuleFrontsideStereo = {};
493 ssplConfig.centralModuleBacksideStereo = {};
494 ssplConfig.centralModuleBacksideGap = {};
496 std::vector<std::vector<Acts::Vector3D>> ssplCentralModulePositions;
497 for (
size_t sslb = 0; sslb < ssplConfig.centralLayerRadii.size(); ++sslb) {
499 ssplCentralModulePositions.push_back(
502 ssplConfig.centralModuleHalfY[sslb],
504 ssplConfig.centralModuleBinningSchema[sslb]));
506 ssplConfig.centralModulePositions = ssplCentralModulePositions;
509 std::vector<double> mrMinHx = {16.4, 24.2, 32.2};
510 std::vector<double> mrMaxHx = {24.2, 32.2, 40.0};
511 std::vector<double> mrHy = {78., 78., 78.};
514 std::vector<size_t> mrReadoutBinsX = {605, 805, 1000};
515 std::vector<size_t> mrReadoutBinsY = {130, 130, 130};
516 std::vector<int> mrReadoutSide = {1, 1, 1};
517 std::vector<double> mrLorentzAngle = {0., 0., 0.};
519 std::vector<size_t> mPhiBins = {54, 56, 60};
520 std::vector<double> mThickness = {ssEndcapModuleT, ssEndcapModuleT,
522 std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>> mMaterial = {
523 ssEndcapModuleMaterial, ssEndcapModuleMaterial, ssEndcapModuleMaterial};
525 ssplConfig.posnegLayerBinMultipliers = {1, 2};
527 ssplConfig.posnegLayerPositionsZ = {1220., 1500., 1800.,
528 2150., 2550., 2950.};
529 size_t nposnegs = ssplConfig.posnegLayerPositionsZ.size();
530 ssplConfig.posnegLayerEnvelopeR = std::vector<double>(nposnegs, 5.);
532 ssplConfig.posnegModuleMinHalfX =
533 std::vector<std::vector<double>>(nposnegs, mrMinHx);
534 ssplConfig.posnegModuleMaxHalfX =
535 std::vector<std::vector<double>>(nposnegs, mrMaxHx);
536 ssplConfig.posnegModuleHalfY =
537 std::vector<std::vector<double>>(nposnegs, mrHy);
538 ssplConfig.posnegModulePhiBins =
539 std::vector<std::vector<size_t>>(nposnegs, mPhiBins);
540 ssplConfig.posnegModuleThickness =
541 std::vector<std::vector<double>>(nposnegs, mThickness);
543 ssplConfig.posnegModuleReadoutBinsX =
544 std::vector<std::vector<size_t>>(nposnegs, mrReadoutBinsX);
545 ssplConfig.posnegModuleReadoutBinsY =
546 std::vector<std::vector<size_t>>(nposnegs, mrReadoutBinsY);
547 ssplConfig.posnegModuleReadoutSide =
548 std::vector<std::vector<int>>(nposnegs, mrReadoutSide);
549 ssplConfig.posnegModuleLorentzAngle =
550 std::vector<std::vector<double>>(nposnegs, mrLorentzAngle);
552 ssplConfig.posnegModuleMaterial =
553 std::vector<std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>>>(
554 nposnegs, mMaterial);
556 ssplConfig.posnegModuleFrontsideStereo = {};
557 ssplConfig.posnegModuleBacksideStereo = {};
558 ssplConfig.posnegModuleBacksideGap = {};
561 std::vector<std::vector<std::vector<Acts::Vector3D>>>
562 ssplPosnegModulePositions;
563 for (
size_t id = 0;
id < ssplConfig.posnegLayerPositionsZ.size(); ++id) {
565 ssplConfig.posnegLayerPositionsZ[
id], 6.0, {3., 3., 3.}, {0., 0., 0.},
566 240., 700., ssplConfig.posnegModulePhiBins[id],
567 ssplConfig.posnegModuleHalfY[id]));
569 ssplConfig.posnegModulePositions = ssplPosnegModulePositions;
572 ProtoLayerCreator ssplCreator(
578 sslbConfig.layerCreator = layerCreator;
579 sslbConfig.layerIdentification =
"SStrip";
581 sslbConfig.centralProtoLayers =
582 ssplCreator.centralProtoLayers(
gctx, detectorStore);
583 sslbConfig.centralLayerMaterialConcentration = {-1, -1, -1, -1};
584 sslbConfig.centralLayerMaterial = {ssCentralMaterial, ssCentralMaterial,
585 ssCentralMaterial, ssCentralMaterial};
588 sslbConfig.negativeProtoLayers =
589 ssplCreator.negativeProtoLayers(
gctx, detectorStore);
590 sslbConfig.positiveProtoLayers =
591 ssplCreator.positiveProtoLayers(
gctx, detectorStore);
593 sslbConfig.posnegLayerMaterialConcentration =
594 std::vector<int>(nposnegs, 0);
595 sslbConfig.posnegLayerMaterial =
596 std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>>(
597 nposnegs, ssEndcapMaterial);
601 auto sstripLayerBuilder = std::make_shared<const LayerBuilder>(
607 ssvbConfig.volumeName =
"SStrip";
608 ssvbConfig.buildToRadiusZero =
false;
609 ssvbConfig.layerBuilder = sstripLayerBuilder;
610 ssvbConfig.volumeSignature = 0;
611 auto sstripVolumeBuilder =
612 std::make_shared<const Acts::CylinderVolumeBuilder>(
618 volumeBuilders.push_back(sstripVolumeBuilder);
628 std::pair<double, double> lsEnvelope(2., 2.);
630 double lsCentralModuleT = 0.35;
631 double lsEndcapModuleT = 0.35;
648 std::shared_ptr<const Acts::ISurfaceMaterial> lsCentralMaterial =
649 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
651 std::shared_ptr<const Acts::ISurfaceMaterial> lsEndcapMaterial =
652 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
654 std::shared_ptr<const Acts::ISurfaceMaterial> lsCentralModuleMaterial =
655 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
657 std::shared_ptr<const Acts::ISurfaceMaterial> lsEndcapModuleMaterial =
658 std::make_shared<const Acts::HomogeneousSurfaceMaterial>(
661 lsCentralMaterial = pCylinderMaterial;
662 lsCentralModuleMaterial = pPlaneMaterial;
663 lsEndcapMaterial = pDiscMaterial;
664 lsEndcapModuleMaterial = pPlaneMaterial;
671 lsplConfig.centralLayerBinMultipliers = {1, 1};
672 lsplConfig.centralLayerRadii = {820., 1020.};
673 lsplConfig.centralLayerEnvelopes = {lsEnvelope, lsEnvelope};
675 lsplConfig.centralModuleBinningSchema = {{120, 21}, {152, 21}};
676 lsplConfig.centralModuleTiltPhi = {-0.15, -0.15};
677 lsplConfig.centralModuleHalfX = {24., 24.};
678 lsplConfig.centralModuleHalfY = {54., 54.};
679 lsplConfig.centralModuleThickness = {lsCentralModuleT, lsCentralModuleT};
680 lsplConfig.centralModuleMaterial = {lsCentralModuleMaterial,
681 lsCentralModuleMaterial};
683 lsplConfig.centralModuleReadoutBinsX = {400, 400};
684 lsplConfig.centralModuleReadoutBinsY = {10, 10};
685 lsplConfig.centralModuleReadoutSide = {1, 1};
686 lsplConfig.centralModuleLorentzAngle = {0.08, 0.08};
688 lsplConfig.centralModuleFrontsideStereo = {};
689 lsplConfig.centralModuleBacksideStereo = {};
690 lsplConfig.centralModuleBacksideGap = {};
692 std::vector<std::vector<Acts::Vector3D>> lslbCentralModulePositions;
693 for (
size_t lslb = 0; lslb < lsplConfig.centralLayerRadii.size(); ++lslb) {
695 lslbCentralModulePositions.push_back(
698 lsplConfig.centralModuleHalfY[lslb],
700 lsplConfig.centralModuleBinningSchema[lslb]));
703 lsplConfig.centralModulePositions = lslbCentralModulePositions;
705 mrMinHx = {54., 66.};
706 mrMaxHx = {64.2, 72.};
709 mThickness = {lsEndcapModuleT, lsEndcapModuleT};
710 mMaterial = {lsEndcapModuleMaterial, lsEndcapModuleMaterial};
712 mrReadoutBinsX = {1070, 1200};
713 mrReadoutBinsY = {15, 15};
714 mrReadoutSide = {1, 1};
715 mrLorentzAngle = {0., 0.};
718 lsplConfig.posnegLayerBinMultipliers = {1, 2};
719 lsplConfig.posnegLayerPositionsZ = {1220., 1500., 1800.,
720 2150., 2550., 2950.};
721 nposnegs = lsplConfig.posnegLayerPositionsZ.size();
722 lsplConfig.posnegLayerEnvelopeR = std::vector<double>(nposnegs, 5.);
724 lsplConfig.posnegModuleMinHalfX =
725 std::vector<std::vector<double>>(nposnegs, mrMinHx);
726 lsplConfig.posnegModuleMaxHalfX =
727 std::vector<std::vector<double>>(nposnegs, mrMaxHx);
728 lsplConfig.posnegModuleHalfY =
729 std::vector<std::vector<double>>(nposnegs, mrHy);
730 lsplConfig.posnegModulePhiBins =
731 std::vector<std::vector<size_t>>(nposnegs, mPhiBins);
732 lsplConfig.posnegModuleThickness =
733 std::vector<std::vector<double>>(nposnegs, mThickness);
735 lsplConfig.posnegModuleReadoutBinsX =
736 std::vector<std::vector<size_t>>(nposnegs, mrReadoutBinsX);
737 lsplConfig.posnegModuleReadoutBinsY =
738 std::vector<std::vector<size_t>>(nposnegs, mrReadoutBinsY);
739 lsplConfig.posnegModuleReadoutSide =
740 std::vector<std::vector<int>>(nposnegs, mrReadoutSide);
741 lsplConfig.posnegModuleLorentzAngle =
742 std::vector<std::vector<double>>(nposnegs, mrLorentzAngle);
744 lsplConfig.posnegModuleMaterial =
745 std::vector<std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>>>(
746 nposnegs, mMaterial);
747 lsplConfig.posnegModuleFrontsideStereo = {};
748 lsplConfig.posnegModuleBacksideStereo = {};
749 lsplConfig.posnegModuleBacksideGap = {};
752 std::vector<std::vector<std::vector<Acts::Vector3D>>>
753 lssbPosnegModulePositions;
754 for (
size_t id = 0;
id < lsplConfig.posnegLayerPositionsZ.size(); ++id) {
756 lsplConfig.posnegLayerPositionsZ[
id],
758 {3., 3.}, {0., 0.}, 750., 1020., lsplConfig.posnegModulePhiBins[id],
759 lsplConfig.posnegModuleHalfY[id]));
761 lsplConfig.posnegModulePositions = lssbPosnegModulePositions;
764 ProtoLayerCreator lsplCreator(
770 lslbConfig.layerCreator = layerCreator;
771 lslbConfig.layerIdentification =
"LStrip";
772 lslbConfig.centralLayerMaterialConcentration = {-1, -1};
773 lslbConfig.centralLayerMaterial = {lsCentralMaterial, lsCentralMaterial};
774 lslbConfig.centralProtoLayers =
775 lsplCreator.centralProtoLayers(
gctx, detectorStore);
778 lslbConfig.posnegLayerMaterialConcentration =
779 std::vector<int>(nposnegs, 0);
780 lslbConfig.posnegLayerMaterial =
781 std::vector<std::shared_ptr<const Acts::ISurfaceMaterial>>(
782 nposnegs, lsEndcapMaterial);
783 lslbConfig.negativeProtoLayers =
784 lsplCreator.negativeProtoLayers(
gctx, detectorStore);
785 lslbConfig.positiveProtoLayers =
786 lsplCreator.positiveProtoLayers(
gctx, detectorStore);
790 auto lstripLayerBuilder = std::make_shared<const LayerBuilder>(
796 lsvbConfig.volumeName =
"LStrip";
797 lsvbConfig.buildToRadiusZero =
false;
798 lsvbConfig.layerBuilder = lstripLayerBuilder;
799 lsvbConfig.volumeSignature = 0;
800 auto lstripVolumeBuilder =
801 std::make_shared<const Acts::CylinderVolumeBuilder>(
805 volumeBuilders.push_back(lstripVolumeBuilder);
812 for (
auto& vb : volumeBuilders) {
814 [=](
const auto&
context,
const auto& inner,
const auto&) {
815 return vb->trackingVolume(
context, inner);
821 auto cylinderGeometryBuilder =
822 std::make_shared<const Acts::TrackingGeometryBuilder>(