\section{Simple\-Helix Class Reference}
\label{classSimpleHelix}\index{Simple\-Helix@{Simple\-Helix}}


Simple helix trajectory.  




{\ttfamily \#include $<$Simple\-Helix.\-h$>$}

Inheritance diagram for Simple\-Helix\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classSimpleHelix}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf Simple\-Helix} (double d0, double phi0, double omega, double z0, double tan\-Lambda, L\-C\-Vector3\-D reference\-Point, L\-C\-Error\-Matrix $\ast$errors=0)\label{classSimpleHelix_a0e6d816c9e00421d9e123f9ad23750e1}

\begin{DoxyCompactList}\small\item\em Construct Helix from canonical parameters. \end{DoxyCompactList}\item 
virtual L\-C\-Vector3\-D {\bf get\-Position} (double s, L\-C\-Error\-Matrix $\ast$errors=0) const 
\begin{DoxyCompactList}\small\item\em Position at path length s -\/ s==0 corresponds to P.\-C.\-A to the origin. \end{DoxyCompactList}\item 
virtual L\-C\-Vector3\-D {\bf get\-Direction} (double s, L\-C\-Error\-Matrix $\ast$errors=0) const 
\begin{DoxyCompactList}\small\item\em Direction at path length s, i.\-e. \end{DoxyCompactList}\item 
virtual L\-C\-Error\-Matrix {\bf get\-Covariance\-Matrix} (double s) const 
\begin{DoxyCompactList}\small\item\em Full covariance Matrix of x,y,z,px,py,pz. \end{DoxyCompactList}\item 
virtual double {\bf get\-Path\-At} (const L\-C\-Vector3\-D position) const 
\begin{DoxyCompactList}\small\item\em Pathlength at point on trajectory closest to given position. \end{DoxyCompactList}\item 
virtual double {\bf get\-Radius} () const \label{classSimpleHelix_aa01002ad7c7aa149b1a8d7b1bcb32195}

\begin{DoxyCompactList}\small\item\em get the radius of the helix. \end{DoxyCompactList}\item 
virtual double {\bf get\-Intersection\-With\-Plane} ({\bf L\-C\-Plane3\-D} p, bool \&point\-Exists) const \label{classSimpleHelix_afca938697066a2470a2db7fcb92e904a}

\begin{DoxyCompactList}\small\item\em Pathlength at closest intersection point with plane -\/ undefined if point\-Exists==false. \end{DoxyCompactList}\item 
virtual double {\bf get\-Intersection\-With\-Cylinder} (const {\bf L\-C\-Cylinder} \&cylinder, bool \&point\-Exists) const 
\begin{DoxyCompactList}\small\item\em Pathlength at closest intersection point with cylinder -\/ undefined if point\-Exists==false. \end{DoxyCompactList}\item 
virtual double {\bf get\-Start} () const \label{classSimpleHelix_aff813cff05e0ce522fc69e4d673350ac}

\begin{DoxyCompactList}\small\item\em Pathlength at the start and end point of the trajectory. \end{DoxyCompactList}\item 
virtual double {\bfseries get\-End} () const \label{classSimpleHelix_a0f00772b9b61fc60b5b771c73b77c9aa}

\item 
virtual bool {\bf set\-Start} (double s)
\begin{DoxyCompactList}\small\item\em Set pathlength at the start and end point of the trajectory. \end{DoxyCompactList}\item 
virtual bool {\bfseries set\-End} (double s)\label{classSimpleHelix_aaf4d5656d4dc85df4cb09e19255eb89e}

\item 
virtual bool {\bfseries set\-Start\-End} (double start, double end)\label{classSimpleHelix_a3cb854e84f321d0f4db61538f9fa082f}

\item 
virtual void {\bfseries print\-Properties} ()\label{classSimpleHelix_af693872df636cd1982e8952b2e2b7cdb}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void {\bfseries init} ()\label{classSimpleHelix_af29aef7976f12dd971c7d2ec1045890e}

\item 
virtual double {\bfseries get\-Centre\-X} () const \label{classSimpleHelix_a9be7000851a42559d9a1548522ccec9e}

\item 
virtual double {\bfseries get\-Centre\-Y} () const \label{classSimpleHelix_a8dc0ed9705584bb7aaaadbff237ecabf}

