20 ~FlexibleKFFittingSmoother()
override{}
26 theStandardFitter(standardFitter.
clone()),
27 theLooperFitter(looperFitter.
clone()) {}
34 const RecHitContainer&
hits,
36 fitType type)
const override {
return fitter(type)->fitOne(aSeed,hits,firstPredTsos,type); }
39 const RecHitContainer& hits,
40 fitType type)
const override {
return fitter(type)->fitOne(aSeed,hits,type); }
42 std::unique_ptr<TrajectoryFitter>
clone()
const override {
43 return std::unique_ptr<TrajectoryFitter>(
new FlexibleKFFittingSmoother(*theStandardFitter,*theLooperFitter));
48 theStandardFitter->setHitCloner(hc);
49 theLooperFitter->setHitCloner(hc);
55 return (type==
standard) ? theStandardFitter.get() : theLooperFitter.get();
58 const std::unique_ptr<TrajectoryFitter> theStandardFitter;
59 const std::unique_ptr<TrajectoryFitter> theLooperFitter;
62 friend class FlexibleKFFittingSmootherESProducer;
74 setWhatProduced(
this,myname);
77 ~FlexibleKFFittingSmootherESProducer()
override {}
81 desc.
add<
std::string>(
"ComponentName",
"FlexibleKFFittingSmoother");
82 desc.
add<
std::string>(
"standardFitter",
"KFFittingSmootherWithOutliersRejectionAndRK");
84 descriptions.
add(
"FlexibleKFFittingSmoother", desc);
87 std::unique_ptr<TrajectoryFitter>
93 iRecord.
get(pset_.getParameter<
std::string>(
"standardFitter"),standardFitter);
94 iRecord.
get(pset_.getParameter<
std::string>(
"looperFitter"),looperFitter);
96 return std::unique_ptr<TrajectoryFitter>(
new FlexibleKFFittingSmoother(*standardFitter.
product(),
T getParameter(std::string const &) const
virtual Trajectory fitOne(const Trajectory &traj, fitType type=standard) const =0
virtual std::unique_ptr< TrajectoryFitter > clone() const =0
virtual void setHitCloner(TkCloner const *)=0
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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)
T const * product() const
bool get(HolderT &iHolder) const