Go to the documentation of this file.00001 #ifndef RecoBTag_GhostTrack_h
00002 #define RecoBTag_GhostTrack_h
00003
00004 #include <vector>
00005
00006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00007 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00008
00009 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00010
00011 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackState.h"
00012 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackPrediction.h"
00013
00014 namespace reco {
00015
00016 class GhostTrack {
00017 public:
00018 GhostTrack(const GhostTrackPrediction &prior,
00019 const GhostTrackPrediction &prediction,
00020 const std::vector<GhostTrackState> &states,
00021 double ndof, double chi2) :
00022 prediction_(prediction), prior_(prior), states_(states),
00023 ndof_(ndof), chi2_(chi2)
00024 {}
00025
00026 GhostTrack(const GhostTrackPrediction &prior,
00027 const GhostTrackPrediction &prediction,
00028 const std::vector<TransientTrack> &tracks,
00029 double ndof, double chi2,
00030 const std::vector<float> &weights = std::vector<float>(),
00031 const GlobalPoint &origin = GlobalPoint(),
00032 bool withOrigin = false);
00033
00034 GhostTrack(const Track &ghostTrack,
00035 const std::vector<TransientTrack> &tracks,
00036 const std::vector<float> &weights = std::vector<float>(),
00037 const GhostTrackPrediction &prior = GhostTrackPrediction(),
00038 const GlobalPoint &origin = GlobalPoint(),
00039 bool withOrigin = false);
00040
00041 const GhostTrackPrediction &prediction() const { return prediction_; }
00042 const GhostTrackPrediction &prior() const { return prior_; }
00043
00044 const std::vector<GhostTrackState> &states() const { return states_; }
00045 double ndof() const { return ndof_; }
00046 double chi2() const { return chi2_; }
00047
00048 operator Track() const { return prediction_.track(ndof_, chi2_); }
00049
00050 private:
00051 void initStates(const std::vector<TransientTrack> &tracks,
00052 const std::vector<float> &weights, double offset);
00053
00054 GhostTrackPrediction prediction_;
00055 GhostTrackPrediction prior_;
00056 std::vector<GhostTrackState> states_;
00057 double ndof_;
00058 double chi2_;
00059 };
00060
00061 }
00062
00063 #endif // RecoBTag_GhostTrack_h