9 #include <boost/program_options.hpp>
31 template <
typename Fitter>
32 struct FitterFunctionImpl {
35 FitterFunctionImpl(Fitter&&
f) : fitter(std::move(
f)) {}
38 const std::vector<FW::SimSourceLink>& sourceLinks,
41 return fitter.fit(sourceLinks, initialParameters, options);
57 using InputMagneticField =
58 typename std::decay_t<decltype(inputField)>::element_type;
66 MagneticField field(std::move(inputField));
69 navigator.resolvePassive =
false;
70 navigator.resolveMaterial =
true;
71 navigator.resolveSensitive =
true;
72 Propagator propagator(std::move(stepper), std::move(navigator));
73 Fitter fitter(std::move(propagator),
77 return FitterFunctionImpl<Fitter>(std::move(fitter));
79 std::move(magneticField));