\section{marlintpc\-:\-:rb\-\_\-\-Hyper\-Cube Class Reference}
\label{classmarlintpc_1_1rb__HyperCube}\index{marlintpc\-::rb\-\_\-\-Hyper\-Cube@{marlintpc\-::rb\-\_\-\-Hyper\-Cube}}


Row based hypercubes.  




{\ttfamily \#include $<$Row\-Based\-Fast\-Hough\-Transformation\-Processor.\-h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf rb\-\_\-\-Hyper\-Cube} (unsigned int $\ast$, hyper\-Plane\-List\-Type \&, int\-List\-Type \&, unsigned int=0)
\begin{DoxyCompactList}\small\item\em Construct row based hypercube. \end{DoxyCompactList}\item 
void {\bf print} () const \label{classmarlintpc_1_1rb__HyperCube_a79138385c82781dba235139e5672aec1}

\begin{DoxyCompactList}\small\item\em Print hypercube. \end{DoxyCompactList}\item 
hit\-List\-Type {\bf divide} (int, int, int, int, float, float)
\begin{DoxyCompactList}\small\item\em Divide hypercube (recursively). \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Row based hypercubes. 

Has entries with distances and hyperplanes. Subdivided recursively until first track candidate found or maximal (splitting) level reached. 

\subsection{Constructor \& Destructor Documentation}
\index{marlintpc\-::rb\-\_\-\-Hyper\-Cube@{marlintpc\-::rb\-\_\-\-Hyper\-Cube}!rb\-\_\-\-Hyper\-Cube@{rb\-\_\-\-Hyper\-Cube}}
\index{rb\-\_\-\-Hyper\-Cube@{rb\-\_\-\-Hyper\-Cube}!marlintpc::rb_HyperCube@{marlintpc\-::rb\-\_\-\-Hyper\-Cube}}
\subsubsection[{rb\-\_\-\-Hyper\-Cube}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::rb\-\_\-\-Hyper\-Cube\-::rb\-\_\-\-Hyper\-Cube (
\begin{DoxyParamCaption}
\item[{unsigned int $\ast$}]{setup, }
\item[{hyper\-Plane\-List\-Type \&}]{planes, }
\item[{int\-List\-Type \&}]{distances, }
\item[{unsigned int}]{level = {\ttfamily 0}}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__HyperCube_a628a819d703e8741acf194ebf30a9d2f}


Construct row based hypercube. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em setup} & number of parameters per measurement (pad plane, drift time) \\
\hline
\mbox{\tt in}  & {\em planes} & list of hyperplanes (pointer) \\
\hline
\mbox{\tt in}  & {\em distances} & list of distances \\
\hline
\mbox{\tt in}  & {\em level} & level (number of cube splittings) \\
\hline
\end{DoxyParams}


References marlintpc\-::n\-Cube.



\subsection{Member Function Documentation}
\index{marlintpc\-::rb\-\_\-\-Hyper\-Cube@{marlintpc\-::rb\-\_\-\-Hyper\-Cube}!divide@{divide}}
\index{divide@{divide}!marlintpc::rb_HyperCube@{marlintpc\-::rb\-\_\-\-Hyper\-Cube}}
\subsubsection[{divide}]{\setlength{\rightskip}{0pt plus 5cm}hit\-List\-Type marlintpc\-::rb\-\_\-\-Hyper\-Cube\-::divide (
\begin{DoxyParamCaption}
\item[{int}]{max\-Cube, }
\item[{int}]{min\-Rows, }
\item[{int}]{min\-Level, }
\item[{int}]{max\-Level, }
\item[{float}]{eff\-Cut, }
\item[{float}]{pur\-Cut}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1rb__HyperCube_a418cd11ab0985880497180629b796d50}


Divide hypercube (recursively). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em max\-Cube} & maximal number of cubes to check. \\
\hline
\mbox{\tt in}  & {\em min\-Rows} & minimum number of rows in child. \\
\hline
\mbox{\tt in}  & {\em min\-Level} & minimal level (number of splittings) \\
\hline
\mbox{\tt in}  & {\em max\-Level} & maximal level (number of splittings) \\
\hline
\mbox{\tt in}  & {\em eff\-Cut} & efficiency cut (minimal hit density) \\
\hline
\mbox{\tt in}  & {\em pur\-Cut} & purity cut (maximal hit density)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
list of hits for track candidate (from final cube) 
\end{DoxyReturn}

\begin{DoxyItemize}
\item For all child cubes count rows from intersecting hyperplanes.
\item Sort child cubes by (decreasing) number of rows and (increasing) distance spread ($<$d$\ast$$\ast$2$>$).
\item Check (orderd) child cubes
\end{DoxyItemize}
\begin{DoxyEnumerate}
\item Accept cube with proper hit density (and minimum level) as track candidate.
\item Subdivide cube if not reached maximum level. 
\end{DoxyEnumerate}

References divide(), marlintpc\-::rb\-\_\-\-Hyper\-Plane\-::get\-Cut(), marlintpc\-::rb\-\_\-\-Hyper\-Plane\-::get\-Row(), marlintpc\-::rb\-\_\-\-Hyper\-Plane\-::get\-Step(), and marlintpc\-::n\-Cube.



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



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