\item 
virtual double {\bfseries get\-Winding\-Length} () const \label{classSimpleHelix_a7617457553c4abf6a84fa328c0d0a0b2}

\item 
virtual double {\bfseries get\-Pitch} ()\label{classSimpleHelix_a9af00e5b6a5f02f950f1167f9dbeddde}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
double {\bfseries \-\_\-d0}\label{classSimpleHelix_a4a56f3b323a25da6aba0254a4ecbb7cb}

\item 
double {\bfseries \-\_\-phi0}\label{classSimpleHelix_a4b645608b2f8ef1772a8debfc00a5c04}

\item 
double {\bfseries \-\_\-omega}\label{classSimpleHelix_a247c0965780bc53c4375b92fb28806a9}

\item 
double {\bfseries \-\_\-z0}\label{classSimpleHelix_ab71b75f44e831167669283ec9048cbf9}

\item 
double {\bfseries \-\_\-tan\-Lambda}\label{classSimpleHelix_a541789c65ee7e97a48a90b1636c0f167}

\item 
double {\bfseries \-\_\-helix\-Start}\label{classSimpleHelix_a4798bc73b93a30f3374ca16ba8000d6a}

\item 
double {\bfseries \-\_\-helix\-End}\label{classSimpleHelix_ac3db488297795014fef2ca5bcf496f20}

\item 
L\-C\-Vector3\-D {\bfseries \-\_\-reference}\label{classSimpleHelix_a3348e2b98ab04ea2f4067d621d93a881}

\item 
L\-C\-Error\-Matrix $\ast$ {\bfseries \-\_\-errors}\label{classSimpleHelix_a4426750701af9a9079bade526a740f2d}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ {\bfseries \-\_\-names} [$\,$]\label{classSimpleHelix_a67fe22d40fb4332235fb6d2758be1132}

\item 
static const double {\bfseries \-\_\-a} = 2.\-99792458\-E-\/4\label{classSimpleHelix_a8d903bf5eb6f8ecbefc47ab5c37362e6}

\item 
static const double {\bfseries \-\_\-pi} = M\-\_\-\-P\-I\label{classSimpleHelix_a0006b525813d61761493eea5e35657da}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Simple helix trajectory. 

\begin{DoxyAuthor}{Author}
T.\-Kraemer, D\-E\-S\-Y 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{Simple\-Helix.\-h}{p.}{SimpleHelix_8h_source},v 1.\-7 2007-\/06-\/20 18\-:47\-:25 samson Exp 
\end{DoxyParagraph}


