File indexing completed on 2026-07-26 08:22:02
0001
0002
0003
0004
0005
0006
0007
0008
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
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 }