CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackingTools/GeomPropagators/interface/HelixBarrelCylinderCrossing.h

Go to the documentation of this file.
00001 #ifndef HelixBarrelCylinderCrossing_H
00002 #define HelixBarrelCylinderCrossing_H
00003 
00004 #include "DataFormats/GeometryVector/interface/Basic2DVector.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00006 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00007 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00008 
00009 #include "FWCore/Utilities/interface/Visibility.h"
00010 
00011 class Cylinder;
00012 
00016 class HelixBarrelCylinderCrossing {
00017 
00018   typedef double                   TmpType;
00019   typedef Basic2DVector<TmpType>   Point; // for private use only
00020   typedef Basic2DVector<TmpType>   Vector; // for private use only
00021 
00022 public:
00023 
00024   typedef GlobalPoint    PositionType;
00025   typedef GlobalVector   DirectionType;
00026 
00027   HelixBarrelCylinderCrossing( const GlobalPoint& startingPos,
00028                                const GlobalVector& startingDir,
00029                                double rho, PropagationDirection propDir, 
00030                                const Cylinder& cyl);
00031 
00032   bool hasSolution() const { return theSolExists;}
00033 
00038   double pathLength() const { return theS;}
00039 
00046   PositionType position() const { return thePos;}
00047 
00053   DirectionType direction() const { return theDir;}
00054 
00055 private:
00056 
00057   bool           theSolExists;
00058   double         theS;
00059   PositionType   thePos;
00060   DirectionType  theDir;
00061   Vector         theD;
00062   int            theActualDir;
00063 
00064   void chooseSolution( const Point& p1, const Point& p2,
00065                        const PositionType& startingPos,
00066                        const DirectionType& startingDir, 
00067                        PropagationDirection propDir) dso_internal;
00068 
00069 };
00070 
00071 #endif