\section{Tracking\-Feedback\-Processor Class Reference}
\label{classTrackingFeedbackProcessor}\index{Tracking\-Feedback\-Processor@{Tracking\-Feedback\-Processor}}


Feedback for the efficiency and the ghostrate of the tracking.  




{\ttfamily \#include $<$Tracking\-Feedback\-Processor.\-h$>$}

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

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

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

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

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

\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 check\-The\-Track} ({\bf Reco\-Track} $\ast$reco\-Track)\label{classTrackingFeedbackProcessor_a177251c04300a995e39f3274b6c2f088}

\item 
{\bf True\-Track} $\ast$ {\bfseries get\-Assigned\-True\-Track} (std\-::vector$<$ {\bf True\-Track} $\ast$ $>$ related\-True\-Tracks, unsigned \&n\-Hits\-From\-Assigned\-True\-Track)\label{classTrackingFeedbackProcessor_afba472baeb20979837231566b83da878}

\item 
unsigned {\bfseries get\-Number\-Of\-Hits\-From\-Different\-Layers} (std\-::vector$<$ Tracker\-Hit $\ast$ $>$ hits)\label{classTrackingFeedbackProcessor_aa8ecbc867b6148297beafa63e0d0c3e1}

\item 
double {\bfseries get\-Dist\-To\-I\-P} (M\-C\-Particle $\ast$mcp)\label{classTrackingFeedbackProcessor_a8d84f9eddca8e1bc73d84b0dfb3c60a5}

\item 
void {\bfseries save\-Root\-Information} ()\label{classTrackingFeedbackProcessor_a7535069920b87da3d646b58860b0c7b1}

\item 
void {\bfseries make\-Root\-Branches} ()\label{classTrackingFeedbackProcessor_ad935eb6468dba34ae26c07724b96230e}

\item 
void {\bfseries set\-Root\-Branches} ()\label{classTrackingFeedbackProcessor_ac09734a3641ec15da6cf4fc13e0da28b}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
double {\bfseries \-\_\-\-Bz}\label{classTrackingFeedbackProcessor_a96af5a2a6ac43084d505e177b3ba471b}

\item 
std\-::string {\bf \-\_\-col\-Name\-M\-C\-True\-Tracks\-Rel}\label{classTrackingFeedbackProcessor_a4098b061fa0af124cb7814bcfe442b53}

\begin{DoxyCompactList}\small\item\em Input collection name. \end{DoxyCompactList}\item 
std\-::string {\bfseries \-\_\-\-Track\-Collection}\label{classTrackingFeedbackProcessor_a72d887a511a80704decdefb3ba065c66}

\item 
std\-::string {\bfseries \-\_\-table\-File\-Name}\label{classTrackingFeedbackProcessor_afbc030effb184a27403ed4cc409a213b}

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

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

\item 
double {\bfseries \-\_\-cut\-Pt\-Min}\label{classTrackingFeedbackProcessor_a57794ab925c00d595d8de873a2c14e33}

\item 
double {\bfseries \-\_\-cut\-Dist\-To\-I\-P\-Max}\label{classTrackingFeedbackProcessor_a74c3d7f49c4802014d2dae063a9dc279}

\item 
double {\bfseries \-\_\-cut\-Chi2\-Prob}\label{classTrackingFeedbackProcessor_a5999fe2995b98f89853fa609b58c9725}

\item 
int {\bfseries \-\_\-cut\-N\-Hits\-Min}\label{classTrackingFeedbackProcessor_a56749320442854e278506c4c7bad11c2}

\item 
bool {\bfseries \-\_\-cut\-N\-Hits\-Min\-\_\-\-Hits\-Count\-Once\-Per\-Layer}\label{classTrackingFeedbackProcessor_a3e01a5982d05f16303815e836fc61336}

\item 
double {\bfseries \-\_\-cut\-Theta\-Min}\label{classTrackingFeedbackProcessor_a718b9c842154b957085ec93586fd9402}

\item 
double {\bfseries \-\_\-cut\-Theta\-Max}\label{classTrackingFeedbackProcessor_ab311d4a434021ece9e1cb8067c9ba5b2}

\item 
bool {\bfseries \-\_\-cut\-Fit\-Fails}\label{classTrackingFeedbackProcessor_a84f4a7a3ac6fb598ebb4a6eb61effc7e}

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

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

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

\item 
unsigned {\bfseries \-\_\-n\-Complete}\label{classTrackingFeedbackProcessor_afc6e6854a0f7f978709c9afc5329e31b}

