![]() |
![]() |
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