\section{Silicon\-Tracking\-\_\-\-Marlin\-Trk Class Reference}
\label{classSiliconTracking__MarlinTrk}\index{Silicon\-Tracking\-\_\-\-Marlin\-Trk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}}


=== Silicon Tracking Processor === \par
 Processor performing stand-\/alone pattern recognition in the vertex detector (V\-T\-X), forward tracking disks and S\-I\-T.  




{\ttfamily \#include $<$Silicon\-Tracking\-\_\-\-Marlin\-Trk.\-h$>$}

Inheritance diagram for Silicon\-Tracking\-\_\-\-Marlin\-Trk\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classSiliconTracking__MarlinTrk}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct {\bf compare\-\_\-\-Track\-Extended}
\begin{DoxyCompactList}\small\item\em Compare tracks according to their chi2/ndf. \end{DoxyCompactList}\item 
class {\bf Tracks\-With\-N\-Hits\-Container}
\begin{DoxyCompactList}\small\item\em A helper class to allow good code readability by accessing tracks with N hits. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classSiliconTracking__MarlinTrk_a8484c9e0837768c3a8b055bfcb45a78f}

\item 
virtual void {\bf init} ()\label{classSiliconTracking__MarlinTrk_ac5f30d4e5587ac0a36e60a03cda535d9}

\begin{DoxyCompactList}\small\item\em Initialization. \end{DoxyCompactList}\item 
virtual void {\bf process\-Run\-Header} (L\-C\-Run\-Header $\ast$run)\label{classSiliconTracking__MarlinTrk_ae9197f7974afe86ce380e09bf3f2e917}

\begin{DoxyCompactList}\small\item\em Run header processor. \end{DoxyCompactList}\item 
virtual void {\bf process\-Event} (L\-C\-Event $\ast$evt)\label{classSiliconTracking__MarlinTrk_ae367561768dcb8119dd86066ea9b1d57}

\begin{DoxyCompactList}\small\item\em Event processor. \end{DoxyCompactList}\item 
virtual void {\bfseries check} (L\-C\-Event $\ast$evt)\label{classSiliconTracking__MarlinTrk_ae371463330b315a44a7c93afd612cb3a}

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

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bfseries draw\-Event} ()\label{classSiliconTracking__MarlinTrk_a825e111659e107442f7e680b01b44988}

\item 
L\-C\-Collection $\ast$ {\bf Get\-Collection} (L\-C\-Event $\ast$evt, std\-::string col\-Name)\label{classSiliconTracking__MarlinTrk_a604d4785457bfdb25ed0aaf6b7689cc9}

\begin{DoxyCompactList}\small\item\em helper function to get collection using try catch block \end{DoxyCompactList}\item 
L\-C\-Relation\-Navigator $\ast$ {\bf Get\-Relations} (L\-C\-Event $\ast$evt, std\-::string Rel\-Name)\label{classSiliconTracking__MarlinTrk_addb7e49f0de6d3f7395ddce795eca698}

\begin{DoxyCompactList}\small\item\em helper function to get relations using try catch block \end{DoxyCompactList}\item 
int {\bfseries Initialise\-V\-T\-X} (L\-C\-Event $\ast$evt)\label{classSiliconTracking__MarlinTrk_a5bed58988abf26cb2956ff864a5604ee}

\item 
int {\bfseries Initialise\-F\-T\-D} (L\-C\-Event $\ast$evt)\label{classSiliconTracking__MarlinTrk_a03d0d058de12659235e4e95f76abf3d8}

\item 
void {\bfseries Process\-One\-Sector} (int i\-Sector\-Phi, int i\-Sector\-Theta)\label{classSiliconTracking__MarlinTrk_aa836a096ac06be08046e287b6cc01a4e}

\item 
void {\bfseries Clean\-Up} ()\label{classSiliconTracking__MarlinTrk_a1f3152111e7418d4aabea9e375ea4d23}

\item 
Track\-Extended $\ast$ {\bfseries Test\-Triplet} (Tracker\-Hit\-Extended $\ast$outer\-Hit, Tracker\-Hit\-Extended $\ast$middle\-Hit, Tracker\-Hit\-Extended $\ast$inner\-Hit, Helix\-Class \&helix)\label{classSiliconTracking__MarlinTrk_a796675ec2f125118b31141a668525fc5}

\item 
int {\bf Build\-Track} (Tracker\-Hit\-Extended $\ast$outer\-Hit, Tracker\-Hit\-Extended $\ast$middle\-Hit, Tracker\-Hit\-Extended $\ast$inner\-Hit, Helix\-Class \&helix, int innerlayer, int i\-Phi\-Low, int i\-Phi\-Up, int i\-Theta, int i\-Theta\-Up, Track\-Extended $\ast$track\-A\-R)
\item 
void {\bf Sorting} (Track\-Extended\-Vec \&track\-Vec)
\item 
void {\bf Create\-Track} (Track\-Extended $\ast$track\-A\-R)
\item 
void {\bfseries Attach\-Remaining\-V\-T\-X\-Hits\-Slow} ()\label{classSiliconTracking__MarlinTrk_a3fb3c64ef1feefe1ee987423c3ad9d03}

\item 
void {\bfseries Attach\-Remaining\-F\-T\-D\-Hits\-Slow} ()\label{classSiliconTracking__MarlinTrk_a98fd8516aafd26b0accb4412d14f9b78}

\item 
void {\bfseries Attach\-Remaining\-V\-T\-X\-Hits\-Fast} ()\label{classSiliconTracking__MarlinTrk_a309ee485173eb8379d32ab9158c14d54}

\item 
void {\bfseries Attach\-Remaining\-F\-T\-D\-Hits\-Fast} ()\label{classSiliconTracking__MarlinTrk_a90fecefcf162f3318112832b69644ff3}

\item 
void {\bfseries Tracking\-In\-F\-T\-D} ()\label{classSiliconTracking__MarlinTrk_ad4840f7ee71d3bd0f54be81248fe1131}

\item 
int {\bfseries Build\-Track\-F\-T\-D} (Track\-Extended $\ast$track\-A\-R, int $\ast$n\-L\-R, int i\-S)\label{classSiliconTracking__MarlinTrk_a61ed656619244601c4fb3cc019fb5fa8}

\item 
int {\bfseries Attach\-Hit\-To\-Track} (Track\-Extended $\ast$track\-A\-R, Tracker\-Hit\-Extended $\ast$hit, int iopt)\label{classSiliconTracking__MarlinTrk_a88ee672e6d9838295107eac644b83239}

\item 
void {\bfseries Final\-Refit} (L\-C\-Collection\-Vec $\ast$trk\-\_\-col, L\-C\-Collection\-Vec $\ast$rel\-\_\-col)\label{classSiliconTracking__MarlinTrk_ab23fe6fe7d01a3297a7662dbace242c7}

\item 
int {\bfseries get\-Detector\-I\-D} (Tracker\-Hit $\ast$hit)\label{classSiliconTracking__MarlinTrk_ae8a4e531572ab8c6f6d0fe18d60ff43a}

\item 
int {\bfseries get\-Side\-I\-D} (Tracker\-Hit $\ast$hit)\label{classSiliconTracking__MarlinTrk_adce1e1b234fb987bc94af2931a3bd9c2}

\item 
int {\bfseries get\-Layer\-I\-D} (Tracker\-Hit $\ast$hit)\label{classSiliconTracking__MarlinTrk_a96365c8adba8caf701f9c28a78c3f9ab}

\item 
int {\bfseries get\-Module\-I\-D} (Tracker\-Hit $\ast$hit)\label{classSiliconTracking__MarlinTrk_ae3f4d51fcab0616c8f2f489e243a36de}

\item 
int {\bfseries get\-Sensor\-I\-D} (Tracker\-Hit $\ast$hit)\label{classSiliconTracking__MarlinTrk_a868dd15b65110e9dec840607d43e50ad}

\item 
void {\bfseries setup\-Gear\-Geom} (const gear\-::\-Gear\-Mgr $\ast$gear\-Mgr)\label{classSiliconTracking__MarlinTrk_aac90c90fc915bfd0b5aa0399a6d69723}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
int {\bfseries \-\_\-n\-Run}\label{classSiliconTracking__MarlinTrk_a178e9c53f483158deaddb5db5df7033e}

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

\item 
E\-V\-E\-N\-T\-::\-L\-C\-Event $\ast$ {\bfseries \-\_\-current\-\_\-event}\label{classSiliconTracking__MarlinTrk_a89f9589ee1d5e8b42732e96139196d28}

\item 
int {\bfseries \-\_\-n\-Divisions\-In\-Phi}\label{classSiliconTracking__MarlinTrk_afaafc4989696ee27a287e62551f86498}

\item 
int {\bfseries \-\_\-n\-Divisions\-In\-Theta}\label{classSiliconTracking__MarlinTrk_a50730edc6720454bde88cbf1cedd0b8c}

\item 
int {\bfseries \-\_\-n\-Layers}\label{classSiliconTracking__MarlinTrk_ae0c90d005dd7af04d4f55ff6146908d5}

\item 
Marlin\-Trk\-::\-Helix\-Fit $\ast$ {\bfseries \-\_\-fastfitter}\label{classSiliconTracking__MarlinTrk_ad018173a38ddad6f8afc4eb5a5f0842c}

\item 
Marlin\-Trk\-::\-I\-Marlin\-Trk\-System $\ast$ {\bf \-\_\-trksystem}\label{classSiliconTracking__MarlinTrk_a80a89428e9aa3e998fdea5ce7006dcff}

\begin{DoxyCompactList}\small\item\em pointer to the I\-Marlin\-Trk\-System instance \end{DoxyCompactList}\item 
bool {\bfseries \-\_\-run\-Marlin\-Trk\-Diagnostics}\label{classSiliconTracking__MarlinTrk_ab6f69b7e23fc9c19ded5063e12383179}

\item 
std\-::string {\bfseries \-\_\-\-Marlin\-Trk\-Diagnostics\-Name}\label{classSiliconTracking__MarlinTrk_a26aa6fc20c8083e05c56425deeeb0d75}

\item 
bool {\bfseries \-\_\-\-M\-S\-On}\label{classSiliconTracking__MarlinTrk_aedb79249cfd98fa39799362d93b38c31}

\item 
bool {\bfseries \-\_\-\-Eloss\-On}\label{classSiliconTracking__MarlinTrk_a13811ee9f10abbfb47c10656e99fda3c}

\item 
bool {\bfseries \-\_\-\-Smooth\-On}\label{classSiliconTracking__MarlinTrk_a30e8828dc6a479782f3cc5c75f226992}

\item 
float {\bfseries \-\_\-initial\-Track\-Error\-\_\-d0}\label{classSiliconTracking__MarlinTrk_a6f152158a9ceacef9091ce6173121201}

\item 
float {\bfseries \-\_\-initial\-Track\-Error\-\_\-phi0}\label{classSiliconTracking__MarlinTrk_a047b2e1f58103f79fa4c82ba35ee579c}

\item 
float {\bfseries \-\_\-initial\-Track\-Error\-\_\-omega}\label{classSiliconTracking__MarlinTrk_a643413043e1157cd763a4df97104a0ab}

\item 
float {\bfseries \-\_\-initial\-Track\-Error\-\_\-z0}\label{classSiliconTracking__MarlinTrk_aaef99098385383212a05cc0dae081702}

\item 
float {\bfseries \-\_\-initial\-Track\-Error\-\_\-tan\-L}\label{classSiliconTracking__MarlinTrk_ad6e4950b2d5fb0d153415c0a6e0109c0}

\item 
double {\bfseries \-\_\-max\-Chi2\-Per\-Hit}\label{classSiliconTracking__MarlinTrk_a40264738d9652f7959f28ead9002d80b}

\item 
bool {\bfseries \-\_\-\-Use\-Event\-Display}\label{classSiliconTracking__MarlinTrk_ab5f79686d279b13145976d33a8f897ea}

\item 
int {\bfseries \-\_\-detector\-\_\-model\-\_\-for\-\_\-drawing}\label{classSiliconTracking__MarlinTrk_a38b3cf7f1dbffe16f7b6d693cb7bfe02}

\item 
std\-::vector$<$ int $>$ {\bfseries \-\_\-colours}\label{classSiliconTracking__MarlinTrk_a1468cf4e5846c5f82b58bb57f13f146d}

\item 
float {\bfseries \-\_\-helix\-\_\-max\-\_\-r}\label{classSiliconTracking__MarlinTrk_aeccbaf257538ded41056b23510c9e5d3}

\item 
bool {\bfseries \-\_\-create\-Diagnostics\-Histograms}\label{classSiliconTracking__MarlinTrk_a53307df2bbcd80f624565487332d6793}

\item 
{\bf Diagnostics\-Histograms\-::\-Histograms} $\ast$ {\bfseries \-\_\-histos}\label{classSiliconTracking__MarlinTrk_a09ec3f8151b5bab25cbc33db394b49f9}

\item 
int {\bfseries \-\_\-ntriplets}\label{classSiliconTracking__MarlinTrk_ad9033d174ad13806b3c8ae9d8dc02201}

\item 
int {\bfseries \-\_\-ntriplets\-\_\-good}\label{classSiliconTracking__MarlinTrk_ac1c8668d53b82376ccb38cef4dda2122}

\item 
int {\bfseries \-\_\-ntriplets\-\_\-2\-M\-C\-P}\label{classSiliconTracking__MarlinTrk_adcebec7e67f51508cb9bc34352640b7a}

\item 
int {\bfseries \-\_\-ntriplets\-\_\-3\-M\-C\-P}\label{classSiliconTracking__MarlinTrk_a2b1ee371a472664299b18e7de9658ea6}

\item 
int {\bfseries \-\_\-ntriplets\-\_\-1\-M\-C\-P\-\_\-\-Bad}\label{classSiliconTracking__MarlinTrk_a7bd64d980aca38a36c19051eb8ea52de}

\item 
int {\bfseries \-\_\-ntriplets\-\_\-bad}\label{classSiliconTracking__MarlinTrk_a7ce908d345c75367110472865ca3410c}

\item 
std\-::string {\bf \-\_\-col\-Name\-M\-C\-Particles}\label{classSiliconTracking__MarlinTrk_a960488638333115e5c9d24438ae4fc16}

\begin{DoxyCompactList}\small\item\em input M\-C\-Particle collection and threshold used for Drawing \end{DoxyCompactList}\item 
float {\bfseries \-\_\-\-M\-Cp\-Threshold}\label{classSiliconTracking__MarlinTrk_ab50d37bb17286c48b7b0d5cd798f670a}

\item 
std\-::string {\bfseries \-\_\-\-V\-T\-X\-Hit\-Collection}\label{classSiliconTracking__MarlinTrk_a7b587afc81ac8f1a6b2c390e93cb92e8}

\item 
std\-::string {\bfseries \-\_\-\-F\-T\-D\-Pixel\-Hit\-Collection}\label{classSiliconTracking__MarlinTrk_a586bbbac1bb3e5d45ca25065bc1d77b5}

\item 
std\-::string {\bfseries \-\_\-\-F\-T\-D\-Space\-Point\-Collection}\label{classSiliconTracking__MarlinTrk_ad83586dbe362ba0df781ea857c2c7de9}

\item 
std\-::string {\bfseries \-\_\-\-S\-I\-T\-Hit\-Collection}\label{classSiliconTracking__MarlinTrk_abb9bf40a75580aafa614bcb0004f61db}

\item 
std\-::string {\bfseries \-\_\-si\-Trk\-Collection}\label{classSiliconTracking__MarlinTrk_aa1cacab373fdc71dd27dfb5c732f29ff}

\item 
std\-::vector$<$ L\-C\-Collection $\ast$ $>$ {\bfseries \-\_\-col\-Tracker\-Hits}\label{classSiliconTracking__MarlinTrk_ad4fecba66dd3f49a2b14abb5a508bf37}

