<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{marlintpc\-:\-:Kal\-Tracking\-Helix Class Reference}
\label{classmarlintpc_1_1KalTrackingHelix}\index{marlintpc\-::\-Kal\-Tracking\-Helix@{marlintpc\-::\-Kal\-Tracking\-Helix}}


This is the helix track class, which inherits from \doxyref{Kal\-Tracking\-Template}{p.}{classmarlintpc_1_1KalTrackingTemplate} and T\-Kal\-Track.  




{\ttfamily \#include $&lt;$Kal\-Tracking\-Helix.\-h$&gt;$}

Inheritance diagram for marlintpc\-:\-:Kal\-Tracking\-Helix\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classmarlintpc_1_1KalTrackingHelix}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bfseries Kal\-Tracking\-Helix} (const gear\-::\-Gear\-Mgr \&amp;gear\-Mgr, int min\-Track\-Hits, int max\-Skip\-Rows, double max\-Delta\-Chi2, int hit\-Distance\-Factor, int hit\-Starting\-Mode, double v\-Drift, std\-::string modules\-Not\-Used)\label{classmarlintpc_1_1KalTrackingHelix_ad2372e3b31b1e9059e3d349a84b6be46}

\item 
int {\bf get\-Type} ()\label{classmarlintpc_1_1KalTrackingHelix_ae9d5ce9cbd67485d8b3c6a9e74f7f615}

\begin{DoxyCompactList}\small\item\em Get track type\-: helix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
bool {\bf do\-Add\-And\-Filter} (T\-Kal\-Track $\ast$track, {\bf Module\-Row\-Hit} hit)\label{classmarlintpc_1_1KalTrackingHelix_a861f388a9f98e190b0c69a236ec4c476}

\begin{DoxyCompactList}\small\item\em Add a new site to track and update track parameters. \end{DoxyCompactList}\item 
virtual bool {\bf search\-Track} ({\bf Module\-Row\-Hit} hit)
\begin{DoxyCompactList}\small\item\em Create a track candidate by making a Kal\-Hit from the \doxyref{Module\-Row\-Hit}{p.}{structmarlintpc_1_1ModuleRowHit} and creating a Track\-Site from it. \end{DoxyCompactList}\item 
virtual T\-Matrix\-D {\bf calculate\-Start\-Helix} ({\bf Module\-Row\-Hit} const \&amp;hit1, {\bf Module\-Row\-Hit} const \&amp;hit2, {\bf Module\-Row\-Hit} const \&amp;hit3)\label{classmarlintpc_1_1KalTrackingHelix_ac7e08e4c92f79c5d0129d19e35754c2f}

\begin{DoxyCompactList}\small\item\em Calculate the initial track state starting from three hits. \end{DoxyCompactList}\item 
virtual void {\bf print\-State\-Vector} ()\label{classmarlintpc_1_1KalTrackingHelix_a07fae1ffef29f1b2fe4c9e45ddfc3522}

