00001 #ifndef DataFormats_ParticleFlowReco_PFRecTrack_h 00002 #define DataFormats_ParticleFlowReco_PFRecTrack_h 00003 00004 #include "DataFormats/ParticleFlowReco/interface/PFTrack.h" 00005 /* #include "DataFormats/Common/interface/RefToBase.h" */ 00006 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00007 00008 #include <iostream> 00009 00010 namespace reco { 00011 00022 class PFRecTrack : public PFTrack { 00023 00024 public: 00025 00027 enum AlgoType_t { 00028 Unknown = 0, 00029 KF = 1, // Kalman filter 00030 GSF = 2, 00031 KF_ELCAND=3// Gaussian sum filter 00032 }; 00033 00034 PFRecTrack(); 00035 ~PFRecTrack(){}; 00036 PFRecTrack(double charge, 00037 AlgoType_t algoType, 00038 int trackId, 00039 const reco::TrackRef& trackref ); 00040 00041 PFRecTrack(double charge, 00042 AlgoType_t algoType); 00043 00044 /* PFRecTrack(const PFRecTrack& other); */ 00045 00047 unsigned int algoType() const { return algoType_; } 00048 00050 int trackId() const {return trackId_;} 00051 00053 const reco::TrackRef& 00054 trackRef() const {return trackRef_;} 00055 00056 00057 00058 friend std::ostream& operator<<(std::ostream& out, 00059 const PFRecTrack& track); 00060 00061 private: 00062 00064 AlgoType_t algoType_; 00065 00067 int trackId_; 00068 00070 reco::TrackRef trackRef_; 00071 00072 00073 }; 00074 00075 00076 } 00077 00078 #endif