\section{marlintpc\-:\-:rb\-\_\-\-Segment Class Reference}
\label{classmarlintpc_1_1rb__Segment}\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}}


Row based segment.  




{\ttfamily \#include $<$Row\-Triplet\-Based\-Track\-Finder\-Processor.\-h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf rb\-\_\-\-Segment} (double, trp\-List\-Type)
\begin{DoxyCompactList}\small\item\em Construct row based segment from (unused hits of) triplets. \end{DoxyCompactList}\item 
{\bf rb\-\_\-\-Segment} (double, hit\-List\-Type, unsigned int=1)
\begin{DoxyCompactList}\small\item\em Construct row based segment from (unused) hits in list. \end{DoxyCompactList}\item 
{\bf rb\-\_\-\-Segment} (std\-::vector$<$ {\bf rb\-\_\-\-Segment} $\ast$ $>$ segments)
\begin{DoxyCompactList}\small\item\em Construct row based segment from other segments. \end{DoxyCompactList}\item 
double {\bf get\-Bzc} () const \label{classmarlintpc_1_1rb__Segment_ac6dfb739a2c8b7c6a2dec5a7a71c0cd7}

\begin{DoxyCompactList}\small\item\em Get Bz$\ast$c. \end{DoxyCompactList}\item 
int {\bf get\-First\-Row} () const \label{classmarlintpc_1_1rb__Segment_adedee0f97ca49faaf5916eff34df4535}

\begin{DoxyCompactList}\small\item\em Get first row number. \end{DoxyCompactList}\item 
int {\bf get\-Last\-Row} () const \label{classmarlintpc_1_1rb__Segment_a655b1e73ff51b0b5ca49153e5e7f031f}

\begin{DoxyCompactList}\small\item\em Get first last number. \end{DoxyCompactList}\item 
void {\bf get\-Ref\-Point} (double $\ast$) const 
\begin{DoxyCompactList}\small\item\em Get reference point. \end{DoxyCompactList}\item 
int {\bf get\-Ndf} () const \label{classmarlintpc_1_1rb__Segment_aa6656f1e19e90b4d390e195506b7bb53}

\begin{DoxyCompactList}\small\item\em Get number of degrees of freedom (of segment fit). \end{DoxyCompactList}\item 
double {\bf get\-Chi2} () const \label{classmarlintpc_1_1rb__Segment_af739aab9c19bc6c624e33ef4ccfe6d00}

\begin{DoxyCompactList}\small\item\em Get chi2 from segment fit. \end{DoxyCompactList}\item 
void {\bf get\-Par} (double $\ast$) const 
\begin{DoxyCompactList}\small\item\em Get (all five helix) parameters from segment fit. \end{DoxyCompactList}\item 
const hit\-List\-Type \& {\bf get\-Hit\-List} () const \label{classmarlintpc_1_1rb__Segment_a6ccb490038aafa1aad074c101fae4854}

\begin{DoxyCompactList}\small\item\em Get list of hits. \end{DoxyCompactList}\item 
const T\-Vector\-D \& {\bf get\-Par} () const \label{classmarlintpc_1_1rb__Segment_abade380f9e9213fc4e3a15ac107f6772}

\begin{DoxyCompactList}\small\item\em Get parameter vector. \end{DoxyCompactList}\item 
const T\-Matrix\-D\-Sym \& {\bf get\-Cov} () const \label{classmarlintpc_1_1rb__Segment_a1da89048aef2e40ae8db5d99f650e795}

\begin{DoxyCompactList}\small\item\em Get covariance matrix. \end{DoxyCompactList}\item 
bool {\bf match} ({\bf rb\-\_\-\-Segment} $\ast$, const double, const int) const 
\begin{DoxyCompactList}\small\item\em Match segment with other segment. \end{DoxyCompactList}\item 
bool {\bf match} ({\bf rb\-\_\-\-Hit} $\ast$, const double) const 
\begin{DoxyCompactList}\small\item\em Match segment with unused hit. \end{DoxyCompactList}\item 
void {\bf match} (hit\-List\-Type \&, hit\-List\-Type \&, const double) const 
\begin{DoxyCompactList}\small\item\em Match segment with (list of) unused hits. \end{DoxyCompactList}\item 
void {\bf get\-L\-C\-I\-O\-State\-At\-Ref\-Point} (const double $\ast$, T\-Vector\-D \&, T\-Matrix\-D\-Sym \&) const 
\begin{DoxyCompactList}\small\item\em Get segment state at reference point. \end{DoxyCompactList}\item 
void {\bf fill\-Row\-Map} (std\-::map$<$ int, int $>$ \&) const 
\begin{DoxyCompactList}\small\item\em Fill row map. \end{DoxyCompactList}\item 
int {\bf get\-Id} () const \label{classmarlintpc_1_1rb__Segment_a5ab65727401310ccf2cbca6deef4c785}

\begin{DoxyCompactList}\small\item\em Get segment I\-D. \end{DoxyCompactList}\item 
void {\bf set\-Id} (int)
\begin{DoxyCompactList}\small\item\em Set segment I\-D. \end{DoxyCompactList}\item 
void {\bf add\-Hit} ({\bf rb\-\_\-\-Hit} $\ast$)
\begin{DoxyCompactList}\small\item\em Add (unused) hit to segment. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Row based segment. 

Is build from (the unused hits) of matching triplets (from equivalence classes) and fitted in X\-Y and Z\-S (or from other matching segments). 

\subsection{Constructor \& Destructor Documentation}
\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!rb\-\_\-\-Segment@{rb\-\_\-\-Segment}}
\index{rb\-\_\-\-Segment@{rb\-\_\-\-Segment}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{rb\-\_\-\-Segment}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::rb\-\_\-\-Segment\-::rb\-\_\-\-Segment (
\begin{DoxyParamCaption}
\item[{double}]{Bzc, }
\item[{trp\-List\-Type}]{triplets}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__Segment_a4cd4e306528ca105efd970efb747eb6a}


Construct row based segment from (unused hits of) triplets. 

Build and fit segments. Corresponding hits are flagged as used.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em Bzc} & Bz$\ast$c \\
\hline
\mbox{\tt in}  & {\em triplets} & list of triplets \\
\hline
\end{DoxyParams}


