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));