CMS 3D CMS Logo

TangentHelix Class Reference

#include <RecoTracker/NuclearSeedGenerator/interface/TangentHelix.h>

List of all members.

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


Detailed Description

Definition at line 6 of file TangentHelix.h.


Constructor & Destructor Documentation

TangentHelix::TangentHelix (  )  [inline]

Definition at line 9 of file TangentHelix.h.

00009 {}

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 }


Member Function Documentation

int TangentHelix::charge ( float  magz  )  [inline]

Definition at line 36 of file TangentHelix.h.

References TangentCircle::charge(), and theCircle.

Referenced by SeedFromNuclearInteraction::stateWithError().

00036 { return theCircle.charge(magz); }

TangentCircle TangentHelix::circle (  )  const [inline]

Definition at line 32 of file TangentHelix.h.

References theCircle.

00032 { return theCircle; }

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().

00038 { return theCircle.rho(); }

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; }


Member Data Documentation

TangentCircle TangentHelix::theCircle [private]

Definition at line 49 of file TangentHelix.h.

Referenced by charge(), circle(), curvatureError(), directionAtVertex(), rho(), TangentHelix(), and vertexError().

GlobalVector TangentHelix::theDirectionAtVertex [private]

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:33:03 2009 for CMSSW by  doxygen 1.5.4