\item 
std\-::map$<$ L\-C\-Collection \\*
$\ast$, std\-::string $>$ {\bfseries \-\_\-col\-Names\-Tracker\-Hits}\label{classSiliconTracking__MarlinTrk_a91bf05da090075e6b849cdb9c4ee33d3}

\item 
std\-::vector\\*
$<$ Tracker\-Hit\-Extended\-Vec $>$ {\bfseries \-\_\-sectors}\label{classSiliconTracking__MarlinTrk_abfce5c4d283fc3716247f0de2df350af}

\item 
std\-::vector\\*
$<$ Tracker\-Hit\-Extended\-Vec $>$ {\bfseries \-\_\-sectors\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_a79457901046e2637fbcd1675c66e1aae}

\item 
{\bf Tracks\-With\-N\-Hits\-Container} {\bfseries \-\_\-tracks\-With\-N\-Hits\-Container}\label{classSiliconTracking__MarlinTrk_a8abbb295865267b4ad3cec973fa19c95}

\item 
float {\bfseries \-\_\-b\-Field}\label{classSiliconTracking__MarlinTrk_a42b8c8503c70a91e00af1b7fe7a4a550}

\item 
float {\bfseries \-\_\-chi2\-W\-R\-Phi\-Triplet}\label{classSiliconTracking__MarlinTrk_a5b9cab3516e96be04aa782c3c703eca8}

\item 
float {\bfseries \-\_\-chi2\-W\-R\-Phi\-Quartet}\label{classSiliconTracking__MarlinTrk_a20ae887c72c03fc9f55c0eb0a1a1aff4}

\item 
float {\bfseries \-\_\-chi2\-W\-R\-Phi\-Septet}\label{classSiliconTracking__MarlinTrk_a39d0de1519eb7e89b4bd42be677f1fa1}

\item 
float {\bfseries \-\_\-chi2\-W\-Z\-Triplet}\label{classSiliconTracking__MarlinTrk_a1f44f033cba82c4e6d9f762bdca55e5f}

\item 
float {\bfseries \-\_\-chi2\-W\-Z\-Quartet}\label{classSiliconTracking__MarlinTrk_a8d2200910f8d1d45db22261d1194eb01}

\item 
float {\bfseries \-\_\-chi2\-W\-Z\-Septet}\label{classSiliconTracking__MarlinTrk_a6bbbcebb369c6c5ecc5bc698a7eb7bc9}

\item 
float {\bfseries \-\_\-min\-Dist\-Cut\-Attach}\label{classSiliconTracking__MarlinTrk_a91c43e371be2e6380c30814ce152d162}

\item 
int {\bfseries \-\_\-minimal\-Layer\-To\-Attach}\label{classSiliconTracking__MarlinTrk_a1e212c896214c27882cdaa91acb0d784}

\item 
double {\bfseries \-\_\-d\-Phi}\label{classSiliconTracking__MarlinTrk_a7c43d5a6e62cc7bc1d5b01a3a17e66c2}

\item 
double {\bfseries \-\_\-d\-Theta}\label{classSiliconTracking__MarlinTrk_aa4aee708946c61b6c25016eeac72dfb0}

\item 
double {\bfseries \-\_\-d\-Phi\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_ad01bfea878f4f1a3f6b3353617a5eff4}

\item 
std\-::vector$<$ int $>$ {\bfseries \-\_\-\-Combinations}\label{classSiliconTracking__MarlinTrk_a2e0aa9353e898e2b92e74a5cfb1f43ee}

\item 
std\-::vector$<$ int $>$ {\bfseries \-\_\-\-Combinations\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_af54a3b291ce8aeb62429f00368f95dcf}

\item 
float {\bfseries \-\_\-resolution\-R\-Phi\-V\-T\-X}\label{classSiliconTracking__MarlinTrk_a1f577e8da4d3adebf62055c14e7eecb9}

\item 
float {\bfseries \-\_\-resolution\-Z\-V\-T\-X}\label{classSiliconTracking__MarlinTrk_ae23d9749521f01a92768a63b2d7317ad}

\item 
float {\bfseries \-\_\-resolution\-R\-Phi\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_a631c9ec57e4ca4e6d76435718a96ee81}

\item 
float {\bfseries \-\_\-resolution\-Z\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_a0686477f2f3c94a937b1558d425e4ff1}

\item 
float {\bfseries \-\_\-resolution\-R\-Phi\-S\-I\-T}\label{classSiliconTracking__MarlinTrk_ab6af469b53e2c89b86d8d5312e8e9c79}

\item 
float {\bfseries \-\_\-resolution\-Z\-S\-I\-T}\label{classSiliconTracking__MarlinTrk_a8a9f8a5ec134735a792e9944727d266f}

\item 
float {\bfseries \-\_\-phi\-Cut\-For\-Merging}\label{classSiliconTracking__MarlinTrk_abf43c855eb487638589c25922e796557}

\item 
float {\bfseries \-\_\-tanlambda\-Cut\-For\-Merging}\label{classSiliconTracking__MarlinTrk_a87875b350d6e6a6a6fe7f60f3551c153}

\item 
float {\bfseries \-\_\-angle\-Cut\-For\-Merging}\label{classSiliconTracking__MarlinTrk_ad72d04bcd3f651d8c8c8ffa7fab4e19f}

\item 
int {\bfseries \-\_\-print}\label{classSiliconTracking__MarlinTrk_a34d86961e5ec1f4980d301b06d2e7e96}

\item 
int {\bfseries \-\_\-check\-For\-Delta}\label{classSiliconTracking__MarlinTrk_a2ade1f3999ba224b7577c35c96fa37ac}