\subsection{Member Function Documentation}
\index{Simple\-Helix@{Simple\-Helix}!get\-Covariance\-Matrix@{get\-Covariance\-Matrix}}
\index{get\-Covariance\-Matrix@{get\-Covariance\-Matrix}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{get\-Covariance\-Matrix}]{\setlength{\rightskip}{0pt plus 5cm}L\-C\-Error\-Matrix Simple\-Helix\-::get\-Covariance\-Matrix (
\begin{DoxyParamCaption}
\item[{double}]{s}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_ab404e7a0c77c9b22c69676e524ba4c4e}


Full covariance Matrix of x,y,z,px,py,pz. 


\begin{DoxyParams}{Parameters}
{\em s} & path length \\
\hline
\end{DoxyParams}


Implements {\bf Trajectory} \doxyref{}{p.}{classTrajectory_adb9992b0e405f7d6c2f9cabf77eaac40}.

\index{Simple\-Helix@{Simple\-Helix}!get\-Direction@{get\-Direction}}
\index{get\-Direction@{get\-Direction}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{get\-Direction}]{\setlength{\rightskip}{0pt plus 5cm}L\-C\-Vector3\-D Simple\-Helix\-::get\-Direction (
\begin{DoxyParamCaption}
\item[{double}]{s, }
\item[{L\-C\-Error\-Matrix $\ast$}]{errors = {\ttfamily 0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_a30f466f32af30c6f6790a93979956b54}


Direction at path length s, i.\-e. 

(dx/ds,dy/ds,dz/ds) 
\begin{DoxyParams}{Parameters}
{\em s} & path length \\
\hline
{\em errors} & return argument -\/ not computed if N\-U\-L\-L \\
\hline
\end{DoxyParams}


Implements {\bf Trajectory} \doxyref{}{p.}{classTrajectory_adeab59baf8f5ec5690310f65941ea36d}.

\index{Simple\-Helix@{Simple\-Helix}!get\-Intersection\-With\-Cylinder@{get\-Intersection\-With\-Cylinder}}
\index{get\-Intersection\-With\-Cylinder@{get\-Intersection\-With\-Cylinder}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{get\-Intersection\-With\-Cylinder}]{\setlength{\rightskip}{0pt plus 5cm}double Simple\-Helix\-::get\-Intersection\-With\-Cylinder (
\begin{DoxyParamCaption}
\item[{const {\bf L\-C\-Cylinder} \&}]{cylinder, }
\item[{bool \&}]{point\-Exists}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_ae35ba1b8601035e4f613baaee87a5b46}


Pathlength at closest intersection point with cylinder -\/ undefined if point\-Exists==false. 


\begin{DoxyParams}{Parameters}
{\em cylinder} & cylinder object to intersect with \\
\hline
\end{DoxyParams}


Implements {\bf Trajectory} \doxyref{}{p.}{classTrajectory_ab227f74a07f49270fe57e1831b9eb260}.



References L\-C\-Cylinder\-::distance(), L\-C\-Line3\-D\-::distance(), L\-C\-Cylinder\-::end\-Point(), get\-Position(), get\-Radius(), L\-C\-Cylinder\-::length(), L\-C\-Line3\-D\-::position(), L\-C\-Line3\-D\-::project\-Point(), L\-C\-Cylinder\-::radius(), and L\-C\-Cylinder\-::start\-Point().

\index{Simple\-Helix@{Simple\-Helix}!get\-Path\-At@{get\-Path\-At}}
\index{get\-Path\-At@{get\-Path\-At}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{get\-Path\-At}]{\setlength{\rightskip}{0pt plus 5cm}double Simple\-Helix\-::get\-Path\-At (
\begin{DoxyParamCaption}
\item[{const L\-C\-Vector3\-D}]{position}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_ad46c809ed47f2c8c31dbac5c7d42c4e3}


Pathlength at point on trajectory closest to given position. 

In order to get the distance use for example\-: \par
 L\-C\-Vector3\-D pt = t.\-get\-Position( t.\-get\-Path\-At\-Closest\-Point( p ) ) ; \par
 double d = L\-C\-Vector3\-D( pt -\/ p ).mag() ; \par
 \paragraph*{int n\-Steps = 100;}

Implements {\bf Trajectory} \doxyref{}{p.}{classTrajectory_a8cd9ef6888429a89e6791d84af1d69cc}.



References get\-Position().

\index{Simple\-Helix@{Simple\-Helix}!get\-Position@{get\-Position}}
\index{get\-Position@{get\-Position}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{get\-Position}]{\setlength{\rightskip}{0pt plus 5cm}L\-C\-Vector3\-D Simple\-Helix\-::get\-Position (
\begin{DoxyParamCaption}
\item[{double}]{s, }
\item[{L\-C\-Error\-Matrix $\ast$}]{errors = {\ttfamily 0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_acf8df6e78bc6bfcffa84284757bd4cc2}


Position at path length s -\/ s==0 corresponds to P.\-C.\-A to the origin. 


\begin{DoxyParams}{Parameters}
{\em s} & path length \\
\hline
{\em errors} & return argument -\/ not computed if N\-U\-L\-L \\
\hline
\end{DoxyParams}


Implements {\bf Trajectory} \doxyref{}{p.}{classTrajectory_a442f6abacb3355a72a86b96feac328c1}.



Referenced by get\-Intersection\-With\-Cylinder(), get\-Intersection\-With\-Plane(), and get\-Path\-At().

\index{Simple\-Helix@{Simple\-Helix}!set\-Start@{set\-Start}}
\index{set\-Start@{set\-Start}!SimpleHelix@{Simple\-Helix}}
\subsubsection[{set\-Start}]{\setlength{\rightskip}{0pt plus 5cm}bool Simple\-Helix\-::set\-Start (
\begin{DoxyParamCaption}
\item[{double}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classSimpleHelix_ab1cbe01ed8604de2eb110b0d118aa208}


Set pathlength at the start and end point of the trajectory. 


\begin{DoxyParams}{Parameters}
{\em start} & pathlength of start point \\
\hline
{\em end} & pathlength of end point \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Simple\-Helix.\-h\item 
Simple\-Helix.\-cc\end{DoxyCompactItemize}
