\section{Truth\-Tracker Class Reference}
\label{classTruthTracker}\index{Truth\-Tracker@{Truth\-Tracker}}


Track creation based on M\-C truth.  




{\ttfamily \#include $<$Truth\-Tracker.\-h$>$}

Inheritance diagram for Truth\-Tracker\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classTruthTracker}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct {\bf Sim\-Tracker\-Hit\-Sort\-Predicate}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual marlin\-::\-Processor $\ast$ {\bfseries new\-Processor} ()\label{classTruthTracker_a4a0624a96c5ef42a8e0357f0748abf41}

\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{classTruthTracker_a2c5baf9134d2f2bee21f238e1f59b453}

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

\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{classTruthTracker_abbbdaf7e88b6d5530b80230b7ef8c540}

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

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
const L\-C\-Object\-Vec $\ast$ {\bfseries get\-Sim\-Hits} (Tracker\-Hit $\ast$trkhit, const Float\-Vec $\ast$weights=N\-U\-L\-L)\label{classTruthTracker_a308db8480541f6ef7a85b7b3dfcbd2c5}

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

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

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

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

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

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

\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{classTruthTracker_aba0780131bf3f3b49493791efc60a5b3}

\begin{DoxyCompactList}\small\item\em helper function to get relations using try catch block \end{DoxyCompactList}\item 
void {\bf Setup\-Input\-Collections} (L\-C\-Event $\ast$evt)\label{classTruthTracker_aad99a5ab4ef26c3f9630ba4d94a15f6b}

\begin{DoxyCompactList}\small\item\em sets up the different collections \end{DoxyCompactList}\item 
void {\bfseries create\-Track} (M\-C\-Particle $\ast$mcp, U\-T\-I\-L\-::\-Bit\-Field64 \&cell\-I\-D\-\_\-encoder, std\-::vector$<$ std\-::pair$<$ Sim\-Tracker\-Hit $\ast$, Tracker\-Hit $\ast$ $>$ $>$ \&hit\-\_\-list)\label{classTruthTracker_a6568db2efa48e09d97da444527bde976}

\item 
void {\bfseries create\-Track\-\_\-old} (M\-C\-Particle $\ast$mcp, U\-T\-I\-L\-::\-Bit\-Field64 \&cell\-I\-D\-\_\-encoder, std\-::vector$<$ Tracker\-Hit $\ast$ $>$ \&hit\-\_\-list)\label{classTruthTracker_a8b12dc889a7e99313f3a635de1e51b22}

\item 
void {\bfseries create\-Track\-\_\-iterative} (M\-C\-Particle $\ast$mcp, U\-T\-I\-L\-::\-Bit\-Field64 \&cell\-I\-D\-\_\-encoder, std\-::vector$<$ std\-::pair$<$ Sim\-Tracker\-Hit $\ast$, Tracker\-Hit $\ast$ $>$ $>$ \&hit\-\_\-list)\label{classTruthTracker_a48e16dedc25218754870d409086e1e65}

\item 
void {\bfseries draw\-Event} ()\label{classTruthTracker_a493b012a7130ac1f0ed47b9e5f5d9de7}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
U\-T\-I\-L\-::\-Bit\-Field64 $\ast$ {\bfseries \-\_\-encoder}\label{classTruthTracker_a38de7b837b7c97e0f09346461c31d528}

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

\begin{DoxyCompactList}\small\item\em input M\-C\-Particle collection \end{DoxyCompactList}\item 
std\-::vector$<$ std\-::string $>$ {\bf \-\_\-col\-Names\-Tracker\-Hits}\label{classTruthTracker_aa57bcfa2bb162be639f3adc2423e4c15}

\begin{DoxyCompactList}\small\item\em input Tracker\-Hit collections \end{DoxyCompactList}\item 
std\-::vector$<$ std\-::string $>$ {\bf \-\_\-col\-Names\-Tracker\-Hit\-Relations}\label{classTruthTracker_a074b4c2ab9ea4ce7b3f21b6cfbf30670}

\begin{DoxyCompactList}\small\item\em input relation collections \end{DoxyCompactList}\item 
std\-::vector$<$ L\-C\-Collection $\ast$ $>$ {\bfseries \-\_\-col\-Tracker\-Hits}\label{classTruthTracker_ad500095b8f8daacdf2a52b55fa05998e}

\item 
std\-::vector\\*
$<$ L\-C\-Relation\-Navigator $\ast$ $>$ {\bfseries \-\_\-nav\-Tracker\-Hit\-Rel}\label{classTruthTracker_a43da831246b0f1de1dc7b24e5d864ca4}

\item 
std\-::string {\bf \-\_\-output\-\_\-track\-\_\-col\-\_\-name}\label{classTruthTracker_ad2ef88aa415db435c4a631bc57a26b89}

\begin{DoxyCompactList}\small\item\em output track collection \end{DoxyCompactList}\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-track\-Vec}\label{classTruthTracker_a75addfa57ce930c971f71e10975a934e}

\item 
std\-::string {\bf \-\_\-output\-\_\-track\-\_\-rel\-\_\-name}\label{classTruthTracker_a3ddb47b1e1d0d030c4ed890fefe892b3}

\begin{DoxyCompactList}\small\item\em Output track relations. \end{DoxyCompactList}\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-track\-Rel\-Vec}\label{classTruthTracker_a36cad398048e21be25e7856c89efbb8d}

\item 
std\-::string {\bf \-\_\-output\-\_\-track\-\_\-segments\-\_\-col\-\_\-name}\label{classTruthTracker_a859c1ba0608924b55aa76ac502171283}