\item 
float {\bfseries \-\_\-min\-Dist\-To\-Delta}\label{classSiliconTracking__MarlinTrk_ae5d7950b256b27f0700b557ea86bdcb3}

\item 
float {\bfseries \-\_\-dist\-R\-Phi}\label{classSiliconTracking__MarlinTrk_aab1ba58ceeba25a1a26740edae140fc1}

\item 
float {\bfseries \-\_\-dist\-Z}\label{classSiliconTracking__MarlinTrk_a91af1946e118fc613ca7ea7d85a34896}

\item 
float {\bfseries \-\_\-chi2\-Fit\-Cut}\label{classSiliconTracking__MarlinTrk_ac49238a2ae99c4473313371b38a7e03e}

\item 
Track\-Extended\-Vec {\bfseries \-\_\-track\-Impl\-Vec}\label{classSiliconTracking__MarlinTrk_a7d0e0b464fd28a3a88ddcb77fbb56e0d}

\item 
float {\bfseries \-\_\-cut\-On\-D0}\label{classSiliconTracking__MarlinTrk_a510c3bfaf1895a61ea8dd84c4e4dc8bb}

\item 
float {\bfseries \-\_\-cut\-On\-Z0}\label{classSiliconTracking__MarlinTrk_a42a83aeecc2f606b7dc6f809ea359c41}

\item 
float {\bfseries \-\_\-cut\-On\-Omega}\label{classSiliconTracking__MarlinTrk_a139b17368fa7c8bba4191526286f7936}

\item 
float {\bfseries \-\_\-cut\-On\-Pt}\label{classSiliconTracking__MarlinTrk_ab62c0aae9e93ce313b5f9dfeb7869883}

\item 
int {\bfseries \-\_\-minimal\-Hits}\label{classSiliconTracking__MarlinTrk_a5d856e4f32f25ef901fa9c7d60783149}

\item 
int {\bfseries \-\_\-n\-Hits\-Chi2}\label{classSiliconTracking__MarlinTrk_ae4f1ad01b16f11903d9b22b1195bb990}

\item 
int {\bfseries \-\_\-attach\-Fast}\label{classSiliconTracking__MarlinTrk_ad72d0a20d10605ab12b6f350f3803713}

\item 
int {\bfseries \-\_\-max\-\_\-hits\-\_\-per\-\_\-sector}\label{classSiliconTracking__MarlinTrk_a0ab35ccf341a7ba932236601b21bab15}

\item 
int {\bfseries \-\_\-n\-Total\-V\-T\-X\-Hits}\label{classSiliconTracking__MarlinTrk_aca2113e99994ec83ee968d42f9b77950}

\item 
int {\bfseries \-\_\-n\-Total\-F\-T\-D\-Hits}\label{classSiliconTracking__MarlinTrk_a17f4e29322516297d431fc16607b1bcf}

\item 
int {\bfseries \-\_\-n\-Total\-S\-I\-T\-Hits}\label{classSiliconTracking__MarlinTrk_a3c02a623cdb4d927293d04fc33a32384}

\item 
int {\bfseries \-\_\-use\-S\-I\-T}\label{classSiliconTracking__MarlinTrk_a3717a5ba0258612d098a743582d2a74e}

\item 
std\-::string {\bfseries \-\_\-trk\-System\-Name}\label{classSiliconTracking__MarlinTrk_ac20b4f26ba3b11b4ea0b389fd1e22280}

\item 
U\-T\-I\-L\-::\-Bit\-Field64 $\ast$ {\bfseries \-\_\-encoder}\label{classSiliconTracking__MarlinTrk_a99fcb35f6afea4895d746adb4bed609a}

\item 
unsigned int {\bfseries \-\_\-n\-Layers\-V\-T\-X}\label{classSiliconTracking__MarlinTrk_ae4888ed72af15a24c801677b10e1cfab}

\item 
unsigned int {\bfseries \-\_\-n\-Layers\-S\-I\-T}\label{classSiliconTracking__MarlinTrk_ad81ba0078cc3df95a4f1e87f351fe965}

\item 
std\-::vector$<$ float $>$ {\bfseries \-\_\-z\-Layer\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_ae4921636ff14cfbce6d34903974a8bff}

\item 
unsigned int {\bfseries \-\_\-nlayers\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_af370f35b8cbc6470495f8836a2c4bb46}

\item 
bool {\bfseries \-\_\-petal\-Based\-F\-T\-D\-With\-Overlaps}\label{classSiliconTracking__MarlinTrk_a1990b7746ef0498b470cf9796a9477c0}

\item 
int {\bfseries \-\_\-n\-Phi\-F\-T\-D}\label{classSiliconTracking__MarlinTrk_a512bbf2efa15149d803276cb802f4ac3}

\item 
int {\bfseries \-\_\-output\-\_\-track\-\_\-col\-\_\-quality}\label{classSiliconTracking__MarlinTrk_ade5cc9d0dce09da9f961ff0ee8ad4934}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
static const double {\bfseries T\-W\-O\-P\-I} = 2$\ast$M\-\_\-\-P\-I\label{classSiliconTracking__MarlinTrk_a696aa2a6957e5c1e0d784ac8422e30e8}

\item 
static const int {\bfseries \-\_\-output\-\_\-track\-\_\-col\-\_\-quality\-\_\-\-G\-O\-O\-D} = 1\label{classSiliconTracking__MarlinTrk_a09a0b09683f6aeefaec707008740ee78}

\item 
static const int {\bfseries \-\_\-output\-\_\-track\-\_\-col\-\_\-quality\-\_\-\-F\-A\-I\-R} = 2\label{classSiliconTracking__MarlinTrk_a2a6cf86d1e3fbe357483e6ef0f3f64fa}

\item 
static const int {\bfseries \-\_\-output\-\_\-track\-\_\-col\-\_\-quality\-\_\-\-P\-O\-O\-R} = 3\label{classSiliconTracking__MarlinTrk_aea2dffd1115458d57b88e4bfc393922a}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
=== Silicon Tracking Processor === \par
 Processor performing stand-\/alone pattern recognition in the vertex detector (V\-T\-X), forward tracking disks and S\-I\-T. 

\par
 The procedure consists of three steps \-: \par
 1) Tracking in V\-T\-X and S\-I\-T ; \par
 2) Tracking in F\-T\-D ; \par
 3) Merging compatible track segments reconstructed in V\-T\-X and F\-T\-D \par
 S\-T\-E\-P 1 \-: T\-R\-A\-C\-K\-I\-N\-G I\-N V\-T\-X and S\-I\-T \par
 Algorithm starts with finding of hit triplets satisfying helix hypothesis \par
 in three different layers. Two layers of S\-I\-T are effectively considered as outermost \par
 layers of the vertex detector. To accelerate procedure, the 4-\/pi solid angle is divided in N\-Divisions\-In\-Theta and N\-Divisions\-In\-Phi sectors in cos\-Q and Phi, respectively. Triplets are looked for in 2x2 window of adjacent sectors. Once triplet is found, attempt is made to associate additional hits to track. Combinatin of hits is accepted for further analysis if the Chi2 of the fit is less than certain predefined threshold. All accepted combinations are sorted in ascending order of their Chi2. First track candidate in the sorted array is automatically accepted. The hits belonging to this track are marked as used, and track candidates sharing these hits are discarded. The procedure proceeds with increasing index of track candidate in the sorted array until all track candidate have been output or discarded. \par
 S\-T\-E\-P 2 \-: T\-R\-A\-C\-K\-I\-N\-G I\-N F\-T\-D \par
 In the next step tracking in F\-T\-D is performed. The strategy of tracking in the F\-T\-D is the same as used for tracking in the V\-T\-X+\-S\-I\-T. \par
 S\-T\-E\-P 3 \-: M\-E\-R\-G\-I\-N\-G T\-R\-A\-C\-K S\-E\-G\-M\-E\-N\-T\-S F\-O\-U\-N\-D I\-N F\-T\-D A\-N\-D V\-T\-X+\-S\-I\-T \par
 In the last step, track segments reconstructed in the F\-T\-D and V\-T\-X+\-S\-I\-T, belonging to the same track are identified and merged into one track. All possible pairings are tested for their compatibility. The number of pairings considered is Ntrk\-\_\-\-V\-T\-X\-\_\-\-S\-I\-T$\ast$\-Ntrk\-\_\-\-F\-T\-D, where Ntrk\-\_\-\-V\-T\-X\-\_\-\-S\-I\-T is the number of track segments reconstructed in the first step in V\-T\-X+\-S\-I\-T (segments containing solely V\-T\-X and S\-I\-T hits) and Ntrk\-\_\-\-F\-T\-D is the number of track segments reconstructed in the second step (segments containing solely F\-T\-D hits). Pair of segments is accepted for further examination if the angle between track segments and than certain specified threshold. Pairing satisfying this condition is subjected for addtitional test. The fit is performed on unified array of hits belonging to both segments. If the chi2 of the fit does not exceed predefined cut value two segments are unified into one track. \subparagraph*{Input collections and prerequisites}

Processor requires collection of digitized vertex, sit and ftd tracker hits. \par
 If such a collections with the user specified names do not exist processor takes no action. \par
 \subparagraph*{Output}

Processor produces an L\-C\-I\-O collection of the Tracks. Each track is characterised by five parameters \-: Omega (signed curvuture), Tan(lambda) where lambda is the dip angle, Phi (azimuthal angle @ point of closest approach), D0 (signed impact parameter), Z0 (displacement along z axis at the point of closest approach to I\-P). Covariance matrix for these parameters is also provided. Only lower left corner of the covariance matrix is stored. The sequence of the covariance matrix elements assigned to track is the following\-: \par
 (Omega,Omega) \par
 (Omega,Tan\-Lambda), (Tan\-Lambda,Tan\-Lambda) \par
 (Omega,Phi), (Tan\-Lamda,Phi), (Phi,Phi) \par
 (Omega,D0), (Tan\-Lambda,D0), (Phi,D0), (D0,D0) \par
 (Omega,Z0), (Tan\-Lambda,Z0), (Phi,Z0), (D0,Z0), (Z0,Z0) \par
 The number of hits in the different subdetectors associated with each track can be accessed via method Track\-::get\-Subdetector\-Hit\-Numbers(). This method returns vector of integers \-: \par
 number of V\-T\-X hits in track is the first element in this vector (Track\-::get\-Subdetector\-Hit\-Numbers()[0]) \par
 number of F\-T\-D hits in track is the second element in this vector (Track\-::get\-Subdetector\-Hit\-Numbers()[1]) \par
 number of S\-I\-T hits in track is the third element in this vector (Track\-::get\-Subdetector\-Hit\-Numbers()[2]) \par
 Output track collection has a name \char`\"{}\-Si\-Tracks\char`\"{}. \par
 
