CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/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 #include "FWCore/Utilities/interface/GCC11Compatibility.h"
00010 
00011 class Line;
00012 
00017 class HelixLineExtrapolation {
00018 public:
00024   typedef Basic3DVector<float>   PositionType;
00025   typedef Basic3DVector<float>   DirectionType;
00026   typedef Basic3DVector<double>  PositionTypeDouble;
00027   typedef Basic3DVector<double>  DirectionTypeDouble;
00028 
00029 public:
00030   //
00031   // the helix is passed to the constructor and does not appear in the interface
00032   //
00033 
00038   virtual std::pair<bool,double> pathLength (const GlobalPoint& point) const = 0;
00039 
00044   virtual std::pair<bool,double> pathLength (const Line& line) const = 0;
00045 
00052   virtual PositionType position (double s) const = 0;
00053 
00059   virtual DirectionType direction (double s) const = 0;
00060 
00061 };
00062 
00063 #endif