![]() |
|
|||
File indexing completed on 2025-09-14 08:12:15
0001 // This file is part of the ACTS project. 0002 // 0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project 0004 // 0005 // This Source Code Form is subject to the terms of the Mozilla Public 0006 // License, v. 2.0. If a copy of the MPL was not distributed with this 0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/. 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 /// @brief Vertex Finder Options 0018 /// 0019 struct VertexingOptions { 0020 /// Default constructor is deleted 0021 VertexingOptions() = delete; 0022 0023 /// VertexingOptions with context and vertex constraint 0024 /// 0025 /// @param gctx Geometry context 0026 /// @param mctx Magnetic field context 0027 /// @param constr Vertex constraint 0028 /// @param useConstr Boolean indicating whether vertex constraint should be used during the vertex fit 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 /// VertexingOptions with context and without vertex constraint 0043 /// 0044 /// @param gctx Geometry context 0045 /// @param mctx Magnetic field context 0046 VertexingOptions(const GeometryContext& gctx, 0047 const MagneticFieldContext& mctx) 0048 : geoContext(gctx), magFieldContext(mctx) { 0049 constraint = Vertex(); 0050 useConstraintInFit = false; 0051 } 0052 0053 /// Context object for the geometry 0054 std::reference_wrapper<const GeometryContext> geoContext; 0055 /// Context object for the magnetic field 0056 std::reference_wrapper<const MagneticFieldContext> magFieldContext; 0057 /// Vertex constraint. Important note: While this variable is not used during 0058 /// the vertex fit if useConstraintInFit is set to false, it is always used 0059 /// during vertex finding. 0060 Vertex constraint; 0061 /// Boolean indicating whether we use the constraint information during 0062 /// the vertex fit. If set to true, the covariance matrix of constraint must 0063 /// be invertible. 0064 bool useConstraintInFit; 0065 }; 0066 0067 } // namespace Acts
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |