\section{J\-B\-L\-Helix Class Reference}
\label{classJBLHelix}\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}}


A helix, parametrized by (kappa, phi0, theta, dca, z0)  




{\ttfamily \#include $<$J\-B\-L\-Helix.\-h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf J\-B\-L\-Helix} (double kappa, double phi0, double theta, double dca, double z0)
\begin{DoxyCompactList}\small\item\em Constructor from (kappa, phi0, theta, dca, z0) \end{DoxyCompactList}\item 
{\bf J\-B\-L\-Helix} (double par\-\_\-[$\,$])
\begin{DoxyCompactList}\small\item\em Constructor from an array of values. \end{DoxyCompactList}\item 
{\bf $\sim$\-J\-B\-L\-Helix} ()\label{classJBLHelix_aec93c1c40f765af6f26525c586899516}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
double {\bf get\-Par} (int i)
\begin{DoxyCompactList}\small\item\em Get value of parameter i. \end{DoxyCompactList}\item 
{\bf J\-B\-L\-Helix} \& {\bf set\-Par} (int i, double par\-\_\-)
\begin{DoxyCompactList}\small\item\em Set value of parameter i. \end{DoxyCompactList}\item 
int {\bf get\-Closest\-Approach} (const {\bf J\-B\-L\-Helix} \&h1, double \&s0, double \&s1, double \&s02nd, double \&s12nd) const 
\begin{DoxyCompactList}\small\item\em Get arc lengths for point where another helix comes closest. \end{DoxyCompactList}\item 
double {\bf get\-Closest\-S} (const {\bf Two\-Vector} \&p) const 
\begin{DoxyCompactList}\small\item\em Return s of point on helix where helix comes closest in (x,y) to given point. \end{DoxyCompactList}\item 
double {\bf get\-Closest\-S} (const {\bf Three\-Vector} \&p) const 
\begin{DoxyCompactList}\small\item\em Return s of point on helix where helix comes closest in (x,y) to given point. \end{DoxyCompactList}\item 
void {\bf get\-Trajectory\-Point\-Ex} (double s, {\bf Three\-Vector} \&p) const \label{classJBLHelix_a80b5203bea3692cde951671b37b023db}

\begin{DoxyCompactList}\small\item\em Get point along trajectory into existing 3-\/vector. \end{DoxyCompactList}\item 
{\bf Three\-Vector} {\bf get\-Trajectory\-Point} (double s) const \label{classJBLHelix_af4e3216a15aae1d3c8e8bd220837d412}

\begin{DoxyCompactList}\small\item\em Get point along trajectory. \end{DoxyCompactList}\item 
double {\bf get\-Trajectory\-Z} (double s) const \label{classJBLHelix_ac6f8da38b1e45acc1f19ae271b717a33}

\begin{DoxyCompactList}\small\item\em Get z value along trajectory. \end{DoxyCompactList}\item 
void {\bf get\-Center\-Point\-Ex} ({\bf Two\-Vector} \&p) const \label{classJBLHelix_a163361a3fe260d428980fbe2f7a64eb4}

\begin{DoxyCompactList}\small\item\em Get center point of trajectory into existing 2-\/vector. \end{DoxyCompactList}\item 
{\bf Two\-Vector} {\bf get\-Center\-Point} () const \label{classJBLHelix_ae03d73c47aad4c20cf854456d94364b7}

\begin{DoxyCompactList}\small\item\em Get center point of trajectory. \end{DoxyCompactList}\item 
double {\bf get\-Normal\-S} (double s) const \label{classJBLHelix_a2da9cd88f7b7209e32aa592f84bb88ae}

\begin{DoxyCompactList}\small\item\em Get smallest s that corresponds to same (x, y) \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A helix, parametrized by (kappa, phi0, theta, dca, z0) 

The main purpose of an \doxyref{J\-B\-L\-Helix}{p.}{classJBLHelix} is that it can be \char`\"{}intersected\char`\"{} with another \doxyref{J\-B\-L\-Helix}{p.}{classJBLHelix} object, giving estimates for arc length values s1 and s2 of the two helices where the two helices intersect each other in r/phi and come closest in z

Parameters\-:
\begin{DoxyItemize}
\item 0\-: kappa (signed)
\item 1\-: phi0
\item 2\-: theta
\item 3\-: dca
\item 4\-: z0 
\end{DoxyItemize}

\subsection{Constructor \& Destructor Documentation}
\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!J\-B\-L\-Helix@{J\-B\-L\-Helix}}
\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{J\-B\-L\-Helix}]{\setlength{\rightskip}{0pt plus 5cm}J\-B\-L\-Helix\-::\-J\-B\-L\-Helix (
\begin{DoxyParamCaption}
\item[{double}]{kappa, }
\item[{double}]{phi0, }
\item[{double}]{theta, }
\item[{double}]{dca, }
\item[{double}]{z0}
\end{DoxyParamCaption}
)}\label{classJBLHelix_acb744b2cf978df8908cd61cfee889a43}


Constructor from (kappa, phi0, theta, dca, z0) 


\begin{DoxyParams}{Parameters}
{\em kappa} & kappa \\
\hline
{\em phi0} & phi0 \\
\hline
{\em theta} & theta \\
\hline
{\em dca} & dca \\
\hline
{\em z0} & z0 \\
\hline
\end{DoxyParams}


References set\-Par().

