\section{L\-E\-P\-Tracking\-Processor Class Reference}
\label{classLEPTrackingProcessor}\index{L\-E\-P\-Tracking\-Processor@{L\-E\-P\-Tracking\-Processor}}


Produces Track collection from T\-P\-C Tracker\-Hit collections using L\-E\-P tracking algorithms.  




{\ttfamily \#include $<$L\-E\-P\-Tracking\-Processor.\-h$>$}

Inheritance diagram for L\-E\-P\-Tracking\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classLEPTrackingProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classLEPTrackingProcessor_a2ff3dcf086c1255bf3713dacb8093b21}

\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} (L\-C\-Run\-Header $\ast$run)\label{classLEPTrackingProcessor_a2c974da45f368d01e6ad0b36d77c4910}

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

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

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

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up. \end{DoxyCompactList}\item 
void {\bf select\-T\-P\-C\-Hits} (L\-C\-Collection $\ast$tpc\-T\-Hcol, L\-C\-Collection\-Vec $\ast$remaining\-Col, L\-C\-Collection\-Vec $\ast$cut\-Col, int bin\-Height, int bin\-Width, float zmin=-\/10000., float zmax=+10000.)\label{classLEPTrackingProcessor_a14d6258c6fe23fb331bf203d9f9b0184}

\begin{DoxyCompactList}\small\item\em Used to remove problematic T\-P\-C hits from Curlers. \end{DoxyCompactList}\item 
void {\bf select\-T\-P\-C\-Hits} (L\-C\-Collection $\ast$tpc\-T\-Hcol, L\-C\-Collection $\ast$used\-Col, float zmin=-\/10000., float zmax=+10000.)\label{classLEPTrackingProcessor_af2c477405517345fe3f872f5c4ac9774}

\begin{DoxyCompactList}\small\item\em Used to send all hits to the patrec. \end{DoxyCompactList}\item 
void {\bf Fill\-T\-P\-C\-Hit\-Banks} ()\label{classLEPTrackingProcessor_a9fba313f6caae22085661ef3ecfd8576}

\begin{DoxyCompactList}\small\item\em Used to fill T\-P\-C hits into the hit banks for F77. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\-::string {\bf \-\_\-col\-Name\-T\-P\-C}\label{classLEPTrackingProcessor_a28acd6f8531f5fb03c559e73cc906ec3}

\begin{DoxyCompactList}\small\item\em Input collections name. \end{DoxyCompactList}\item 
std\-::string {\bfseries \-\_\-col\-Name\-V\-T\-X}\label{classLEPTrackingProcessor_ae5421de9ac828f3e0e3cdcbcb994ab7f}

\item 
std\-::string {\bfseries \-\_\-col\-Name\-S\-I\-T}\label{classLEPTrackingProcessor_a832a9dd84a8bb60a7eb977c7b02addcf}

\item 
std\-::string {\bfseries \-\_\-col\-Name\-T\-P\-C\-Tracks}\label{classLEPTrackingProcessor_a32095c0962c8f49f9ac25e73e0c4906c}

\item 
std\-::string {\bfseries \-\_\-col\-Name\-Tracks}\label{classLEPTrackingProcessor_a86e4236742eef9812b01d0acf12da065}

\item 
std\-::string {\bfseries \-\_\-col\-Name\-M\-C\-T\-P\-C\-Tracks\-Rel}\label{classLEPTrackingProcessor_a207d4f1bde82db243153ca0212ad15ea}

\item 
std\-::string {\bfseries \-\_\-col\-Name\-M\-C\-Tracks\-Rel}\label{classLEPTrackingProcessor_a1f19c9dc9f99d3da7a823c5a5289a569}

\item 
std\-::string {\bfseries \-\_\-used\-Col\-Name}\label{classLEPTrackingProcessor_a70de70803b820851f7baf525957344c1}

\item 
std\-::string {\bfseries \-\_\-dropped\-Col\-Name}\label{classLEPTrackingProcessor_a90d2a8e8c835e3c9ee4607c18cb57153}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-tpc\-Track\-Vec}\label{classLEPTrackingProcessor_af8a6d4de7b739df3175b12b534c0b051}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-tpclc\-Rel\-Vec}\label{classLEPTrackingProcessor_a56f94d34dc28ca7cd7a8f1e111d3938b}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-used\-Col}\label{classLEPTrackingProcessor_a5b825c5760d1ea6ad24c32e91560494a}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-dropped\-Col}\label{classLEPTrackingProcessor_a86ba54095c7acdb2ce00550bb44c42e1}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-used\-Col\-For\-Output}\label{classLEPTrackingProcessor_a671ec1872f9db28b9ed3d7194e87be65}

