#include <RecoTracker/NuclearSeedGenerator/interface/TangentHelix.h>
Public Member Functions | |
int | charge (float magz) |
TangentCircle | circle () const |
double | curvatureError () |
GlobalVector | directionAtVertex () |
GlobalPoint | innerPoint () const |
GlobalPoint | outerPoint () const |
double | rho () const |
TangentHelix (const TangentHelix &primCircle, const GlobalPoint &outerPoint, const GlobalPoint &innerPoint) | |
Calculate the parameters of the helix which pass by 2 points (innerPoint and outerPoint) and which is tangent to primHelix. | |
TangentHelix (const GlobalPoint &outerPoint, const GlobalPoint &innerPoint, const GlobalPoint &vertexPoint) | |
Calculate Helix from 3 points. | |
TangentHelix (const GlobalVector &direction, const GlobalPoint &innerPoint, const GlobalPoint &outerPoint) | |
Calculate the helix from 2 points on the circle (the vertex=innerPoint and the outerPoint) and the tangent direction at the inner point. | |
TangentHelix () | |
double | vertexError () |
GlobalPoint | vertexPoint () const |
Private Attributes | |
TangentCircle | theCircle |
GlobalVector | theDirectionAtVertex |
GlobalPoint | theInnerPoint |
GlobalPoint | theOuterPoint |
GlobalPoint | theVertexPoint |
Definition at line 6 of file TangentHelix.h.
TangentHelix::TangentHelix | ( | ) | [inline] |
TangentHelix::TangentHelix | ( | const GlobalVector & | direction, | |
const GlobalPoint & | innerPoint, | |||
const GlobalPoint & | outerPoint | |||
) | [inline] |
Calculate the helix from 2 points on the circle (the vertex=innerPoint and the outerPoint) and the tangent direction at the inner point.
Definition at line 13 of file TangentHelix.h.
00013 : 00014 theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(innerPoint), theCircle(direction, innerPoint, outerPoint), 00015 theDirectionAtVertex(direction) {}
TangentHelix::TangentHelix | ( | const GlobalPoint & | outerPoint, | |
const GlobalPoint & | innerPoint, | |||
const GlobalPoint & | vertexPoint | |||
) | [inline] |
Calculate Helix from 3 points.
Definition at line 18 of file TangentHelix.h.
References theDirectionAtVertex.
00018 : 00019 theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(vertexPoint), theCircle(outerPoint, innerPoint, vertexPoint) { 00020 theDirectionAtVertex = GlobalVector(1000,1000,1000); 00021 }
TangentHelix::TangentHelix | ( | const TangentHelix & | primCircle, | |
const GlobalPoint & | outerPoint, | |||
const GlobalPoint & | innerPoint | |||
) |
Calculate the parameters of the helix which pass by 2 points (innerPoint and outerPoint) and which is tangent to primHelix.
Definition at line 3 of file TangentHelix.cc.
References d, d1, muonGeometry::mag(), theCircle, theDirectionAtVertex, theVertexPoint, TangentCircle::vertexPoint(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
00003 : 00004 theInnerPoint(innerPoint), theOuterPoint(outerPoint), theCircle(primCircle.circle(), outerPoint, innerPoint) { 00005 00006 // Calculation of vertex.z : 00007 GlobalPoint inner_T( innerPoint.x() , innerPoint.y() , 0.0 ); 00008 GlobalPoint outer_T( outerPoint.x() , outerPoint.y() , 0.0 ); 00009 GlobalPoint vtx_T( theCircle.vertexPoint().x() , theCircle.vertexPoint().y() , 0.0 ); 00010 00011 double d1 = (inner_T - vtx_T).mag(); 00012 double d = (inner_T - outer_T).mag(); 00013 00014 theVertexPoint = GlobalPoint(vtx_T.x() , vtx_T.y(), innerPoint.z() - (outerPoint.z() - innerPoint.z()) * d1 / d ); 00015 theDirectionAtVertex = GlobalVector(1000, 1000, 1000); 00016 }
int TangentHelix::charge | ( | float | magz | ) | [inline] |
Definition at line 36 of file TangentHelix.h.
References TangentCircle::charge(), and theCircle.
Referenced by SeedFromNuclearInteraction::stateWithError().
TangentCircle TangentHelix::circle | ( | ) | const [inline] |
double TangentHelix::curvatureError | ( | ) | [inline] |
Definition at line 40 of file TangentHelix.h.
References TangentCircle::curvatureError(), and theCircle.
00040 { return theCircle.curvatureError(); }
GlobalVector TangentHelix::directionAtVertex | ( | ) |
Definition at line 18 of file TangentHelix.cc.
References dir, TangentCircle::directionAtVertex(), PV3DBase< T, PVType, FrameType >::mag(), theCircle, theDirectionAtVertex, theInnerPoint, theOuterPoint, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by SeedFromNuclearInteraction::stateWithError().
00018 { 00019 00020 if(theDirectionAtVertex.z() > 999) { 00021 GlobalPoint inner_T( theInnerPoint.x() , theInnerPoint.y() , 0.0 ); 00022 GlobalPoint outer_T( theOuterPoint.x() , theOuterPoint.y() , 0.0 ); 00023 double p_z = (theOuterPoint.z() - theInnerPoint.z()) / (outer_T - inner_T).mag(); 00024 00025 GlobalVector dir_T = theCircle.directionAtVertex(); 00026 GlobalVector dir( dir_T.x(), dir_T.y(), p_z); 00027 00028 dir/=dir.mag(); 00029 theDirectionAtVertex = dir; 00030 } 00031 00032 return theDirectionAtVertex; 00033 }
GlobalPoint TangentHelix::innerPoint | ( | ) | const [inline] |
Definition at line 28 of file TangentHelix.h.
References theInnerPoint.
00028 { return theInnerPoint; }
GlobalPoint TangentHelix::outerPoint | ( | ) | const [inline] |
Definition at line 26 of file TangentHelix.h.
References theOuterPoint.
00026 { return theOuterPoint; }
double TangentHelix::rho | ( | ) | const [inline] |
Definition at line 38 of file TangentHelix.h.
References TangentCircle::rho(), and theCircle.
Referenced by SeedFromNuclearInteraction::stateWithError().
double TangentHelix::vertexError | ( | ) | [inline] |
Definition at line 42 of file TangentHelix.h.
References theCircle, and TangentCircle::vertexError().
Referenced by SeedFromNuclearInteraction::stateWithError().
00042 { return theCircle.vertexError(); }
GlobalPoint TangentHelix::vertexPoint | ( | ) | const [inline] |
Definition at line 30 of file TangentHelix.h.
References theVertexPoint.
Referenced by SeedFromNuclearInteraction::stateWithError().
00030 { return theVertexPoint; }
TangentCircle TangentHelix::theCircle [private] |
Definition at line 49 of file TangentHelix.h.
Referenced by charge(), circle(), curvatureError(), directionAtVertex(), rho(), TangentHelix(), and vertexError().
Definition at line 51 of file TangentHelix.h.
Referenced by directionAtVertex(), and TangentHelix().
GlobalPoint TangentHelix::theInnerPoint [private] |
GlobalPoint TangentHelix::theOuterPoint [private] |
GlobalPoint TangentHelix::theVertexPoint [private] |