CMS 3D CMS Logo

IterativeHelixExtrapolatorToLine.h

Go to the documentation of this file.
00001 #ifndef IterativeHelixExtrapolatorToLine_h_
00002 #define IterativeHelixExtrapolatorToLine_h_
00003 
00004 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00005 #include "TrackingTools/GeomPropagators/interface/HelixLineExtrapolation.h"
00006 #include "TrackingTools/GeomPropagators/interface/HelixExtrapolatorToLine2Order.h"
00007 
00012 class IterativeHelixExtrapolatorToLine : public HelixLineExtrapolation {
00013 public:
00016   IterativeHelixExtrapolatorToLine (const PositionType& point,
00017                                     const DirectionType& direction,
00018                                     const float curvature,
00019                                     const PropagationDirection propDir = anyDirection);
00020   // destructor
00021   virtual ~IterativeHelixExtrapolatorToLine() {}
00022 
00027   virtual std::pair<bool,double> pathLength (const GlobalPoint& point) const {
00028     return genericPathLength(point);
00029   }
00030 
00035   virtual std::pair<bool,double> pathLength (const Line& line) const {
00036     return genericPathLength(line);
00037   }
00038 
00041   virtual PositionType position (double s) const;
00042 
00045   virtual DirectionType direction (double s) const;
00046 
00049   PositionTypeDouble positionInDouble (double s) const;
00050 
00053   DirectionTypeDouble directionInDouble (double s) const;
00054 
00055 private:
00057   template <class T> 
00058   std::pair<bool,double> genericPathLength (const T& object) const;
00059 
00060 private:
00061   const double theX0,theY0,theZ0;
00062   double theCosPhi0,theSinPhi0;
00063   double theCosTheta,theSinTheta;
00064   const double theRho;
00065 
00066   HelixExtrapolatorToLine2Order theQuadraticSolutionFromStart;
00067 
00068   const PropagationDirection thePropDir;
00069 
00070   mutable double theCachedS;
00071   mutable double theCachedDPhi;
00072   mutable double theCachedSDPhi;
00073   mutable double theCachedCDPhi;
00074 };
00075 
00076 #endif

Generated on Tue Jun 9 17:48:16 2009 for CMSSW by  doxygen 1.5.4