Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-05 08:29:36

0001 // This file is part of the Acts project.
0002 //
0003 // Copyright (C) 2024 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 http://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Definitions/TrackParametrization.hpp"
0012 #include "Acts/Utilities/detail/Extendable.hpp"
0013 
0014 #include <optional>
0015 
0016 namespace Acts {
0017 
0018 /// @brief Simple class holding result of propagation call
0019 ///
0020 /// @tparam parameters_t Type of final track parameters
0021 /// @tparam result_list  Result pack for additional propagation
0022 ///                      quantities
0023 template <typename parameters_t, typename... result_list>
0024 struct PropagatorResult : private detail::Extendable<result_list...> {
0025   using detail::Extendable<result_list...>::get;
0026   using detail::Extendable<result_list...>::tuple;
0027 
0028   /// Final track parameters
0029   std::optional<parameters_t> endParameters = std::nullopt;
0030 
0031   /// Full transport jacobian
0032   std::optional<BoundMatrix> transportJacobian = std::nullopt;
0033 
0034   /// Number of propagation steps that were carried out
0035   std::size_t steps = 0;
0036 
0037   /// Signed distance over which the parameters were propagated
0038   double pathLength = 0.;
0039 };
0040 
0041 }  // namespace Acts