Warning, file /acts/Core/include/Acts/Vertexing/VertexingOptions.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/Geometry/GeometryContext.hpp"
0012 #include "Acts/MagneticField/MagneticFieldContext.hpp"
0013 #include "Acts/Vertexing/Vertex.hpp"
0014
0015 namespace Acts {
0016
0017
0018
0019 struct VertexingOptions {
0020
0021 VertexingOptions() = delete;
0022
0023
0024
0025
0026
0027
0028
0029 VertexingOptions(const GeometryContext& gctx,
0030 const MagneticFieldContext& mctx, const Vertex& constr,
0031 const bool useConstr = true)
0032 : geoContext(gctx),
0033 magFieldContext(mctx),
0034 constraint(constr),
0035 useConstraintInFit(useConstr) {
0036 if (useConstraintInFit && constraint.covariance().determinant() == 0.) {
0037 throw std::invalid_argument(
0038 "Vertex constraint covariance matrix must be invertible.");
0039 }
0040 }
0041
0042
0043
0044
0045
0046 VertexingOptions(const GeometryContext& gctx,
0047 const MagneticFieldContext& mctx)
0048 : geoContext(gctx), magFieldContext(mctx) {
0049 constraint = Vertex();
0050 useConstraintInFit = false;
0051 }
0052
0053
0054 std::reference_wrapper<const GeometryContext> geoContext;
0055
0056 std::reference_wrapper<const MagneticFieldContext> magFieldContext;
0057
0058
0059
0060 Vertex constraint;
0061
0062
0063
0064 bool useConstraintInFit;
0065 };
0066
0067 }