6 #include "Acts/Geometry/CutoutCylinderVolumeBounds.hpp"
7 #include "Acts/Geometry/TrapezoidVolumeBounds.hpp"
8 #include "Acts/Visualization/GeometryView3D.hpp"
9 #include "Acts/Detector/DetectorVolume.hpp"
10 #include "Acts/Detector/PortalGenerators.hpp"
11 #include "Acts/Navigation/DetectorVolumeFinders.hpp"
12 #include "Acts/Navigation/InternalNavigation.hpp"
13 #include "Acts/Navigation/NavigationDelegates.hpp"
14 #include "Acts/Navigation/NavigationState.hpp"
15 #include "Acts/Visualization/ObjVisualization3D.hpp"
22 declareInterface<IDetectorVolumeBuilderTool>(
this);
29 auto cylinderDetectorVolume = Acts::Experimental::DetectorVolumeFactory::construct(
30 Acts::Experimental::defaultPortalGenerator(), gctx->
context(),
"EnvelopeSimple",
31 Acts::Transform3::Identity(), std::move(cylinderBounds), Acts::Experimental::tryAllPortalsAndSurfaces());
32 cylinderDetectorVolume->assignGeometryId(Acts::GeometryIdentifier{}.setVolume(1));
35 Acts::ObjVisualization3D
helper;
36 Acts::GeometryView3D::drawDetectorVolume(
helper, *cylinderDetectorVolume, gctx->
context());
37 helper.write(
"detectorSimple.obj");
41 Acts::Experimental::DetectorComponent::PortalContainer portalContainer;
42 for (
auto [
ip,
p] : Acts::enumerate(cylinderDetectorVolume->portalPtrs())) {
43 portalContainer[
ip] =
p;
46 return Acts::Experimental::DetectorComponent{
47 {cylinderDetectorVolume},
49 {{cylinderDetectorVolume}, Acts::Experimental::tryRootVolumes()}};