CMS 3D CMS Logo

TangentCircle.h

Go to the documentation of this file.
00001 #ifndef _TangentCircle_H_
00002 #define _TangentCircle_H_
00003 
00004 #include "RecoTracker/TkSeedGenerator/interface/FastCircle.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00006 
00007 class TangentCircle
00008 {
00009 //   TODO : for speed-up :
00010 //   typedef Point2DBase< float, GlobalTag>     Global2DPoint;
00011 //   typedef Vector2DBase< float, GlobalTag>    Global2DVector;
00012 
00013  public :
00014      TangentCircle(){}
00015 
00018      TangentCircle(const GlobalVector& direction, const GlobalPoint& innerPoint, const GlobalPoint& outerPoint); 
00019 
00021      TangentCircle(const GlobalPoint& outerPoint, const GlobalPoint& innerPoint, const GlobalPoint& vertexPoint); 
00022 
00024      TangentCircle(const TangentCircle& primCircle, const GlobalPoint& outerPoint, const GlobalPoint& innerPoint);
00025 
00027      GlobalVector directionAtVertex();
00028 
00029      double x0() const {return theX0;}
00030    
00031      double y0() const {return theY0;}
00032  
00033      double rho() const {return theRho;}
00034 
00035      GlobalPoint outerPoint() const { return theOuterPoint; }
00036 
00037      GlobalPoint innerPoint() const { return theInnerPoint; }
00038 
00039      GlobalPoint vertexPoint() const { return theVertexPoint; }
00040 
00041      double vertexError() const { return theVertexError; }
00042 
00043      double curvatureError();
00044 
00045      int charge(float magz);
00046 
00047      bool isValid() const { return isValid(); } 
00048 
00049  private :
00050      GlobalPoint theInnerPoint;
00051      GlobalPoint theOuterPoint;
00052      GlobalPoint theVertexPoint;
00053 
00054      GlobalVector theDirectionAtVertex;
00055      
00056      double theX0;  
00057      double theY0;  
00058      double theRho; 
00060      double theVertexError;  
00062      bool valid;
00063      int theCharge;
00064 
00065      double isTangent(const TangentCircle& primCircle, const TangentCircle& secCircle) const;
00066      GlobalPoint getPosition(const TangentCircle& circle, const GlobalPoint& initalPosition, double theta, int direction) const;
00067      int chargeLocally(float magz, GlobalVector v) const;
00068      GlobalVector direction(const GlobalPoint& point) const;
00069 
00070 };
00071 
00072 #endif

Generated on Tue Jun 9 17:45:30 2009 for CMSSW by  doxygen 1.5.4