\begin{DoxyParams}{Parameters}
{\em V\-T\-X\-Hit\-Collection\-Name} & name of input V\-T\-X Tracker\-Hit collection \par
 (default parameter value \-: \char`\"{}\-V\-T\-X\-Tracker\-Hits\char`\"{}) \par
 \\
\hline
{\em F\-T\-D\-Hit\-Collection\-Name} & name of input F\-T\-D Tracker\-Hit collection \par
 (default parameter value \-: \char`\"{}\-F\-T\-D\-Tracker\-Hits\char`\"{}) \par
 \\
\hline
{\em S\-I\-T\-Hit\-Collection\-Name} & name of input S\-I\-T Tracker\-Hit collection \par
 (default parameter value \-: \char`\"{}\-S\-I\-T\-Tracker\-Hits\char`\"{}) \par
 \\
\hline
{\em Si\-Track\-Collection\-Name} & name of the output Silicon track collection \par
 (default parameter value \-: \char`\"{}\-Si\-Tracks\char`\"{}) \par
 \\
\hline
{\em Layer\-Combinations} & combinations of layers used to search for hit triplets in V\-T\-X+\-S\-I\-T \par
 (default parameters \-: 6 4 3 6 4 2 6 3 2 5 4 3 5 4 2 5 3 2 4 3 2 4 3 1 4 2 1 3 2 1) \par
 Note that in the V\-T\-X+\-S\-I\-T system the first and the second layers of S\-I\-T have indicies n\-Layer\-V\-T\-X and n\-Layer\-V\-T\-X+1. Combination given above means that triplets are looked first in layers 6 4 3, and then in 6 4 2; 5 4 3; 6 3 2 etc. N\-O\-T\-E T\-H\-A\-T L\-A\-Y\-E\-R I\-N\-D\-E\-X\-I\-N\-G S\-T\-A\-R\-T\-S F\-R\-O\-M 0. L\-A\-Y\-E\-R 0 is the innermost layer \par
 \\
\hline
{\em Layer\-Combinations\-F\-T\-D} & combinations of layers used to search for hit triplets in F\-T\-D \par
 (default parameters 6 5 4 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 3 0 4 2 1 4 2 0 4 1 0 3 2 1 3 2 0 3 1 0 2 1 0). N\-O\-T\-E T\-H\-A\-T T\-R\-A\-C\-K\-S I\-N F\-T\-D A\-R\-E S\-E\-A\-R\-C\-H\-E\-D O\-N\-L\-Y I\-N O\-N\-E H\-E\-M\-I\-S\-P\-H\-E\-R\-E. T\-R\-A\-C\-K I\-S N\-O\-T A\-L\-L\-O\-W\-E\-D T\-O H\-A\-V\-E H\-I\-T\-S B\-O\-T\-H I\-N B\-A\-C\-K\-W\-A\-R\-D A\-N\-D F\-O\-R\-W\-A\-R\-D P\-A\-R\-T\-S O\-F F\-T\-D S\-I\-M\-U\-L\-T\-A\-N\-E\-O\-U\-S\-L\-Y. \\
\hline
{\em N\-Divisions\-In\-Phi} & Number of divisions in Phi for tracking in V\-T\-X+\-S\-I\-T \par
 (default value is 40) \par
 \\
\hline
{\em N\-Divisions\-In\-Theta} & Number of divisions in cos\-Q for tracking in V\-T\-X+\-S\-I\-T \par
 (default value is 40) \par
 \\
\hline
{\em N\-Divisions\-In\-Phi\-F\-T\-D} & Number of divisions in Phi for tracking in F\-T\-D \par
 (default value is 3) \par
 \\
\hline
{\em Chi2\-W\-Rphi\-Triplet} & weight on chi2 in R-\/\-Phi plane for track with 3 hits \par
 (default value is 1) \par
 \\
\hline
{\em Chi2\-W\-Z\-Triplet} & weight on chi2 in S-\/\-Z plane for track with 3 hits \par
 (default value is 0.\-5) \par
 \\
\hline
{\em Chi2\-W\-Rphi\-Quartet} & weight on chi2 in R-\/\-Phi plane to accept track with 4 hits \par
 (default value is 1) \par
 \\
\hline
{\em Chi2\-W\-Z\-Quartet} & weight on chi2 in S-\/\-Z plane for track with 4 hits \par
 (default value is 0.\-5) \par
 \\
\hline
{\em Chi2\-W\-Rphi\-Septet} & weight on chi2 in R-\/\-Phi plane for track with 5 and more hits \par
 (default value is 1) \par
 \\
\hline
{\em Chi2\-W\-Z\-Septet} & Cut on chi2 in S-\/\-Z plane for track with 5 and more hits \par
 (default value is 0.\-5) \par
 \\
\hline
{\em Chi2\-Fit\-Cut} & Cut on chi2/ndf to accept track candidate \par
 (default value is 100.) \par
 \\
\hline
{\em Angle\-Cut\-For\-Merging} & cut on the angle between two track segments. If the angle is greater than this cut, segments are not allowed to be merged. \par
 (default value is 0.\-1) \par
 \\
\hline
{\em Min\-Dist\-Cut\-Attach} & cut on the distance (in mm) from hit to the helix. This parameter is used to decide whether hit can be attached to the track. If the distance is less than cut value. The track is refitted with a given hit being added to the list of hits already assigned for the track. Additional hit is assigned if chi2 of the new fit has good chi2. \par
 (default value is 2 ) \par
 \\
\hline
{\em Min\-Layer\-To\-Attach} & the minimal layer index to attach V\-T\-X hits to the found hit triplets \par
 (default value is -\/1) \par
 \\
\hline
{\em Cut\-On\-Z0} & cut on Z0 parameter of track (in mm). If abs(\-Z0) is greater than the cut value, track is discarded (used to suppress fake track rate in the presence of beam induced background hits) \par
 (default value is 100) \par
 \\
\hline
{\em Cut\-On\-D0} & cut on D0 parameter of track (in mm). If abs(\-D0) is greater than the cut value, track is discarded (used to suppress fake track rate in the presence of beam induced background hits) \par
 (default value is 100) \par
 \\
\hline
{\em Cut\-On\-Pt} & cut on Pt (Ge\-V/c). If Pt is less than this cut, track is discarded (used to suppress fake track rate in the presence of beam induced background hits) \par
 (default value is 0.\-1) \par
 \\
\hline
{\em Minimal\-Hits} & minimal number of hits in track required \par
 (default value is 3) \par
 \\
\hline
{\em N\-Hits\-Chi2} & Maximal number of hits for which a track with n hits is aways better than one with n-\/1 hits. For tracks with equal or more than N\-Hits\-Chi2 the track with the lower $\chi^2$ is better. (default value is 5) \par
 \\
\hline
{\em Fast\-Attachment} & if this flag is set to 1, less accurate but fast procedure to merge additional hits to tracks is used \par
 if set to 0, a more accurate, but slower procedure is invoked \par
 (default value is 0) \par
 \\
\hline
{\em Use\-S\-I\-T} & When this flag is set to 1, S\-I\-T is included in pattern recognition. When this flag is set to 0, S\-I\-T is excluded from the procedure of pattern recognition \par
 (default value is 1) \par
 \par
 \\
\hline
\end{DoxyParams}
\begin{DoxyAuthor}{Author}
A. Raspereza (M\-P\-I Munich)\par
 
\end{DoxyAuthor}


\subsection{Member Function Documentation}
\index{Silicon\-Tracking\-\_\-\-Marlin\-Trk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}!Build\-Track@{Build\-Track}}
\index{Build\-Track@{Build\-Track}!SiliconTracking_MarlinTrk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}}
\subsubsection[{Build\-Track}]{\setlength{\rightskip}{0pt plus 5cm}int Silicon\-Tracking\-\_\-\-Marlin\-Trk\-::\-Build\-Track (
\begin{DoxyParamCaption}
\item[{Tracker\-Hit\-Extended $\ast$}]{outer\-Hit, }
\item[{Tracker\-Hit\-Extended $\ast$}]{middle\-Hit, }
\item[{Tracker\-Hit\-Extended $\ast$}]{inner\-Hit, }
\item[{Helix\-Class \&}]{helix, }
\item[{int}]{innerlayer, }
\item[{int}]{i\-Phi\-Low, }
\item[{int}]{i\-Phi\-Up, }
\item[{int}]{i\-Theta, }
\item[{int}]{i\-Theta\-Up, }
\item[{Track\-Extended $\ast$}]{track\-A\-R}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classSiliconTracking__MarlinTrk_a3acb1ae47523d23c087946d5527da94f}
Method for building up track in the V\-X\-D. Method starts from the found triplet and performs sequential attachment of hits in other layers, which have hits within the search window. Only searches inwards. Given that we know we are now jumping over layers due to the doublet nature of the V\-X\-D, we could optimise this to look for the hits in interleaving layers as well. Currently a fast fit is being done for each additional hit, it could be more efficient to try and use kaltest?\index{Silicon\-Tracking\-\_\-\-Marlin\-Trk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}!Create\-Track@{Create\-Track}}
\index{Create\-Track@{Create\-Track}!SiliconTracking_MarlinTrk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}}
\subsubsection[{Create\-Track}]{\setlength{\rightskip}{0pt plus 5cm}void Silicon\-Tracking\-\_\-\-Marlin\-Trk\-::\-Create\-Track (
\begin{DoxyParamCaption}
\item[{Track\-Extended $\ast$}]{track\-A\-R}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classSiliconTracking__MarlinTrk_a73046daebbd4e017c9ef573df23a20d1}
Method which creates Track out of Track\-Extended objects. Checks for possible track splitting (separate track segments in V\-X\-D and F\-T\-D).\index{Silicon\-Tracking\-\_\-\-Marlin\-Trk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}!Sorting@{Sorting}}
\index{Sorting@{Sorting}!SiliconTracking_MarlinTrk@{Silicon\-Tracking\-\_\-\-Marlin\-Trk}}
\subsubsection[{Sorting}]{\setlength{\rightskip}{0pt plus 5cm}void Silicon\-Tracking\-\_\-\-Marlin\-Trk\-::\-Sorting (
\begin{DoxyParamCaption}
\item[{Track\-Extended\-Vec \&}]{track\-Vec}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classSiliconTracking__MarlinTrk_aa15e44cd2fa9b2a14a510bf36f9654a6}
Sorting of Track Vector in ascending order of chi2/ndf

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Silicon\-Tracking\-\_\-\-Marlin\-Trk.\-h\item 
Silicon\-Tracking\-\_\-\-Marlin\-Trk.\-cc\end{DoxyCompactItemize}
