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 00057 void setSTIP(float STIP){STIP_=STIP;} 00058 00060 const float STIP() const{return STIP_;} 00061 00062 00063 friend std::ostream& operator<<(std::ostream& out, 00064 const PFRecTrack& track); 00065 00066 private: 00067 00069 AlgoType_t algoType_; 00070 00072 int trackId_; 00073 00075 reco::TrackRef trackRef_; 00076 float STIP_; 00077 00078 }; 00079 00080 00081 } 00082 00083 #endif