#include <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) | |
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] |
Definition at line 9 of file TangentHelix.h.
{}
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.
: theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(innerPoint), theCircle(direction, innerPoint, outerPoint), 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.
: theInnerPoint(innerPoint), theOuterPoint(outerPoint), theVertexPoint(vertexPoint), theCircle(outerPoint, innerPoint, vertexPoint) { theDirectionAtVertex = GlobalVector(1000,1000,1000); }
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 debug_cff::d1, mag(), theCircle, theDirectionAtVertex, theVertexPoint, TangentCircle::vertexPoint(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
: theInnerPoint(innerPoint), theOuterPoint(outerPoint), theCircle(primCircle.circle(), outerPoint, innerPoint) { // Calculation of vertex.z : GlobalPoint inner_T( innerPoint.x() , innerPoint.y() , 0.0 ); GlobalPoint outer_T( outerPoint.x() , outerPoint.y() , 0.0 ); GlobalPoint vtx_T( theCircle.vertexPoint().x() , theCircle.vertexPoint().y() , 0.0 ); double d1 = (inner_T - vtx_T).mag(); double d = (inner_T - outer_T).mag(); theVertexPoint = GlobalPoint(vtx_T.x() , vtx_T.y(), innerPoint.z() - (outerPoint.z() - innerPoint.z()) * d1 / d ); theDirectionAtVertex = GlobalVector(1000, 1000, 1000); }
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.
{ 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().
{ if(theDirectionAtVertex.z() > 999) { GlobalPoint inner_T( theInnerPoint.x() , theInnerPoint.y() , 0.0 ); GlobalPoint outer_T( theOuterPoint.x() , theOuterPoint.y() , 0.0 ); double p_z = (theOuterPoint.z() - theInnerPoint.z()) / (outer_T - inner_T).mag(); GlobalVector dir_T = theCircle.directionAtVertex(); GlobalVector dir( dir_T.x(), dir_T.y(), p_z); dir/=dir.mag(); theDirectionAtVertex = dir; } return theDirectionAtVertex; }
GlobalPoint TangentHelix::innerPoint | ( | ) | const [inline] |
GlobalPoint TangentHelix::outerPoint | ( | ) | const [inline] |
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().
{ return theCircle.vertexError(); }
GlobalPoint TangentHelix::vertexPoint | ( | ) | const [inline] |
Definition at line 30 of file TangentHelix.h.
References theVertexPoint.
Referenced by SeedFromNuclearInteraction::stateWithError().
{ 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] |
Definition at line 45 of file TangentHelix.h.
Referenced by directionAtVertex(), and innerPoint().
GlobalPoint TangentHelix::theOuterPoint [private] |
Definition at line 46 of file TangentHelix.h.
Referenced by directionAtVertex(), and outerPoint().
GlobalPoint TangentHelix::theVertexPoint [private] |
Definition at line 47 of file TangentHelix.h.
Referenced by TangentHelix(), and vertexPoint().