CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/DataFormats/TrackReco/interface/Track.h

Go to the documentation of this file.
00001 #ifndef TrackReco_Track_h
00002 #define TrackReco_Track_h
00003 
00020 #include "DataFormats/TrackReco/interface/TrackBase.h"
00021 #include "DataFormats/TrackReco/interface/TrackExtra.h"
00022 #include "DataFormats/TrackReco/interface/TrackExtraFwd.h" 
00023 #include "DataFormats/TrackingRecHit/interface/TrackingRecHitFwd.h"
00024 
00025 namespace reco {
00026 
00027   class Track : public TrackBase {
00028   public:
00030     Track() { }
00032     virtual ~Track();
00034     Track( double chi2, double ndof, const Point & referencePoint,
00035            const Vector & momentum, int charge, const CovarianceMatrix &,
00036            TrackAlgorithm=undefAlgorithm, TrackQuality quality=undefQuality);
00038     bool outerOk() const { return extra_->outerOk(); }
00040     bool innerOk() const { return extra_->innerOk(); }
00042     const math::XYZPoint & innerPosition()  const { return extra_->innerPosition(); }
00043 
00045     const math::XYZVector & innerMomentum() const { return extra_->innerMomentum(); }
00047     const math::XYZPoint & outerPosition()  const { return extra_->outerPosition(); }
00049     const math::XYZVector & outerMomentum() const { return extra_->outerMomentum(); }
00051     CovarianceMatrix outerStateCovariance() const { return extra_->outerStateCovariance(); }
00053     CovarianceMatrix innerStateCovariance() const { return extra_->innerStateCovariance(); }
00055     CovarianceMatrix & fillOuter( CovarianceMatrix & v ) const { return extra_->fillOuter( v ); }
00057     CovarianceMatrix & fillInner( CovarianceMatrix & v ) const { return extra_->fillInner( v ); }
00059     unsigned int outerDetId() const { return extra_->outerDetId(); }
00061     unsigned int innerDetId() const { return extra_->innerDetId(); }
00063     trackingRecHit_iterator recHitsBegin() const { return extra_->recHitsBegin(); }
00065     trackingRecHit_iterator recHitsEnd() const { return extra_->recHitsEnd(); }
00067     TrackingRecHitRef recHit( size_t i ) const { return extra_->recHit( i ); }
00069     size_t recHitsSize() const { return extra_->recHitsSize(); }
00071     double outerPx()     const { return extra_->outerPx(); }
00073     double outerPy()     const { return extra_->outerPy(); }
00075     double outerPz()     const { return extra_->outerPz(); }
00077     double outerX()      const { return extra_->outerX(); }
00079     double outerY()      const { return extra_->outerY(); }
00081     double outerZ()      const { return extra_->outerZ(); }
00083     double outerP()      const { return extra_->outerP(); }
00085     double outerPt()     const { return extra_->outerPt(); }
00087     double outerPhi()    const { return extra_->outerPhi(); }
00089     double outerEta()    const { return extra_->outerEta(); }
00091     double outerTheta()  const { return extra_->outerTheta(); }    
00093     double outerRadius() const { return extra_->outerRadius(); }
00095     void setExtra( const TrackExtraRef & ref ) { extra_ = ref; }
00097     const TrackExtraRef & extra() const { return extra_; }
00098 
00100     unsigned short found() const { return  numberOfValidHits(); }
00102     unsigned short lost() const {return  numberOfLostHits();  }
00103 
00105     PropagationDirection seedDirection() const {return extra_->seedDirection();}
00106 
00112     edm::RefToBase<TrajectorySeed> seedRef() const { return extra_->seedRef(); }
00113 
00117     const TrackResiduals &residuals () const { return extra_->residuals(); }
00120     double residualX (int position) const;
00121     double residualY (int position) const;
00122 
00123   private:
00125     TrackExtraRef extra_;
00126 
00127   };
00128 
00129 }
00130 
00131 #endif