Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:52

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   /**\class PFRecTrack
0011      \brief reconstructed track used as an input to particle flow    
0012 
0013      Additional information w/r to PFTrack: 
0014      - algorithm used to reconstruct the track
0015      - track ID, soon to be replaced by a RefToBase to the corresponding Track
0016 
0017      \author Renaud Bruneliere, Michele Pioppi
0018      \date   July 2006
0019   */
0020   class PFRecTrack : public PFTrack {
0021   public:
0022     /// different types of fitting algorithms
0023     enum AlgoType_t {
0024       Unknown = 0,
0025       KF = 1,  // Kalman filter
0026       GSF = 2,
0027       KF_ELCAND = 3  // Gaussian sum filter
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     /*     PFRecTrack(const PFRecTrack& other); */
0037 
0038     /// \return type of algorithm
0039     unsigned int algoType() const { return algoType_; }
0040 
0041     /// \return id
0042     int trackId() const { return trackId_; }
0043 
0044     /// \return reference to corresponding track
0045     const reco::TrackRef& trackRef() const { return trackRef_; }
0046 
0047     /// \set the significance of the signed transverse impact parameter
0048     void setSTIP(float STIP) { STIP_ = STIP; }
0049 
0050     /// \return the significance of the signed transverse impact parameter
0051     const float STIP() const { return STIP_; }
0052 
0053     /// \return eta
0054     inline auto eta() const { return trackRef_->eta(); }
0055 
0056     /// \return phi
0057     inline auto phi() const { return trackRef_->phi(); }
0058 
0059   private:
0060     /// type of fitting algorithm used to reconstruct the track
0061     AlgoType_t algoType_;
0062 
0063     /// track id
0064     int trackId_;
0065 
0066     /// reference to corresponding track
0067     reco::TrackRef trackRef_;
0068     float STIP_;
0069   };
0070 
0071   std::ostream& operator<<(std::ostream& out, const PFRecTrack& track);
0072 
0073 }  // namespace reco
0074 
0075 #endif