Go to the documentation of this file.00001 #ifndef CD_KFSplittingFitter_H_
00002 #define CD_KFSplittingFitter_H_
00003
00013 #include "TrackingTools/TrackFitters/interface/KFTrajectoryFitter.h"
00014 #include "TrackingTools/TrackFitters/interface/RecHitSplitter.h"
00015
00016 class KFSplittingFitter GCC11_FINAL : public TrajectoryFitter {
00017
00018 private:
00019
00020 typedef RecHitSplitter::RecHitContainer RecHitContainer;
00021
00022 typedef TrajectoryStateOnSurface TSOS;
00023 typedef FreeTrajectoryState FTS;
00024 typedef TrajectoryMeasurement TM;
00025
00026 public:
00027
00028 KFSplittingFitter(const Propagator& aPropagator,
00029 const TrajectoryStateUpdator& aUpdator,
00030 const MeasurementEstimator& aEstimator) :
00031 fitter(aPropagator, aUpdator, aEstimator) {}
00032
00033
00034 KFSplittingFitter(const Propagator* aPropagator,
00035 const TrajectoryStateUpdator* aUpdator,
00036 const MeasurementEstimator* aEstimator) :
00037 fitter(aPropagator, aUpdator, aEstimator) {}
00038
00039 virtual KFSplittingFitter* clone() const {
00040 return new KFSplittingFitter(fitter.propagator(),fitter.updator(),fitter.estimator());
00041 }
00042
00043 Trajectory fitOne(const Trajectory& aTraj,
00044 fitType type) const;
00045 Trajectory fitOne(const TrajectorySeed& aSeed,
00046 const RecHitContainer& hits,
00047 fitType type) const;
00048 Trajectory fitOne(const TrajectorySeed& aSeed,
00049 const RecHitContainer& hits,
00050 const TSOS& firstPredTsos,
00051 fitType type) const;
00052
00053 private :
00054
00055 void sorter(const RecHitContainer& hits, PropagationDirection dir, RecHitContainer & result) const;
00056
00057 KFTrajectoryFitter fitter;
00058
00059 };
00060
00061 #endif //CD_KFSplittingFitter_H_