File indexing completed on 2024-09-07 04:35:56
0001 #ifndef DataFormats_ParticleFlowReco_PFRecTrack_h
0002 #define DataFormats_ParticleFlowReco_PFRecTrack_h
0003
0004 #include "DataFormats/ParticleFlowReco/interface/PFTrack.h"
0005 #include "DataFormats/TrackReco/interface/Track.h"
0006 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0007
0008 namespace reco {
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 class PFRecTrack : public PFTrack {
0021 public:
0022
0023 enum AlgoType_t {
0024 Unknown = 0,
0025 KF = 1,
0026 GSF = 2,
0027 KF_ELCAND = 3
0028 };
0029
0030 PFRecTrack();
0031 ~PFRecTrack() {}
0032 PFRecTrack(double charge, AlgoType_t algoType, int trackId, const reco::TrackRef& trackref);
0033
0034 PFRecTrack(double charge, AlgoType_t algoType);
0035
0036
0037
0038
0039 unsigned int algoType() const { return algoType_; }
0040
0041
0042 int trackId() const { return trackId_; }
0043
0044
0045 const reco::TrackRef& trackRef() const { return trackRef_; }
0046
0047
0048 void setSTIP(float STIP) { STIP_ = STIP; }
0049
0050
0051 const float STIP() const { return STIP_; }
0052
0053
0054 inline auto eta() const { return trackRef_->eta(); }
0055
0056
0057 inline auto phi() const { return trackRef_->phi(); }
0058
0059 private:
0060
0061 AlgoType_t algoType_;
0062
0063
0064 int trackId_;
0065
0066
0067 reco::TrackRef trackRef_;
0068 float STIP_;
0069 };
0070
0071 std::ostream& operator<<(std::ostream& out, const PFRecTrack& track);
0072
0073 }
0074
0075 #endif