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 }
0041
0042 #endif