\item 
unsigned {\bfseries \-\_\-n\-Complete\-Plus}\label{classTrackingFeedbackProcessor_a47ac960ff5a7a4292c39d49ebf77482f}

\item 
unsigned {\bfseries \-\_\-n\-Lost}\label{classTrackingFeedbackProcessor_ab7f52398fda52595918d13d59e2972ca}

\item 
unsigned {\bfseries \-\_\-n\-Incomplete}\label{classTrackingFeedbackProcessor_a4ec2274d72f2bd4f78c0398e32fefcf7}

\item 
unsigned {\bfseries \-\_\-n\-Incomplete\-Plus}\label{classTrackingFeedbackProcessor_af158506678128cfef8631556d34e12c8}

\item 
unsigned {\bfseries \-\_\-n\-Ghost}\label{classTrackingFeedbackProcessor_a6e39dbe56745f07818f5beeac96238fc}

\item 
unsigned {\bfseries \-\_\-n\-Found\-Completely}\label{classTrackingFeedbackProcessor_a88baed89893bec220cf7be1a79fd127b}

\item 
unsigned {\bfseries \-\_\-n\-Reco\-Tracks}\label{classTrackingFeedbackProcessor_a1889508d7bd7399cda50abeb4a427f48}

\item 
unsigned {\bfseries \-\_\-n\-Dismissed\-True\-Tracks}\label{classTrackingFeedbackProcessor_aeb6e7a4e2e07107accf543c8c2ae053e}

\item 
unsigned {\bfseries \-\_\-n\-Valid\-True\-Tracks}\label{classTrackingFeedbackProcessor_af0896e255db95ddfe95326ee8bf9339a}

\item 
unsigned {\bfseries \-\_\-n\-Clones}\label{classTrackingFeedbackProcessor_a09b03d113c249b8ecab15f1025f807ff}

\item 
unsigned {\bfseries \-\_\-n\-Complete\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_af563e2c55b4069345683f227d9d56ec9}

\item 
unsigned {\bfseries \-\_\-n\-Complete\-Plus\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a9d0d689fbe1d644ff8f6a8bc4ffdc8ef}

\item 
unsigned {\bfseries \-\_\-n\-Lost\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a81d96ff02e125867b9595f9ec11d0130}

\item 
unsigned {\bfseries \-\_\-n\-Incomplete\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a6f6f429ef95a2de8a2d30b9521a37f03}

\item 
unsigned {\bfseries \-\_\-n\-Incomplete\-Plus\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a59680285e4940704c806e61f42f22a22}

\item 
unsigned {\bfseries \-\_\-n\-Ghost\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_ac9f3072886d77c13664451924d651f14}

\item 
unsigned {\bfseries \-\_\-n\-Found\-Completely\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_aba270b68921a31ec901ed2435d4d167a}

\item 
unsigned {\bfseries \-\_\-n\-Reco\-Tracks\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_acba2566046d8847e9bb258a0099c7f36}

\item 
unsigned {\bfseries \-\_\-n\-Dismissed\-True\-Tracks\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a25e2e9753397604f3738f44cc37b8c59}

\item 
unsigned {\bfseries \-\_\-n\-Valid\-True\-Tracks\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a0c81b2c64f368765f3a75f3d4a5027bf}

\item 
unsigned {\bfseries \-\_\-n\-Clones\-\_\-\-Sum}\label{classTrackingFeedbackProcessor_a4a75a8f79d2e79339cbeb4907bd51bd8}

\item 
std\-::vector$<$ {\bf True\-Track} $\ast$ $>$ {\bfseries \-\_\-true\-Tracks}\label{classTrackingFeedbackProcessor_a02f58bf7386c11b39ebcafce9f9f0748}

\item 
std\-::vector$<$ {\bf Reco\-Track} $\ast$ $>$ {\bfseries \-\_\-reco\-Tracks}\label{classTrackingFeedbackProcessor_ab09006761db161d734ed90d16d099b96}

\item 
bool {\bfseries \-\_\-draw\-M\-C\-P\-Tracks}\label{classTrackingFeedbackProcessor_a1f39629fb72879c5d77527c2e2f18d29}

\item 
bool {\bfseries \-\_\-save\-All\-Events\-Summary}\label{classTrackingFeedbackProcessor_a6adcc25b17e1a727449b9a95a1ee5cb2}

\item 
std\-::string {\bfseries \-\_\-summary\-File\-Name}\label{classTrackingFeedbackProcessor_abe1fc67e906e21360daedef9bb68a0da}

