\section{marlintpc\-:\-:Simple\-Track\-Seeder\-Processor Class Reference}
\label{classmarlintpc_1_1SimpleTrackSeederProcessor}\index{marlintpc\-::\-Simple\-Track\-Seeder\-Processor@{marlintpc\-::\-Simple\-Track\-Seeder\-Processor}}


\doxyref{Simple\-Track\-Seeder\-Processor}{p.}{classmarlintpc_1_1SimpleTrackSeederProcessor} takes the Tracker\-Hits of each track and calculates initial track parameters to have a seed for fitting algorithms.  




{\ttfamily \#include $<$Simple\-Track\-Seeder\-Processor.\-h$>$}

Inheritance diagram for marlintpc\-:\-:Simple\-Track\-Seeder\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1SimpleTrackSeederProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf Simple\-Track\-Seeder\-Processor} ()\label{classmarlintpc_1_1SimpleTrackSeederProcessor_a8c4d9e2790856c6a281cafc7241f0d2d}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
{\bf $\sim$\-Simple\-Track\-Seeder\-Processor} ()\label{classmarlintpc_1_1SimpleTrackSeederProcessor_aead7520e22e0b0e2c5c1ade3c413b9fd}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
Processor $\ast$ {\bf new\-Processor} ()\label{classmarlintpc_1_1SimpleTrackSeederProcessor_af49d224d08d138c840a6e483a5505491}

\begin{DoxyCompactList}\small\item\em Return a new instance of this processor. \end{DoxyCompactList}\item 
void {\bf init} ()\label{classmarlintpc_1_1SimpleTrackSeederProcessor_af05574399afdc1815dd34619523525f3}

\begin{DoxyCompactList}\small\item\em Called at the begin of the job before anything is read. \end{DoxyCompactList}\item 
void {\bf process\-Run\-Header} (lcio\-::\-L\-C\-Run\-Header $\ast$run)\label{classmarlintpc_1_1SimpleTrackSeederProcessor_a94edd6e5d146076330d0c1af44c9c846}

\begin{DoxyCompactList}\small\item\em Called once per run to process the event's header. \end{DoxyCompactList}\item 
virtual void {\bf process\-Event} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1SimpleTrackSeederProcessor_a6916711a614d5da2ac8c11b48071f3f8}

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

\begin{DoxyCompactList}\small\item\em Called for every event -\/ right after \doxyref{process\-Event()}{p.}{classmarlintpc_1_1SimpleTrackSeederProcessor_a6916711a614d5da2ac8c11b48071f3f8} has been called for all processors. \end{DoxyCompactList}\item 
virtual void {\bf end} ()\label{classmarlintpc_1_1SimpleTrackSeederProcessor_a8c4e44731205bd6be66632159d721e61}

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up in the inverse order of the \doxyref{init()}{p.}{classmarlintpc_1_1SimpleTrackSeederProcessor_af05574399afdc1815dd34619523525f3} method so that resources allocated in the first processor also will be available for all following processors. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\doxyref{Simple\-Track\-Seeder\-Processor}{p.}{classmarlintpc_1_1SimpleTrackSeederProcessor} takes the Tracker\-Hits of each track and calculates initial track parameters to have a seed for fitting algorithms. 

\begin{DoxyAuthor}{Author}
M. Killenberg(\-University of Bonn)
\end{DoxyAuthor}
Based on the disk layout algorithm by \begin{DoxyAuthor}{Author}
J. Abernathy (U\-Vic)
\end{DoxyAuthor}
\subparagraph*{Input -\/ Prerequisites}

\begin{DoxyItemize}
\item A collection of track candidates (lcio\-::\-Tracks) containing the Tracker\-Hits from which the seed parameters are calculated.\par
 Note\-: The L\-C\-I\-O\-::\-T\-R\-B\-I\-T\-\_\-\-H\-I\-T\-S flag has to be set when this collection is created so the hits are stored in the track.\end{DoxyItemize}
\subparagraph*{Output}

\begin{DoxyItemize}
\item Collection of seed tracks\end{DoxyItemize}

\begin{DoxyParams}{Parameters}
{\em Input\-Track\-Candidates} & The the name of the input collection of track candidates (default\-: T\-P\-C\-Track\-Candidates) \\
\hline
{\em Output\-Seed\-Tracks} & The name of the collection the seed tracks be stored under (default\-: T\-P\-C\-Seed\-Tracks) \\
\hline
{\em Set\-Output\-Transient} & If not 0 the output collection is set transient (default\-: 0)\\
\hline
\end{DoxyParams}
\subparagraph*{How the algorithm works\-:}


\begin{DoxyItemize}
\item xy-\/plane\-: The hits are sorted in y. The first, the last and the point in the middle of this list are taken to calculate the curvature Omega, d\-\_\-0 and phi. The reference point is the origin.
\item sz-\/plane\-: Now that the parameters in the xy plane are known on can calculate the arc length in the xy-\/plane (s) for each point. Afterwards the points are sorted in z. In principle it would be enough to calculate $\frac{z_2 - z_1}{s_2 - s_1}$, where $s_i$ and $z_i$ are the s and the z of the first and the second point, respectivley (or any other combination with $z_2 > z_2$, preferably $\Delta z$ being as large as possible to have a good lever arm). \par
 Unfortunately this does not work, since s can only be determined modulo $2\pi R$ in the interval $\left[-\pi R..+\pi R\right]$ from the x and y coordinates. To solve this ambiguity one could map z in to the range $\left[-\pi R \tan\lambda .. +\pi R \tan\lambda \right]$.\par
  In the example the point at z=6.\-5 is wrapped from s/z = -\/3.\-24 to +3.04, so the first slope is not correct. This jump can occur at any position in the list, not only between the fist and the second point. It is assumed that two of the first three slopes m1, m2, m3 are correct, while one might be wrong due to such a jump. So if one of the ratios m1/m2, m1/m3 or m2/m3 is near 1 (F\-I\-X\-M\-E 0.\-9..1.\-1?, or within the errors? which errors?) the mean of these two slopes is taken as estimate for $\tan\lambda$. 
\end{DoxyItemize}

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