Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:10:58

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/Definitions/TrackParametrization.hpp"
0012 #include "Acts/Propagator/PropagatorStatistics.hpp"
0013 #include "Acts/Utilities/detail/Extendable.hpp"
0014 
0015 #include <optional>
0016 
0017 namespace Acts {
0018 
0019 /// @brief Simple class holding result of propagation call
0020 ///
0021 /// @tparam parameters_t Type of final track parameters
0022 /// @tparam result_list  Result pack for additional propagation
0023 ///                      quantities
0024 template <typename parameters_t, typename... result_list>
0025 struct PropagatorResult : private detail::Extendable<result_list...> {
0026   using detail::Extendable<result_list...>::get;
0027   using detail::Extendable<result_list...>::tuple;
0028 
0029   /// Final track parameters
0030   std::optional<parameters_t> endParameters = std::nullopt;
0031 
0032   /// Full transport jacobian
0033   std::optional<BoundMatrix> transportJacobian = std::nullopt;
0034 
0035   /// Number of propagation steps that were carried out
0036   std::size_t steps = 0;
0037 
0038   /// Signed distance over which the parameters were propagated
0039   double pathLength = 0.;
0040 
0041   /// Propagator statistics
0042   PropagatorStatistics statistics;
0043 };
0044 
0045 }  // namespace Acts