File indexing completed on 2025-08-06 08:13:32
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Geometry/GeometryContext.hpp"
0013 #include "Acts/Geometry/GeometryIdentifier.hpp"
0014 #include "Acts/Geometry/TrackingGeometry.hpp"
0015 #include "ActsExamples/EventData/GeometryContainers.hpp"
0016
0017 #include <memory>
0018 #include <unordered_map>
0019 #include <vector>
0020
0021 namespace Acts {
0022 class Surface;
0023 }
0024
0025 namespace ActsExamples {
0026
0027
0028 class StructureSelector {
0029 public:
0030
0031
0032 explicit StructureSelector(
0033 std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry);
0034
0035
0036
0037
0038 std::vector<std::shared_ptr<const Acts::Surface>> selectSurfaces(
0039 const Acts::GeometryIdentifier& geoId) const;
0040
0041
0042
0043
0044
0045 std::unordered_map<Acts::GeometryIdentifier, Acts::Transform3>
0046 selectedTransforms(const Acts::GeometryContext& gctx,
0047 const Acts::GeometryIdentifier& geoId) const;
0048
0049 private:
0050 std::shared_ptr<const Acts::TrackingGeometry> m_trackingGeometry;
0051 GeometryIdMultiset<std::shared_ptr<const Acts::Surface>> m_surfaceMultiSet;
0052 };
0053 }