\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-dropped\-Col\-For\-Output}\label{classLEPTrackingProcessor_a754f4f5060120ff3a958fbc5e6d941d0}

\item 
int {\bfseries \-\_\-n\-Run}\label{classLEPTrackingProcessor_a0e3a2005301daef92c2ffcb765ed06af}

\item 
int {\bfseries \-\_\-n\-Evt}\label{classLEPTrackingProcessor_ad89f8ea7e8a5a0589113444ee4f30097}

\item 
int {\bfseries \-\_\-bin\-Height}\label{classLEPTrackingProcessor_aa90949281abc09cb731764e4eb41445e}

\item 
int {\bfseries \-\_\-n\-Slices\-In\-Z}\label{classLEPTrackingProcessor_aa6be78fec3591cc25fcc5976fca49542}

\item 
int {\bfseries \-\_\-bin\-Width}\label{classLEPTrackingProcessor_a387f61d3abdb1c82328df8e0f9f3d4ca}

\item 
int {\bfseries \-\_\-multiplicity\-Cut}\label{classLEPTrackingProcessor_af1f5d067efd99c84b99bcf91d1539809}

\item 
int {\bfseries \-\_\-\-Always\-Run\-Curl\-Killer}\label{classLEPTrackingProcessor_acab6b0ef67339645d459d08023f23533}

\item 
std\-::vector$<$ E\-V\-E\-N\-T\-::\-Tracker\-Hit $\ast$ $>$ {\bfseries \-\_\-good\-Hits}\label{classLEPTrackingProcessor_a21711f0fdbf4c846a3a525f1f7e6c414}

\item 
std\-::vector$<$ E\-V\-E\-N\-T\-::\-Tracker\-Hit $\ast$ $>$ {\bfseries \-\_\-saved\-Good\-Hits}\label{classLEPTrackingProcessor_a14410c21a0dad9ffb89ddcd285cb35c1}

\item 
int {\bfseries \-\_\-histograms}\label{classLEPTrackingProcessor_a2b249f3ae475a316ce11072a07df410e}

\item 
T\-H1\-F $\ast$ {\bfseries f\-T\-P\-C\-R}\label{classLEPTrackingProcessor_a7a906e261c01788e3c1da97a8a90087d}

\item 
T\-H1\-F $\ast$ {\bfseries f\-T\-P\-C\-R\-Raw}\label{classLEPTrackingProcessor_aceb3fac2e68688b168abcb6cc5cbb079}

\item 
T\-H1\-F $\ast$ {\bfseries f\-T\-P\-C\-Z}\label{classLEPTrackingProcessor_aff8b3027204b306af758bff77648c9ad}

\item 
T\-H1\-F $\ast$ {\bfseries f\-T\-P\-C\-Z\-Raw}\label{classLEPTrackingProcessor_af5e6483361b569fe567970f22c6d653c}

\item 
T\-H2\-F $\ast$ {\bfseries f\-T\-P\-C\-R\-Z}\label{classLEPTrackingProcessor_a9da1e32ad703acbbbe9714d2e8ee563d}

\item 
T\-H2\-F $\ast$ {\bfseries f\-T\-P\-C\-X\-Y\-Raw}\label{classLEPTrackingProcessor_a1d8c1e626a5242cc5a273bd63152f44e}

\item 
T\-H2\-F $\ast$ {\bfseries f\-T\-P\-C\-X\-Y}\label{classLEPTrackingProcessor_af92cc0482e887d27a2ba08d083998ef7}

\item 
T\-H2\-F $\ast$ {\bfseries f\-T\-P\-C\-R\-Z\-Raw}\label{classLEPTrackingProcessor_a8a23b991931b8e564a99a62bbe2371a3}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Produces Track collection from T\-P\-C Tracker\-Hit collections using L\-E\-P tracking algorithms. 

The Geometric information via G\-E\-A\-R. The f77 tracking code previously relied on Z\-E\-B\-R\-A banks, these have been replace by C++ structures implemented in \doxyref{tkhitbank.\-h}{p.}{tkhitbank_8h_source} etc. There must be instanitated and deleted at the begining and the end of the processor respectively.

Currently only the T\-P\-C patrec and fitting is implemented, though plans to incorporate V\-T\-X hits into Tracks exist.

The name of the T\-P\-C Track collection is specified in the steering file, togeather with the name of the hit collections needed as input.

For the track collection the following applys\-:

