From 7d2a02933c3116a8839ff43dd22c7bfae35a0d3e Mon Sep 17 00:00:00 2001 From: felix-russo <72298366+felix-russo@users.noreply.github.com> Date: Fri, 25 Aug 2023 18:50:44 +0200 Subject: [PATCH 1/2] refactor: Adding time to HelicalTrackLinearizer (#2179) In this PR the derivatives of/wrt time are added to the Jacobians computed in `HelicalTrackLinearizer`. The terms have been checked by comparing them to numerically computed derivatives (see PR #2141). Here is a PDF where the Jacobians are derived: [Track_Linearization.pdf](https://github.com/acts-project/acts/files/11664828/Track_Linearization.pdf). Note that nobody (except me) read this yet, so it might have some mistakes in it. Any feedback is more than welcome! Something that might need discussion: To compute the new terms, we need to have a mass and a charge hypothesis of the tracks. Right now, Pion mass and unit charge are assumed in the code, but it might be worth adding specific hypotheses to the track objects. --- .../performance_ivf_orthogonal_hist.root | Bin 42309 -> 42479 bytes .../performance_ivf_seeded_hist.root | Bin 42285 -> 42436 bytes .../performance_ivf_truth_estimated_hist.root | Bin 42815 -> 42903 bytes .../performance_ivf_truth_smeared_hist.root | Bin 42725 -> 42930 bytes .../Acts/Vertexing/HelicalTrackLinearizer.hpp | 12 +- .../Acts/Vertexing/HelicalTrackLinearizer.ipp | 226 +++++++++--------- .../Vertexing/NumericalTrackLinearizer.ipp | 6 + .../Vertexing/LinearizedTrackFactoryTests.cpp | 39 +-- 8 files changed, 154 insertions(+), 129 deletions(-) diff --git a/CI/physmon/reference/performance_ivf_orthogonal_hist.root b/CI/physmon/reference/performance_ivf_orthogonal_hist.root index 0d4b3df84179249b4a836da12cde76028aa784cf..bab8c251daf6e803743a6fc2e765b6d8016aae6a 100644 GIT binary patch delta 18661 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∾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 EKVxSO%>V!Z diff --git a/CI/physmon/reference/performance_ivf_truth_estimated_hist.root b/CI/physmon/reference/performance_ivf_truth_estimated_hist.root index 8f6100e837016724e07cbfe1cb9a37d0520369da..6783cccc531232a030372950b90de6342233ba86 100644 GIT binary patch delta 27657 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 diff --git a/CI/physmon/reference/performance_ivf_truth_smeared_hist.root b/CI/physmon/reference/performance_ivf_truth_smeared_hist.root index a43e23696af74a829bd0a85370dc06f3341372dc..f0b20b4287d911d3f14f25f734bab622e7f26b62 100644 GIT binary patch delta 17044 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�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 R5Xe>k;Vi$xohJeG{{R|}McV)X delta 16858 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 Vyg##V1A!dU?$7d8o!MhR{|AR propagator; + /// Tolerance determining how close we need to get to the Perigee surface to + /// reach it during propagation + ActsScalar targetTolerance = 1e-12; + // Minimum q/p value double minQoP = 1e-15; - // Maximum curvature value - double maxRho = 1e+15; }; /// @brief Constructor diff --git a/Core/include/Acts/Vertexing/HelicalTrackLinearizer.ipp b/Core/include/Acts/Vertexing/HelicalTrackLinearizer.ipp index 46a686572a2..5e24cb750f2 100644 --- a/Core/include/Acts/Vertexing/HelicalTrackLinearizer.ipp +++ b/Core/include/Acts/Vertexing/HelicalTrackLinearizer.ipp @@ -1,12 +1,13 @@ // This file is part of the Acts project. // -// Copyright (C) 2019 CERN for the benefit of the Acts project +// Copyright (C) 2019-2023 CERN for the benefit of the Acts project // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "Acts/Surfaces/PerigeeSurface.hpp" +#include "Acts/Vertexing/LinearizerTrackParameters.hpp" template Acts::Result Acts:: @@ -20,6 +21,13 @@ Acts::Result Acts:: const std::shared_ptr perigeeSurface = Surface::makeShared(linPointPos); + // Create propagator options + propagator_options_t pOptions(gctx, mctx); + + // Length scale at which we consider to be sufficiently close to the Perigee + // surface to skip the propagation. + pOptions.targetTolerance = m_cfg.targetTolerance; + // Get intersection of the track with the Perigee if the particle would // move on a straight line. // This allows us to determine whether we need to propagate the track @@ -27,9 +35,6 @@ Acts::Result Acts:: auto intersection = perigeeSurface->intersect(gctx, params.position(gctx), params.direction(), false); - // Create propagator options - propagator_options_t pOptions(gctx, mctx); - // Setting the propagation direction using the intersection length from // above // We handle zero path length as forward propagation, but we could actually @@ -61,132 +66,139 @@ Acts::Result Acts:: // Extracting Perigee parameters and compute functions of them for later // usage - double phi = paramsAtPCA(BoundIndices::eBoundPhi); - double sinPhi = std::sin(phi); - double cosPhi = std::cos(phi); + ActsScalar d0 = paramsAtPCA(BoundIndices::eBoundLoc0); - double theta = paramsAtPCA(BoundIndices::eBoundTheta); - const double sinTheta = std::sin(theta); - const double tanTheta = std::tan(theta); + ActsScalar phi = paramsAtPCA(BoundIndices::eBoundPhi); + ActsScalar sinPhi = std::sin(phi); + ActsScalar cosPhi = std::cos(phi); - // q over p - double qOvP = paramsAtPCA(BoundIndices::eBoundQOverP); + ActsScalar theta = paramsAtPCA(BoundIndices::eBoundTheta); + ActsScalar sinTheta = std::sin(theta); + ActsScalar tanTheta = std::tan(theta); - // Charge of the particle, determines the sign of the helix radius rho - double sgnH = (qOvP < 0.) ? -1 : 1; + // q over p + ActsScalar qOvP = paramsAtPCA(BoundIndices::eBoundQOverP); + + // Get mass hypothesis from propagator options + ActsScalar m0 = pOptions.mass; + // Assume unit charge + // TODO: Get charge hypothesis from propagator options once they are included + // there. + ActsScalar p = std::abs(1. / qOvP); + // Speed in units of c + ActsScalar beta = p / std::hypot(p, m0); + // Transverse speed (i.e., speed in the x-y plane) + ActsScalar betaT = beta * sinTheta; // Momentu at the PCA Vector3 momentumAtPCA(phi, theta, qOvP); - // Define Jacobians, which will be filled later - ActsMatrix positionJacobian; - positionJacobian.setZero(); - ActsMatrix momentumJacobian; - momentumJacobian.setZero(); + // Complete Jacobian (consists of positionJacobian and momentumJacobian) + ActsMatrix completeJacobian = + ActsMatrix::Zero(eBoundSize, eLinSize); + // get the z-component of the B-field at the PCA auto field = m_cfg.bField->getField(VectorHelpers::position(pca), state.fieldCache); if (!field.ok()) { return field.error(); } - double Bz = (*field)[eZ]; + ActsScalar Bz = (*field)[eZ]; // If there is no magnetic field the particle has a straight trajectory // If there is a constant magnetic field it has a helical trajectory if (Bz == 0. || std::abs(qOvP) < m_cfg.minQoP) { - // Fill position Jacobian, i.e., matrix A from Eq. 5.39 in Ref(1) - // First row - positionJacobian(0, 0) = -sinPhi; - positionJacobian(0, 1) = cosPhi; - - // Second row - positionJacobian(1, 0) = -cosPhi / tanTheta; - positionJacobian(1, 1) = -sinPhi / tanTheta; - positionJacobian(1, 2) = 1.; - - // TODO: include timing in track linearization - will be added - // in next PR - // Sixth row - positionJacobian(5, 3) = 1.; - - // Quantities from Eq. 5.41 and 5.42 in Ref (1) - double R = (pca(0) - linPointPos.x()) * cosPhi + - (pca(1) - linPointPos.y()) * sinPhi; - double Q = (pca(0) - linPointPos.x()) * sinPhi - - (pca(1) - linPointPos.y()) * cosPhi; - - // Fill momentum Jacobian, i.e., matrix B from Eq. 5.40 in Ref(1) - // First row - momentumJacobian(0, 0) = -R; - - // Second row - momentumJacobian(1, 0) = Q / tanTheta; - momentumJacobian(1, 1) = R / (sinTheta * sinTheta); - - // Third row - momentumJacobian(2, 0) = 1.; - - // Fourth row - momentumJacobian(3, 1) = 1.; - - // Fifth row - momentumJacobian(4, 2) = 1.; - - // TODO: Derivatives of time --> Next PR + // Derivatives can be found in Eqs. 5.39 and 5.40 of Ref. (1). + // Since we propagated to the PCA (point P in Ref. (1)), we evaluate the + // Jacobians there. One can show that, in this case, RTilde = 0 and QTilde = + // -d0. + + // Derivatives of d0 + completeJacobian(eBoundLoc0, eLinPos0) = -sinPhi; + completeJacobian(eBoundLoc0, eLinPos1) = cosPhi; + + // Derivatives of z0 + completeJacobian(eBoundLoc1, eLinPos0) = -cosPhi / tanTheta; + completeJacobian(eBoundLoc1, eLinPos1) = -sinPhi / tanTheta; + completeJacobian(eBoundLoc1, eLinPos2) = 1.; + completeJacobian(eBoundLoc1, eLinPhi) = -d0 / tanTheta; + + // Derivatives of phi + completeJacobian(eBoundPhi, eLinPhi) = 1.; + + // Derivatives of theta + completeJacobian(eBoundTheta, eLinTheta) = 1.; + + // Derivatives of q/p + completeJacobian(eBoundQOverP, eLinQOverP) = 1.; + + // Derivatives of time + completeJacobian(eBoundTime, eLinPos0) = -cosPhi / betaT; + completeJacobian(eBoundTime, eLinPos1) = -sinPhi / betaT; + completeJacobian(eBoundTime, eLinTime) = 1.; + completeJacobian(eBoundTime, eLinPhi) = -d0 / betaT; } else { // Helix radius - double rho{sinTheta * (1. / qOvP) / Bz}; - - // Quantities from Eq. 5.34 in Ref(1) (see .hpp) - double X = pca(0) - linPointPos.x() + rho * sinPhi; - double Y = pca(1) - linPointPos.y() - rho * cosPhi; - const double S2 = (X * X + Y * Y); + ActsScalar rho = sinTheta * (1. / qOvP) / Bz; + // Sign of helix radius + ActsScalar h = (rho < 0.) ? -1 : 1; + + // Quantities from Eq. 5.34 in Ref. (1) (see .hpp) + ActsScalar X = pca(0) - linPointPos.x() + rho * sinPhi; + ActsScalar Y = pca(1) - linPointPos.y() - rho * cosPhi; + ActsScalar S2 = (X * X + Y * Y); // S is the 2D distance from the helix center to linPointPos // in the x-y plane - const double S = std::sqrt(S2); - - // Fill position Jacobian, i.e., matrix A from Eq. 5.36 in Ref(1) - // First row - positionJacobian(0, 0) = -sgnH * X / S; - positionJacobian(0, 1) = -sgnH * Y / S; - - const double S2tanTheta = S2 * tanTheta; - - // Second row - positionJacobian(1, 0) = rho * Y / S2tanTheta; - positionJacobian(1, 1) = -rho * X / S2tanTheta; - positionJacobian(1, 2) = 1.; - - // Third row - positionJacobian(2, 0) = -Y / S2; - positionJacobian(2, 1) = X / S2; - - // TODO: include timing in track linearization - will be added - // in next PR - // Sixth row - positionJacobian(5, 3) = 1.; - - // Fill momentum Jacobian, i.e., B matrix from Eq. 5.36 in Ref(1). - // Since we propagated to the PCA (point P in Ref(1)), the points - // P and V coincide and we can choose deltaPhi = 0. - // One can show that if deltaPhi = 0 --> R = 0 and Q = sgnH * S. - // As a consequence, many terms of the B matrix from Eq. 5.36 vanish. - double rhoOverS{sgnH * rho / S}; - - // Second row - momentumJacobian(1, 0) = (1. - rhoOverS) * rho / tanTheta; - - // Third row - momentumJacobian(2, 0) = rhoOverS; - - // Fourth and fifth row - momentumJacobian(3, 1) = 1.; - momentumJacobian(4, 2) = 1.; - - // TODO: Derivatives of time --> Next PR + ActsScalar S = std::sqrt(S2); + + ActsScalar XoverS2 = X / S2; + ActsScalar YoverS2 = Y / S2; + ActsScalar rhoCotTheta = rho / tanTheta; + ActsScalar rhoOverBetaT = rho / betaT; + // Absolute value of rho over S + ActsScalar absRhoOverS = h * rho / S; + + // Derivatives can be found in Eq. 5.36 in Ref. (1) + // Since we propagated to the PCA (point P in Ref. (1)), the points + // P and V coincide, and thus deltaPhi = 0. + // One can show that if deltaPhi = 0 --> R = 0 and Q = h * S. + // As a consequence, many terms of the B matrix vanish. + + // Derivatives of d0 + completeJacobian(eBoundLoc0, eLinPos0) = -h * X / S; + completeJacobian(eBoundLoc0, eLinPos1) = -h * Y / S; + + // Derivatives of z0 + completeJacobian(eBoundLoc1, eLinPos0) = rhoCotTheta * YoverS2; + completeJacobian(eBoundLoc1, eLinPos1) = -rhoCotTheta * XoverS2; + completeJacobian(eBoundLoc1, eLinPos2) = 1.; + completeJacobian(eBoundLoc1, eLinPhi) = rhoCotTheta * (1. - absRhoOverS); + + // Derivatives of phi + completeJacobian(eBoundPhi, eLinPos0) = -YoverS2; + completeJacobian(eBoundPhi, eLinPos1) = XoverS2; + completeJacobian(eBoundPhi, eLinPhi) = absRhoOverS; + + // Derivatives of theta + completeJacobian(eBoundTheta, eLinTheta) = 1.; + + // Derivatives of q/p + completeJacobian(eBoundQOverP, eLinQOverP) = 1.; + + // Derivatives of time + completeJacobian(eBoundTime, eLinPos0) = rhoOverBetaT * YoverS2; + completeJacobian(eBoundTime, eLinPos1) = -rhoOverBetaT * XoverS2; + completeJacobian(eBoundTime, eLinTime) = 1.; + completeJacobian(eBoundTime, eLinPhi) = rhoOverBetaT * (1. - absRhoOverS); } - // const term in Talyor expansion from Eq. 5.38 in Ref(1) + // Extracting positionJacobian and momentumJacobian from the complete Jacobian + ActsMatrix positionJacobian = + completeJacobian.block(0, 0); + ActsMatrix momentumJacobian = + completeJacobian.block(0, eLinPosSize); + + // const term in Taylor expansion from Eq. 5.38 in Ref. (1) BoundVector constTerm = paramsAtPCA - positionJacobian * pca - momentumJacobian * momentumAtPCA; diff --git a/Core/include/Acts/Vertexing/NumericalTrackLinearizer.ipp b/Core/include/Acts/Vertexing/NumericalTrackLinearizer.ipp index f9770cbc17c..738cce16eb0 100644 --- a/Core/include/Acts/Vertexing/NumericalTrackLinearizer.ipp +++ b/Core/include/Acts/Vertexing/NumericalTrackLinearizer.ipp @@ -46,6 +46,9 @@ Acts::NumericalTrackLinearizer:: // Propagate to the PCA of linPointPos auto result = m_cfg.propagator->propagate(params, *perigeeSurface, pOptions); + if (not result.ok()) { + return result.error(); + } // Extracting the Perigee representation of the track wrt linPointPos auto endParams = *result->endParameters; @@ -123,6 +126,9 @@ Acts::NumericalTrackLinearizer:: // Propagate to the new PCA and extract Perigee parameters auto newResult = m_cfg.propagator->propagate(wiggledCurvilinearParams, *perigeeSurface, pOptions); + if (not newResult.ok()) { + return newResult.error(); + } newPerigeeParams = (*newResult->endParameters).parameters(); // Computing the numerical derivatives and filling the Jacobian diff --git a/Tests/UnitTests/Core/Vertexing/LinearizedTrackFactoryTests.cpp b/Tests/UnitTests/Core/Vertexing/LinearizedTrackFactoryTests.cpp index ab18f37598f..27e70e80cae 100644 --- a/Tests/UnitTests/Core/Vertexing/LinearizedTrackFactoryTests.cpp +++ b/Tests/UnitTests/Core/Vertexing/LinearizedTrackFactoryTests.cpp @@ -65,6 +65,8 @@ MagneticFieldContext magFieldContext = MagneticFieldContext(); std::uniform_real_distribution<> vXYDist(-0.1_mm, 0.1_mm); // Vertex z position distribution std::uniform_real_distribution<> vZDist(-20_mm, 20_mm); +// Vertex time distribution +std::uniform_real_distribution<> vTDist(-1_ns, 1_ns); // Track d0 distribution std::uniform_real_distribution<> d0Dist(-0.01_mm, 0.01_mm); // Track z0 distribution @@ -77,12 +79,16 @@ std::uniform_real_distribution<> phiDist(-M_PI, M_PI); std::uniform_real_distribution<> thetaDist(1.0, M_PI - 1.0); // Track charge helper distribution std::uniform_real_distribution<> qDist(-1, 1); +// Track time distribution +std::uniform_real_distribution<> tDist(-0.002_ns, 0.002_ns); // Track IP resolution distribution std::uniform_real_distribution<> resIPDist(0., 100_um); // Track angular distribution std::uniform_real_distribution<> resAngDist(0., 0.1); // Track q/p resolution distribution -std::uniform_real_distribution<> resQoPDist(-0.1, 0.1); +std::uniform_real_distribution<> resQoPDist(0.0, 0.1); +// Track time resolution distribution +std::uniform_real_distribution<> resTDist(0.1_ns, 0.2_ns); /// /// @brief Test HelicalTrackLinearizer by comparing it to NumericalTrackLinearizer. @@ -120,13 +126,16 @@ BOOST_AUTO_TEST_CASE(linearized_track_factory_test) { Vector4 vtxPos; double d0v{}; double z0v{}; + double t0v{}; { double x = vXYDist(gen); double y = vXYDist(gen); double z = vZDist(gen); - vtxPos << x, y, z, 0; // TODO: add time + double t = vTDist(gen); d0v = std::hypot(x, y); z0v = z; + t0v = t; + vtxPos << x, y, z, t; } // Vector storing the tracks that we linearize @@ -138,10 +147,9 @@ BOOST_AUTO_TEST_CASE(linearized_track_factory_test) { double q = qDist(gen) < 0 ? -1. : 1.; // Random track parameters - // TODO add time BoundVector paramVec; paramVec << d0v + d0Dist(gen), z0v + z0Dist(gen), phiDist(gen), - thetaDist(gen), q / pTDist(gen), 0.; + thetaDist(gen), q / pTDist(gen), t0v + tDist(gen); // Resolutions double resD0 = resIPDist(gen); @@ -149,14 +157,14 @@ BOOST_AUTO_TEST_CASE(linearized_track_factory_test) { double resPh = resAngDist(gen); double resTh = resAngDist(gen); double resQp = resQoPDist(gen); + double resT = resTDist(gen); // Fill vector of track objects with simple covariance matrix Covariance covMat; - // TODO: add time covMat << resD0 * resD0, 0., 0., 0., 0., 0., 0., resZ0 * resZ0, 0., 0., 0., 0., 0., 0., resPh * resPh, 0., 0., 0., 0., 0., 0., resTh * resTh, 0., - 0., 0., 0., 0., 0., resQp * resQp, 0., 0., 0., 0., 0., 0., 1.; + 0., 0., 0., 0., 0., resQp * resQp, 0., 0., 0., 0., 0., 0., resT * resT; tracks.emplace_back(perigeeSurface, paramVec, std::move(covMat)); } @@ -219,17 +227,15 @@ BOOST_AUTO_TEST_CASE(linearized_track_factory_test) { BOOST_CHECK_NE(linTrack1.parametersAtPCA, vecBoundZero); BOOST_CHECK_NE(linTrack2.parametersAtPCA, vecBoundZero); - // TODO: add time comparison (i.e., compare entire "positionJacobian") - CHECK_CLOSE_OR_SMALL((linTrack1.positionJacobian.block<5, 4>(0, 0)), - (linTrack2.positionJacobian.block<5, 4>(0, 0)), - relTol, small); + // Compare position Jacobians + CHECK_CLOSE_OR_SMALL((linTrack1.positionJacobian), + (linTrack2.positionJacobian), relTol, small); BOOST_CHECK_NE(linTrack1.positionJacobian, matBound2SPZero); BOOST_CHECK_NE(linTrack2.positionJacobian, matBound2SPZero); - // TODO: add time comparison (i.e., compare entire "momentumJacobian") - CHECK_CLOSE_OR_SMALL((linTrack1.momentumJacobian.block<5, 3>(0, 0)), - (linTrack2.momentumJacobian.block<5, 3>(0, 0)), - relTol, small); + // Compare momentum Jacobians + CHECK_CLOSE_OR_SMALL((linTrack1.momentumJacobian), + (linTrack2.momentumJacobian), relTol, small); BOOST_CHECK_NE(linTrack1.momentumJacobian, matBound2MomZero); BOOST_CHECK_NE(linTrack2.momentumJacobian, matBound2MomZero); @@ -245,9 +251,8 @@ BOOST_AUTO_TEST_CASE(linearized_track_factory_test) { BOOST_CHECK_EQUAL(linTrack1.linearizationPoint, linPoint); BOOST_CHECK_EQUAL(linTrack2.linearizationPoint, linPoint); - // TODO: add time comparison (i.e., compare entire "constantTerm") - CHECK_CLOSE_OR_SMALL(linTrack1.constantTerm.head(5), - linTrack2.constantTerm.head(5), relTol, small); + CHECK_CLOSE_OR_SMALL(linTrack1.constantTerm, linTrack2.constantTerm, + relTol, small); BOOST_CHECK_NE(linTrack1.constantTerm, vecBoundZero); BOOST_CHECK_NE(linTrack2.constantTerm, vecBoundZero); }; From 32e0119336c10dc2b41a3ed5815e7e023827e790 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Fri, 25 Aug 2023 21:34:13 +0200 Subject: [PATCH 2/2] refactor: Remove `ParticleStopped` aborter (#2398) `qOverP` will be undefined in the first place Pulled out of https://github.com/acts-project/acts/pull/2341 --- .../Acts/Propagator/StandardAborters.hpp | 26 ------------------- .../CombinatorialKalmanFilter.hpp | 2 +- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/Core/include/Acts/Propagator/StandardAborters.hpp b/Core/include/Acts/Propagator/StandardAborters.hpp index fe126f8a685..a28571fee7b 100644 --- a/Core/include/Acts/Propagator/StandardAborters.hpp +++ b/Core/include/Acts/Propagator/StandardAborters.hpp @@ -206,30 +206,4 @@ struct EndOfWorldReached { } }; -/// If the particle stopped (p=0) abort the propagation -struct ParticleStopped { - ParticleStopped() = default; - - /// boolean operator for abort condition without using the result - /// - /// @tparam propagator_state_t Type of the propagator state - /// @tparam stepper_t Type of the stepper - /// @tparam navigator_t Type of the navigator - /// - /// @param [in,out] state The propagation state object - /// @param [in] stepper The stepper object - /// @param [in] navigator The navigator object - template - bool operator()(propagator_state_t& state, const stepper_t& stepper, - const navigator_t& navigator, - const Logger& /*logger*/) const { - if (stepper.absoluteMomentum(state.stepping) > 0) { - return false; - } - navigator.targetReached(state.navigation, true); - return true; - } -}; - } // namespace Acts diff --git a/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp b/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp index 98d9bd844b0..22026cf1c86 100644 --- a/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp +++ b/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp @@ -255,7 +255,7 @@ struct CombinatorialKalmanFilterResult { Result result{Result::success()}; // TODO place into options and make them accessible? - AbortList abortList; + AbortList abortList; }; /// Combinatorial Kalman filter to find tracks.