<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{marlintpc\-:\-:Hit\-Track\-Finder\-Topo\-Processor Class Reference}
\label{classmarlintpc_1_1HitTrackFinderTopoProcessor}\index{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor@{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor}}


The \doxyref{Hit\-Track\-Finder\-Topo\-Processor}{p.}{classmarlintpc_1_1HitTrackFinderTopoProcessor} searches for hits and groups contiguous areas to track candidates.  




{\ttfamily \#include $&lt;$Hit\-Track\-Finder\-Topo\-Processor.\-h$&gt;$}

Inheritance diagram for marlintpc\-:\-:Hit\-Track\-Finder\-Topo\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1HitTrackFinderTopoProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_abee299d845198d1d718b08fd85affec0}

\item 
{\bf Hit\-Track\-Finder\-Topo\-Processor} ()
\item 
virtual void {\bf init} ()
\begin{DoxyCompactList}\small\item\em Called at the begin of the job before anything is read. \end{DoxyCompactList}\item 
virtual void {\bf process\-Run\-Header} (lcio\-::\-L\-C\-Run\-Header $\ast$run)\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_a2217e412eaf3faa94908cc14e8690f9e}

\begin{DoxyCompactList}\small\item\em Called for every run. \end{DoxyCompactList}\item 
virtual void {\bf process\-Event} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_aa734a1a8c7dca9925af3a857e9e44125}

\begin{DoxyCompactList}\small\item\em Called for every event -\/ the working horse. \end{DoxyCompactList}\item 
virtual void {\bfseries check} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_a8669e9cd26d899e050d8198703a3fc4d}

\item 
virtual void {\bf end} ()\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_a7fc2f741c0898bc3c177dfaf557575d6}

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
The \doxyref{Hit\-Track\-Finder\-Topo\-Processor}{p.}{classmarlintpc_1_1HitTrackFinderTopoProcessor} searches for hits and groups contiguous areas to track candidates. 

Using Pad\-Row\-Layout2\-D from G\-E\-A\-R (Rectangular\-Pad\-Row\-Layout or Fixed\-Pad\-Size\-Disk\-Layout) the agorithm searches for contiguous areas. Contiguous pulses in one pad row are grouped as hit candidates, then the hit coordinates are calculated using the centre of gravity method. The hits in one contiguous area are filled into a track candidate. \begin{DoxyAttention}{Attention}
This processor only performs the search. The tracks are not seeded, i. e. the track paramaters of the track candidates are not set. They are just containers to hold the hits belonging to one track.
\end{DoxyAttention}
If Marlin\-T\-P\-C is compiled with the \$\-M\-A\-R\-L\-I\-N\-\_\-\-D\-E\-B\-U\-G option there is a lot of debug output. Use the steering file to reduce it / switch it off.

\begin{DoxyAuthor}{Author}
Martin Killenberg, University of Bonn
\end{DoxyAuthor}
\subparagraph*{Input -\/ Prerequisites}

\begin{DoxyItemize}
\item A Collection of Tracker\-Pulses \item G\-E\-A\-R T\-P\-C\-Parameters. A z\-Anode user parameter should be set to get correct values. The max\-Drift\-Length will be used as a fallback if not, but this might not be accurate. \item \doxyref{tpcconddata\-::\-T\-P\-C\-Conditions}{p.}{classtpcconddata_1_1TPCConditions} for the drift velicity (optionally provided as processor parameter) \begin{DoxyRefDesc}{Todo}
\item[{\bf Todo}]Handling of dead and noisy channels. 

Improve z cut. Currently it does not use topological information which can cause problems with curlers.\end{DoxyRefDesc}
\end{DoxyItemize}
\subparagraph*{Output}

\begin{DoxyItemize}
\item Collection of Hits \item Collection of track candidates\end{DoxyItemize}

\begin{DoxyParams}{Parameters}
{\em Input\-Tracker\-Pulses} &amp; Name of input Tracker\-Pulses collection (default\-: T\-P\-C\-Pulses) \\
\hline
{\em Output\-Tracker\-Hits} &amp; Name of output Tracker\-Hits collection (default\-: T\-P\-C\-Hits) \\
\hline
{\em Output\-Track\-Candidates} &amp; Name of output Tracks collection (default\-: T\-P\-C\-Track\-Candidates) \\
\hline
{\em Input\-T\-P\-C\-Conditions} &amp; {\ttfamily O\-P\-T\-I\-O\-N\-A\-L\-:} Name of the input collection containing the T\-P\-C conditions data (default\-: tpcconddata\-::\-T\-P\-C\-Conditions\-::get\-Default\-Col\-Name() ) \\
\hline
{\em Set\-Output\-Hits\-Transient} &amp; If not 0 the output collection is set transient (default\-: 0) \\
\hline
{\em Set\-Output\-Track\-Candidates\-Transient} &amp; If not 0 the output collection is set transient (default\-: 0) \\
\hline
{\em Max\-Empty\-Pads} &amp; Maximum number of consecuitve empty pads in cluster (default\-: 1) \\
\hline
{\em Min\-Hit\-Size} &amp; Minimum size of hit / Minimum number of Pads (default\-: 1) \\
\hline
{\em Max\-Time\-Spread} &amp; Maximum time between pulses in a cluster [in ns] (default\-: 200) \\
\hline
{\em V\-Drift\-Override} &amp; {\ttfamily O\-P\-T\-I\-O\-N\-A\-L\-:} Override drift velocity from conditions data or in case there is no conditions data [in mm/us] \\
\hline
{\em Negative\-Z\-Direction} &amp; Set to 1 for the second half T\-P\-C, which look into the negative z direction (default\-: 0)\\
\hline
\end{DoxyParams}
The drift velocity should normally come from the conditions data. This can be overwritten using this optional parameter. Do not set it in case you want to use v\-Drift from the C\-D\-D\-B! 

\subsection{Constructor \&amp; Destructor Documentation}
\index{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor@{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor}!Hit\-Track\-Finder\-Topo\-Processor@{Hit\-Track\-Finder\-Topo\-Processor}}
\index{Hit\-Track\-Finder\-Topo\-Processor@{Hit\-Track\-Finder\-Topo\-Processor}!marlintpc::HitTrackFinderTopoProcessor@{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor}}
\subsubsection[{Hit\-Track\-Finder\-Topo\-Processor}]{\setlength{\rightskip}{0pt plus 5cm}marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor\-::\-Hit\-Track\-Finder\-Topo\-Processor (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_a0ac8bffb832e1e59036f4eee38a8eb2f}
description of the processor which will be displayed in the steering file autometicly generated by marlin (use Marlin\-T\-P\-C -\/x (X\-M\-L-\/format) or Marlin\-T\-P\-X\-C -\/l (text format))

References marlintpc\-::\-Topo\-Finder\-::\-\_\-max\-Empty\-Pads, marlintpc\-::\-Topo\-Finder\-::\-\_\-max\-Skip\-Rows, marlintpc\-::\-Topo\-Finder\-::\-\_\-max\-Time\-Spread, marlintpc\-::\-Topo\-Finder\-::\-\_\-min\-Hit\-Size, marlintpc\-::\-Topo\-Finder\-::\-\_\-min\-Track\-Hits, marlintpc\-::\-Topo\-Finder\-::\-\_\-negative\-Z\-Direction, and marlintpc\-::\-Topo\-Finder\-::\-\_\-v\-Drift.



\subsection{Member Function Documentation}
\index{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor@{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor}!init@{init}}
\index{init@{init}!marlintpc::HitTrackFinderTopoProcessor@{marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::\-Hit\-Track\-Finder\-Topo\-Processor\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classmarlintpc_1_1HitTrackFinderTopoProcessor_a99d96668f7b4220774cb53c845e78911}


Called at the begin of the job before anything is read. 

Use to initialize the processor, e.\-g. book histograms. 

References marlintpc\-::\-Topo\-Finder\-::\-\_\-z\-Anode.



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Hit\-Track\-Finder\-Topo\-Processor.\-h\item 
Hit\-Track\-Finder\-Topo\-Processor.\-cc\end{DoxyCompactItemize}
</pre></body></html>