CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/TrackingTools/GeomPropagators/interface/HelixLineExtrapolation.h

Go to the documentation of this file.
00001 #ifndef HelixLineExtrapolation_H
00002 #define HelixLineExtrapolation_H
00003 
00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00006 
00007 #include <utility>
00008 
00009 class Line;
00010 
00015 class HelixLineExtrapolation {
00016 public:
00022   typedef Basic3DVector<float>   PositionType;
00023   typedef Basic3DVector<float>   DirectionType;
00024   typedef Basic3DVector<double>  PositionTypeDouble;
00025   typedef Basic3DVector<double>  DirectionTypeDouble;
00026 
00027 public:
00028   //
00029   // the helix is passed to the constructor and does not appear in the interface
00030   //
00031 
00036   virtual std::pair<bool,double> pathLength (const GlobalPoint& point) const = 0;
00037 
00042   virtual std::pair<bool,double> pathLength (const Line& line) const = 0;
00043 
00050   virtual PositionType position (double s) const = 0;
00051 
00057   virtual DirectionType direction (double s) const = 0;
00058 
00059 };
00060 
00061 #endif