Go to the documentation of this file.00001 #ifndef _TangentHelix_H_
00002 #define _TangentHelix_H_
00003
00004 #include "RecoTracker/NuclearSeedGenerator/interface/TangentCircle.h"
00005
00006 class TangentHelix {
00007
00008 public :
00009 TangentHelix(){}
00010
00013 TangentHelix(const GlobalVector& direction, const GlobalPoint& innerPoint, const GlobalPoint& outerPoint) :
00014 theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(innerPoint), theCircle(direction, innerPoint, outerPoint),
00015 theDirectionAtVertex(direction) {}
00016
00018 TangentHelix(const GlobalPoint& outerPoint, const GlobalPoint& innerPoint, const GlobalPoint& vertexPoint) :
00019 theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(vertexPoint), theCircle(outerPoint, innerPoint, vertexPoint) {
00020 theDirectionAtVertex = GlobalVector(1000,1000,1000);
00021 }
00022
00024 TangentHelix(const TangentHelix& primCircle, const GlobalPoint& outerPoint, const GlobalPoint& innerPoint);
00025
00026 GlobalPoint outerPoint() const { return theOuterPoint; }
00027
00028 GlobalPoint innerPoint() const { return theInnerPoint; }
00029
00030 GlobalPoint vertexPoint() const { return theVertexPoint; }
00031
00032 TangentCircle circle() const { return theCircle; }
00033
00034 GlobalVector directionAtVertex() ;
00035
00036 int charge(float magz) { return theCircle.charge(magz); }
00037
00038 double rho() const { return theCircle.rho(); }
00039
00040 double curvatureError() { return theCircle.curvatureError(); }
00041
00042 double vertexError() { return theCircle.vertexError(); }
00043
00044 private :
00045 GlobalPoint theInnerPoint;
00046 GlobalPoint theOuterPoint;
00047 GlobalPoint theVertexPoint;
00048
00049 TangentCircle theCircle;
00050
00051 GlobalVector theDirectionAtVertex;
00052 };
00053
00054 #endif