The reference point is the Point of Closest Approach.

All parameters are defined there.

Phi is defined between -\/\-P\-I and +\-P\-I

Z0 is the z coordinate of the P\-C\-A in the R-\/\-Phi plane.

For the relations, the weighs are calculated as the percentage of hits that a given M\-C particle contributes to the reconstucted track's hit collection

At present the covariance matrix is not filled.

The L\-E\-P algorithms are taken from Brahms but does not contain the D\-E\-L\-P\-H\-I ambiguity resolver. The track finding is based on 1) S\-U\-B\-R\-O\-U\-T\-I\-N\-E C\-I\-R\-C\-L\-E (N.\-C\-H\-E\-R\-N\-O\-V, G. O\-S\-O\-S\-K\-O\-V ) R\-E\-F\-E\-R\-E\-N\-C\-E\-: C\-O\-M\-P\-U\-T\-E\-R P\-H\-Y\-S\-I\-C\-S C\-O\-M\-M\-U\-N\-I\-C\-A\-T\-I\-O\-N\-S V\-O\-L 33,P329 2) 3-\/\-D\-I\-M\-E\-N\-S\-I\-O\-N\-A\-L I\-T\-E\-R\-A\-C\-T\-I\-O\-N (M\-A\-R\-T\-I\-N P\-O\-P\-P\-E) R\-E\-F\-E\-R\-E\-N\-C\-E\-: A\-L\-E\-P\-H N\-O\-T\-E 87-\/102

The final track fitting is done using a Kalman filter. At present the both the magnetic field and the material desciption of the T\-P\-C is hard coded into the Fortran code and C++ code, and will be improved when G\-E\-A\-R becomes more evolved. \subparagraph*{Input collections and prerequisites}

Processor requires collection of digitized T\-P\-C tracker hits. If such a collections with the user specified names do not exist processor takes no action. Processor still attempts to assign V\-T\-X and S\-I\-T tracker hits to the found T\-P\-C tracks and produce combined Si-\/\-T\-P\-C tracks. Hence, optionally an user can provide the names of the V\-T\-X and S\-I\-T tracker hit collections. A more efficient algorithm of combining information from T\-P\-C and silicon detectors \par
 \subparagraph*{Output}

Processor produces collection of T\-P\-C tracks\par
 
\begin{DoxyParams}{Parameters}
{\em T\-P\-C\-Tracker\-Hit\-Collection\-Name} & Name of the T\-P\-C Tracker\-Hit collection \par
 (default value is T\-P\-C\-Tracker\-Hits) \par
 \\
\hline
{\em V\-T\-X\-Tracker\-Hit\-Collection\-Name} & Name of the V\-T\-X Tracker\-Hit collection \par
 (default value is V\-T\-X\-Tracker\-Hits) \par
 \\
\hline
{\em S\-I\-T\-Tracker\-Hit\-Collection\-Name} & Name of the S\-I\-T Tracker\-Hit collection \par
 (default value is S\-I\-T\-Tracker\-Hits) \par
 \\
\hline
{\em T\-P\-C\-Track\-Collection\-Name} & Name of the output T\-P\-C Track collection \par
 (default value is T\-P\-C\-Tracks) \par
 \\
\hline
{\em Track\-Collection\-Name} & Name of the combined Si-\/\-T\-P\-C Track collection \par
 (default value is Tracks) \par
 \\
\hline
{\em M\-C\-T\-P\-C\-Track\-Rel\-Collection\-Name} & Name of the T\-P\-C Track M\-C Relation collection \par
 (default value is T\-P\-C\-Tracks\-M\-C\-P) \par
 \\
\hline
{\em M\-C\-Track\-Rel\-Collection\-Name} & Name of the Track M\-C Relation collection \par
 (default value is Tracks\-M\-C\-P) \par
 \\
\hline
\end{DoxyParams}
\begin{DoxyAuthor}{Authors}
S. Aplin, D\-E\-S\-Y, A. Raspereza M\-P\-I-\/\-Munich 
\end{DoxyAuthor}


\subsection{Member Function Documentation}
\index{L\-E\-P\-Tracking\-Processor@{L\-E\-P\-Tracking\-Processor}!init@{init}}
\index{init@{init}!LEPTrackingProcessor@{L\-E\-P\-Tracking\-Processor}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}virtual void L\-E\-P\-Tracking\-Processor\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classLEPTrackingProcessor_aa4e7ee91b57e5de0a11d9c6f4225f514}


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

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

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
L\-E\-P\-Tracking\-Processor.\-h\end{DoxyCompactItemize}
