Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace reco
0039 
0040 #endif  // RecoBTag_PositiveSideGhostTrackFitter_h