18 ~FlexibleKFFittingSmoother()
override {}
28 const RecHitContainer&
hits,
31 return fitter(
type)->fitOne(aSeed,
hits, firstPredTsos,
type);
38 std::unique_ptr<TrajectoryFitter>
clone()
const override {
39 return std::unique_ptr<TrajectoryFitter>(
new FlexibleKFFittingSmoother(*theStandardFitter, *theLooperFitter));
44 theStandardFitter->setHitCloner(hc);
45 theLooperFitter->setHitCloner(hc);
50 return (
type ==
standard) ? theStandardFitter.get() : theLooperFitter.get();
53 const std::unique_ptr<TrajectoryFitter> theStandardFitter;
54 const std::unique_ptr<TrajectoryFitter> theLooperFitter;
56 friend class FlexibleKFFittingSmootherESProducer;
70 desc.add<
std::string>(
"standardFitter",
"KFFittingSmootherWithOutliersRejectionAndRK");
72 descriptions.
add(
"FlexibleKFFittingSmoother",
desc);
76 return std::unique_ptr<TrajectoryFitter>(
77 new FlexibleKFFittingSmoother(iRecord.
get(standardToken_), iRecord.
get(looperToken_)));
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
virtual void setHitCloner(TkCloner const *)=0
virtual Trajectory fitOne(const Trajectory &traj, fitType type=standard) const =0
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
virtual std::unique_ptr< TrajectoryFitter > clone() const =0