Warning, file /include/Acts/Navigation/NavigationState.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/Definitions/Units.hpp"
0013 #include "Acts/Geometry/GeometryContext.hpp"
0014 #include "Acts/Surfaces/BoundaryCheck.hpp"
0015 #include "Acts/Utilities/Delegate.hpp"
0016 #include "Acts/Utilities/Intersection.hpp"
0017
0018 #include <any>
0019 #include <cstddef>
0020 #include <vector>
0021
0022 namespace Acts {
0023
0024 class Surface;
0025
0026 namespace Experimental {
0027
0028 class Portal;
0029 class Detector;
0030 class DetectorVolume;
0031
0032
0033
0034
0035
0036 struct NavigationState {
0037
0038
0039
0040 struct SurfaceCandidate {
0041
0042 ObjectIntersection<Surface> objectIntersection;
0043
0044 const Surface* surface = nullptr;
0045
0046 const Portal* portal = nullptr;
0047
0048
0049 BoundaryCheck boundaryCheck = BoundaryCheck(true);
0050 };
0051
0052
0053
0054 using SurfaceCandidates = std::vector<SurfaceCandidate>;
0055
0056
0057 Vector3 position = Vector3(0., 0., 0.);
0058
0059
0060 Vector3 direction = Vector3(0., 0., 0.);
0061
0062
0063 ActsScalar absMomentum = 0.;
0064
0065
0066 ActsScalar absCharge = 0.;
0067
0068
0069 Vector3 magneticField = Vector3(0., 0., 0.);
0070
0071
0072 const Detector* currentDetector = nullptr;
0073
0074
0075 const DetectorVolume* currentVolume = nullptr;
0076
0077
0078 const Surface* currentSurface = nullptr;
0079
0080
0081 const Portal* currentPortal = nullptr;
0082
0083
0084 SurfaceCandidates surfaceCandidates = {};
0085 std::size_t surfaceCandidateIndex = 0;
0086
0087
0088 BoundaryCheck surfaceBoundaryCheck = BoundaryCheck(true);
0089
0090
0091 ActsScalar overstepTolerance = -100 * UnitConstants::um;
0092
0093
0094 std::any auxiliary;
0095
0096 const SurfaceCandidate& surfaceCandidate() const {
0097 return surfaceCandidates.at(surfaceCandidateIndex);
0098 }
0099 };
0100
0101 }
0102 }