Warning, file /include/Acts/Geometry/TrapezoidPortalShell.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Geometry/PortalShell.hpp"
0013 #include "Acts/Geometry/TrackingVolume.hpp"
0014 #include "Acts/Geometry/TrapezoidVolumeBounds.hpp"
0015 #include "Acts/Utilities/AxisDefinitions.hpp"
0016 #include "Acts/Utilities/Logger.hpp"
0017
0018 namespace Acts {
0019
0020
0021
0022
0023 class TrapezoidPortalShell : public PortalShellBase {
0024 public:
0025
0026 using Face = TrapezoidVolumeBounds::Face;
0027
0028 using enum TrapezoidVolumeBounds::Face;
0029
0030
0031
0032
0033 virtual Portal* portal(Face face) = 0;
0034
0035
0036
0037
0038
0039 virtual std::shared_ptr<Portal> portalPtr(Face face) = 0;
0040
0041
0042
0043
0044 virtual void setPortal(std::shared_ptr<Portal> portal, Face face) = 0;
0045
0046
0047 void fill(TrackingVolume& volume) override;
0048
0049
0050
0051 virtual const Transform3& transform() const = 0;
0052 };
0053
0054
0055
0056
0057
0058 std::ostream& operator<<(std::ostream& os, TrapezoidPortalShell::Face face);
0059
0060
0061
0062 class SingleTrapezoidPortalShell : public TrapezoidPortalShell {
0063 public:
0064
0065
0066 explicit SingleTrapezoidPortalShell(TrackingVolume& volume);
0067
0068
0069 std::size_t size() const override;
0070
0071
0072 Portal* portal(Face face) override;
0073
0074
0075 std::shared_ptr<Portal> portalPtr(Face face) override;
0076
0077
0078 void setPortal(std::shared_ptr<Portal> portal, Face face) override;
0079
0080
0081 void applyToVolume() override;
0082
0083
0084 bool isValid() const override;
0085
0086
0087 std::string label() const override;
0088
0089 const Transform3& transform() const override {
0090 return m_volume->transform();
0091 };
0092
0093 private:
0094 std::array<std::shared_ptr<Portal>, 6> m_portals{};
0095
0096 TrackingVolume* m_volume;
0097 };
0098
0099 }