\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!J\-B\-L\-Helix@{J\-B\-L\-Helix}}
\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{J\-B\-L\-Helix}]{\setlength{\rightskip}{0pt plus 5cm}J\-B\-L\-Helix\-::\-J\-B\-L\-Helix (
\begin{DoxyParamCaption}
\item[{double}]{par\-\_\-[$\,$]}
\end{DoxyParamCaption}
)}\label{classJBLHelix_abe76419bc5c230aafb8aa72506e4866d}


Constructor from an array of values. 


\begin{DoxyParams}{Parameters}
{\em par\-\_\-} & Parameters (kappa, phi0, theta, dca, z0) \\
\hline
\end{DoxyParams}


References set\-Par().



\subsection{Member Function Documentation}
\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!get\-Closest\-Approach@{get\-Closest\-Approach}}
\index{get\-Closest\-Approach@{get\-Closest\-Approach}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{get\-Closest\-Approach}]{\setlength{\rightskip}{0pt plus 5cm}int J\-B\-L\-Helix\-::get\-Closest\-Approach (
\begin{DoxyParamCaption}
\item[{const {\bf J\-B\-L\-Helix} \&}]{h1, }
\item[{double \&}]{s0, }
\item[{double \&}]{s1, }
\item[{double \&}]{s02nd, }
\item[{double \&}]{s12nd}
\end{DoxyParamCaption}
) const}\label{classJBLHelix_a8d1c4f37b57c4647205d8fcab973ce26}


Get arc lengths for point where another helix comes closest. 

This routine intersects the helices in the (x, y) plane, and then returns the arclengths corresponding to the best intersection point, where the helices come closest in z. If the helices don't intersect in (x, y), the point where they come closest in (x,y) is returned.

The return value indicates\-: 1\-: circles touch, just one intersection point 2\-: circles intersect, 2 intersection points 0\-: circles dont intersect, point is best approximation 
\begin{DoxyParams}{Parameters}
{\em h1} & The second helix \\
\hline
{\em s0} & This helix's arc length of the best point \\
\hline
{\em s1} & The 2nd helix's arc length of the best point \\
\hline
{\em s02nd} & This helix's arc length of the 2nd best point \\
\hline
{\em s12nd} & The 2nd helix's arc length of the2nd best point \\
\hline
\end{DoxyParams}


References get\-Center\-Point(), get\-Closest\-S(), get\-Normal\-S(), and get\-Trajectory\-Z().



Referenced by Vertex\-Fit\-Object\-::estimate\-Position().

\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!get\-Closest\-S@{get\-Closest\-S}}
\index{get\-Closest\-S@{get\-Closest\-S}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{get\-Closest\-S}]{\setlength{\rightskip}{0pt plus 5cm}double J\-B\-L\-Helix\-::get\-Closest\-S (
\begin{DoxyParamCaption}
\item[{const {\bf Two\-Vector} \&}]{p}
\end{DoxyParamCaption}
) const}\label{classJBLHelix_a27d961279a37061929f495fcbdff66f6}


Return s of point on helix where helix comes closest in (x,y) to given point. 


\begin{DoxyParams}{Parameters}
{\em p} & The point \\
\hline
\end{DoxyParams}


References get\-Normal\-S().



Referenced by get\-Closest\-Approach(), get\-Closest\-S(), and Track\-Particle\-Fit\-Object\-::set\-Vertex().

\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!get\-Closest\-S@{get\-Closest\-S}}
\index{get\-Closest\-S@{get\-Closest\-S}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{get\-Closest\-S}]{\setlength{\rightskip}{0pt plus 5cm}double J\-B\-L\-Helix\-::get\-Closest\-S (
\begin{DoxyParamCaption}
\item[{const {\bf Three\-Vector} \&}]{p}
\end{DoxyParamCaption}
) const}\label{classJBLHelix_ab4852452717c55587693f11c84320501}


Return s of point on helix where helix comes closest in (x,y) to given point. 


\begin{DoxyParams}{Parameters}
{\em p} & The point \\
\hline
\end{DoxyParams}


References get\-Closest\-S().

\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!get\-Par@{get\-Par}}
\index{get\-Par@{get\-Par}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{get\-Par}]{\setlength{\rightskip}{0pt plus 5cm}double J\-B\-L\-Helix\-::get\-Par (
\begin{DoxyParamCaption}
\item[{int}]{i}
\end{DoxyParamCaption}
)}\label{classJBLHelix_aa96d6467ca36b38dd51759fc1a8a80c9}


Get value of parameter i. 


\begin{DoxyParams}{Parameters}
{\em i} & Parameter number i (i=0...4) \\
\hline
\end{DoxyParams}
\index{J\-B\-L\-Helix@{J\-B\-L\-Helix}!set\-Par@{set\-Par}}
\index{set\-Par@{set\-Par}!JBLHelix@{J\-B\-L\-Helix}}
\subsubsection[{set\-Par}]{\setlength{\rightskip}{0pt plus 5cm}{\bf J\-B\-L\-Helix} \& J\-B\-L\-Helix\-::set\-Par (
\begin{DoxyParamCaption}
\item[{int}]{i, }
\item[{double}]{par\-\_\-}
\end{DoxyParamCaption}
)}\label{classJBLHelix_af43b9766f49ee02c244aab4f2ce81c74}


Set value of parameter i. 


\begin{DoxyParams}{Parameters}
{\em i} & Parameter number i (i=0...4) \\
\hline
{\em par\-\_\-} & New parameter value \\
\hline
\end{DoxyParams}


Referenced by J\-B\-L\-Helix().



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