File indexing completed on 2026-07-26 08:22:02
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "traccc/fitting/triplet_fitting_algorithm.hpp"
0010
0011 #include "traccc/bfield/magnetic_field_types.hpp"
0012 #include "traccc/fitting/details/triplet_fitting.hpp"
0013 #include "traccc/fitting/triplet_fit/triplet_fitter.hpp"
0014 #include "traccc/utils/host_detector_bfield_visitor.hpp"
0015
0016 namespace traccc::host {
0017
0018 triplet_fitting_algorithm::triplet_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 triplet_fitting_algorithm::output_type triplet_fitting_algorithm::operator()(
0024 const host_detector& det, const magnetic_field& field,
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, field,
0031 [&]<typename detector_t, typename bfield_view_t>(
0032 const typename detector_t::host& detector,
0033 const bfield_view_t bfield) {
0034 traccc::triplet_fitter<typename detector_t::host, bfield_view_t> fitter{
0035 detector, bfield, m_config};
0036
0037 return details::triplet_fitting<default_algebra>(
0038 fitter, track_candidates, m_mr.get(), m_copy.get());
0039 });
0040 }
0041 }