\begin{DoxyCompactList}\small\item\em output track segments collection, used for tracks which cannot be formed from a single fit \end{DoxyCompactList}\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-track\-Segments\-Vec}\label{classTruthTracker_afb6047bfb83f346c8a54ca57bb5307f2}

\item 
std\-::string {\bf \-\_\-output\-\_\-track\-\_\-segment\-\_\-rel\-\_\-name}\label{classTruthTracker_acef2d13056b3bbaab7e74c5f444697eb}

\begin{DoxyCompactList}\small\item\em Output track segments relations, used for tracks which cannot be formed from a single fit. \end{DoxyCompactList}\item 
L\-C\-Collection\-Vec $\ast$ {\bfseries \-\_\-track\-Segments\-Rel\-Vec}\label{classTruthTracker_ac2d565591ba32c73d4b0e51cd79a89a9}

\item 
int {\bfseries \-\_\-n\-M\-C\-P}\label{classTruthTracker_ad8bb093ac209b3c97f6e0d97d3408f12}

\item 
int {\bfseries \-\_\-n\-\_\-run}\label{classTruthTracker_a7b99475cfcb46eb0ef04c0c728cb069d}

\item 
int {\bfseries \-\_\-n\-\_\-evt}\label{classTruthTracker_aac7c75f1f6505293828e6afeb69d8172}

\item 
float {\bfseries \-\_\-\-M\-Cp\-Threshold}\label{classTruthTracker_a12a8fb78b1de0d2bb03120229d3cb4cb}

\item 
bool {\bfseries \-\_\-use\-M\-C\-Particle\-Parameters\-Fot\-Init\-Of\-Fit}\label{classTruthTracker_a265ac5c6171ef0b42b26f3ba06153012}

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

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

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

\item 
bool {\bfseries \-\_\-\-Fit\-Tracks\-With\-Marlin\-Trk}\label{classTruthTracker_aaa6962dbf503967517463331417080ea}

\item 
bool {\bfseries \-\_\-create\-\_\-prefit\-\_\-using\-\_\-\-Marlin\-Trk}\label{classTruthTracker_adbd22567cffceaad8802287bc4ee5bf6}

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

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

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

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

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

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

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

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

\item 
bool {\bfseries \-\_\-\-Use\-Iterative\-Fitting}\label{classTruthTracker_a30fda148e65c5d03a39786c662ba4266}

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

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

\item 
double {\bfseries \-\_\-\-Bz}\label{classTruthTracker_adec97ec923eabfb8ad010dc13c3f2157}

\item 
unsigned {\bfseries \-\_\-n\-Created\-Tracks}\label{classTruthTracker_a6acd6c3c008e213673a249e3e91db6b7}

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

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

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

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

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

\item 
int {\bfseries \-\_\-fit\-Direction}\label{classTruthTracker_a598914be56270f8d847bb031db7767bc}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Track creation based on M\-C truth. 

\subparagraph*{Input -\/ Prerequisites}

Needs a collections of L\-C\-I\-O Tracker\-Hits.

\subparagraph*{Output}

L\-C\-I\-O Track Collection


\begin{DoxyParams}{Parameters}
{\em Tracker\-Hits\-Input\-Collections} & Name of the tracker hit input collections \par
 (default value\-: F\-T\-D\-Tracker\-Hits S\-I\-T\-Tracker\-Hits T\-P\-C\-Tracker\-Hits V\-X\-D\-Tracker\-Hits )\\
\hline
{\em Tracker\-Hits\-Rel\-Input\-Collections} & Name of the lcrelation collections, that link the Tracker\-Hits to their Sim\-Tracker\-Hits. Have to be in same order as Tracker\-Hits\-Input\-Collections!!! \par
 (default value\-: F\-T\-D\-Tracker\-Hit\-Relations S\-I\-T\-Tracker\-Hit\-Relations T\-P\-C\-Tracker\-Hit\-Relations V\-X\-D\-Tracker\-Hit\-Relations )\\
\hline
{\em Output\-Track\-Collection\-Name} & Name of the output Track collection \par
 (default value\-: Truth\-Tracks )\\
\hline
{\em Output\-Track\-Rel\-Collection} & Name of the M\-C\-Particle-\/\-Track Relations collection for output tracks \par
 (default value\-: Truth\-Tracks\-M\-C\-P )\\
\hline
{\em M\-Cp\-Threshold} & Transverse Momentum Threshold M\-C particles which will produce tracks Ge\-V \par
 (default value\-: 0.\-1 )\\
\hline
{\em Fit\-Tracks\-With\-Marlin\-Trk} & Fit the Tracks with Marlin\-Trk, otherwise take track parameters from M\-C\-Particle \par
 (default value\-: true )\\
\hline
{\em Multiple\-Scattering\-On} & Use Multiple\-Scattering in Fit \par
 (default value\-: true )\\
\hline
{\em Energy\-Loss\-On} & Use Energy Loss in Fit \par
 (default value\-: true )\\
\hline
{\em Smooth\-On} & Smooth All Mesurement Sites in Fit \par
 (default value\-: false )\\
\hline
\end{DoxyParams}
\begin{DoxyAuthor}{Author}
S. J. Aplin, D\-E\-S\-Y ; R. Glattauer, H\-E\-P\-H\-Y 
\end{DoxyAuthor}


\subsection{Member Function Documentation}
\index{Truth\-Tracker@{Truth\-Tracker}!init@{init}}
\index{init@{init}!TruthTracker@{Truth\-Tracker}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}void Truth\-Tracker\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classTruthTracker_a50e2d7cb0625ac4eca6e2f6519dc0949}


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 files\-:\begin{DoxyCompactItemize}
\item 
Truth\-Tracker.\-h\item 
Truth\-Tracker.\-cc\end{DoxyCompactItemize}
