18 ~FlexibleKFFittingSmoother()
override {}
23 : theStandardFitter(standardFitter.
clone()), theLooperFitter(looperFitter.
clone()) {}
28 const RecHitContainer& hits,
30 fitType type)
const override {
31 return fitter(type)->fitOne(aSeed, hits, firstPredTsos, type);
35 return fitter(type)->fitOne(aSeed, hits, 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;
69 desc.
add<
std::string>(
"ComponentName",
"FlexibleKFFittingSmoother");
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={})
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
virtual void setHitCloner(TkCloner const *)=0
virtual Trajectory fitOne(const Trajectory &traj, fitType type=standard) const =0
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T getParameter(std::string const &) const
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
virtual std::unique_ptr< TrajectoryFitter > clone() const =0