Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:08

0001 #ifndef RecoBTag_SequentialGhostTrackFitter_h
0002 #define RecoBTag_SequentialGhostTrackFitter_h
0003 
0004 #include <vector>
0005 
0006 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackFitter.h"
0007 
0008 namespace reco {
0009 
0010   class GhostTrackPrediction;
0011   class GhostTrackState;
0012 
0013   class SequentialGhostTrackFitter : public GhostTrackFitter::FitterImpl {
0014   public:
0015     SequentialGhostTrackFitter();
0016     ~SequentialGhostTrackFitter() override {}
0017 
0018     GhostTrackPrediction fit(const GhostTrackFitter::PredictionUpdater &updater,
0019                              const GhostTrackPrediction &prior,
0020                              std::vector<GhostTrackState> &states,
0021                              double &ndof,
0022                              double &chi2) override;
0023 
0024   protected:
0025     virtual bool stable(const GhostTrackPrediction &before, const GhostTrackPrediction &after) const;
0026     virtual void reset() {}
0027     virtual void postFit(const GhostTrackFitter::PredictionUpdater &updater,
0028                          const GhostTrackPrediction &pred,
0029                          std::vector<GhostTrackState> &states) {}
0030 
0031   private:
0032     FitterImpl *clone() const override { return new SequentialGhostTrackFitter(*this); }
0033 
0034     unsigned int maxIteration;
0035     double minDeltaR;
0036     double minDistance;
0037     double weightThreshold;
0038   };
0039 
0040 }  // namespace reco
0041 
0042 #endif  // RecoBTag_SequentialGhostTrackFitter_h