\begin{DoxyCompactList}\small\item\em Print track parameters. \end{DoxyCompactList}\item 
virtual void {\bf set\-L\-C\-I\-O\-Track\-Parameters} (I\-M\-P\-L\-::\-Track\-Impl $\ast$trk)
\begin{DoxyCompactList}\small\item\em Fill the track state (incl. \end{DoxyCompactList}\item 
virtual double {\bf calculate\-Delta\-Chi2} (T\-Kal\-Track $\ast$track\-Candidate)\label{classmarlintpc_1_1KalTrackingHelix_a6ad8e855731324135fcf504e9051c44a}

\begin{DoxyCompactList}\small\item\em Get the delta\-Chi2 from the track candidate. \end{DoxyCompactList}\item 
virtual Intersection {\bf extrapolate\-Into\-Next\-Layer} (int target\-Distance, bool use\-Far\-Hit)
\begin{DoxyCompactList}\small\item\em Use the current track state of the container\-Track to extrapolate into the next layer. \end{DoxyCompactList}\item 
virtual const \\*
kaldet\-::\-Gear\-T\-P\-C\-Meas\-Layer $\ast$ {\bfseries extrapolate\-Into\-Next\-Layer} (int target\-Distance)\label{classmarlintpc_1_1KalTrackingHelix_acad714c9d8f0423aad483a8fff59914c}

\item 
virtual gear\-::\-Vector2\-D {\bfseries get\-Nearest\-Point\-In\-Next\-Layer} ({\bf Module\-Row\-Hit} first\-Hit)\label{classmarlintpc_1_1KalTrackingHelix_afc215f68f4b99094fb3fb40ae7edc98a}

\item 
virtual double {\bfseries get\-Track\-Tangent\-And\-Layer\-Angle} (T\-Kal\-Track $\ast$track)\label{classmarlintpc_1_1KalTrackingHelix_a83826dfe40057e9371d0009251d14c86}

\item 
virtual T\-Kal\-Track\-Site $\ast$ {\bfseries create\-Initial\-Site} ({\bf Module\-Row\-Hit} \&amp;mrh1, {\bf Module\-Row\-Hit} \&amp;mrh2, {\bf Module\-Row\-Hit} \&amp;mrh3)\label{classmarlintpc_1_1KalTrackingHelix_a5d53199e33a65f81d6df9ad0883f8e8f}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
static double {\bfseries to\-Base\-Range} (double phi)\label{classmarlintpc_1_1KalTrackingHelix_a062a9573d8f8bd1bf7cf1323d77c2c74}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class {\bfseries Kal\-Tracking\-Helix\-Tester}\label{classmarlintpc_1_1KalTrackingHelix_ae7d0a091e27dea6d7668494595e2689c}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
This is the helix track class, which inherits from \doxyref{Kal\-Tracking\-Template}{p.}{classmarlintpc_1_1KalTrackingTemplate} and T\-Kal\-Track. 

Kalman filter algorithm comes from T\-Kal\-Track which is a class in Kal\-Test package.

\begin{DoxyAuthor}{Author}
Bo Li, Tsinghua University 

Keisuke Fujii, K\-E\-K 
\end{DoxyAuthor}


\subsection{Member Function Documentation}
\index{marlintpc\-::\-Kal\-Tracking\-Helix@{marlintpc\-::\-Kal\-Tracking\-Helix}!extrapolate\-Into\-Next\-Layer@{extrapolate\-Into\-Next\-Layer}}
\index{extrapolate\-Into\-Next\-Layer@{extrapolate\-Into\-Next\-Layer}!marlintpc::KalTrackingHelix@{marlintpc\-::\-Kal\-Tracking\-Helix}}
\subsubsection[{extrapolate\-Into\-Next\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}virtual Intersection marlintpc\-::\-Kal\-Tracking\-Helix\-::extrapolate\-Into\-Next\-Layer (
\begin{DoxyParamCaption}
\item[{int}]{target\-Distance, }
\item[{bool}]{use\-Far\-Hit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}\label{classmarlintpc_1_1KalTrackingHelix_a93442a29f8cc86d3570a57ba52c42c47}


Use the current track state of the container\-Track to extrapolate into the next layer. 

The distance can be positive or negative, depending if we move inwards or outwards, or 0 to get another intersection on the same layer. 

Implements {\bf marlintpc\-::\-Kal\-Tracking\-Template$&lt;$ T\-Kal\-Track $&gt;$} \doxyref{}{p.}{classmarlintpc_1_1KalTrackingTemplate_aeb2b26641e73db607c82c0d4d1958c31}.

\index{marlintpc\-::\-Kal\-Tracking\-Helix@{marlintpc\-::\-Kal\-Tracking\-Helix}!search\-Track@{search\-Track}}
\index{search\-Track@{search\-Track}!marlintpc::KalTrackingHelix@{marlintpc\-::\-Kal\-Tracking\-Helix}}
\subsubsection[{search\-Track}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool marlintpc\-::\-Kal\-Tracking\-Helix\-::search\-Track (
\begin{DoxyParamCaption}
\item[{{\bf Module\-Row\-Hit}}]{hit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}\label{classmarlintpc_1_1KalTrackingHelix_a0ff6ba3adea81b3ff3ebaa4de68a34ab}


Create a track candidate by making a Kal\-Hit from the \doxyref{Module\-Row\-Hit}{p.}{structmarlintpc_1_1ModuleRowHit} and creating a Track\-Site from it. 

Afterwards it copies the \-\_\-kal\-Track of this class and adds and filters with the new site. It also hands over the ownership of the new track, so don't forget to delete it. Attention\-: The new track is not the owner of the sites, as they belong to the original \-\_\-kal\-Track, except for the newly deleted site. Before deleting the candidate do not forget to delete the last added site on the track!

If the add and filter fails you get a 0-\/pointer;Search track starting from hit 

Implements {\bf marlintpc\-::\-Kal\-Tracking\-Template$&lt;$ T\-Kal\-Track $&gt;$} \doxyref{}{p.}{classmarlintpc_1_1KalTrackingTemplate_a721a4abc63bda1d4b8bf59d79295d317}.

\index{marlintpc\-::\-Kal\-Tracking\-Helix@{marlintpc\-::\-Kal\-Tracking\-Helix}!set\-L\-C\-I\-O\-Track\-Parameters@{set\-L\-C\-I\-O\-Track\-Parameters}}
\index{set\-L\-C\-I\-O\-Track\-Parameters@{set\-L\-C\-I\-O\-Track\-Parameters}!marlintpc::KalTrackingHelix@{marlintpc\-::\-Kal\-Tracking\-Helix}}
\subsubsection[{set\-L\-C\-I\-O\-Track\-Parameters}]{\setlength{\rightskip}{0pt plus 5cm}virtual void marlintpc\-::\-Kal\-Tracking\-Helix\-::set\-L\-C\-I\-O\-Track\-Parameters (
\begin{DoxyParamCaption}
\item[{I\-M\-P\-L\-::\-Track\-Impl $\ast$}]{trk}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}\label{classmarlintpc_1_1KalTrackingHelix_a83aa8c1a0a0bfc51ba1424e63dce48e8}


Fill the track state (incl. 

cov matrix) at the beginning (4th hit) of the track into the given L\-C\-I\-O track. Smoothes back to the 4th hit and returns that state. 

Implements {\bf marlintpc\-::\-Kal\-Tracking\-Template$&lt;$ T\-Kal\-Track $&gt;$} \doxyref{}{p.}{classmarlintpc_1_1KalTrackingTemplate}.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Kal\-Tracking\-Helix.\-h\end{DoxyCompactItemize}
</pre></body></html>