--- /dev/null
+%!PS-Adobe-2.0 EPSF-2.0\r
+%%Title: trgsim_ov.fig\r
+%%Creator: fig2dev Version 3.2 Patchlevel 4\r
+%%CreationDate: Wed May 27 11:02:53 2009\r
+%%For: jklein@pcalicejs (Jochen KLEIN)\r
+%%BoundingBox: 0 0 758 128\r
+%%Magnification: 1.0000\r
+%%EndComments\r
+/$F2psDict 200 dict def\r
+$F2psDict begin\r
+$F2psDict /mtrx matrix put\r
+/col-1 {0 setgray} bind def\r
+/col0 {0.000 0.000 0.000 srgb} bind def\r
+/col1 {0.000 0.000 1.000 srgb} bind def\r
+/col2 {0.000 1.000 0.000 srgb} bind def\r
+/col3 {0.000 1.000 1.000 srgb} bind def\r
+/col4 {1.000 0.000 0.000 srgb} bind def\r
+/col5 {1.000 0.000 1.000 srgb} bind def\r
+/col6 {1.000 1.000 0.000 srgb} bind def\r
+/col7 {1.000 1.000 1.000 srgb} bind def\r
+/col8 {0.000 0.000 0.560 srgb} bind def\r
+/col9 {0.000 0.000 0.690 srgb} bind def\r
+/col10 {0.000 0.000 0.820 srgb} bind def\r
+/col11 {0.530 0.810 1.000 srgb} bind def\r
+/col12 {0.000 0.560 0.000 srgb} bind def\r
+/col13 {0.000 0.690 0.000 srgb} bind def\r
+/col14 {0.000 0.820 0.000 srgb} bind def\r
+/col15 {0.000 0.560 0.560 srgb} bind def\r
+/col16 {0.000 0.690 0.690 srgb} bind def\r
+/col17 {0.000 0.820 0.820 srgb} bind def\r
+/col18 {0.560 0.000 0.000 srgb} bind def\r
+/col19 {0.690 0.000 0.000 srgb} bind def\r
+/col20 {0.820 0.000 0.000 srgb} bind def\r
+/col21 {0.560 0.000 0.560 srgb} bind def\r
+/col22 {0.690 0.000 0.690 srgb} bind def\r
+/col23 {0.820 0.000 0.820 srgb} bind def\r
+/col24 {0.500 0.190 0.000 srgb} bind def\r
+/col25 {0.630 0.250 0.000 srgb} bind def\r
+/col26 {0.750 0.380 0.000 srgb} bind def\r
+/col27 {1.000 0.500 0.500 srgb} bind def\r
+/col28 {1.000 0.630 0.630 srgb} bind def\r
+/col29 {1.000 0.750 0.750 srgb} bind def\r
+/col30 {1.000 0.880 0.880 srgb} bind def\r
+/col31 {1.000 0.840 0.000 srgb} bind def\r
+\r
+end\r
+save\r
+newpath 0 128 moveto 0 0 lineto 758 0 lineto 758 128 lineto closepath clip newpath\r
+-53.3 144.7 translate\r
+1 -1 scale\r
+\r
+/cp {closepath} bind def\r
+/ef {eofill} bind def\r
+/gr {grestore} bind def\r
+/gs {gsave} bind def\r
+/sa {save} bind def\r
+/rs {restore} bind def\r
+/l {lineto} bind def\r
+/m {moveto} bind def\r
+/rm {rmoveto} bind def\r
+/n {newpath} bind def\r
+/s {stroke} bind def\r
+/sh {show} bind def\r
+/slc {setlinecap} bind def\r
+/slj {setlinejoin} bind def\r
+/slw {setlinewidth} bind def\r
+/srgb {setrgbcolor} bind def\r
+/rot {rotate} bind def\r
+/sc {scale} bind def\r
+/sd {setdash} bind def\r
+/ff {findfont} bind def\r
+/sf {setfont} bind def\r
+/scf {scalefont} bind def\r
+/sw {stringwidth} bind def\r
+/tr {translate} bind def\r
+/tnt {dup dup currentrgbcolor\r
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add\r
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add\r
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}\r
+ bind def\r
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul\r
+ 4 -2 roll mul srgb} bind def\r
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def\r
+/$F2psEnd {$F2psEnteredState restore end} def\r
+\r
+$F2psBegin\r
+10 setmiterlimit\r
+0 slj 0 slc\r
+ 0.06000 0.06000 sc\r
+%\r
+% Fig objects follow\r
+%\r
+% \r
+% here starts figure with depth 50\r
+/Times-Roman ff 300.00 scf sf\r
+3982 1275 m\r
+gs 1 -1 sc (digitized) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+4102 1605 m\r
+gs 1 -1 sc (values) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+6802 1275 m\r
+gs 1 -1 sc (digital) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+6705 1605 m\r
+gs 1 -1 sc (filtering) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+9427 1275 m\r
+gs 1 -1 sc (tracklet) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+9232 1605 m\r
+gs 1 -1 sc (calculation) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+12292 1200 m\r
+gs 1 -1 sc (global) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+12165 1530 m\r
+gs 1 -1 sc (tracking) col0 sh gr\r
+% Polyline\r
+7.500 slw\r
+n 900 1800 m 2700 1800 l 2700 900 l 900 900 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 3600 1800 m 5400 1800 l 5400 900 l 3600 900 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 6300 1800 m 8100 1800 l 8100 900 l 6300 900 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 9000 1800 m 10800 1800 l 10800 900 l 9000 900 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 11700 1800 m 13500 1800 l 13500 900 l 11700 900 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 3000 300 m 11400 300 l 11400 2400 l 3000 2400 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+n 6000 600 m 11100 600 l 11100 2100 l 6000 2100 l\r
+ cp gs col0 s gr \r
+% Polyline\r
+15.000 slw\r
+gs clippath\r
+3615 1410 m 3615 1290 l 3327 1290 l 3567 1350 l 3327 1410 l cp\r
+eoclip\r
+n 2700 1350 m\r
+ 3600 1350 l gs col0 s gr gr\r
+\r
+% arrowhead\r
+n 3327 1410 m 3567 1350 l 3327 1290 l col0 s\r
+% Polyline\r
+gs clippath\r
+6315 1410 m 6315 1290 l 6027 1290 l 6267 1350 l 6027 1410 l cp\r
+eoclip\r
+n 5400 1350 m\r
+ 6300 1350 l gs col0 s gr gr\r
+\r
+% arrowhead\r
+n 6027 1410 m 6267 1350 l 6027 1290 l col0 s\r
+% Polyline\r
+gs clippath\r
+9015 1410 m 9015 1290 l 8727 1290 l 8967 1350 l 8727 1410 l cp\r
+eoclip\r
+n 8100 1350 m\r
+ 9000 1350 l gs col0 s gr gr\r
+\r
+% arrowhead\r
+n 8727 1410 m 8967 1350 l 8727 1290 l col0 s\r
+% Polyline\r
+gs clippath\r
+11715 1410 m 11715 1290 l 11427 1290 l 11667 1350 l 11427 1410 l cp\r
+eoclip\r
+n 10800 1350 m\r
+ 11700 1350 l gs col0 s gr gr\r
+\r
+% arrowhead\r
+n 11427 1410 m 11667 1350 l 11427 1290 l col0 s\r
+/Times-Roman ff 300.00 scf sf\r
+1575 1425 m\r
+gs 1 -1 sc (Hits) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+7650 825 m\r
+gs 1 -1 sc (AliTRDmcmSim) col0 sh gr\r
+/Times-Roman ff 300.00 scf sf\r
+5925 525 m\r
+gs 1 -1 sc (AliTRDdigitzer) col0 sh gr\r
+% here ends figure;\r
+$F2psEnd\r
+rs\r
+showpage
\ No newline at end of file
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+% List of content
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\thispagestyle{empty}
+\tableofcontents
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Text
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Raw Data Simulation}
\label{RAWSIM}
%
+\section{Trigger Simulation}
+\label{TRGSIM}
+{\it Author: J.~Klein (jklein@physi.uni-heidelberg.de)}
+\vspace{.3cm}
+
+The trigger generation chain of the TRD can be simulated within
+AliRoot as well. It contains several stages as in the real
+hardware (s. Fig.~\ref{fig:trgsim}).
+
+For each event the hits in the active volume are converted to
+digitized signals in the AliTRDdigitizer. The digital processing as
+done in the TRAP is simulated in its method \\
+{\tt RunDigitalProcessing()} calling the MCM simulation (in {\tt
+ AliTRDmcmSim}) which implements the filters, zero-suppression and
+tracklet calculation. Here the same integer arithmetics is used as in
+the real TRAP. The trigger-relevant preprocessed data, i.e. the
+tracklets, are stored using a dedicated loader. From there they are
+accessed by the GTU simulation which runs the stackwise tracking. The
+individual stages are discussed in more detail in the following
+sections.
+\begin{figure}
+\begin{center}
+\includegraphics[angle=0,width=0.9\textwidth]{plots/trgsim_ov}
+\end{center}
+\caption[Trigger simulation overview]{Overview of the trigger
+ simulation}
+\label{fig:trgsim}
+\end{figure}
+
+\subsection{MCM simulation}
+The MCM simulation is contained in {\tt AliTRDmcmSim}. This class
+mimicks the digital part of an MCM. It can be used for the simulation
+after digitization has been performed.
+
+Internally, an object of {\tt AliTRDmcmSim} can hold the data of
+21~ADC channels both raw and filtered. After the instantiation {\tt
+ Init()} has to be called to define the position of the MCM. Then,
+the data can be fed using either of the following methods:
+\begin{description}
+\item[{\tt SetData(Int\_t iadc, Int\_t *adc)}] ~\\ Set the data for the
+ given ADC channel {\it iadc} from an array {\it adc} containing the
+ data for all timebins.
+\item[{\tt SetData(Int\_t iadc, Int\_t it, Int\_t adc)}] ~\\ Set the data for the
+ given ADC channel {\it iadc} and timebin {\it it} to the value {\it adc}.
+\item[{\tt SetData(AliTRDarrayADC *adcArray)}] ~\\ Set the data for the
+ whole MCM from the digits array pointed to by {\it adcArray}.
+\item[{\tt LoadMCM(AliRunLoader *rl, Int\_t det, Int\_t rob, Int\_t mcm)}]
+ ~\\ This method automatically initializes the MCM for the specified
+ location and loads the relevant data via the runloader pointed by
+ {\it rl}.
+\end{description}
+
+After loading of the data the processing stages can be run
+individually:
+\begin{description}
+\item[{\tt Filter()}] ~\\ The pedestal, gain and tail cancellation filters
+ are run on the currently loaded raw data. The filter settings
+ (including bypasses) are used as configured in the TRAP
+ (s.~\ref{sec:trapcfg}). The unfiltered raw data is kept such that it
+ is possible to rerun Filter(), e.g. with different settings.
+\item[{\tt Tracklet()}] ~\\ The tracklet calculation operates on the
+ filtered data (which is identical to the unfiltered data if Filter()
+ was not called). First, the hits are calculated and the fit
+ registers filled. Subsequently, the straight line fits for the four
+ most promising tracklets are calculated.
+\item[{\tt ZSMapping()}] ~\\ This methods performs the zero-suppression
+ which can be based on different criteria (to be configured in the
+ TRAP).
+\end{description}
+
+The results of the MCM simulation can be accessed in different ways:
+\begin{description}
+\item[{\tt WriteData(AliTRDarrayADC *digits)}] ~\\ Hereby, the data are
+ written to the pointed digits array. It is part of the TRAP
+ configuration whether raw or filtered data is written (EBSF).
+\item[{\tt ProduceRawStream(UInt\_t *buf, Int\_t bufsize, UInt\_t
+ iEv)}] ~\\ Produce the raw data stream for this MCM as it will
+ appear in the raw data of the half-chamber.
+\item[{\tt ProduceTrackletStream(UInt\_t *buf, Int\_t bufsize)}] ~\\
+ Produce the raw stream of tracklets as they appear in raw data.
+\item[{\tt StoreTracklets()}] ~\\ The tracklets are stored via the
+ runloader. This has to be called explicitly, otherwise the tracklets
+ will not be written.
+\end{description}
+
+\subsection{TRAP configuration}
+\label{sec:trapcfg}
+The TRAP configuration is kept in {\tt AliTRDtrapConfig} which is
+implemented as singleton. After obtaining a pointer to the class by a
+call to {\tt AliTRDtrapConfig::Instance()} values can be changed and read by:
+\begin{description}
+\item[{\tt SetTrapReg(TrapReg\_t reg, Int\_t value, Int\_t det, Int\_t rob,
+ Int\_t mcm)}] ~\\ This sets the given TRAP register given as the
+ abbreviation from the TRAP manual with preceding 'k' (enum) to the
+ given value. If you specify {\it det}, {\it rob} or {\it mcm} the
+ values are changed for individual MCMs. Not specified the setting is
+ applied globally.
+\item[{\tt GetTrapReg(TrapReg\_t reg, Int\_t det, Int\_t rob, Int\_t mcm)}]
+ ~\\ This method gets the current value of the given TRAP
+ registers. If the values are set individually for different MCMs you
+ have to pass {\it det}, {\it rob} and {\it mcm}. Otherwise, these
+ parameters can be omitted.
+\item[{\tt PrintTrapReg(TrapReg\_t reg, Int\_t det, Int\_t rob, Int\_t mcm)}]
+ ~\\ It is similar to the preceding method but prints the information
+ to stdout.
+\end{description}
+
+The calculated tracklets can be stored by a call to {\tt AliTRDmcmSim::StoreTracklets()}.
+
+\subsection{Tracklet classes}
+In order to unify the different sources of tracklets, e.g. real data
+or simulation, all implementations of tracklets derive from the
+abstract base class {\tt AliTRDtrackletBase}. The following
+implementations are currently in use:
+\begin{description}
+\item[{\tt AliTRDtrackletWord}] ~\\ This class is meant to represent the
+ information as really available from the FEE, i.e. only a 32-bit
+ word and the information on the detector it was produced on.
+\item[{\tt AliTRDtrackletMCM}] ~\\ Tracklets of this type are produced in
+ the MCM simulation and contain additional MC information.
+\item[{\tt AliTRDtrackletGTU}] This class is used during the GTU tracking
+ and contains a pointer to a tracklet and information assigned to it
+ during the global tracking.
+\end{description}
+
+\subsection{GTU simulation}
+
+The simulation of the TRD global tracking on tracklets is steered by
+AliTRDgtuSim. This class provides all the interface. The following
+classes are involved:
+\begin{description}
+\item[{\tt AliTRDgtuParam}] ~\\ This class contains or generates the relevant
+ parameters used for the GTU tracking.
+\item[{\tt AliTRDgtuTMU}] ~\\ This class holds the actual tracking algorithm
+ as it runs in one Track Matching Unit (TMU) which corresponds to one
+ stack.
+\end{description}
+
+The GTU simulation can be run by calling {\tt
+ AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd)} where
+{\it loader} points to the TRD loader and {\it esd} to an ESD
+event. The latter can be omitted in which case the output is not
+written to the ESD. The tracklets are automatically retrieved via the
+loader and the found tracks of type {\tt AliTRDtrackGTU} are
+internally stored in a tree for which a getter exists to access. If a
+pointer to an {\tt AliESDEvent} is given, the tracks are also written
+to the ESD (as {\tt AliESDTrdTrack}). For this the method {\tt
+ AliTRDtrackGTU::CreateTrdTrack()} is used which creates the {\tt
+ AliESDTrdTrack} (with reduced information compared to {\tt
+ AliTRDtrackGTU}).
+
+\subsection{CTP interface}
+
+The interface to the central trigger is defined in {\tt
+ AliTRDTrigger}. This class is called automatically during simulation
+and produces the trigger inputs for TRD (in {\tt
+ CreateInputs()}). They are only considered if they are part of the
+used trigger configuration (e.g. GRP/CTP/p-p.cfg).
+
+The actual trigger generation has to be contained in {\tt
+ Trigger()}. Currently, the GTU simulation is run from here using the
+previously calculated tracklets. The generated tracks are stored and
+the trigger inputs are propagated to CTP. Which trigger classes make
+use of the TRD inputs has to be defined in the trigger configuration.
+%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\setcounter{chapter}{2}
\setcounter{section}{0}
-\Chapter{Reconstruction}
+\Chapter{Reconstruction}\label{REC:}
+{\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
\thispagestyle{empty}
%
\section{Raw Data Reading}
%
-\section{Cluster Finding}
+\section{Cluster Finding}\label{REC:CL:}
+%
+\subsection{Cluster position reconstruction in the xy plane}\label{REC:CL:rphi}
+{\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
+%
+The procedures described in this section are implemented in the functions
+{\tt AliTRDcluster::GetXloc()}, {\tt AliTRDcluster::GetYloc()}, \\
+{\tt AliTRDcluster::GetSX()} and {\tt AliTRDcluster::GetSY()}.
%
-\section{Tracking}
+\setcounter{footnote}{0}
+\section{Tracking}\label{REC:Tracking:}
+{\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
+%
+The tracking procedures in TRD are responsible to attach clusters to tracks
+and to estimate/update the track parameters accordingly. The main class involved
+in this procedure is {\tt AliTRDtrackerV1} and the helper classes {\tt AliTRDcluster},
+{\tt AliTRDseedV1} and {\tt AliTRDtrackV1}. Additionally, information from
+{\tt AliTRDrecoParam} is mandatory to select the proper setup of the reconstruction.
+\\
+
+\noindent
+The tracking in TRD can be done in two major ways:
+\begin{itemize}
+\item Track prolongation from TPC.
+\item Stand alone track finding.
+\end{itemize}
+The first mode is the main tracking mode for all barrel tracks while the second
+is used to peak-up track segments fully contained in the TRD fiducial volume
+like conversions. Another feature of the TRD tracking besides the relative high
+thickness (conversions) is the spatial correlation of the signals in the radial
+direction due to residual tails in the cluster signals. This feature asked for
+an intermediate step between clusters and tracks, the tracklets. The TRD
+tracklets are linear fits of the clusters from one chamber. They are implemented
+in the class {\tt AliTRDseedV1} and they represent the core of the TRD offline
+reconstruction. In the following the tracklets will be described independently
+of the framework in which they are living (tracking) in the sections
+\ref{REC:Tracking:TrackletAttach}, \ref{REC:Tracking:TrackletFit} and
+\ref{REC:Tracking:TrackletErrors} and than their usage will be outlined in the
+barrel (section \ref{REC:Tracking:Propagate}) and stand alone tracking (section
+\ref{REC:Tracking:Clusters2TracksStack}).
+
+\subsection[title]{Tracklet building - Attaching clusters to tracklet\footnote{The
+procedures described in this section are implemented in the function
+{\tt AliTRDseedV1::AttachClusters()}.}}\label{REC:Tracking:TrackletAttach}
+
+\subsection[title]{Tracklet fitting\footnote{The procedures described in this
+section are implemented in the function {\tt AliTRDseedV1::Fit()}.}}\label{REC:Tracking:TrackletFit}
+
+{\bf Fit in the xy plane}\\
+
+The fit is performed to estimate the y position of the tracklet and the track
+angle in the bending plane. The clusters are represented in the chamber coordinate
+system (with respect to the anode wire - see {\tt AliTRDtrackerV1::FollowBackProlongation()}
+on how this is set). The $x$ and $y$ position of the cluster and also their variances
+are known from clusterizer level (see {\tt AliTRDcluster::GetXloc()},
+{\tt AliTRDcluster::GetYloc()}, {\tt AliTRDcluster::GetSX()} and \\
+{\tt AliTRDcluster::GetSY()}). If a Gaussian approximation is used to calculate
+$y$ coordinate of the cluster the position is recalculated taking into account the
+track angle.
+
+Since errors are calculated only in the $y$ directions, radial errors ($x$ direction)
+are mapped to $y$ by projection i.e.
+\begin{equation}
+\sigma_{x|y} = tg(\phi) \sigma_{x}
+\end{equation}
+and also by the Lorentz angle correction.\\
+
+{\bf Fit in the xz plane}\\
+
+The "fit" is performed to estimate the radial position ($x$ direction) where pad
+row cross happens. If no pad row crossing the $z$ position is taken from geometry
+and radial position is taken from the xy fit (see below).
+
+There are two methods to estimate the radial position of the pad row cross:\\
+1. leading cluster radial position : Here the lower part of the tracklet is
+considered and the last cluster registered (at radial $x_{0}$) on this segment
+is chosen to mark the pad row crossing. The error of the $z$ estimate is given by :
+\begin{equation}
+\sigma_{z} = tg(\theta) \Delta x_{x_{0}}/12
+\end{equation}
+The systematic errors for this estimation are generated by the following sources:
+ - no charge sharing between pad rows is considered (sharp cross)
+ - missing cluster at row cross (noise peak-up, under-threshold signal etc.).
+\\
+2. charge fit over the crossing point : Here the full energy deposit along
+the tracklet is considered to estimate the position of the crossing by a fit
+in the qx plane. The errors in the q directions are parameterized as
+$\sigma_q = q^2$. The systematic errors for this estimation are generated by the
+following sources:
+ - no general model for the qx dependence
+ - physical fluctuations of the charge deposit
+ - gain calibration dependence.\\
+
+{\bf Estimation of the radial position of the tracklet}\\
+
+For pad row cross the radial position is taken from the xz fit (see above).
+Otherwise it is taken as the interpolation point of the tracklet i.e. the
+point where the error in $y$ of the fit is minimum. The error in the $y$
+direction of the tracklet is (see {\tt AliTRDseedV1::GetCovAt()}):
+\begin{equation}
+\sigma_{y} = \sigma^{2}_{y_{0}} + 2x\:cov(y_{0}, dy/dx) + \sigma^{2}_{dy/dx}
+\end{equation}
+and thus the radial position is:
+\begin{equation}
+x = - cov(y_{0}, dy/dx)/\sigma^{2}_{dy/dx}
+\end{equation}
+
+{\bf Estimation of tracklet position error}\\
+
+The error in $y$ direction is the error of the linear fit at the radial
+position of the tracklet while in the $z$ direction is given by the cluster
+error or pad row cross error. In case of no pad row cross this is given by:
+\begin{eqnarray}
+\sigma_{y} = \sigma^{2}_{y_{0}} - 2cov^{2}(y_{0}, dy/dx)/\sigma^{2}_{dy/dx} + \sigma^{2}_{dy/dx}\\
+\sigma_{z} = Pad_{length}/12
+\end{eqnarray}
+For pad row cross the full error is calculated at the radial position of the
+crossing (see above) and the error in $z$ by the width of the crossing region -
+being a matter of parameterization.
+\begin{equation}
+\sigma_{z} = tg(\theta) \Delta x_{x_{0}}/12
+\end{equation}
+In case of no tilt correction (default in the barrel tracking) the tilt is
+taken into account by the rotation of the covariance matrix. See
+{\tt AliTRDseedV1::GetCovAt()} or \ref{REC:Tracking:TrackletErrors} for details.
+
+\subsection[title]{Tracklet errors\footnote{The procedures described in this
+section are implemented in the function {\tt AliTRDseedV1::GetCovAt()}.}}\label{REC:Tracking:TrackletErrors}
+
+Computes covariance in the $y$-$z$ plane at radial point $x$ (in tracking coordinates)
+and returns the results as:\\
+ cov[0] = Var($y$) \\
+ cov[1] = Cov($yz$)\\
+ cov[2] = Var($z$) \\
+
+{\bf Details}\\
+
+For the linear transformation
+\begin{equation}
+Y = T_{x} X^{T}
+\end{equation}
+The error propagation has the general form
+\begin{equation}
+C_{Y} = T_{x} C_{X} T_{x}^{T}
+\end{equation}
+We apply this formula 2 times. First to calculate the covariance of the tracklet
+at point $x$ we consider:
+\begin{eqnarray}
+T_{x} &=& (1\; x)\\
+X&=&(y0\; dy/dx)\\
+C_{X}&=&
+ \left( \begin{array}{cc}
+ Var(y0) & Cov(y0, dy/dx)\\
+ Cov(y0, dy/dx) & Var(dy/dx)
+ \end{array} \right)
+\end{eqnarray}
+and secondly to take into account the tilt angle
+\begin{eqnarray}
+T_{\alpha}& = &
+ \left( \begin{array}{cc}
+ cos(\alpha)&sin(\alpha)\\
+ -sin(\alpha)& cos(\alpha)
+ \end{array} \right)\\
+X&=&(y\; z)\\
+C_{X}&=&
+ \left( \begin{array}{cc}
+ Var(y) &0\\
+ 0 &Var(z)
+ \end{array} \right)
+\end{eqnarray}
+using simple trigonometrics one can write for this last case
+\begin{equation}
+C_{Y}=\frac{1}{1+tg^{2}\alpha}
+ \left( \begin{array}{cc}
+ \sigma_{y}^{2}+tg^{2}(\alpha)\sigma_{z}^{2} & tg(\alpha)(\sigma_{z}^{2}-\sigma_{y}^{2})\\
+ tg(\alpha)(\sigma_{z}^{2}-\sigma_{y}^{2}) & \sigma_{z}^{2}+tg^{2}(\alpha)\sigma_{y}^{2}
+ \end{array} \right)
+\end{equation}
+which can be aproximated for small alphas (2 deg) with
+\begin{equation}
+C_{Y}=
+ \left( \begin{array}{cc}
+ \sigma_{y}^{2} & (\sigma_{z}^{2}-\sigma_{y}^{2})tg(\alpha)\\
+ ((\sigma_{z}^{2}-\sigma_{y}^{2})tg(\alpha) & \sigma_{z}^{2}
+ \end{array} \right)
+\end{equation}
+before applying the tilt rotation we also apply systematic uncertainties
+to the tracklet position which can be tuned from outside via the
+{\tt AliTRDrecoParam::SetSysCovMatrix()}. They might account for extra
+misalignment/miscalibration uncertainties.
+
+\subsection[title]{Track propagation in barrel tracking\footnote{The
+procedures described in this section are implemented in the function
+{\tt AliTRDtrackerV1::PropagateBack()}.}}\label{REC:Tracking:Propagate}
+
+{\bf TRD Tracklet initialization and Kalman fit}\footnote{The procedures
+described in this section are implemented in the function
+{\tt AliTRDtrackerV1::FollowBackProlongation()}.}\\
+
+\subsection[title]{Track finding stack wise \footnote{The procedures
+described in this section are implemented in the function
+{\tt AliTRDtrackerV1::Clusters2TracksStack()}.}}\label{REC:Tracking:Clusters2TracksStack}
+
+{\bf TRD track finding}\footnote{The procedures described in this section
+are implemented in the function {\tt AliTRDtrackerV1::MakeSeeds()}.}
+\\
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage