00001 #ifndef RecoBTag_SequentialGhostTrackFitter_h 00002 #define RecoBTag_SequentialGhostTrackFitter_h 00003 00004 #include <vector> 00005 00006 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackFitter.h" 00007 00008 namespace reco { 00009 00010 class GhostTrackPrediction; 00011 class GhostTrackState; 00012 00013 class SequentialGhostTrackFitter : public GhostTrackFitter::FitterImpl { 00014 public: 00015 SequentialGhostTrackFitter(); 00016 ~SequentialGhostTrackFitter() {} 00017 00018 GhostTrackPrediction fit( 00019 const GhostTrackFitter::PredictionUpdater &updater, 00020 const GhostTrackPrediction &prior, 00021 std::vector<GhostTrackState> &states, 00022 double &ndof, double &chi2); 00023 00024 protected: 00025 virtual bool stable(const GhostTrackPrediction &before, 00026 const GhostTrackPrediction &after) const; 00027 virtual void reset() {} 00028 virtual void postFit( 00029 const GhostTrackFitter::PredictionUpdater &updater, 00030 const GhostTrackPrediction &pred, 00031 std::vector<GhostTrackState> &states) {} 00032 00033 private: 00034 virtual FitterImpl *clone() const 00035 { return new SequentialGhostTrackFitter(*this); } 00036 00037 unsigned int maxIteration; 00038 double minDeltaR; 00039 double minDistance; 00040 double weightThreshold; 00041 }; 00042 00043 } 00044 00045 #endif // RecoBTag_SequentialGhostTrackFitter_h