29 #include "TGeoManager.h"
43 template <
typename variable_maps_t>
46 std::vector<std::shared_ptr<const Acts::TGeoDetectorElement>>&
57 auto surfaceArrayCreator = std::make_shared<const Acts::SurfaceArrayCreator>(
63 auto layerCreator = std::make_shared<const Acts::LayerCreator>(
67 auto layerArrayCreator = std::make_shared<const Acts::LayerArrayCreator>(
71 auto tVolumeArrayCreator =
72 std::make_shared<const Acts::TrackingVolumeArrayCreator>(
78 cvhConfig.trackingVolumeArrayCreator = tVolumeArrayCreator;
79 auto cylinderVolumeHelper =
80 std::make_shared<const Acts::CylinderVolumeHelper>(
86 std::list<std::shared_ptr<const Acts::ITrackingVolumeBuilder>> volumeBuilders;
88 std::string rootFileName = vm[
"geo-tgeo-filename"].template as<std::string>();
90 TGeoManager::Import(rootFileName.c_str());
94 auto layerBuilderConfigs =
95 FW::Options::readTGeoLayerBuilderConfigs<variable_maps_t>(vm,
99 std::vector<std::shared_ptr<const Acts::TGeoLayerBuilder>> tgLayerBuilders;
101 for (
auto& lbc : layerBuilderConfigs) {
102 auto layerBuilder = std::make_shared<const Acts::TGeoLayerBuilder>(
106 tgLayerBuilders.push_back(layerBuilder);
110 volumeConfig.
volumeName = lbc.configurationName;
116 auto volumeBuilder = std::make_shared<const Acts::CylinderVolumeBuilder>(
121 volumeBuilders.push_back(volumeBuilder);
130 for (
auto& vb : volumeBuilders) {
132 [=](
const auto&
c,
const auto& inner,
const auto&) {
133 return vb->trackingVolume(
c, inner);
138 auto cylinderGeometryBuilder =
139 std::make_shared<const Acts::TrackingGeometryBuilder>(
145 for (
auto& lBuilder : tgLayerBuilders) {
146 auto detElements = lBuilder->detectorElements();
147 detElementStore.insert(detElementStore.begin(), detElements.begin(),