References marlintpc\-::rb\-\_\-\-Hit\-::get\-Row(), marlintpc\-::rb\-\_\-\-Hit\-::get\-Used(), and marlintpc\-::rb\-\_\-\-Hit\-::set\-Used().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!rb\-\_\-\-Segment@{rb\-\_\-\-Segment}}
\index{rb\-\_\-\-Segment@{rb\-\_\-\-Segment}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{rb\-\_\-\-Segment}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::rb\-\_\-\-Segment\-::rb\-\_\-\-Segment (
\begin{DoxyParamCaption}
\item[{double}]{Bzc, }
\item[{hit\-List\-Type}]{hits, }
\item[{unsigned int}]{max\-Hits\-Per\-Row = {\ttfamily 1}}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__Segment_abe934135de5799a3b65a17834fe1fdd2}


Construct row based segment from (unused) hits in list. 

Build and fit segments. Corresponding hits are flagged as used.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em Bzc} & Bz$\ast$c \\
\hline
\mbox{\tt in}  & {\em hits} & list of hits \\
\hline
\mbox{\tt in}  & {\em max\-Hits\-Per\-Row} & maximum number of hits per row \\
\hline
\end{DoxyParams}


References marlintpc\-::rb\-\_\-\-Hit\-::get\-Row(), marlintpc\-::rb\-\_\-\-Hit\-::get\-Used(), and marlintpc\-::rb\-\_\-\-Hit\-::set\-Used().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!rb\-\_\-\-Segment@{rb\-\_\-\-Segment}}
\index{rb\-\_\-\-Segment@{rb\-\_\-\-Segment}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{rb\-\_\-\-Segment}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::rb\-\_\-\-Segment\-::rb\-\_\-\-Segment (
\begin{DoxyParamCaption}
\item[{std\-::vector$<$ {\bf rb\-\_\-\-Segment} $\ast$ $>$}]{segments}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__Segment_a79df2800939d2ea6c5ff68917ff51271}


Construct row based segment from other segments. 

Combine segments.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em segments} & list of segments\\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
better do weighted averaging at mid points? 
\end{DoxyRemark}


References marlintpc\-::simple\-Helix\-::get\-State\-At().



\subsection{Member Function Documentation}
\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!add\-Hit@{add\-Hit}}
\index{add\-Hit@{add\-Hit}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{add\-Hit}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::add\-Hit (
\begin{DoxyParamCaption}
\item[{{\bf rb\-\_\-\-Hit} $\ast$}]{hit}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__Segment_a4ff20ef32d87aa20062f7ee1a23840db}


Add (unused) hit to segment. 

Keeping row based ordering of hits. Hit is flagged as used.


\begin{DoxyParams}{Parameters}
{\em hit} & hit to add \\
\hline
\end{DoxyParams}


References marlintpc\-::rb\-\_\-\-Hit\-::get\-Row(), and marlintpc\-::rb\-\_\-\-Hit\-::set\-Used().



Referenced by marlintpc\-::\-Row\-Based\-Fast\-Hough\-Transformation\-Processor\-::process\-Event().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!fill\-Row\-Map@{fill\-Row\-Map}}
\index{fill\-Row\-Map@{fill\-Row\-Map}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{fill\-Row\-Map}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::fill\-Row\-Map (
\begin{DoxyParamCaption}
\item[{std\-::map$<$ int, int $>$ \&}]{row\-Map}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_afab0243ffa2a1937cfd1dddcebcbdf0a}


Fill row map. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em row\-Map} & row map \\
\hline
\end{DoxyParams}


Referenced by marlintpc\-::\-Row\-Based\-Fast\-Hough\-Transformation\-Processor\-::process\-Event().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!get\-L\-C\-I\-O\-State\-At\-Ref\-Point@{get\-L\-C\-I\-O\-State\-At\-Ref\-Point}}
\index{get\-L\-C\-I\-O\-State\-At\-Ref\-Point@{get\-L\-C\-I\-O\-State\-At\-Ref\-Point}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{get\-L\-C\-I\-O\-State\-At\-Ref\-Point}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::get\-L\-C\-I\-O\-State\-At\-Ref\-Point (
\begin{DoxyParamCaption}
\item[{const double $\ast$}]{ref\-Pos, }
\item[{T\-Vector\-D \&}]{new\-Par, }
\item[{T\-Matrix\-D\-Sym \&}]{new\-Cov}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_af51cdda64554912990cedf5f47be207e}


Get segment state at reference point. 

Propagate track state at point and transform from helix to L\-C\-I\-O representation.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ref\-Pos} & reference point (X coordinate) \\
\hline
\mbox{\tt out}  & {\em new\-Par} & parameter vector \\
\hline
\mbox{\tt out}  & {\em new\-Cov} & covariance matrix \\
\hline
\end{DoxyParams}


References get\-Cov(), get\-Par(), get\-Ref\-Point(), marlintpc\-::simple\-Helix\-::get\-State\-At(), and marlintpc\-::simple\-Helix\-::helix\-To\-L\-C\-I\-O\-Jacobian().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!get\-Par@{get\-Par}}
\index{get\-Par@{get\-Par}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{get\-Par}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::get\-Par (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{par}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_af37a5a061e166b1a86f9c0c35e4cda42}


Get (all five helix) parameters from segment fit. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em par} & helix parameter (curvature is zero for Bz$\ast$c = 0.) \\
\hline
\end{DoxyParams}


Referenced by match().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!get\-Ref\-Point@{get\-Ref\-Point}}
\index{get\-Ref\-Point@{get\-Ref\-Point}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{get\-Ref\-Point}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::get\-Ref\-Point (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{position}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_a357084369ec1d11b8f0369450a167995}


Get reference point. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em position} & position of reference point \\
\hline
\end{DoxyParams}


Referenced by get\-L\-C\-I\-O\-State\-At\-Ref\-Point(), and match().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!match@{match}}
\index{match@{match}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{match}]{\setlength{\rightskip}{0pt plus 5cm}bool marlintpc\-::rb\-\_\-\-Segment\-::match (
\begin{DoxyParamCaption}
\item[{{\bf rb\-\_\-\-Segment} $\ast$}]{seg, }
\item[{const double}]{chi2\-Cut, }
\item[{const int}]{trp\-Step\-Size}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_a6ec2f90eca7d4827c98b22826a7daf5b}


Match segment with other segment. 

Compare the (4 (line) or 5 (helix)) track parameters (at the mid point). The segments must not overlap (in rows) and the (row) gap must be smaller than the average length.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em seg} & segment to compare with \\
\hline
\mbox{\tt in}  & {\em chi2\-Cut} & chi2/ndf cut for segment matching \\
\hline
\mbox{\tt in}  & {\em trp\-Step\-Size} & triplet step size (=2) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
matching flag 
\end{DoxyReturn}


References get\-Cov(), get\-First\-Row(), get\-Last\-Row(), get\-Par(), get\-Ref\-Point(), and marlintpc\-::simple\-Helix\-::get\-State\-At().



Referenced by match(), and marlintpc\-::\-Row\-Based\-Fast\-Hough\-Transformation\-Processor\-::process\-Event().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!match@{match}}
\index{match@{match}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{match}]{\setlength{\rightskip}{0pt plus 5cm}bool marlintpc\-::rb\-\_\-\-Segment\-::match (
\begin{DoxyParamCaption}
\item[{{\bf rb\-\_\-\-Hit} $\ast$}]{hit, }
\item[{const double}]{chi2\-Cut}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_a9eae74be73760d811efc9deec117d817}


Match segment with unused hit. 

Compare the (2) positional track parameters at the hit with the hit measurements (are zero there) and errors.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hit} & hit to compare with \\
\hline
\mbox{\tt in}  & {\em chi2\-Cut} & chi2 cut for hit matching \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
matching flag 
\end{DoxyReturn}


References get\-Cov(), marlintpc\-::simple\-Helix\-::get\-Expected\-Plane\-Pos(), get\-Par(), marlintpc\-::rb\-\_\-\-Hit\-::get\-Phi\-Meas(), marlintpc\-::rb\-\_\-\-Hit\-::get\-Pos(), get\-Ref\-Point(), marlintpc\-::simple\-Helix\-::get\-State\-At(), marlintpc\-::rb\-\_\-\-Hit\-::get\-Var\-X\-Y(), and marlintpc\-::rb\-\_\-\-Hit\-::get\-Var\-Z().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!match@{match}}
\index{match@{match}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{match}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::match (
\begin{DoxyParamCaption}
\item[{hit\-List\-Type \&}]{hits, }
\item[{hit\-List\-Type \&}]{matching\-Hits, }
\item[{const double}]{chi2\-Cut}
\end{DoxyParamCaption}
) const}\label{classmarlintpc_1_1rb__Segment_abdd9015d3a66f82cda15d160ecd4e24b}


Match segment with (list of) unused hits. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hits} & hits to compare with \\
\hline
\mbox{\tt in}  & {\em matching\-Hits} & matching hits \\
\hline
\mbox{\tt in}  & {\em chi2\-Cut} & chi2 cut for hit matching \\
\hline
\end{DoxyParams}


References match().

\index{marlintpc\-::rb\-\_\-\-Segment@{marlintpc\-::rb\-\_\-\-Segment}!set\-Id@{set\-Id}}
\index{set\-Id@{set\-Id}!marlintpc::rb_Segment@{marlintpc\-::rb\-\_\-\-Segment}}
\subsubsection[{set\-Id}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::rb\-\_\-\-Segment\-::set\-Id (
\begin{DoxyParamCaption}
\item[{int}]{id}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__Segment_a503038804f21712f2654206843b239c3}


Set segment I\-D. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em id} & I\-D \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Row\-Triplet\-Based\-Track\-Finder\-Processor.\-h\item 
Row\-Triplet\-Based\-Track\-Finder\-Processor.\-cc\end{DoxyCompactItemize}
