20 #include "boost/program_options.hpp"
29 template <
typename Fitter>
30 struct TrkrFitterFunctionImpl
34 TrkrFitterFunctionImpl(Fitter&& f) : fitter(std::move(f)) {}
37 const std::vector<ActsExamples::TrkrClusterSourceLink>& sourceLinks,
41 return fitter.fit(sourceLinks, initialParameters, options);
45 template <
typename Fitter>
46 struct DirectedTrkrFitterFunctionImpl
50 DirectedTrkrFitterFunctionImpl(Fitter&& f) : fitter(std::move(f)) {}
53 const std::vector<ActsExamples::TrkrClusterSourceLink>& sourceLinks,
56 const std::vector<const Acts::Surface*>& sSequence)
const
58 return fitter.fit(sourceLinks, initialParameters, options, sSequence);
79 using InputMagneticField =
typename std::decay_t<decltype(inputField)>::element_type;
87 MagneticField field(std::move(inputField));
90 navigator.resolvePassive =
false;
91 navigator.resolveMaterial =
true;
92 navigator.resolveSensitive =
true;
93 Propagator propagator(std::move(stepper), std::move(navigator));
94 Fitter fitter(std::move(propagator));
97 return TrkrFitterFunctionImpl<Fitter>(std::move(fitter));
99 std::move(magneticField));
114 using InputMagneticField =
typename std::decay_t<decltype(inputField)>::element_type;
122 MagneticField field(std::move(inputField));
125 Propagator propagator(std::move(stepper), std::move(navigator));
126 Fitter fitter(std::move(propagator));
129 return DirectedTrkrFitterFunctionImpl<Fitter>(std::move(fitter));
131 std::move(magneticField));