File indexing completed on 2024-04-06 12:29:08
0001 #ifndef RecoBTag_PositiveSideGhostTrackFitter_h
0002 #define RecoBTag_PositiveSideGhostTrackFitter_h
0003
0004 #include <memory>
0005 #include <vector>
0006
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008
0009 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackFitter.h"
0010
0011 namespace reco {
0012
0013 class GhostTrackPredictioon;
0014 class GhostTrackState;
0015
0016 class PositiveSideGhostTrackFitter : public GhostTrackFitter::FitterImpl {
0017 public:
0018 PositiveSideGhostTrackFitter(const GlobalPoint &origin, const GhostTrackFitter::FitterImpl &actualFitter)
0019 : origin_(origin), actualFitter_(actualFitter.clone()) {}
0020 ~PositiveSideGhostTrackFitter() override {}
0021
0022 PositiveSideGhostTrackFitter(const PositiveSideGhostTrackFitter &orig)
0023 : origin_(orig.origin_), actualFitter_(orig.actualFitter_->clone()) {}
0024
0025 GhostTrackPrediction fit(const GhostTrackFitter::PredictionUpdater &updater,
0026 const GhostTrackPrediction &prior,
0027 std::vector<GhostTrackState> &states,
0028 double &ndof,
0029 double &chi2) override;
0030
0031 private:
0032 FitterImpl *clone() const override { return new PositiveSideGhostTrackFitter(*this); }
0033
0034 GlobalPoint origin_;
0035 std::unique_ptr<GhostTrackFitter::FitterImpl> actualFitter_;
0036 };
0037
0038 }
0039
0040 #endif