]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add text by Alexandru and Jochen
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 May 2009 12:36:53 +0000 (12:36 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 May 2009 12:36:53 +0000 (12:36 +0000)
TRD/doc/plots/trgsim_ov.eps [new file with mode: 0644]
TRD/doc/trd_software_writeup.pdf
TRD/doc/trd_software_writeup.tex

diff --git a/TRD/doc/plots/trgsim_ov.eps b/TRD/doc/plots/trgsim_ov.eps
new file mode 100644 (file)
index 0000000..cde29ae
--- /dev/null
@@ -0,0 +1,190 @@
+%!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
index c3ba53897707a9c6374cd2dc298f555ae1afce51..29640b0e889476eb8f2bca9ed16cba6ff707d4d0 100644 (file)
Binary files a/TRD/doc/trd_software_writeup.pdf and b/TRD/doc/trd_software_writeup.pdf differ
index ff27bde48cb412006e9aab58ef0aaf579b03d517..25de3368ebe6e4ed147fb2053a91e306330d4ff6 100644 (file)
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% List of content
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\thispagestyle{empty}
+\tableofcontents
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
 % Text
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -715,18 +724,387 @@ Zero suppression code.
 \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