Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:02

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2022-2024 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 // Project include(s).
0009 #include "traccc/fitting/kalman_fitting_algorithm.hpp"
0010 
0011 #include "traccc/bfield/magnetic_field_types.hpp"
0012 #include "traccc/fitting/details/kalman_fitting.hpp"
0013 #include "traccc/fitting/details/kalman_fitting_types.hpp"
0014 #include "traccc/utils/host_detector_bfield_visitor.hpp"
0015 
0016 namespace traccc::host {
0017 
0018 kalman_fitting_algorithm::kalman_fitting_algorithm(
0019     const config_type& config, vecmem::memory_resource& mr, vecmem::copy& copy,
0020     std::unique_ptr<const Logger> logger)
0021     : messaging(std::move(logger)), m_config{config}, m_mr{mr}, m_copy(copy) {}
0022 
0023 kalman_fitting_algorithm::output_type kalman_fitting_algorithm::operator()(
0024     const host_detector& det, const magnetic_field& bfield,
0025     const edm::track_container<default_algebra>::const_view& track_candidates)
0026     const {
0027   // Perform the track fitting using the appropriate templated implementation.
0028   return host_detector_magnetic_field_visitor<detector_type_list,
0029                                               bfield_type_list<scalar>>(
0030       det, bfield,
0031       [&]<typename detector_t, typename bfield_view_t>(
0032           const typename detector_t::host& detector,
0033           const bfield_view_t field) {
0034         traccc::details::kalman_fitter_t<typename detector_t::host,
0035                                          bfield_view_t>
0036             fitter{detector, field, m_config};
0037         return details::kalman_fitting<default_algebra>(
0038             fitter, track_candidates, m_mr.get(), m_copy.get());
0039       });
0040 }
0041 
0042 }  // namespace traccc::host