\item 
Marlin\-Trk\-::\-I\-Marlin\-Trk\-System $\ast$ {\bfseries \-\_\-trk\-System}\label{classTrackingFeedbackProcessor_ac3b7884c19e01eb2ecb20d9c7d9c84ec}

\item 
T\-Tree $\ast$ {\bfseries \-\_\-tree\-True\-Tracks}\label{classTrackingFeedbackProcessor_a6475bbb191015192bc7aa1cc4fe2e9ab}

\item 
T\-Tree $\ast$ {\bfseries \-\_\-tree\-Reco\-Tracks}\label{classTrackingFeedbackProcessor_ab2c58f4679b7fae7469d25e9f59bf32d}

\item 
T\-File $\ast$ {\bfseries \-\_\-root\-File}\label{classTrackingFeedbackProcessor_afc03533d2d37f6cad3c596bc473ee94a}

\item 
std\-::string {\bfseries \-\_\-root\-File\-Name}\label{classTrackingFeedbackProcessor_a35a42b61293d443fe505048a1a6591c1}

\item 
bool {\bfseries \-\_\-root\-File\-Append}\label{classTrackingFeedbackProcessor_aa30965d23897bcf4fad0537ff19cd427}

\item 
std\-::string {\bfseries \-\_\-tree\-Name\-True\-Tracks}\label{classTrackingFeedbackProcessor_a6fb70f890ded0579eff14b0e4dbbc20d}

\item 
std\-::string {\bfseries \-\_\-tree\-Name\-Reco\-Tracks}\label{classTrackingFeedbackProcessor_a3a33a5db64aad2ff2b78eab624ca7f87}

\item 
float {\bfseries \-\_\-rate\-Of\-Found\-Hits\-Min}\label{classTrackingFeedbackProcessor_a4419257b1d842d77394255fc159da601}

\item 
float {\bfseries \-\_\-rate\-Of\-Assigned\-Hits\-Min}\label{classTrackingFeedbackProcessor_a2b90b2900dceb865a5e7bd62717dba32}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Complete}\label{classTrackingFeedbackProcessor_a2566aade627260bd3850f5928009201b}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Complete\-Plus}\label{classTrackingFeedbackProcessor_aa032a324bd099bf5a90beea91aeaf1d3}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Incomplete}\label{classTrackingFeedbackProcessor_a3e0ebfb0b8bee43567c451d8b5cfa033}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Incomplete\-Plus}\label{classTrackingFeedbackProcessor_acad1426d4f9719bfba14a2818882168f}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Sum}\label{classTrackingFeedbackProcessor_ac81a8337757e9a06d46800b8f4124ed3}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-pt}\label{classTrackingFeedbackProcessor_ad3ea98a001d1e7b1aaf30e9a7074d890}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-theta}\label{classTrackingFeedbackProcessor_a38e68d03010efbfefa62a91ccde91150}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-n\-Hits}\label{classTrackingFeedbackProcessor_a81c30ca5bf99906325ceab0e657b4abb}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-vertex\-X}\label{classTrackingFeedbackProcessor_a2d7e9b1d5706f9b020accb2e8df9afab}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-vertex\-Y}\label{classTrackingFeedbackProcessor_a98ab2897cce9d977664a1b30c709b420}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-vertex\-Z}\label{classTrackingFeedbackProcessor_a197c685f0732757975f194967ddbab07}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-chi2prob}\label{classTrackingFeedbackProcessor_ab3b454aa02ad97d8d8b554b038b1d592}

\item 
double {\bfseries \-\_\-true\-Track\-\_\-chi2}\label{classTrackingFeedbackProcessor_a5ff995855f99b08008f3f1fd8679feed}

\item 
int {\bfseries \-\_\-true\-Track\-\_\-\-Ndf}\label{classTrackingFeedbackProcessor_a2d17085f82bb22bdf093a8e56f0b24bf}

\item 
int {\bfseries \-\_\-reco\-Track\-\_\-n\-True\-Tracks}\label{classTrackingFeedbackProcessor_a65be333ef910e68134cf55f4c0121a59}

\item 
double {\bfseries \-\_\-reco\-Track\-\_\-pt}\label{classTrackingFeedbackProcessor_a4de3069a9071fde0551dc38b413ed57b}

\item 
double {\bfseries \-\_\-reco\-Track\-\_\-chi2prob}\label{classTrackingFeedbackProcessor_a5e3a5a83a8ef387f593a82b963d90429}

