Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-30 07:53:43

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/Propagator/EigenStepper.hpp"
0012 #include "Acts/Propagator/MultiStepperLoop.hpp"
0013 
0014 namespace Acts {
0015 
0016 /// @brief Type alias for loop reducer based on maximum momentum
0017 /// @details Reduces multiple loop iterations based on momentum criteria
0018 using MaxMomentumReducerLoop =
0019     detail::SingleComponentReducer<detail::MaxMomentumComponent>;
0020 
0021 /// @brief Type alias for loop reducer based on maximum weight
0022 /// @details Reduces multiple loop iterations based on weight criteria
0023 using MaxWeightReducerLoop =
0024     detail::SingleComponentReducer<detail::MaxWeightComponent>;
0025 
0026 /// @brief Stepper based on the EigenStepper, but handles Multi-Component Tracks
0027 /// (e.g., for the GSF). Internally, this only manages a vector of
0028 /// EigenStepper::States. This simplifies implementation, but has several
0029 /// drawbacks:
0030 /// * There are certain redundancies between the global State and the
0031 /// component states
0032 /// * The components do not share a single magnetic-field-cache
0033 /// @tparam extension_t See EigenStepper for details
0034 /// @tparam component_reducer_t How to map the multi-component state to a single
0035 /// component
0036 /// @tparam small_vector_size A size-hint how much memory should be allocated
0037 /// by the small vector
0038 template <typename extension_t = EigenStepperDefaultExtension,
0039           typename reducer_t = MaxWeightReducerLoop>
0040 using MultiEigenStepperLoop =
0041     MultiStepperLoop<EigenStepper<extension_t>, reducer_t>;
0042 
0043 }  // namespace Acts