CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_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   
00049   PositionType position1() const { return thePos1;}
00050 
00052   PositionType position2() const { return thePos2;}
00053 
00054 
00060   DirectionType direction() const { return theDir;}
00061 
00062 private:
00063 
00064   bool           theSolExists;
00065   double         theS;
00066   PositionType   thePos;
00067   DirectionType  theDir;
00068   Vector         theD;
00069   int            theActualDir;
00070 
00071   PositionType   thePos1;
00072   PositionType   thePos2;
00073 
00074 
00075   void chooseSolution( const Point& p1, const Point& p2,
00076                        const PositionType& startingPos,
00077                        const DirectionType& startingDir, 
00078                        PropagationDirection propDir) dso_internal;
00079 
00080 };
00081 
00082 #endif