\item 
double {\bfseries \-\_\-reco\-Track\-\_\-chi2}\label{classTrackingFeedbackProcessor_a703ba17dd7516c90f796bb4eee84bbbb}

\item 
int {\bfseries \-\_\-reco\-Track\-\_\-\-Ndf}\label{classTrackingFeedbackProcessor_ab539ae8a377c6851af3eef8c11360aeb}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Feedback for the efficiency and the ghostrate of the tracking. 

\subparagraph*{Input -\/ Prerequisites}

A collection of reconstructed tracks and a relation collection that relates true tracks with monte carlo particles

\subparagraph*{Output}

Results will be output to screen (depending of debug level), to a csv file and to a root file


\begin{DoxyParams}{Parameters}
{\em Track\-Collection} & Name of Track collection to check \par
 (default value Forward\-Tracks )\\
\hline
{\em M\-C\-True\-Track\-Rel\-Collection\-Name} & Name of the \doxyref{True\-Track}{p.}{classTrueTrack} M\-C Relation collection\par
 (default value True\-Tracks\-M\-C\-P )\\
\hline
{\em Table\-File\-Name} & Name of the table file for saving the results \par
 (default value Tracking\-Feedback.\-csv )\\
\hline
{\em Save\-All\-Events\-Summary} & If true the results of all events are summed up and saved in the file specified under Summary\-File\-Name \par
 (default value false )\\
\hline
{\em Summary\-File\-Name} & All events are summed up and saved in this file, if Save\-All\-Events\-Summary == true \par
 (default value Tracking\-Feedback\-Sum.\-csv )\\
\hline
{\em Multiple\-Scattering\-On} & Whether to take multiple scattering into account when fitting the tracks\par
 (default value true )\\
\hline
{\em Energy\-Loss\-On} & Whether to take energy loss into account when fitting the tracks\par
 (default value true )\\
\hline
{\em Smooth\-On} & Whether to smooth all measurement sites in fit\par
 (default value false )\\
\hline
{\em Cut\-Pt\-Min} & The minimum transversal momentum pt above which tracks are of interest in Ge\-V \par
 (default value 0.\-1 )\\
\hline
{\em Cut\-Dist\-To\-I\-P\-Max} & The maximum distance from the origin of the M\-C\-P to the I\-P (0,0,0) \par
 (default value 10000 )\\
\hline
{\em Cut\-Chi2\-Prob} & Tracks with a chi2 probability below this value won't be considered \par
 (default value 0.\-005 )\\
\hline
{\em Cut\-Number\-Of\-Hits\-Min} & The minimum number of hits a track must have \par
 (default value 4 )\\
\hline
{\em Cut\-Number\-Of\-Hits\-Min\-\_\-\-Hits\-Count\-Once\-Per\-Layer} & Whether the hits used for the cut Cut\-Number\-Of\-Hits\-Min only count once for each layer, i.\-e double hits on a layer count as one \par
 (default value false, i.\-e. every hit counts )\\
\hline
{\em Cut\-Theta\-Min} & The minimum theta of the track in deg (default value 0 )\\
\hline
{\em Cut\-Theta\-Max} & The maximum theta of the track in deg (default value 91 )\\
\hline
{\em Cut\-Fit\-Fails} & Whether to cut all tracks that fail at fitting (default value false )\\
\hline
{\em Draw\-M\-C\-P\-Tracks} & Draw the helices of the M\-C\-P (values at I\-P) in C\-E\-D \par
 (default value false )\\
\hline
{\em Rate\-Of\-Found\-Hits\-Min} & More than this rate of hits of the real track must be in a reco track to be assigned \par
 (default value 0.\-5 )\\
\hline
{\em Rate\-Of\-Assigned\-Hits\-Min} & More than this rate of hits of the reco track must belong to the true track to be assigned \par
 (default value 0.\-5 )\\
\hline
{\em Root\-File\-Name} & Name for the root file where the tracks are saved\par
 (default value \char`\"{}\-Feedback.\-root\char`\"{})\\
\hline
{\em Root\-File\-Append} & Whether the root output file should be appended to an existing one\par
 (default value false)\\
\hline
\end{DoxyParams}
\begin{DoxyAuthor}{Author}
Robin Glattauer H\-E\-P\-H\-Y, Wien 
\end{DoxyAuthor}


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


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 
Tracking\-Feedback\-Processor.\-h\item 
Tracking\-Feedback\-Processor.\-cc\end{DoxyCompactItemize}
