]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/doc/trd_software_writeup.tex
- Replace the TClonesArray of AliMUONTrackParam by a TObjArray in
[u/mrichter/AliRoot.git] / TRD / doc / trd_software_writeup.tex
1 % ---------------------------------------------------------------------
2 %
3 % TRD Software Writeup
4 %
5 % ---------------------------------------------------------------------
6 %
7 \documentclass{alicetdr}
8 %\documentclass[draft]{alicetdr}
9 %
10 % For figures
11 \usepackage{graphicx}
12 %
13 % Helvetica
14 \usepackage{helvet}
15 \renewcommand{\rmdefault}{phv}
16 \renewcommand{\sfdefault}{phv}
17 %
18 \let\Otemize =\itemize
19 \let\Onumerate =\enumerate
20 \let\Oescription =\description
21 % Zero the vertical spacing parameters
22 \def\Nospacing{\itemsep=0pt\topsep=0pt\partopsep=0pt\parskip=0pt\parsep=0pt}
23 \def\Topspac{\vspace{-0.5\baselineskip}}
24 \def\Botspac{\vspace{-0.2\baselineskip}}
25 % Redefine the environments in terms of the original values
26 \newenvironment{Itemize}{\Topspac\Otemize\Nospacing}{\endlist\Botspac}
27 \newenvironment{Enumerate}{\Topspac\Onumerate\Nospacing}{\endlist\Botspac}
28 \newenvironment{Description}{\Topspac\Oescription\Nospacing}{\endlist\Botspac}
29 %
30 \include{alicedefs}
31 %
32 \begin{document}
33 %
34 \pagenumbering{roman}
35 %
36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37 %
38 % Title page
39 %
40 \font\HUGEA=phvr at 36mm  % declare very big font
41 \font\HUGEB=phvr at 14mm  % declare very big font
42 %
43 \begin{titlepage}
44 %
45 \vspace{10.0cm}
46 %
47 \begin{center}
48 {\HUGEA T\hspace{5.mm}R\hspace{5.mm}D} \\
49 %
50 \vspace{3.5cm}
51 {\HUGEB Offline Software Writeup} \\
52 %
53 \vspace{2.0cm}
54 {\Large Version 1.0, \today}\\
55 %
56 \vfill
57 %
58 \vspace{5.5cm}
59 %
60 \end{center}
61 %
62 \end{titlepage}
63 %
64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65 %
66 % Empty page to adjust page numbering
67 %
68 \onecolumn
69 \thispagestyle{empty}
70 \mbox{  }
71 %
72 \setcounter{page}{0}
73 \onecolumn
74 %
75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76 %
77 \pagenumbering{arabic}
78 %
79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
80 %
81 % List of content
82 %
83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
84 %
85 \thispagestyle{empty}
86 \tableofcontents
87 %
88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
89 %
90 % Text
91 %
92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93 %
94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 \newpage
96 \setcounter{chapter}{0}
97 \setcounter{section}{0}    
98 \Chapter{Introduction}
99 \thispagestyle{empty}
100 %
101 This document is supposed to provide a description of the offline
102 software components that are specific to the TRD.  It is an attempt
103 to collect useful informations on the design and usage of the TRD
104 software, in order to facilitate newcomers the introduction to the
105 code.  The most important classes and procedures are described and
106 several examples and use cases are given.
107 However, this writeup is not meant to be a basic AliRoot introduction.  
108 For this purpose the reader is referred to the general AliRoot users 
109 guide \cite{ALIROOT}. 
110 %
111 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112 \newpage
113 \setcounter{chapter}{1}
114 \setcounter{section}{0}    
115 \Chapter{Simulation}
116 \thispagestyle{empty}
117 %
118 \section{Geometry}
119 \label{GEO:intro}
120 %
121 {\it Author: C.~Blume (blume@ikf.uni-frankfurt.de)}
122 \smallskip
123 \\
124 %
125 The TRD geometry, as implemented in {\tt AliTRDgeometry}, consists of 
126 several components: The readout chambers (ROC), the services, and the 
127 supermodule frame.  All these parts are placed inside the TRD mother 
128 volumes, which in turn are part of the space frame geometry 
129 ({\tt AliFRAMEv2}).  Therefore, the space frame geometry has to be 
130 present to build the TRD geometry.  For each of the 18 supermodules 
131 one single mothervolume is provided (BTRDxx).  This allows to configure 
132 the TRD geometry in {\tt Config.C} such that it only contains a subset 
133 of supermodules in the total ALICE geometry via 
134 {\tt AliTRDgeometry::SetSMstatus()}.  An incomplete detector setup, as
135 it exists for first data taking, can thus be modelled.  The class
136 {\tt AliTRDgeometry} also serves as the central place to collect all
137 geometry relevant numbers and the definitions of various numbering
138 schemes of detector components (e.g. sector numbers).  However, all 
139 geometric parameters that refer to the pad planes are compiled in
140 {\tt AliTRDpadPlane}.
141 %
142 \subsection{Readout Chambers}
143 \label{GEO:rocs}
144 %
145 \begin{figure}[htb]
146 \begin{center}
147 \includegraphics[width=0.85\textwidth]{plots/geo_roc.eps}
148 \end{center}
149 \caption{
150 A TRD read out chamber as implemented in the AliRoot geometry.  The
151 various material layers are visible.  Also, the MCMs on top of the
152 chamber, as well as the cooling pipes are shown.
153 }
154 \label{FIG_GEO:roc_geom}
155 \end{figure}
156 %
157 All ROCs are modelled in the same way, only their dimensions vary.  
158 They consist of an aluminum frame, which contains the material for 
159 the radiator and the gas of the drift region, a Wacosit frame (whose 
160 material is represented by carbon), that surrounds the amplification 
161 region, and the support structure, consisting of its aluminum frame, 
162 material for the read out pads, back panel, and readout boards).  The 
163 material inside the active parts of the chambers (radiator, gas, wire 
164 planes, pad planes, glue, read out boards, etc.) is introduced by 
165 uniform layers of the corresponding material, whose thicknesses were 
166 chosen such to result in the correct radiation length.  On top of the
167 individual ROCs the multi chip modules (MCM) as well as the cooling 
168 pipes and cables are placed.  One obvious simplification, already visible
169 in Fig.~\ref{FIG_GEO:roc_geom}, is that in the AliRoot geometry the pipes
170 run straight across the chambers instead of following the meandering path 
171 as in reality.
172 %
173 \subsection{Supermodules}
174 \label{GEO:smframes}
175 %
176 \begin{figure}[htb]
177 \begin{center}
178 \begin{minipage}[b]{0.49\textwidth}
179 \begin{center}
180 \includegraphics[width=0.65\textwidth,angle=270]{plots/geo_smframe.eps}
181 \end{center}
182 \end{minipage}
183 \begin{minipage}[b]{0.49\textwidth}
184 \begin{center}
185 \includegraphics[width=0.70\textwidth,angle=270]{plots/geo_sm.eps}
186 \end{center}
187 \end{minipage}
188 \end{center}
189 \caption{
190 A TRD supermodule, as implemented in the AliRoot geometry.  The left
191 panel shows only the support structures of the aluminum frame, together
192 with some service elements.  The right panel shows a complete 
193 supermodule including some surrounding parts of the space frame.
194 }
195 \label{FIG_GEO:sm_geom}
196 \end{figure}
197 %
198 The supermodule frames consist of the aluminum sheets on the sides, top,
199 and bottom of a supermodule together with the traversing support structures.
200 The left panel of Fig.~\ref{FIG_GEO:sm_geom} shows the structures that are
201 implemented in the TRD geometry.  Also, parts of the services like the LV
202 power bus bars and cooling arteries can be seen.  Additional electronics 
203 equipment (e.g. ``Sch\"utten-Box``) is represented by aluminum boxes that 
204 contain corresponding copper layers to mimic the present material.  The 
205 services also include e.g. gas distribution boxes, cooling pipes, power and
206 readout cables, and power connection panels.  Part of the services extend
207 into the baby and the back frame.  Therefore, additional mother volumes
208 have been introduced in order to accommodate this material.  All supermodules 
209 have inserts of carbon fiber sheets in the bottom part of the aluminum 
210 casing, for the ones in front of the PHOS detector (sectors 11--15) also 
211 the top part includes carbon fiber inserts.  The supermodules in the sectors 
212 13--15 do not contain any ROCs in the middle stack in order to provide the 
213 holes for the PHOS detector.  Instead, gas tubes of stainless steel have
214 been built in.
215 %
216 Generally, the TRD volumina start with the letter  ``{\bf U}''.  The geometry
217 is defined by the function {\tt AliTRDgeometry::CreateGeometry()}, which
218 generates the TRD mother volumes ({\bf UTI1}, {\bf UTI2}, {\bf UTI3}) and the 
219 volumes that constitute a single ROC.  This function in turn also calls 
220 {\tt AliTRDgeometry::CreateFrame()} to create the TRD support frame, 
221 {\tt AliTRDgeometry::CreateServices()} to create the services, and 
222 {\tt AliTRDgeometry::GroupChambers()} which assembles the alignable
223 volumes for a single ROC ({\bf UTxx}, where {\bf xx} is the detector
224 number {\bf DET-SEC}, defined inside a single super module, see below). The
225 materials, together with their tracking parameters, that are assigned to
226 the volumina, are defined in {\tt AliTRD::CreateMaterials()}.
227 In the following table the most important TRD volumina are described
228 ({\bf xx} = {\bf DET-SEC} number):
229 %
230 \begin{center}
231 \begin{tabular}{l|l}
232 Name       & Description                                                                \\ \hline
233 {\bf UTR1} & TRD mothervolume for default supermodules                                  \\
234 {\bf UTR2} & TRD mothervolume for supermodules in front of PHOS                         \\
235 {\bf UTR3} & As {\bf UTR2}, but w/o middle stack                                        \\ \hline
236 {\bf UTxx} & Top volume of a single ROC                                                 \\ 
237            & Defines the alignable volume for a single ROC                              \\ \hline
238 {\bf UAxx} & Lower part of the ROCs, including drift volume and radiator                \\
239 {\bf UDxx} & Amplification region                                                       \\
240 {\bf UFxx} & Back panel, including pad planes and PCB boards of readout electronics     \\
241 {\bf UUxx} & Contains services on chambers (cooling, cables, DCS boards) and MCM chips  \\
242 \end{tabular}
243 \end{center}
244 %
245 \subsection{Material Budget and Weight}
246 %
247 \begin{figure}[htb]
248 \begin{center}
249 \includegraphics[width=0.75\textwidth]{plots/geo_material_budget.eps}
250 \end{center}
251 \caption{
252 The radiation length map in units of $X/X_{0}$ in part of the active 
253 detector area of super module 0 as a function of the pseudorapidity 
254 $\eta$ and the azimuth angle $\phi$, calculated from the geometry in 
255 AliRoot.  Visible are the positions of the MCMs and the cooling pipes 
256 as hot spots.
257 }
258 \label{FIG_GEO:mat_budget}
259 \end{figure}
260 %
261 The volumina defining a ROC contain several layers that represent the 
262 different materials present inside a chamber and which therefore define 
263 the material budget inside the sensitive areas:
264 \begin{center}
265 \begin{tabular}{l|l|l|l|c|c|c}
266 Name         & Mother & Material    & Description                  & Thickness & Density      & $X/X_{0}$ \\ 
267              &        &             &                              & [cm]      & [g/cm$^{3}$] & [\%]      \\ \hline
268 {\bf URMYxx} & UAxx   & Mylar       & Mylar layer on radiator (x2) & 0.0015    & 1.39         & 0.005     \\
269 {\bf URCBxx} & UAxx   & Carbon      & Carbon fiber mats (x2)       & 0.0055    & 1.75         & 0.023     \\
270 {\bf URGLxx} & UAxx   & Araldite    & Glue on the fiber mats (x2)  & 0.0065    & 1.12         & 0.018     \\
271 {\bf URRHxx} & UAxx   & Rohacell    & Sandwich structure (x2)      & 0.8       & 0.075        & 0.149     \\
272 {\bf URFBxx} & UAxx   & PP          & Fiber mats inside radiator   & 3.186     & 0.068        & 0.490     \\ \hline
273 {\bf UJxx}   & UAxx   & Xe/CO$_{2}$ & The drift region             & 3.0       & 0.00495      & 0.167     \\ 
274 {\bf UKxx}   & UDxx   & Xe/CO$_{2}$ & The amplification region     & 0.7       & 0.00495      & 0.039     \\ 
275 {\bf UWxx}   & UKxx   & Copper      & Wire planes (x2)             & 0.00011   & 8.96         & 0.008     \\ \hline
276 {\bf UPPDxx} & UFxx   & Copper      & Copper of pad plane          & 0.0025    & 8.96         & 0.174     \\
277 {\bf UPPPxx} & UFxx   & G10         & PCB of pad plane             & 0.0356    & 2.0          & 0.239     \\
278 {\bf UPGLxx} & UFxx   & Araldite    & Glue on pad plane            & 0.0923    & 1.12         & 0.249     \\
279              &        & Araldite    & + additional glue (leaks)    & 0.0505    & 1.12         & 0.107     \\
280 {\bf UPCBxx} & UFxx   & Carbon      & Carbon fiber mats (x2)       & 0.019     & 1.75         & 0.078     \\
281 {\bf UPHCxx} & UFxx   & Aramide     & Honeycomb structure          & 2.0299    & 0.032        & 0.169     \\
282 {\bf UPPCxx} & UFxx   & G10         & PCB of readout boards        & 0.0486    & 2.0          & 0.326     \\
283 {\bf UPRDxx} & UFxx   & Copper      & Copper of readout boards     & 0.0057    & 8.96         & 0.404     \\
284 {\bf UPELxx} & UFxx   & Copper      & Electronics and cables       & 0.0029    & 8.96         & 0.202     \\
285 \end{tabular}
286 \end{center}
287 This material budget has been adjusted to match the estimate given 
288 in~\cite{CLEMENS}, with the exception of the glue layer in the back panel
289 ({\bf UPGLxx}), which has been made thicker to include all the additional
290 glue that has been applied to fix the gas leaks.  Figure~\ref{FIG_GEO:mat_budget}
291 shows the resulting radiation length map in the active detector area for
292 super module 0, which has only carbon fiber inserts at the bottom and is
293 thus one of the super modules with the largest material budget.  It is
294 clearly visible that the MCMs and the cooling pipes introduce hot spots
295 in $X/X_{0}$.  However, after averaging over the shown area, the mean
296 value is found to be $\langle X/X_{0}\rangle =$~24.7~\%.  For a supermodule
297 with carbon fiber inserts at the top and the bottom one finds
298 $\langle X/X_{0}\rangle =$~23.8~\% and in the regions of the PHOS holes (i.e.
299 in the middle stack of supermodules 13--15) it is only 
300 $\langle X/X_{0}\rangle =$~1.9~\%.
301
302 The total weight of a single TRD super module in the AliRoot geometry, 
303 including all services, is currently 1595kg, which is ca. 5\% short of its
304 real weight.  A single ROC of the type L0C1 with electronics and cooling 
305 pipes weighs 21.82kg.
306 %
307 \subsection{Naming Conventions and Numbering Schemes}
308 %
309 \begin{figure}[htb]
310 \begin{minipage}[b]{0.49\textwidth}
311 \begin{center}
312 \includegraphics[width=\textwidth]{plots/sector_numbering.eps}
313 \end{center}
314 \end{minipage}
315 \begin{minipage}[b]{0.49\textwidth}
316 \begin{center}
317 \includegraphics[width=\textwidth]{plots/layer_numbering.eps}
318 \vspace{1.4cm}
319 \end{center}
320 \end{minipage}
321 \begin{center}
322 \includegraphics[width=0.60\textwidth]{plots/stack_numbering.eps}
323 \end{center}
324 \caption{
325 Illustration of the TRD numbering scheme for super modules, defined in
326 the global ALICE coordinate system: a) {\bf SECTOR} number, b) 
327 {\bf LAYER} number, c) {\bf STACK} number.
328 }
329 \label{FIG_GEO:sm_numbering}
330 \end{figure}
331 %
332 The numbering schemes and the orientations of coordinate systems generally 
333 follow the official ALICE-TRD definition \cite{DAVID}.  Therefore, the
334 whole geometry is defined in the global ALICE coordinate system.
335 %
336 Inside the code we use the following nomenclature (see 
337 Fig.~\ref{FIG_GEO:sm_numbering}), which should be used consistently
338 throughout the TRD code:
339 %
340 \begin{center}
341 \begin{tabular}{l|l|l}
342 Name          & Definition                                   & Range  \\ \hline
343 {\bf SECTOR}  & TRD sector in azimuth (i.e. one supermodule) & 0--17  \\
344 {\bf LAYER}   & Layer inside a supermodule                   & 0--5   \\
345 {\bf STACK}   & Division of a supermodule along z-direction  & 0--4   \\
346 {\bf DET}     & Single ROC in whole TRD                      & 0--539 \\ 
347 {\bf DET-SEC} & Single ROC in one super module               & 0--29 
348 \end{tabular}
349 \end{center}
350 %
351 Due to the holes in front of the PHOS detector, naturally not all {\bf DET} 
352 numbers correspond to existing ROCs.  A single ROC can thus be uniquely 
353 addressed by either using the three numbers 
354 ({\bf LAYER}, {\bf STACK}, {\bf SECTOR}) or the single {\bf DET} number.
355 The correspondence between the two possibilities is defined as:
356 \begin{center}
357 \mbox{{\bf DET} = {\bf LAYER} + {\bf STACK}$\times$5 + {\bf SECTOR}$\times$5$\times$4}
358 \end{center}
359 Additionally, there is a number that is unique inside a given super module (i.e. 
360 sector) and therefore has a range of 0~--~29:
361 \begin{center}
362 \mbox{{\bf DET-SEC} = {\bf LAYER} + {\bf STACK}$\times$5}
363 \end{center}
364 The class {\tt AliTRDgeometry} provides a set of functions that could/should
365 be used to convert the one into the other:\\
366 \hspace*{1.5cm}{\tt AliTRDgeometry::GetDetector(layer,stack,sector)} \\
367 \hspace*{1.5cm}{\tt AliTRDgeometry::GetDetectorSec(layer,stack)}     \\
368 \hspace*{1.5cm}{\tt AliTRDgeometry::GetLayer(det)}                   \\
369 \hspace*{1.5cm}{\tt AliTRDgeometry::GetStack(det)}                   \\
370 \hspace*{1.5cm}{\tt AliTRDgeometry::GetSector(det)}                  \\
371 %
372 \subsection{Pad Planes}
373 %
374 All geometric parameters relevant to the pad planes are handled via the
375 class {\tt AliTRDpadPlane}.  This comprises the dimensions of the pad planes
376 and the pad themselves, the number of padrows, padcolumns, and their tilting angle.  
377 The initialization of the needed {\tt AliTRDpadPlane} objects is done in 
378 {\tt AliTRDgeometry::CreatePadPlaneArray()}.  The number of padrows can be 12 
379 (C0-type) or 16 (C1-type), the number of padcolumns is 144 in any case.  Again,
380 the numbering convention follows the definition given in \cite{DAVID}.  Thus,
381 the padrow numbers in a given pad plane increase from 0 to 11(15) with decreasing
382 $z$-position, while the padcolumn numbers increase from 0 to 144 with increasing 
383 $\phi$ angle (i.e. counter clockwise).  The tilting angle of the pads is 2~degrees,
384 with alternating signs at different layers, beginning with +2~degrees for layer~0.
385 The class {\tt AliTRDpadPlane} provides a variety of functions that allow to assign 
386 a pad number (row/column) to signals generated at a given hit position and which
387 are used during the digitization process.
388 %
389 \section{Hit Generation}
390 %
391 {\it Author: C.~Blume (blume@ikf.uni-frankfurt.de)}
392 \smallskip
393 \\
394 %
395 In the case of the TRD a single hit corresponds to a cluster of electrons 
396 resulting from the ionization of the detector gas.  This ionization can be due
397 to the normal energy loss process of a charged particle or due to the 
398 absorption of a transition radiation (TR) photon.  A single TRD hit, as
399 defined in {\tt AliTRDhit} therefore contains the following data members:
400 %
401 \begin{center}
402 \begin{tabular}{ll}
403 {\tt fTrack}    & Index of MC particle in kine tree                                        \\
404 {\tt fX}        & X-position of the hit in global coordinates                              \\
405 {\tt fY}        & Y-position of the hit in global coordinates                              \\
406 {\tt fZ}        & Z-position of the hit in global coordinates                              \\
407 {\tt fDetector} & Number of the ROC ({\bf DET} number)                                     \\
408 {\tt fQ}        & Number of electrons created in the ionization step. Negative for TR hits \\
409 {\tt fTime}     & Absolute time of the hit in $\mu$s. Needed for pile-up events            \\
410 \end{tabular}
411 \end{center}
412 %
413 On top of this, it is also stored in the {\tt TObject} bit field status word  
414 whether a hit is inside the drift or the amplification region 
415 (see {\tt AliTRDhit::FromDrift()} and {\tt AliTRDhit::FromAmplification()}).
416 The creation of hits is steered by {\tt AliTRDv1::StepManager()}.
417 %
418 \subsection{Energy loss}
419 %
420 A charged particle, traversing the gas volume of the TRD chambers, will release
421 charge proportional to its specific energy loss.  In the TRD code this process
422 is implemented in \\{\tt AliTRDv1::StepManager()}.  This implementation used a 
423 fixed step size.  The standard value here is 0.1~cm, but other values can be
424 set via {\tt AliTRDv1::SetStepSize()}.  The energy deposited in a given step is
425 then calculated by the chosen MC program (typically Geant3.21), which after
426 division by the ionization energy gives the number of electrons of the new hit.
427 The version 2) will also work for an Ar/CO$_{2}$ mixture, which can be selected
428 by \\{\tt AliTRDSimParam::SetArgon()}. 
429 %
430 \subsection{Photons from transition radiation}
431 %
432 Additionally to the hits from energy loss, also hits from the absorption of
433 TR photons are generated.  This is done in {\tt AliTRDv1::CreateTRhit()}, which
434 in turn is called by the chosen step manager for electrons and positrons
435 entering the entering the drift volume.  The process consists of two steps:
436 first the number and energies of the TR photons have to be determined and then
437 their absorption position inside the gas volume has to be calculated.  The
438 corresponding procedures, used by {\tt AliTRDv1::CreateTRhit()}, are 
439 implemented in {\tt AliTRDsimTR()}.  This class contains a parametrization
440 of TR photons generated by a regular foil stack radiator \cite{TRPHOT}.  This
441 parametrization has been tuned such that the resulting spectrum matches the
442 one of the fiber radiator that used in reality.  Since the TR production
443 depends also on the momentum of the electron, the parameters have been 
444 adjusted in several momentum bins.  After a TR photon has been generated and put
445 on the particle stack, it is assumed that it follows a straight trajectory 
446 whose direction is determined by the momentum vector of the generating electron.  
447 Since the emission angle for TR photons is very small ($\sim 1/\gamma$) this 
448 is a valid approximation.  The absorption length, which thus determines the 
449 TR hit position, is randomly chosen according to the absorption cross sections
450 in the gas mixture.  These energy dependent cross sections are also included
451 in {\tt AliTRDsimTR}.
452 %
453 \subsection{Track references}
454 %
455 The TRD simulation produces track references ({\tt AliTrackReference}) each time 
456 a charged particle is entering the drift region and exiting the amplification 
457 region.  These track references thus provide information on the position where 
458 the MC particle was entering and existing the sensitive region of a ROC, as well
459 as on its momentum components at this positions.  Also, the index to the MC particle
460 in the kinematic tree is stored so that the full MC history can be retrieved.
461 %
462 \section{Digitization}
463 %
464 {\it Author: C.~Blume (blume@ikf.uni-frankfurt.de)}
465 \smallskip
466 \\
467 %
468 The second step in the simulation chain is the translation of the hit information,
469 i.e. position and amount of deposited charge, into the final detector response
470 that can be stored in digits objects ({\tt AliTRDdigits}):
471 %
472 \begin{center}
473 \begin{tabular}{ll}
474 {\tt fAmp}         & Signal amplitude                      \\
475 {\tt fId}          & Number of the ROC ({\bf DET} number)  \\
476 {\tt fIndexInList} & Track index                           \\
477 {\tt fRow}         & Pad row number                        \\
478 {\tt fColumn}      & Pad column number                     \\
479 {\tt fTime}        & Time bin number                       \\
480 \end{tabular}
481 \end{center}
482 %
483 However, in practice {\tt AliTRDdigits} is not used to store the digits 
484 information.  Instead the data containers described in \ref{DIGITS:containers}
485 are used for this purpose.  The digitization process includes as an 
486 intermediate step between hit and digits the so-called summable digits, or 
487 sdigits:
488 \begin{center}
489 \mbox{{\bf HITS} $\Longrightarrow$ {\bf SDIGITS} $\Longrightarrow$ {\bf DIGITS}}
490 \end{center}
491 They sdigits contain the detector signals before discretization and the addition
492 of noise and are used to merge several events into a single one.
493 %
494 \subsection{Digitizer}
495 %
496 The class {\tt AliTRDdigitizer} contains all the necessary procedures to convert
497 hits into sdigits and subsequently sdigits into digits.  The standard sequence to
498 produce sdigits, as would be initiated by {\tt AliSimulation}, is shown here:
499 %
500 \begin{center}
501 \unitlength1.0cm
502 \begin{picture}(10,9)
503 \put(2.5,8.0){\framebox(5.0,0.8){{\tt MakeDigits()}}}
504 \put(2.5,6.4){\framebox(5.0,0.8){{\tt SortHits()}}}
505 \put(2.5,4.8){\framebox(5.0,0.8){{\tt ConvertHits(det)}}}
506 \put(2.5,3.2){\framebox(5.0,0.8){{\tt ConvertSignals(det)}}}
507 \put(2.5,1.6){\framebox(5.0,0.8){{\tt Signal2SDigits(det)}}}
508 \put(2.5,0.0){\framebox(5.0,0.8){{\tt TRD.SDigits.root}}}
509 \put(5.0,8.0){\vector(0,-1){0.8}}
510 \put(5.0,6.4){\vector(0,-1){0.8}}
511 \put(5.0,4.8){\vector(0,-1){0.8}}
512 \put(5.0,3.2){\vector(0,-1){0.8}}
513 \put(5.0,1.6){\vector(0,-1){0.8}}
514 \put(5.0,1.2){\line(-1,0){4.0}}
515 \put(1.0,1.2){\line(0,1){4.8}}
516 \put(1.0,6.0){\vector(1,0){4.0}}
517 \put(0.2,6.1){{\tt det=0-539}}
518 \end{picture}
519 \end{center}
520 %
521 The first function {\tt SortHits()} sorts the simulated hits according to
522 their {\bf DET} number, so that the digitization procedures can be called
523 for a single ROCs in the following loop.  The function {\tt ConvertHits()}
524 does the conversion of the hit information into a detector signal.  In this
525 procedure each electron of a given hit is in principle followed along its
526 path from the position of the primary ionization towards the anode wire.
527 The position of this electron can be modified by diffusion in the gas
528 ({\tt AliTRDdigitizer::Diffusion()}), ExB effect ({\tt AliTRDdigitizer::ExB()}),
529 and absorption ({\tt AliTRDdigitizer::Absorbtion()}, off per default).
530 The drift time of the electrons is also modified according to their distance
531 to the corresponding anode wire position ({\tt AliTRDdigitizer::TimeStruct()}),
532 since the electric field lines are not uniform inside the amplification region.
533 This results in a non-isochronity of the drift time, which has been
534 simulated with the GARFIELD program and the tabulated results of this
535 simulation are used in the digitizing process to adjust the drift times
536 accordingly. Once the position and the drift time of the electron at the
537 anode wire plane are know, the signal induced on the pads can be calculated.
538 This involves three effects: the pad response, which distributes the charge
539 on several pads ({\tt AliTRDdigitizer::PadResponse()}), the time response due 
540 to the slow ion drift and the PASA response function, which distributes the
541 charge onto the following time bins, ({\tt AliTRDdigitizer::TimeResponse()}), 
542 and the cross talk between neighboring pads {\tt AliTRD\-digitizer::CrossTalk()}).  
543 At the end of this procedure, the charge seen by each pad in each time bin 
544 is available.  Also, the indices of maximally three MC particles in the kine
545 tree contributing to a given pad signal are stored, so that in a later 
546 analysis it can be tested which particle generated what signal.
547 As a next step the signals could either directly be converted into {\bf DIGITS},
548 or, which is the default procedure, they are stored as {\bf SDIGITIS}.
549 The corresponding functions ({\tt AliTRDdigitizer::Signal2SDigits()} and
550 {\tt AliTRDdigitizer::Signal2ADC()}) are called from 
551 {\tt AliTRDdigitizer::ConvertSignals()}, depending on the configuration.
552 The function {\tt AliTRDdigitizer::Signal2SDigits()} stores the signals as 
553 {\bf SDIGITS} in data structures of the type {\tt AliTRDarraySignal} (see 
554 section \ref{DIGITS:containers}).  
555
556 If desired, the {\bf SDIGITS} can now be added to the {\bf SDIGITS} from other
557 simulated events, e.g. in order to embed a specific signal into a background
558 event ({\tt AliTRDdigitizer::MergeSDigits()}). After this optional step, the 
559 {\bf SDIGITS} are finally being converted into {\bf DIGITS}. This process is
560 steered by the function ({\tt AliTRDdigitizer::ConvertSDigits()}). 
561 %
562 \begin{center}
563 \unitlength1.0cm
564 \begin{picture}(10,9)
565 \put(2.5,8.0){\framebox(5.0,0.8){{\tt Exec()}}}
566 \put(2.5,6.4){\framebox(5.0,0.8){{\tt SDigits2Digits()}}}
567 \put(2.5,4.8){\framebox(5.0,0.8){{\tt MergeSDigits()}}}
568 \put(2.5,3.2){\framebox(5.0,0.8){{\tt ConvertSDigits()}}}
569 \put(2.5,1.6){\framebox(5.0,0.8){{\tt Signal2ADC(det)}}}
570 \put(2.5,0.0){\framebox(5.0,0.8){{\tt TRD.Digits.root}}}
571 \put(5.0,8.0){\vector(0,-1){0.8}}
572 \put(5.0,6.4){\vector(0,-1){0.8}}
573 \put(5.0,4.8){\vector(0,-1){0.8}}
574 \put(5.0,3.2){\vector(0,-1){0.8}}
575 \put(5.0,1.6){\vector(0,-1){0.8}}
576 \put(5.0,1.2){\line(-1,0){4.0}}
577 \put(1.0,1.2){\line(0,1){1.6}}
578 \put(1.0,2.8){\vector(1,0){4.0}}
579 \put(0.2,2.9){{\tt det=0-539}}
580 \end{picture}
581 \end{center}
582 %
583 The essential step in the final {\bf SDIGITS} $\Longrightarrow$ {\bf DIGITS} 
584 conversion is performed by the function {\tt AliTRDdigitizer::Signal2ADC()}. 
585 Here pad signals, that are stored as floats, are finally translated into 
586 integer ADC values. This conversion involves a number of parameters: the pad 
587 coupling and time coupling factors, the gain of the PASA and of the 
588 amplification at the anode wire, and the input range and baseline of the ADCs. 
589 The coupling factors take into account that only a fraction of the incoming 
590 signal is sampled in the digitization process. At this point also the relative 
591 gain factors derived from the calibration procedures for a given dataset will 
592 be used to distort the simulated data correspondingly. The noise is generated 
593 according to a Gaussian distribution of a given width and added to the output. 
594 Finally, the converted signals are discretize into the ADC values of the 
595 defined resolution. At this stage also the zero suppression mechanism is applied 
596 to the simulated ADC values ({\tt AliTRDdigitizer::ZS()}), in order to reduce 
597 the output volume (see section \ref{DIGITS:zs}). These {\bf DIGITS} can then 
598 serve as input to the raw data simulation (see section \ref{RAWSIM}).
599 %
600 \subsection{Simulation parameter}
601 %
602 The parameters that are needed to configure the digitization, are either
603 read from the OCDB (e.g. calibration gain factors) or are taken from the
604 parameter class {\tt AliTRDSimParam}. This class contains the default values
605 of these parameters, but it can be configured in order to test different 
606 scenarios. The following table lists the available parameters:
607 %
608 \begin{center}
609 \begin{tabular}{lll}
610 Parameter              & Description                                   & Default value \\ \hline
611 {\tt fGasGain}         & Gas gain at the anode wire                    & 4000          \\
612 {\tt fNoise}           & Noise of the chamber readout                  & 1250          \\
613 {\tt fChipGain}        & Gain of the PASA                              & 12.4          \\
614 {\tt fADCoutRange}     & ADC output range (number of ADC channels)     & 1023 (10bit)  \\
615 {\tt fADCinRange}      & ADC input range (input charge)                & 2000 (2V)     \\
616 {\tt fADCbaseline}     & ADC intrinsic baseline in ADC channels        & 0             \\
617 {\tt fElAttachProb}    & Probability for electron attachment per meter & 0             \\
618 {\tt fPadCoupling}     & Pad coupling factor                           & 0.46          \\
619 {\tt fTimeCoupling}    & Time coupling factor                          & 0.4           \\ \hline
620 {\tt fDiffusionOn}     & Switch for diffusion                          & kTRUE         \\
621 {\tt fElAttachOn}      & Switch for electron attachment                & kFALSE        \\
622 {\tt fTRFOn}           & Switch for time response                      & kTRUE         \\
623 {\tt fCTOn}            & Switch for cross talk                         & kTRUE         \\
624 {\tt fTimeStructOn}    & Switch for time structure                     & kTRUE         \\
625 {\tt fPRFOn}           & Switch for pad response                       & kTRUE         \\
626 {\tt fGasMixture}      & Switch for gas mixture (0: Xe/CO2, 1: Ar/CO2) & 0             \\
627 \end{tabular}
628 \end{center}
629 %
630 \subsection{Digits manager}
631 \label{DIGITS:manager}
632 %
633 {\it Author: H.~Leon~Vargas (hleon@ikf.uni-frankfurt.de)}
634 \smallskip
635 \\
636 %
637 The class {\tt AliTRDdigitsManager} handles arrays of data container 
638 objects in the form of ROOT's {\tt TObjArray}.  Its main functionality 
639 is that it provides setters and getters for the information of each chamber.
640 %
641 \begin{figure}[htb]
642 \begin{center}
643 \includegraphics[width=0.85\textwidth]{plots/digitsmanager_containers.eps}
644 \end{center}
645 \caption{
646 Data containers used in the class {\tt AliTRDdigitsManager}.
647 }
648 \label{FIG_DIG:manager}
649 \end{figure}
650 %
651 \subsection{Data containers}
652 \label{DIGITS:containers}
653 %
654 During simulation different kinds of information are created and stored 
655 in various data containers depending on their characteristics. 
656 These containers were designed with the idea of keeping the code as 
657 simple as possible and to ease its maintenance. 
658 The simulated signals or sdigits for a given row, column and time bin 
659 of each detector, as generated by \\ {\tt AliTRDdigitizer::ConvertHits()}, 
660 are stored in an object of the class {\tt AliTRDarraySignal}.   This 
661 class stores the data in an array of floating point values.  In this 
662 case, the compression method takes as an argument a threshold.  All the 
663 values equal or below that threshold will be set to zero during
664 compression. The threshold can take any value greater or equal to zero.
665 The sdigits data is used during event merging.
666
667 In the simulation the information about the particles that generated the
668 hits (index in kine tree) is stored for each detector in an object
669 of the class {\tt AliTRDarrayDictionary}. In this case the information 
670 is stored in an array of integer values, which is initialized to -1.
671  
672 In the digitizer, the signals stored in the sdigits are converted 
673 afterwards into ADC values and kept in objects of the class 
674 {\tt AliTRDarrayADC}.  This class saves the ADC values in an array of 
675 short values. The ADC range uses only the first 9 bits, bits 10 to 12 
676 are used to set the pad status.  An uncompressed object of the class 
677 {\tt AliTRDarrayADC} should only contain values that are equal or 
678 greater than -1, because the compression algorithm of this class uses 
679 all the other negative values in the range of the short data type. The 
680 value -1 in the data array is used in the simulation to indicate where 
681 an ADC value was ``zero suppressed''. This is done in this way so we 
682 are be able to discriminate between real zeroes and suppressed zeroes. 
683 For the details of the use of pad status refer to the method 
684 {\tt AliTRDarrayADC::SetPadStatus()} in the implementation file of this class.
685 %
686 \subsection{Zero suppression}
687 \label{DIGITS:zs}
688 %
689 {\it Author: H.~Leon~Vargas (hleon@ikf.uni-frankfurt.de)}
690 \smallskip
691 \\
692 %
693 The zero suppression algorithm was applied at the end of digitization
694 in order to decrease the size of the digits file. The code is implemented 
695 in the class {\tt AliTRDmcmSim}.  This algorithm is based on testing 
696 three conditions on the ADC values of three neighboring pads as seen 
697 in Fig.~\ref{FIG_DIG:zs} (for more information see the Data Indication 
698 subsection in the TRAP User Manual). The conditions are the following:\\
699
700 1) Peak center detection:\\
701
702 ADC-1(t) $\leq$ ADC(t) $\geq$ ADC+1(t)\\
703
704 2) Cluster:\\
705
706 ADC-1(t)+ADC(t)+ADC+1(t) $>$ Threshold\\
707
708 3) Absolute Large Peak:\\
709
710 ADC(t) $>$ Threshold\\
711
712 If a given combination of these conditions is not fulfilled, the value ADC(t) 
713 is suppressed. The algorithm runs over all ADC values.
714 %
715 \begin{figure}[htb]
716 \begin{center}
717 \includegraphics[width=0.60\textwidth]{plots/zsuppression.eps}
718 \end{center}
719 \caption{
720 Zero suppression code.
721 }
722 \label{FIG_DIG:zs}
723 \end{figure}
724 %
725 \section{Raw Data Simulation}
726 \label{RAWSIM}
727 %
728 \section{Trigger Simulation}
729 \label{TRGSIM}
730 {\it Author: J.~Klein (jklein@physi.uni-heidelberg.de)}
731 \vspace{.3cm}
732
733 The trigger generation chain of the TRD can be simulated within
734 AliRoot as well. It contains several stages as in the real
735 hardware (s. Fig.~\ref{fig:trgsim}). 
736
737 For each event the hits in the active volume are converted to
738 digitized signals in the AliTRDdigitizer. The digital processing as
739 done in the TRAP is simulated in its method \\
740 {\tt RunDigitalProcessing()} calling the MCM simulation (in {\tt
741   AliTRDmcmSim}) which implements the filters, zero-suppression and
742 tracklet calculation. Here the same integer arithmetics is used as in
743 the real TRAP. The trigger-relevant preprocessed data, i.e. the
744 tracklets, are stored using a dedicated loader. From there they are
745 accessed by the GTU simulation which runs the stackwise tracking. The
746 individual stages are discussed in more detail in the following
747 sections.
748 \begin{figure}
749 \begin{center}
750 \includegraphics[angle=0,width=0.9\textwidth]{plots/trgsim_ov}
751 \end{center}
752 \caption[Trigger simulation overview]{Overview of the trigger
753   simulation}
754 \label{fig:trgsim}
755 \end{figure}
756
757 \subsection{MCM simulation}
758 The MCM simulation is contained in {\tt AliTRDmcmSim}. This class
759 mimics the digital part of an MCM. It can be used for the simulation
760 after digitization has been performed.
761
762 Internally, an object of {\tt AliTRDmcmSim} can hold the data of
763 21~ADC channels both raw and filtered. After the instantiation {\tt
764   Init()} has to be called to define the position of the MCM. Then,
765 the data can be fed using either of the following methods:
766 \begin{description}
767 \item[{\tt SetData(Int\_t iadc, Int\_t *adc)}] ~\\ Set the data for the
768   given ADC channel {\it iadc} from an array {\it adc} containing the
769   data for all timebins.
770 \item[{\tt SetData(Int\_t iadc, Int\_t it, Int\_t adc)}] ~\\ Set the data for the
771   given ADC channel {\it iadc} and timebin {\it it} to the value {\it adc}.
772 \item[{\tt SetData(AliTRDarrayADC *adcArray)}] ~\\ Set the data for the
773   whole MCM from the digits array pointed to by {\it adcArray}.
774 \item[{\tt LoadMCM(AliRunLoader *rl, Int\_t det, Int\_t rob, Int\_t mcm)}]
775   ~\\ This method automatically initializes the MCM for the specified
776   location and loads the relevant data via the runloader pointed by
777   {\it rl}. 
778 \end{description}
779
780 After loading of the data the processing stages can be run
781 individually:
782 \begin{description}
783 \item[{\tt Filter()}] ~\\ The pedestal, gain and tail cancellation filters
784   are run on the currently loaded raw data. The filter settings
785   (including bypasses) are used as configured in the TRAP
786   (s.~\ref{sec:trapcfg}). The unfiltered raw data is kept such that it
787   is possible to rerun Filter(), e.g. with different settings. 
788 \item[{\tt Tracklet()}] ~\\ The tracklet calculation operates on the
789   filtered data (which is identical to the unfiltered data if Filter()
790   was not called). First, the hits are calculated and the fit
791   registers filled. Subsequently, the straight line fits for the four
792   most promising tracklets are calculated. 
793 \item[{\tt ZSMapping()}] ~\\ This methods performs the zero-suppression
794   which can be based on different criteria (to be configured in the
795   TRAP). 
796 \end{description}
797
798 The results of the MCM simulation can be accessed in different ways:
799 \begin{description}
800 \item[{\tt WriteData(AliTRDarrayADC *digits)}] ~\\ Hereby, the data are
801   written to the pointed digits array. It is part of the TRAP
802   configuration whether raw or filtered data is written (EBSF). 
803 \item[{\tt ProduceRawStream(UInt\_t *buf, Int\_t bufsize, UInt\_t
804     iEv)}] ~\\ Produce the raw data stream for this MCM as it will
805   appear in the raw data of the half-chamber. 
806 \item[{\tt ProduceTrackletStream(UInt\_t *buf, Int\_t bufsize)}] ~\\
807   Produce the raw stream of tracklets as they appear in raw data. 
808 \item[{\tt StoreTracklets()}] ~\\ The tracklets are stored via the
809   runloader. This has to be called explicitly, otherwise the tracklets
810   will not be written. 
811 \end{description}
812
813 \subsection{TRAP configuration} 
814 \label{sec:trapcfg}
815 The TRAP configuration is kept in {\tt AliTRDtrapConfig} which is
816 implemented as singleton. After obtaining a pointer to the class by a
817 call to {\tt AliTRDtrapConfig::Instance()} values can be changed and read by:
818 \begin{description}
819 \item[{\tt SetTrapReg(TrapReg\_t reg, Int\_t value, Int\_t det, Int\_t rob,
820   Int\_t mcm)}] ~\\ This sets the given TRAP register given as the
821   abbreviation from the TRAP manual with preceding 'k' (enum) to the
822   given value. If you specify {\it det}, {\it rob} or {\it mcm} the
823   values are changed for individual MCMs. Not specified the setting is
824   applied globally. 
825 \item[{\tt GetTrapReg(TrapReg\_t reg, Int\_t det, Int\_t rob, Int\_t mcm)}]
826   ~\\ This method gets the current value of the given TRAP
827   registers. If the values are set individually for different MCMs you
828   have to pass {\it det}, {\it rob} and {\it mcm}. Otherwise, these
829   parameters can be omitted. 
830 \item[{\tt PrintTrapReg(TrapReg\_t reg, Int\_t det, Int\_t rob, Int\_t mcm)}]
831   ~\\ It is similar to the preceding method but prints the information
832   to stdout. 
833 \end{description}
834
835 The calculated tracklets can be stored by a call to {\tt AliTRDmcmSim::StoreTracklets()}.
836
837 \subsection{Tracklet classes}
838 In order to unify the different sources of tracklets, e.g. real data
839 or simulation, all implementations of tracklets derive from the
840 abstract base class {\tt AliTRDtrackletBase}. The following
841 implementations are currently in use:
842 \begin{description}
843 \item[{\tt AliTRDtrackletWord}] ~\\ This class is meant to represent the
844   information as really available from the FEE, i.e. only a 32-bit
845   word and the information on the detector it was produced on.
846 \item[{\tt AliTRDtrackletMCM}] ~\\ Tracklets of this type are produced in
847   the MCM simulation and contain additional MC information.
848 \item[{\tt AliTRDtrackletGTU}] This class is used during the GTU tracking
849   and contains a pointer to a tracklet and information assigned to it
850   during the global tracking.  
851 \end{description}
852
853 \subsection{GTU simulation}
854
855 The simulation of the TRD global tracking on tracklets is steered by
856 AliTRDgtuSim. This class provides all the interface. The following
857 classes are involved:
858 \begin{description}
859 \item[{\tt AliTRDgtuParam}] ~\\ This class contains or generates the relevant
860   parameters used for the GTU tracking. 
861 \item[{\tt AliTRDgtuTMU}] ~\\ This class holds the actual tracking algorithm
862   as it runs in one Track Matching Unit (TMU) which corresponds to one
863   stack. 
864 \end{description}
865
866 The GTU simulation can be run by calling {\tt
867   AliTRDgtuSim::RunGTU(AliLoader *loader, AliESDEvent *esd)} where
868 {\it loader} points to the TRD loader and {\it esd} to an ESD
869 event. The latter can be omitted in which case the output is not
870 written to the ESD. The tracklets are automatically retrieved via the
871 loader and the found tracks of type {\tt AliTRDtrackGTU} are
872 internally stored in a tree for which a getter exists to access. If a
873 pointer to an {\tt AliESDEvent} is given, the tracks are also written
874 to the ESD (as {\tt AliESDTrdTrack}). For this the method {\tt
875   AliTRDtrackGTU::CreateTrdTrack()} is used which creates the {\tt
876   AliESDTrdTrack} (with reduced information compared to {\tt
877   AliTRDtrackGTU}).
878
879 \subsection{CTP interface}
880
881 The interface to the central trigger is defined in {\tt
882   AliTRDTrigger}. This class is called automatically during simulation
883 and produces the trigger inputs for TRD (in {\tt
884   CreateInputs()}). They are only considered if they are part of the
885 used trigger configuration (e.g. GRP/CTP/p-p.cfg).
886
887 The actual trigger generation has to be contained in {\tt
888   Trigger()}. Currently, the GTU simulation is run from here using the
889 previously calculated tracklets. The generated tracks are stored and
890 the trigger inputs are propagated to CTP. Which trigger classes make
891 use of the TRD inputs has to be defined in the trigger configuration. 
892 %
893 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
894 \newpage
895 \setcounter{chapter}{2}
896 \setcounter{section}{0}    
897 \Chapter{Reconstruction}\label{REC:}
898 {\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
899 \thispagestyle{empty}
900 %
901 \section{Raw Data Reading}
902 %
903 \section{Cluster Finding}\label{REC:CL:}
904 %
905 \subsection[Cluster position reconstruction]{Cluster position reconstruction
906 \footnote{The procedures described in this section are implemented in the functions 
907 {\tt AliTRDcluster::GetXloc()}, {\tt AliTRDcluster::GetYloc()},
908 {\tt AliTRDcluster::GetSX()} and {\tt AliTRDcluster::GetSY()}.}}\label{REC:CL:rphi}
909 {\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
910 \\
911 {\bf Calculation of cluster position in the radial direction} in local chamber 
912 coordinates (with respect to the anode wire position) is using the following 
913 parameters:\\
914   $t_0$ - calibration aware trigger delay $[\mu s]$\\
915   $v_d$ - drift velocity in the detector region of the cluster $[cm/\mu s]$\\
916   $z$ - distance to the anode wire [cm]. By default average over the drift cell width\\
917   $q$ \& $x_q$ - array of charges and cluster positions from previous clusters in the tracklet [a.u.]
918
919 The estimation of the radial position is based on calculating the drift time 
920 and the drift velocity at the point of estimation. The drift time can be 
921 estimated according to the expression:
922 \begin{equation}
923 t_{drift} = t_{bin} - t_{0} - t_{cause}(x) - t_{TC}(q_{i-1}, q_{i-2}, ...)
924 \end{equation}
925 where $t_0$ is the delay of the trigger signal. $t_{cause}$ is the causality 
926 delay between ionization electrons hitting the anode and the registration of 
927 the mean signal by the electronics - due to the rising time of the TRF. A 
928 second order correction here comes from the fact that the time spreading of 
929 charge at anode is the convolution of TRF with the diffusion and thus 
930 cross-talk between clusters before and after local clusters changes with drift 
931 length. $t_{TC}$ is the residual charge from previous (in time) clusters due 
932 to residual tails after tail cancellation. This tends to push cluster forward 
933 and depends on the magnitude of their charge.
934
935 The drift velocity varies with the drift length (and distance to anode wire) 
936 as described by cell structure simulation. Thus one, in principle, can calculate 
937 iteratively the drift length from the expression:
938 \begin{equation}
939 x = t_{drift}(x)*v_{drift}(x)
940 \end{equation}
941 In practice we use a numerical approach (see {\tt AliTRDcluster::GetXcorr()} 
942 and Figure \ref{FIG_CLUSTER:Xcorr} left) to correct for anisochronity obtained 
943 from a MC comparison (see {\tt AliTRDclusterResolution\-::ProcessSigma()} for 
944 the implementation). Also the calibration of the 0th approximation (no $x$ 
945 dependence) for $t_{cause}$ is obtained from MC comparisons and is impossible 
946 to disentangle in real life from trigger delay.
947 \begin{figure}[htb]
948 \begin{center}
949 \includegraphics[width=0.48\textwidth]{plots/clusterXcorr.eps}
950 \includegraphics[width=0.48\textwidth]{plots/clusterYcorr.eps}
951 \end{center}
952 \caption{
953 Correction of the radial and $r-\phi$ position of the TRD cluster.}
954 \label{FIG_CLUSTER:Xcorr}
955 \end{figure}
956 \\
957 \\
958 For {\bf the calculation of the $r-\phi$ offset} of the cluster from the middle 
959 of the center pad three methods are implemented:
960 \begin{itemize}
961   \item[-] Center of Gravity (COG) see {\tt AliTRDcluster::GetDYcog()}
962   \item[-] Look-up Table (LUT) see {\tt AliTRDcluster::GetDYlut()}
963   \item[-] Gaussian shape (GAUS) see {\tt AliTRDcluster::GetDYgauss()}
964 \end{itemize}
965 In addition for the case of LUT method position corrections are also applied 
966 (see {\tt AliTRDcluster\-::GetYcorr()} and Figure \ref{FIG_CLUSTER:Xcorr} right).
967
968 One may calculate the $r-\phi$ offset, based on the Gaussian approximation of 
969 the PRF, from the signals $q_{i-1}$, $q_i$ and $q_{i+1}$ in the 3 adjacent pads 
970 by:
971 \begin{equation}
972 y = \frac{1}{w_{1}+w_{2}} \left[ w_{1} \left( y_{0}-\frac{W}{2}
973                                                    +\frac{s^{2}}{W}
974                                                     \ln\frac{q_{i}}{q_{i-1}} \right)
975                                 + w_{2}\left( y_{0}+\frac{W}{2}
976                                                    +\frac{s^{2}}{W}
977                                                     \ln\frac{q_{i+1}}{q_{i}} \right) \right]
978 \end{equation}
979 where $W$ is the pad width, $y_0$ is the position of the middle of the center 
980 pad and $s^2$ is given by
981 \begin{equation}
982 s^{2} = s^{2}_{0} + s^{2}_{diff} (x,B) + \frac{\tan^{2}(\phi-\alpha_{L})*l^{2}}{12}
983 \end{equation}
984 with $s_0$ being the PRF for 0 drift and track incidence $\phi$ equal to the Lorentz 
985 angle $\alpha_L$ and the diffusion term being described by:
986 \begin{equation}
987 s_{diff} (x,B) = \frac{D_{L}\sqrt{x}}{1+({\omega\tau}^{2})}
988 \end{equation}
989 with $x$ being the drift length. The weights $w_1$ and $w_2$ are taken to be 
990 $q_{i-1}^2$ and $q_{i+1}^2$ respectively.
991 \\
992
993 \noindent
994 {\bf Determination of shifts by comparing with MC}
995 \\
996
997 The resolution of the cluster corrected for pad tilt with respect to MC in the 
998 $r-\phi$ (measuring) plane can be expressed by:
999 \begin{eqnarray}
1000 \Delta y&=&w - y_{MC}(x_{cl})\\
1001 w &=& y_{cl}^{'} + h*(z_{MC}(x_{cl})-z_{cl})\\
1002 y_{MC}(x_{cl}) &=& y_{0} - dy/dx*x_{cl}\\
1003 z_{MC}(x_{cl}) &=& z_{0} - dz/dx*x_{cl}\\
1004 y_{cl}^{'} &=& y_{cl}-x_{cl}*\tan(\alpha_{L})
1005 \end{eqnarray}
1006 where $x_{cl}$ is the drift length attached to a cluster, $y_{cl}$ is the 
1007 $r-\phi$ coordinate of the cluster measured by charge sharing on adjacent pads 
1008 and $y_0$ and $z_0$ are MC reference points (as example the track references at 
1009 entrance/exit of a chamber). If we suppose that both $r-\phi$ ($y$) and radial 
1010 ($x$) coordinate of the clusters are affected by errors we can write
1011 \begin{eqnarray}
1012 x_{cl} &=& x_{cl}^{*} + \delta x\\ 
1013 y_{cl} &=& y_{cl}^{*} + \delta y 
1014 \end{eqnarray} 
1015 where the starred components are the corrected values. Thus by definition the 
1016 following quantity
1017 \begin{equation}
1018 \Delta y^{*}= w^{*} - y_{MC}(x_{cl}^{*})
1019 \end{equation}
1020 has 0 average over all dependency. Using this decomposition we can write:
1021 \begin{equation}\label{EQ_CLUSTER:shift}
1022 <\Delta y>=<\Delta y^{*}> + <\delta x * (dy/dx-h*dz/dx) + \delta y - \delta x 
1023           * \tan(\alpha_{L})>
1024 \end{equation}
1025 which can be transformed to the following linear dependence:
1026 \begin{equation}
1027 <\Delta y>= <\delta x> * (dy/dx-h*dz/dx) + <\delta y - \delta x * \tan(\alpha_{L})>
1028 \end{equation}
1029 if expressed as function of $dy/dx-h*dz/dx$. Furtheremore this expression can 
1030 be plotted for various clusters i.e. we can explicitely introduce the diffusion 
1031 ($x_{cl}$) and drift cell - anisochronity ($z_{cl}$) dependences. From 
1032 plotting this dependence and linear fitting it with:
1033 \begin{equation}
1034 <\Delta y>= a(x_{cl}, z_{cl}) * (dy/dx-h*dz/dx) + b(x_{cl}, z_{cl})
1035 \end{equation}
1036 the systematic shifts will be given by:
1037 \begin{eqnarray}
1038 \delta x (x_{cl}, z_{cl}) &=& a(x_{cl}, z_{cl})\\
1039 \delta y (x_{cl}, z_{cl}) &=& b(x_{cl}, z_{cl}) + a(x_{cl}, z_{cl}) * \tan(\alpha_{L})
1040 \end{eqnarray}
1041 In Figure \ref{FIG_CLUSTER:shift} left there is an example of such dependency. 
1042 \begin{figure}[htb]
1043 \begin{center}
1044 \includegraphics[width=0.48\textwidth]{plots/clusterShiftMethod.eps}
1045 \includegraphics[width=0.48\textwidth]{plots/clusterSigmaMethod.eps}
1046 \end{center}
1047 \caption{
1048 Linear relation to estimate radial and $r-\phi$ cluster shifts and error.}
1049 \label{FIG_CLUSTER:shift}
1050 \end{figure}
1051 \\
1052 \\
1053 The occurance of the radial shift is due to the following conditions:
1054 \begin{itemize}
1055   \item[-] The approximation of a constant drift velocity over the drift length 
1056            (larger drift velocities close to the cathode wire plane).
1057   \item[-] The superposition of charge tails in the amplification region (first 
1058            clusters appear to be located at the anode wire).
1059   \item[-] The superposition of charge tails in the drift region (shift towards 
1060            anode wire).
1061   \item[-] Diffusion effects which convolute with the TRF thus enlarging it.
1062   \item[-] Approximate knowledge of the TRF (approximate measuring in test beam 
1063            conditions).
1064 \end{itemize}
1065 The numerical results for ideal simulations for the radial are displayed in 
1066 Figure \ref{FIG_CLUSTER:Xcorr}.
1067 \\
1068 \\
1069 The representation of $dy=f(y_cen, x_drift| layer, \phi=\tan(\alpha_L))$ can be 
1070 also used to estimate the systematic shift in the $r-\phi$ coordinate resulting 
1071 from an imperfection in the cluster shape parameterization. From 
1072 Eq.~\ref{EQ_CLUSTER:shift} with $\phi=\tan(\alpha_L)$ one gets: 
1073 \begin{eqnarray}
1074 <\Delta y>&=& <\delta x> * (\tan(\alpha_{L})-h*dz/dx) + <\delta y - \delta x * \tan(\alpha_{L})>\\
1075 <\Delta y>(y_{cen})&=& -h*<\delta x>(x_{drift}, q_{cl}) * dz/dx + \delta y(y_{cen}, ...)
1076 \end{eqnarray}
1077 where all dependences are made explicit. This last expression can be used in two ways:
1078 \begin{itemize}
1079   \item[-] By average on the $dz/dx$ we can determine directly $dy$ (the method 
1080            implemented here - see Figure \ref{FIG_CLUSTER:Xcorr} right).
1081   \item[-] By plotting as a function of $dzdx$ one can determine both $dx$ and $dy$ 
1082            components in an independent method.
1083 \end{itemize}
1084 The occurance of the $r-\phi$ shift is due to the following conditions:
1085 \begin{itemize}
1086   \item[-] Approximate model for cluster shape (LUT).
1087   \item[-] Rounding-up problems.
1088 \end{itemize}
1089
1090
1091 \subsection[Cluster error parameterization]{Cluster error parametrization
1092 \footnote{The procedures described in this section are implemented in the functions 
1093 {\tt AliTRDcluster::SetSigmaY2()}, {\tt AliTRDclusterResolution::ProcessCharge()}, 
1094 {\tt AliTRDclusterResolution::ProcessCenterPad()}, 
1095 {\tt AliTRDclusterResolution::ProcessSigma()} and 
1096 {\tt AliTRDclusterResolution::ProcessMean()}.}}\label{REC:CL:error}
1097 {\it Author: A.~Bercuci (A.Bercuci@gsi.de)}
1098 \\
1099
1100 The error of TRD cluster is represented by the variance in the $r-\phi$ and radial 
1101 direction. For the $z$ direction the error is simply given by:
1102 \begin{equation}
1103 \sigma^2_z=L^2_{pad}/12
1104 \end{equation}
1105
1106 The parameters on which the {\bf $r-\phi$ error parameterization} depends are:
1107 \begin{itemize}
1108   \item[-] $s^2$  - variance due to PRF width for the case of Gauss model. Replaced 
1109            by parameterization in case of LUT.
1110   \item[-] $dt$  - transversal diffusion coefficient.
1111   \item[-] $e \times B$ - tangens of Lorentz angle.
1112   \item[-] $x$-drift length - with respect to the anode wire.
1113   \item[-] $z$-offset from the anode wire.
1114   \item[-] $\tan(p)$ - local tangens of the track momentum azimuthal angle.
1115 \end{itemize}
1116
1117 The ingredients from which the error is computed are:
1118 \begin{itemize}
1119   \item[-] PRF (charge sharing on adjacent pads)  - see {\tt AliTRDcluster::GetSYprf()}.
1120   \item[-] Diffusion (dependence with drift length and [2nd order] distance to anode wire) 
1121            (see {\tt AliTRDcluster::GetSYdrift()}).
1122   \item[-] Charge of the cluster (complex dependence on gain and tail cancellation) - see 
1123            ({\tt AliTRD\-cluster::GetSYcharge()}).
1124   \item[-] Lorentz angle (dependence on the drift length and [2nd order] distance to anode 
1125            wire) - see {\tt AliTRDcluster::GetSX()}.
1126   \item[-] Track angle (superposition of charges on the anode wire) 
1127            (see {\tt AliTRDseedV1::Fit()}).
1128   \item[-] Projection of radial ($x$) error on $r-\phi$ due to fixed value assumed in 
1129            tracking for $x$ - see {\tt AliTRDseedV1::Fit()}.
1130 \end{itemize}
1131
1132 The last 2 contributions to cluster error can be estimated only during tracking 
1133 when the track angle is known ($\tan(p)$). For this reason the errors (and 
1134 optional position) of TRD clusters are recalculated during tracking and thus 
1135 clusters attached to tracks might differ from bare clusters.
1136
1137 Taking into account all contributions one can write the the TRD cluster error 
1138 parameterization as:
1139 \begin{equation}\label{EQ_CLUSTER:error}
1140 \sigma_{y}^{2} = (\sigma_{diff}*\rm{Gauss}(0, s_{ly}) + \delta_{\sigma}(q))^{2} 
1141                + \tan^{2}(\alpha_{L})*\sigma_{x}^{2} 
1142                + \tan^{2}(\phi-\alpha_{L})*\sigma_{x}^{2}
1143                + [\tan(\phi-\alpha_{L})*\tan(\alpha_{L})*x]^{2}/12
1144 \end{equation}
1145 From this formula one can deduce that the simplest calibration method for PRF and 
1146 diffusion contributions is by measuring resolution at $B = 0$~T and $\phi = 0$. 
1147 To disentangle further the two remaining contributions one has to represent $s^2$ 
1148 as a function of drift length. 
1149
1150 In the Gaussian model the diffusion contribution can be expressed as:
1151 \begin{equation}
1152 \sigma^{2}_{y} = \sigma^{2}_{PRF} + \frac{x\delta_{t}^{2}}{(1+\tan(\alpha_{L}))^{2}}
1153 \end{equation}
1154 thus resulting the PRF contribution. For the case of the LUT model both contributions 
1155 have to be determined from the fit (see {\tt AliTRDclusterResolution::ProcessCenterPad()} 
1156 for details).
1157 \\
1158
1159 \noindent
1160 {\bf Parameterization with respect to the distance to the middle of the center pad}
1161 \\
1162
1163 If $\phi = \alpha_L$ in Eq.~\ref{EQ_CLUSTER:error}  one gets the following expression:
1164 \begin{equation}\label{EQ_CLUSTER:errorPhiAlpha}
1165 \sigma_{y}^{2} = \sigma_{y}^{2}|_{B=0} + \tan^{2}(\alpha_{L})*\sigma_{x}^{2}
1166 \end{equation}
1167 where we have explicitely marked the remaining term in case of absence of magnetic 
1168 field. Thus one can use the previous equation to estimate $s_y$ for B~=~0 and than 
1169 by comparing in magnetic field conditions one can get the $s_x$. This is a simplified 
1170 method to determine the error parameterization for $s_x$ and $s_y$ as compared to the one 
1171 implemented in {\tt ProcessSigma()}. For more details on cluster error 
1172 parameterization please see also {\tt AliTRDcluster::SetSigmaY2()}.
1173 \\
1174
1175 \noindent
1176 {\bf Parameterization with respect to drift length and distance to the anode wire}
1177 \\
1178
1179 As the $r-\phi$ coordinate is the only one which is measured by the TRD detector we 
1180 have to rely on it to estimate both the radial ($x$) and $r-\phi$ ($y$) errors. This 
1181 method is based on the following assumptions. The measured error in the $y$ 
1182 direction is the sum of the intrinsic contribution of the $r-\phi$ measurement
1183 with the contribution of the radial measurement - because $x$ is not a parameter of 
1184 Alice track model (Kalman).
1185 \begin{equation}
1186 \sigma^{2}|_{y} = \sigma^{2}_{y*} + \sigma^{2}_{x*}   
1187 \end{equation}
1188 In the general case 
1189 \begin{eqnarray}
1190 \sigma^{2}_{y*}& =& \sigma^{2}_{y} + \tan^{2}(\alpha_{L})\sigma^{2}_{x_{drift}}\\   
1191 \sigma^{2}_{x*} &=& \tan^{2}(\phi - \alpha_{L})*(\sigma^{2}_{x_{drift}} 
1192                  + \sigma^{2}_{x_{0}} + \tan^{2}(\alpha_{L})*x^{2}/12)
1193 \end{eqnarray}
1194 where we have explicitely show the Lorentz angle correction on $y$ and the projection 
1195 of radial component on the $y$ direction through the track angle in the bending plane 
1196 ($\phi$). Also we have shown that the radial component in the last equation has two 
1197 terms, the drift and the misalignment ($x_0$). For ideal geometry or known misalignment 
1198 one can solve the equation
1199 \begin{equation}
1200 \sigma^{2}|_{y} = \tan^{2}(\phi - \alpha_{L})*(\sigma^{2}_{x} 
1201                 + \tan^{2}(\alpha_{L})*x^{2}/12)
1202                 + [\sigma^{2}_{y} + \tan^{2}(\alpha_{L})\sigma^{2}_{x}]
1203 \end{equation}
1204 by fitting a straight line:
1205 \begin{equation}
1206 \sigma^{2}|_{y} = a(x_{cl}, z_{cl}) * \tan^{2}(\phi - \alpha_{L}) + b(x_{cl}, z_{cl})
1207 \end{equation}
1208 the error parameterization will be given by:
1209 \begin{eqnarray}
1210 \sigma_{x} (x_{cl}, z_{cl}) &=& \sqrt{a(x_{cl}, z_{cl}) - \tan^{2}(\alpha_{L})*x^{2}/12}\\
1211 \sigma_{y} (x_{cl}, z_{cl}) &=& \sqrt{b(x_{cl}, z_{cl}) - \sigma^{2}_{x} (x_{cl}, z_{cl}) 
1212                              * \tan^{2}(\alpha_{L})}
1213 \end{eqnarray}
1214 In Figure \ref{FIG_CLUSTER:shift} left, there is an example of such dependency. 
1215
1216 The error parameterization obtained by this method are implemented in the functions 
1217 {\tt AliTRD\-cluster::GetSX()} and {\tt AliTRDcluster::GetSYdrift()}. 
1218
1219 An independent method to determine $s_y$ as a function of drift length (see 
1220 {\tt AliTRDcluster\-Resolution::ProcessCenterPad()}) is to plot cluster resolution as 
1221 a function of drift length at $\phi = \alpha_L$ as seen in 
1222 Eq.~\ref{EQ_CLUSTER:errorPhiAlpha}. Thus one can use directly the previous equation 
1223 to estimate $s_y$ for $B = 0$ and than by comparing in magnetic field conditions one 
1224 can get the $s_x$.
1225
1226 One has to keep in mind that while the first method returns the mean $s_y$ over the 
1227 distance to the middle of center pad ($y_{center}$) distribution the second method 
1228 returns the *STANDARD* value at $y_{center}=0$ (maximum). To recover the standard 
1229 value one has to solve the obvious equation:
1230 \begin{equation}
1231 \sigma_{y}^{STANDARD} = \frac{<\sigma_{y}>}{\int{s exp(s^{2}/\sigma) ds}}
1232 \end{equation}
1233 with "$<s_y>$" being the value calculated in first method and "sigma" the width of 
1234 the $s_y$ distribution calculated in the second.
1235 \\
1236
1237 \noindent
1238 {\bf Parameterization with respect to cluster charge}
1239 \\
1240
1241 In Eq.~\ref{EQ_CLUSTER:errorPhiAlpha} one can explicitely write:
1242 \begin{equation}
1243 \sigma_{y}|_{B=0} = \sigma_{diff}*Gauss(0, s_{ly}) + \delta_{\sigma}(q)
1244 \end{equation}
1245 which further can be simplified to:
1246 \begin{eqnarray}
1247 <\sigma_{y}|_{B=0}>(q) &=& <\sigma_{y}> + \delta_{\sigma}(q)\\
1248 <\sigma_{y}> &=& \int{f(q)\sigma_{y}dq}
1249 \end{eqnarray}
1250 The results for $s_y$ and $f(q)$ are displayed in Fig.~\ref{FIG_CLUSTER:errorCharge}:
1251 \begin{figure}[htb]
1252 \begin{center}
1253 \includegraphics[width=0.48\textwidth]{plots/clusterQerror.eps}
1254 \includegraphics[width=0.48\textwidth]{plots/clusterSX.eps}
1255 \includegraphics[width=0.48\textwidth]{plots/clusterSY.eps}
1256 \end{center}
1257 \caption{
1258 Cluster error parameterization for different components.}
1259 \label{FIG_CLUSTER:errorCharge}
1260 \end{figure}
1261 The function has to extended to accommodate gain calibration scaling and errors.
1262
1263 %
1264 \setcounter{footnote}{0}
1265 \section{The TRD tracklet}\label{REC:Tracklet:}
1266 {\it Author: A.~Bercuci (A.Bercuci@gsi.de)}\\
1267
1268 \noindent
1269 The tracking in TRD can be done in two major ways:
1270 \begin{itemize}
1271 \item[-] Track prolongation from TPC.
1272 \item[-] Stand alone track finding.
1273 \end{itemize}
1274 The first mode is the main tracking mode for all barrel tracks while the second 
1275 is used to peak-up track segments fully contained in the TRD fiducial volume 
1276 like conversions. Another feature of the TRD tracking besides the relative high 
1277 thickness (conversions) is the spatial correlation of the signals in the radial 
1278 direction due to residual tails in the cluster signals. This feature asked for 
1279 an intermediate step between clusters and tracks, the tracklets. The TRD 
1280 tracklets are linear fits of the clusters from one chamber. They are implemented 
1281 in the class {\tt AliTRDseedV1} and they represent the core of the TRD offline 
1282 reconstruction. In the following the tracklets will be described independently 
1283 of the framework in which they are living (tracking) in the sections 
1284 \ref{REC:Tracking:TrackletAttach}, \ref{REC:Tracking:TrackletFit} and 
1285 \ref{REC:Tracking:TrackletErrors} and than their usage will be outlined in the 
1286 barrel (section \ref{REC:Tracking:Propagate}) and stand alone tracking (section 
1287 \ref{REC:Tracking:Clusters2TracksStack}).
1288
1289 \subsection[Tracklet building]{Tracklet building - Attaching clusters to tracklet
1290 \footnote{The procedures described in this section are implemented in the function 
1291 {\tt AliTRDseedV1::AttachClusters()}.}}\label{REC:Tracking:TrackletAttach}
1292
1293 Projective algorithm to attach clusters to seeding tracks. The following steps are 
1294 performed:
1295 \begin{enumerate}
1296 \item[-] Collapse $x$ coordinate for the full detector along track direction $dy dx$.
1297 \item[-] Truncated mean on $y$ ($r-\phi$) direction.
1298 \item[-] Purge clusters.
1299 \item[-] Truncated mean on $z$ direction.
1300 \item[-] Purge clusters.
1301 \end{enumerate}
1302 Optionally one can use the $z$, $dz/dx$ information from the seeding track to 
1303 correct for tilting.
1304         
1305 We start up by defining the track direction in the $xy$ plane and roads. The 
1306 roads are calculated based on tracking information (variance in the $r-\phi$ 
1307 direction) and estimated variance of the standard clusters (see 
1308 {\tt AliTRDcluster::SetSigmaY2()}) corrected for tilt (see {\tt GetCovAt()}). 
1309 From this the road is:
1310 \begin{eqnarray}
1311 r_{y} &=& 3*\sqrt{12*(\sigma^{2}_{Trk}(y) + \frac{\sigma^{2}_{cl}(y) 
1312 + \tan^{2}(\alpha_{L})\sigma^{2}_{cl}(z)}{1+\tan^{2}(\alpha_{L})})}\\
1313 r_{z} &= &1.5*L_{pad}
1314 \end{eqnarray}
1315
1316 \subsection[Tracklet fitting]{Tracklet fitting\footnote{The procedures described in this 
1317 section are implemented in the function 
1318 {\tt AliTRDseedV1::Fit()}.}}\label{REC:Tracking:TrackletFit}
1319
1320 \noindent
1321 {\bf Fit in the $xy$ plane}
1322 \\
1323
1324 The fit is performed to estimate the $y$ position of the tracklet and the track 
1325 angle in the bending plane. The clusters are represented in the chamber coordinate 
1326 system (with respect to the anode wire - see 
1327 {\tt AliTRDtrackerV1::FollowBackProlongation()} on how this is set). The $x$ and $y$ 
1328 position of the cluster and also their variances are known from clusterizer level 
1329 (see {\tt AliTRDcluster::GetXloc()}, 
1330 {\tt AliTRDcluster::GetYloc()}, {\tt AliTRDcluster::GetSX()} and \\
1331 {\tt AliTRDcluster::GetSY()}). If a Gaussian approximation is used to calculate 
1332 $y$ coordinate of the cluster the position is recalculated taking into account the 
1333 track angle.
1334
1335 Since errors are calculated only in the $y$ directions, radial errors ($x$ direction) 
1336 are mapped to $y$ by projection i.e.
1337 \begin{equation}
1338 \sigma_{x|y} = \tan(\phi) \sigma_{x}
1339 \end{equation}
1340 and also by the Lorentz angle correction.
1341 \\
1342
1343 \noindent
1344 {\bf Fit in the xz plane}
1345 \\
1346
1347 The "fit" is performed to estimate the radial position ($x$ direction) where pad 
1348 row cross happens. If no pad row crossing the $z$ position is taken from geometry 
1349 and radial position is taken from the $xy$ fit (see below).
1350
1351 There are two methods to estimate the radial position of the pad row cross:\\
1352 1. leading cluster radial position: Here the lower part of the tracklet is 
1353 considered and the last cluster registered (at radial $x_{0}$) on this segment 
1354 is chosen to mark the pad row crossing. The error of the $z$ estimate is given by :
1355 \begin{equation}
1356 \sigma_{z} = \tan(\theta) \Delta x_{x_{0}}/\sqrt{12}
1357 \end{equation}
1358 The systematic errors for this estimation are generated by the following sources:
1359   - no charge sharing between pad rows is considered (sharp cross)
1360   - missing cluster at row cross (noise peak-up, under-threshold signal etc.).
1361 \\
1362 2. charge fit over the crossing point: Here the full energy deposit along 
1363 the tracklet is considered to estimate the position of the crossing by a fit 
1364 in the $qx$ plane. The errors in the $q$ directions are parameterized as 
1365 $\sigma_q = q^2$. The systematic errors for this estimation are generated by the 
1366 following sources:
1367 \begin{itemize}
1368 \item[-] No general model for the $qx$ dependence.
1369 \item[-] Physical fluctuations of the charge deposit.
1370 \item[-] Gain calibration dependence.
1371 \end{itemize}
1372
1373 \noindent
1374 {\bf Estimation of the radial position of the tracklet}\\
1375
1376 For pad row cross the radial position is taken from the $xz$ fit (see above). 
1377 Otherwise it is taken as the interpolation point of the tracklet i.e. the 
1378 point where the error in $y$ of the fit is minimum. The error in the $y$ 
1379 direction of the tracklet is (see {\tt AliTRDseedV1::GetCovAt()}):
1380 \begin{equation}
1381 \sigma_{y} = \sigma^{2}_{y_{0}} + 2x\:cov(y_{0}, dy/dx) + \sigma^{2}_{dy/dx}
1382 \end{equation}
1383 and thus the radial position is:
1384 \begin{equation}
1385 x = - cov(y_{0}, dy/dx)/\sigma^{2}_{dy/dx}
1386 \end{equation}
1387 \\
1388
1389 \noindent
1390 {\bf Estimation of tracklet position error}\\ 
1391
1392 The error in $y$ direction is the error of the linear fit at the radial 
1393 position of the tracklet while in the $z$ direction is given by the cluster 
1394 error or pad row cross error. In case of no pad row cross this is given by:
1395 \begin{eqnarray}
1396 \sigma_{y} &=& \sigma^{2}_{y_{0}} - 2cov^{2}(y_{0}, dy/dx)/\sigma^{2}_{dy/dx} 
1397             + \sigma^{2}_{dy/dx}\\
1398 \sigma_{z} &=& L_{pad}/\sqrt{12}
1399 \end{eqnarray}
1400 For pad row cross the full error is calculated at the radial position of the 
1401 crossing (see above) and the error in $z$ by the width of the crossing region - 
1402 being a matter of parameterization. 
1403 \begin{equation}
1404 \sigma_{z} = \tan(\theta) \Delta x_{x_{0}}/\sqrt{12}
1405 \end{equation}
1406 In case of no tilt correction (default in the barrel tracking) the tilt is 
1407 taken into account by the rotation of the covariance matrix. See 
1408 {\tt AliTRDseedV1::GetCovAt()} or \ref{REC:Tracking:TrackletErrors} for details.
1409
1410 \subsection[Tracklet errors]{Tracklet errors\footnote{The procedures described in this 
1411 section are implemented in the function 
1412 {\tt AliTRDseedV1::GetCovAt()}.}}\label{REC:Tracking:TrackletErrors}
1413
1414 In general, for the linear transformation
1415 \begin{equation}
1416 Y = T_{x} X^{T}
1417 \end{equation}
1418 the error propagation has the general form
1419 \begin{equation}
1420 C_{Y} = T_{x} C_{X} T_{x}^{T} 
1421 \end{equation}
1422 We apply this formula 2 times. First to calculate the covariance of the tracklet 
1423 at point $x$ we consider: 
1424 \begin{eqnarray}
1425 T_{x} &=& (1\; x)\\ 
1426 X&=&(y0\; dy/dx)\\
1427 C_{X}&=&
1428   \left( \begin{array}{cc}
1429     Var(y0) & Cov(y0, dy/dx)\\
1430     Cov(y0, dy/dx) & Var(dy/dx) 
1431   \end{array} \right)
1432 \end{eqnarray}
1433 and secondly to take into account the tilt angle
1434 \begin{eqnarray}
1435 T_{\alpha}& = &
1436   \left( \begin{array}{cc}
1437     cos(\alpha)&sin(\alpha)\\
1438     -sin(\alpha)& cos(\alpha)
1439   \end{array} \right)\\
1440 X&=&(y\; z)\\ 
1441 C_{X}&=&
1442   \left( \begin{array}{cc}
1443     Var(y) &0\\
1444     0 &Var(z) 
1445   \end{array} \right)
1446 \end{eqnarray}
1447 using simple trigonometric one can write for this last case
1448 \begin{equation}
1449 C_{Y}=\frac{1}{1+\tan^{2}\alpha} 
1450   \left( \begin{array}{cc}
1451     \sigma_{y}^{2}+\tan^{2}(\alpha)\sigma_{z}^{2} &  
1452     \tan(\alpha)(\sigma_{z}^{2}-\sigma_{y}^{2})\\
1453     \tan(\alpha)(\sigma_{z}^{2}-\sigma_{y}^{2}) & 
1454     \sigma_{z}^{2}+\tan^{2}(\alpha)\sigma_{y}^{2}
1455   \end{array} \right)
1456 \end{equation}
1457 which can be approximated for small alphas (2 deg) with
1458 \begin{equation}
1459 C_{Y}=
1460   \left( \begin{array}{cc}
1461     \sigma_{y}^{2} & (\sigma_{z}^{2}-\sigma_{y}^{2})\tan(\alpha)\\
1462     ((\sigma_{z}^{2}-\sigma_{y}^{2})\tan(\alpha) & \sigma_{z}^{2} 
1463   \end{array} \right)
1464 \end{equation}
1465 before applying the tilt rotation we also apply systematic uncertainties 
1466 to the tracklet position which can be tuned from outside via the 
1467 {\tt AliTRDrecoParam::SetSysCovMatrix()}. They might account for extra 
1468 misalignment/miscalibration uncertainties. 
1469
1470 \subsection[Tracklet dE/dx]{Energy loss calculations\footnote{The procedures 
1471 described in this section are implemented in the function 
1472 {\tt AliTRDseedV1::CookdEdx()} and 
1473 {\tt AliTRDseedV1::GetdQdl()}.}}\label{REC:Tracking:TrackletdEdx}
1474
1475 Using the linear approximation of the track inside one TRD chamber (TRD tracklet) 
1476 the charge per unit length can be written as:
1477 \begin{equation}
1478 \frac{dq}{dl}(x) = \frac{q_{c}}{dx(x) 
1479                  * \sqrt{1 + (\frac{dy}{dx})^{2}_{fit} + (\frac{dz}{dx})^{2}_{ref}}}
1480 \end{equation}
1481 where $q_c$ is the total charge collected in the current time bin and $dx$ is the length 
1482 of the time bin (see Fig.~\ref{FIG_TRACKLET:dEdx} right). The representation of charge 
1483 deposit used for PID differs thus in principle from the measured $dQ/dt$ distribution 
1484 (see Fig.~\ref{FIG_TRACKLET:dEdx} left) 
1485 \begin{figure}[htb]
1486 \begin{center}
1487 \includegraphics[width=0.88\textwidth, height=0.45\textwidth]{plots/trackletDQDT.eps}
1488 \end{center}
1489 \caption{
1490 Energy loss measurement on the tracklet as a function of drift time [left] and 
1491 respectively drift length [right] for different particle species.}
1492 \label{FIG_TRACKLET:dEdx}
1493 \end{figure} 
1494 The following correction are applied:
1495 \begin{itemize}
1496 \item[-] Charge: pad row cross corrections [diffusion and TRF asymmetry] TODO.
1497 \item[-] $dx$: anisochronity.
1498 \end{itemize}
1499 Due to the anisochronity of the TRD detector drift velocity varies as function of 
1500 drift length and distance to the anode wire. Thus 
1501 \begin{eqnarray}
1502 dx(x) &=& dx(\inf) + \delta_x(x,z)\\ 
1503       &=& dt*v_d^{\inf} + \delta_x(x,z) 
1504 \end{eqnarray}
1505 the dependence of $\delta_x$ can be found in Fig.~\ref{FIG_CLUSTER:Xcorr}.
1506
1507 \subsection[Tracklet PID]{Particle identification\footnote{The procedures described 
1508 in this section are implemented in the function {\tt AliTRDtrackV1::CookPID()} and 
1509 {\tt AliTRDseedV1::CookPID()}.}}\label{REC:Tracking:TrackletPID}
1510
1511 Retrieve the PID probabilities for $e^\pm$, $\mu^\pm$, $K^\pm$, $\pi^\pm$ and $p^\pm$ 
1512 from the OCDB according to tracklet information:
1513 \begin{itemize}
1514 \item[-] Estimated momentum at tracklet reference point.
1515 \item[-] $dE/dx$ measurements.
1516 \item[-] Tracklet length.
1517 \item[-] TRD layer.
1518 \end{itemize}
1519 According to the steering settings specified in the reconstruction one of the 
1520 following methods are used.
1521 \begin{itemize}
1522 \item[-] Neural Network [default] - option "nn".
1523 \item[-] 2D Likelihood - option "!nn".
1524 \end{itemize}
1525 \begin{figure}[htb]
1526 \begin{center}
1527 \includegraphics[width=0.88\textwidth, height=0.45\textwidth]{plots/trackPID.eps}
1528 \end{center}
1529 \caption{
1530 Pion efficiency capability of the TRD for tracks with 6 tracklets as a function of 
1531 momentum [left] and the corresponding threshold value for selecting $90\%$ of 
1532 electrons [right] for the two methods used.}
1533 \label{FIG_TRACK:PID}
1534 \end{figure}
1535
1536 At track level the PID information is calculated by delegating the function of 
1537 the tracklets. The number of tracklets used is also computed. The tracklet 
1538 information are considered independent. For the moment no global track measurement 
1539 of PID is performed as for example to estimate bremsstrahlung probability based on 
1540 global $\chi^2$ of the track. The status bit {\tt AliESDtrack::kTRDpid} is set 
1541 during the call of {\tt AliTRDtrackV1::UpdateESDtrack()}. The PID performance of 
1542 the TRD for tracks with 6 tacklets is displayed in Fig.~\ref{FIG_TRACK:PID}. 
1543 \\
1544
1545 \setcounter{footnote}{0}
1546 \section{Tracking}\label{REC:Tracking:}
1547 {\it Author: A.~Bercuci (A.Bercuci@gsi.de)}\\
1548
1549 The tracking procedures in TRD are responsible to attach clusters to tracks 
1550 and to estimate/update the track parameters accordingly. The main class involved 
1551 in this procedure is {\tt AliTRDtrackerV1} and the helper classes {\tt AliTRDcluster}, 
1552 {\tt AliTRDseedV1} and {\tt AliTRDtrackV1}.  Additionally, information from 
1553 {\tt AliTRDrecoParam} is mandatory to select the proper setup of the reconstruction.
1554 \\
1555
1556 \subsection[Track propagation barrel]{Track propagation in barrel tracking\footnote{The 
1557 procedures described in this section are implemented in the function 
1558 {\tt AliTRDtrackerV1::PropagateBack()}.}}\label{REC:Tracking:Propagate}
1559
1560 Propagate the ESD tracks from TPC to TOF detectors and building of the TRD track. For 
1561 building a TRD track an ESD track is used as seed. The informations obtained on the TRD 
1562 track (measured points, covariance, PID, etc.) are than used to update the corresponding 
1563 ESD track. Each track seed is first propagated to the geometrical limit of the TRD 
1564 detector. Its prolongation is searched in the TRD and if corresponding clusters are found 
1565 tracklets are constructed out of them (see {\tt AliTRDseedV1::AttachClusters()}) and the 
1566 track is updated. Otherwise the ESD track is left unchanged.
1567
1568 The following steps are performed:
1569 \begin{itemize}
1570 \item[1.] Selection of tracks based on the variance in the $y-z$ plane.
1571 \item[2.] Propagation to the geometrical limit of the TRD volume. If track 
1572           propagation fails the {\tt AliESDtrack::kTRDStop} is set.
1573 \item[3.] Prolongation inside the fiducial volume (see 
1574           {\tt AliTRDtrackerV1::FollowBackProlonga\-tion()}) and marking
1575           the following status bits:
1576           \begin{center}
1577           \begin{tabular}{|l|l|}  \hline
1578           {\tt AliESDtrack::kTRDin}     & Tracks enters the TRD fiducial volume.  \\ \hline
1579           {\tt AliESDtrack::kTRDStop}   & Tracks fails propagation.               \\ \hline
1580           {\tt AliESDtrack::kTRDbackup} & Tracks fulfills the $\chi^{2}$ 
1581                                           conditions and qualifies for refitting. \\ \hline
1582           \end{tabular}
1583           \end{center}
1584 \item[4.] Writting to friends, PID, MC label, quality etc. Setting the status bit 
1585           {\tt AliESDtrack::kTRDout}.
1586 \item[5.] Propagation to TOF. If track propagation fails the {\tt AliESDtrack::kTRDStop} 
1587           is set.
1588 \end{itemize}
1589
1590
1591 \noindent
1592 {\bf TRD Tracklet initialization and Kalman fit}\footnote{The procedures 
1593 described in this section are implemented in the function 
1594 {\tt AliTRDtrackerV1::FollowBackProlongation()}.}
1595 \\
1596
1597 Starting from the arbitrary radial position of the track this is
1598 extrapolated through the 6 TRD layers. The following steps
1599 are being performed for each layer:
1600 \begin{itemize}
1601 \item[1.] Propagate track to the entrance of the next chamber:
1602   \begin{itemize}
1603   \item[-] Get chamber limits in the radial direction.
1604   \item[-] Check crossing sectors.
1605   \item[-] Check track inclination.
1606   \item[-] Check track prolongation against boundary conditions (see exclusion 
1607            boundaries on {\tt AliTRDgeometry::IsOnBoundary()}).
1608   \end{itemize}
1609 \item[2.] Build tracklet (see {\tt AliTRDseed::AttachClusters()} for details) for 
1610           this layer if needed. If only the Kalman filter is needed and tracklets 
1611           are already linked to the track this step is skipped.
1612 \item[3.] Fit tracklet using the information from the Kalman filter.
1613 \item[4.] Propagate and update track at reference radial position of the tracklet.
1614 \item[5.] Register tracklet with the tracker and track. Update pulls monitoring.
1615 \end{itemize}
1616
1617 During the propagation a bit map is filled detailing the status of the track in 
1618 each TRD chamber.
1619 \begin{center}
1620 \begin{tabular}{|l|l|}  \hline
1621 {\tt AliTRDtrackV1::kProlongation} & Track prolongation failed.                   \\ \hline
1622 {\tt AliTRDtrackV1::kPropagation}  & Track prolongation failed.                   \\ \hline
1623 {\tt AliTRDtrackV1::kAdjustSector} & Failed during sector crossing.               \\ \hline
1624 {\tt AliTRDtrackV1::kSnp}          & Too large bending.                           \\ \hline
1625 {\tt AliTRDtrackV1::kTrackletInit} & Fail to initialize tracklet.                 \\ \hline
1626 {\tt AliTRDtrackV1::kUpdate}       & Fail to attach clusters or fit the tracklet. \\ \hline
1627 {\tt AliTRDtrackV1::kUnknown}      & Anything which is not covered before.        \\ \hline
1628 \end{tabular}
1629 \end{center}
1630 By default the status of the track before first TRD update is saved. 
1631
1632 \subsection[Stand alone track finding]{Stand alone track finding\footnote{The procedures 
1633 described in this section are implemented in the function 
1634 {\tt AliTRDtrackerV1::Clusters2TracksStack()}.}}\label{REC:Tracking:Clusters2TracksStack}
1635
1636 Seeding tracklets and build candidate TRD tracks. The procedure is used during 
1637 barrel tracking to account for tracks which are either missed by TPC prolongation 
1638 or are conversions inside the TRD volume. For stand alone tracking the procedure 
1639 is used to estimate all tracks measured by TRD. 
1640 \\
1641
1642 \noindent
1643 {\bf TRD track finding}\footnote{The procedures described in this section 
1644 are implemented in the function {\tt AliTRDtrackerV1::MakeSeeds()}.}
1645 \\
1646
1647 The following steps are performed:
1648 \begin{itemize}
1649 \item[1.] Build seeding layers by collapsing all time bins from each of the four 
1650           seeding chambers along the radial coordinate. See 
1651           {\tt AliTRDtrackingChamber::GetSeedingLayer()} for details. The chambers 
1652           selection for seeding is described in 
1653           {\tt AliTRDtrackerV1::Clusters2\-TracksStack()}.
1654 \item[2.] By using the seeding clusters from the seeding layer (step 1) build 
1655           combinatorics using the following algorithm:
1656   \begin{itemize}
1657   \item[-] For each seeding cluster in the lower seeding layer find.
1658   \item[-] All seeding clusters in the upper seeding layer inside a road defined by 
1659            a given $\phi$ angle. The angle is calculated on the minimum \pt\ of tracks 
1660            from the main vertex, accessible by the stand alone tracker.
1661   \item[-] For each pair of two extreme seeding clusters select middle upper cluster 
1662            using roads defined externally by the reco params.
1663   \item[-] Select last seeding cluster as the nearest to the linear approximation of 
1664            the track described by the first three seeding clusters. The implementation 
1665            of the road calculation and cluster selection can be found in the functions 
1666            {\tt AliTRDchamberTimeBin::Build\-Cond()} and 
1667            {\tt AliTRDchamberTimeBin::GetClusters()}.
1668   \end{itemize}
1669 \item[3.] Helix fit to the set of eeding clusters 
1670           (see {\tt AliTRDtrackerFitter::FitRieman(AliTRD\-cluster**)}). No tilt 
1671           correction is performed at this level 
1672 \item[4.] Initialize seeding tracklets in the seeding chambers.
1673 \item[5.] {\bf Filter 0:} $\chi^{2}$ cut on the $y$ and $z$ directions. The threshold is 
1674           set externally by the reco params.
1675 \item[6.] Attach (true) clusters to seeding tracklets 
1676           (see {\tt AliTRDseedV1::AttachClusters()}) and fit tracklet 
1677           (see {\tt AliTRDseedV1::Fit()}). The number of used clusters used by current 
1678           seeds should not exceed ... (25).
1679 \item[7.] {\bf Filter 1:} Check if all 4 seeding tracklets are correctly constructed.
1680 \item[8.] Helix fit to the clusters from the seeding tracklets with tilt correction. 
1681           Refit tracklets using the new approximation of the track. The model of the 
1682           Riemann tilt fit is based on solving simultaneously the equations:
1683           \begin{eqnarray}
1684           R^{2} &=& (x-x_{0})^{2} + (y^{*}-y_{0})^{2}\\
1685           y^{*} &=& y - \tan(h)(z - z_{t})\\
1686           z_{t} &=& z_{0}+dzdx*(x-x_{r})
1687           \end{eqnarray}
1688           with $(x, y, z)$ the coordinate of the cluster, $(x_0, y_0, z_0)$ the 
1689           coordinate of the center of the Riemann circle, $R$ its radius, $x_r$ a 
1690           constant reference radial position in the middle of the TRD stack and $dzdx$ 
1691           the slope of the track in the $x-z$ plane. Using the following transformations
1692           \begin{eqnarray}
1693           t &=& 1 / (x^{2} + y^{2})\\
1694           u &=& 2 * x * t\\
1695           v &=& 2 * \tan(h) * t\\
1696           w &=& 2 * \tan(h) * (x - x_{r}) * t
1697           \end{eqnarray}
1698           one gets the following linear equation
1699           \begin{equation}
1700           a + b * u + c * t + d * v  + e * w = 2 * (y + \tan(h) * z) * t
1701           \end{equation}
1702           where the coefficients have the following meaning 
1703           \begin{eqnarray}
1704           a &=& -1/y_{0}\\
1705           b &=& x_{0}/y_{0}\\
1706           c &=& (R^{2} -x_{0}^{2} - y_{0}^{2})/y_{0}\\
1707           d &=& z_{0}\\
1708           e &=& dz/dx
1709           \end{eqnarray}
1710           The error calculation for the free term is thus
1711           \begin{equation}
1712           \sigma = 2 * \sqrt{\sigma^{2}_{y}(tilt\ corr ...) 
1713                  + \tan^{2}(h) * \sigma^{2}_{z}} * t
1714           \end{equation}
1715           From this simple model one can compute $\chi^2$ estimates and a rough 
1716           approximation of $1/p_t$ from the curvature according to the formula:
1717           \begin{equation}
1718           C = 1/R = a/(1 + b^{2} + c*a)
1719           \end{equation}
1720 \item[9.] {\bf Filter 2:} Calculate likelihood of the track 
1721           (see {\tt AliTRDtrackerV1::CookLikelihood()}). The following quantities are 
1722           checked against the Riemann fit:
1723           \begin{itemize}
1724           \item[-] Position resolution in $y$.
1725           \item[-] Angular resolution in the bending plane.
1726           \item[-] Likelihood of the number of clusters attached to the tracklet.
1727           \end{itemize}
1728 \item[10.] Extrapolation of the helix fit to the other 2 chambers *non seeding* 
1729           chambers:
1730           \begin{itemize}
1731           \item[-] Initialization of extrapolation tracklets with the fit parameters.
1732           \item[-] Attach clusters to extrapolated tracklets.
1733           \item[-] Helix fit of tracklets
1734           \end{itemize}
1735 \item[11.] Improve seeding tracklets quality by reassigning clusters based on the 
1736           last parameters of the track (see {\tt AliTRDtrackerV1::ImproveSeedQuality()} 
1737           for details).
1738 \item[12.] Helix fit of all 6 seeding tracklets and $\chi^{2}$ calculation
1739 \item[13.] Hyperplane fit and track quality calculation 
1740           (see {\tt AliTRDtrackerFitter::FitHyperplane()} for details.
1741 \item[14.] Cooking labels for tracklets. Should be done only for MC.
1742 \item[15.] Register seeds.
1743 \end{itemize}
1744
1745 %
1746 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1747 \newpage
1748 \setcounter{chapter}{3}
1749 \setcounter{section}{0}    
1750 \Chapter{Calibration}
1751 %
1752 {\it Author: R.~Bailhache (rbailhache@ikf.uni-frankfurt.de)}
1753 \smallskip
1754 \\
1755 %
1756 \section{Database Entries}
1757 A local database with default parameters can be found in the AliRoot 
1758 installation directory. The official database is in Alien under the 
1759 directory 
1760 {\tt /alice/data/$\langle$year$\rangle$/$\langle$LHCPeriod$\rangle$/OCDB}. 
1761 The calibration objects are stored in root files named according to their 
1762 run validity range, their version and subversion number. For the TRD they 
1763 are in the subdirectory {\tt \$AliRoot/OCDB/TRD/Calib} and correspond to 
1764 a perfect TRD detector. The parameters are listed in Tab.\ref{entriesdatabase}.\\  
1765 \begin{table} [h]
1766   \begin{center}
1767     \begin{tabular}{|c|c|c|c|c|c|}
1768       \hline Parameter                  & Description                                        & Number of         & Data type  & Unit & Default value \\ 
1769                                         &                                                    & channels          &            &  &  \\ \hline
1770       ChamberGainFactor                 & Mean gas gain                                      & 540               & Float      & $-$  & 1.0          \\ 
1771       $ $                               & per chamber                                        &                   &            &  &          \\ \hline
1772       LocalGainFactor                   & Gas gain                                           & 1181952           & UShort     & $-$  & 1.0   \\ 
1773                                         & per pad                                            & 1181952           & UShort     & $-$  & 1.0   \\ \hline
1774       ChamberVdrift                     & Mean drift velocity                                & 540               & Float      & cm$/$$\mu$s & 1.5 \\ 
1775                                         & per chamber                                        & 540               & Float      & cm$/$$\mu$s & 1.5 \\ \hline
1776       LocalVdrift                       & Drift velocity                                     & 1181952           & UShort     & $-$ & 1.0  \\ 
1777                                         &  per pad                                           & 1181952           & UShort     & $-$ & 1.0  \\ \hline
1778       ChamberT0                         & Minimum timeoffset                                 & 540               & Float      & timebin  & 0.0   \\ 
1779                                         & in the chamber                                        & 540               & Float      & timebin  & 0.0   \\ \hline
1780       LocalT0                           & Timeoffset                                         & 1181952           & UShort     & timebin & 0.0  \\ 
1781                                         & per pad                                            &                   &            &  &   \\ \hline
1782       PRFWidth                          & Width of the PRF                                   & 1181952           & UShort     & pad width &  0.515 ( layer 0) \\
1783       $ $                               & per pad                                            & $ $               & $ $        & $ $       &  0.502 ( layer 1) \\
1784       $ $                               & $ $                                                & $ $               & $ $        & $ $       &  0.491 ( layer 2) \\
1785       $ $                               & $ $                                                & $ $               & $ $        & $ $       &  0.481 ( layer 3) \\
1786       $ $                               & $ $                                                & $ $               & $ $        & $ $       &  0.471 ( layer 4) \\
1787       $ $                               & $ $                                                & $ $               & $ $        & $ $       &  0.463 ( layer 5) \\ \hline
1788       DetNoise                          & Scale factor                                       & 540               & Float      & $-$ & 0.1  \\ \hline
1789       PadNoise                          & Noise                                              & 1181952           & UShort     & ADC  & 12  \\ 
1790                                         & per pad                                            &                   &            & counts &   \\ \hline
1791       PadStatus                         & Status                                             & 1181952           & char       & $-$  & $-$   \\ 
1792                                         & per pad                                            &                   &            &  &   \\ \hline
1793     \end{tabular}
1794   \end{center}
1795 \caption{\label{entriesdatabase}Entries in the database}
1796 \end{table}
1797 %
1798 They are related to the calibration of:
1799 \begin{itemize}
1800 \item the gas gain: {\tt ChamberGainFactor} and {\tt LocalGainFactor}
1801 \item the electron drift velocity: {\tt ChamberVdrift} and {\tt LocalVdrift}
1802 \item the timeoffset: {\tt ChamberT0} and {\tt LocalT0}
1803 \item the width of the Pad Response Function: {\tt PRFWidth}
1804 \item the noise per channel: {\tt DetNoise}, {\tt PadNoise} and {\tt PadStatus}.
1805 \end{itemize} 
1806 To save disk space the values per pad are stored in UShort (2 Bytes) 
1807 format in AliTRDCalROC objects, one per chamber, that are members of 
1808 a general {\tt AliTRDCalPad} object. The final constants have a 
1809 numerical precision of 10$^{-4}$. They are computed by 
1810 multiplication (gain, drift velocity and noise) or addition (timeoffset) 
1811 of the detector and pad coefficients. From the pad noise level a status 
1812 is determined for each pad ( masked, bridgedleft, bridgedright, read by 
1813 the second MCM, not connected). One example macro ({\tt AliTRDCreate.C}) 
1814 to produce a local database is given in the {\tt \$AliRoot/TRD/Macros} 
1815 directory.\\
1816 During the simulation of the detector response and the reconstruction 
1817 of the events the parameters are used to compute the amplitude of the 
1818 signal and its position inside the detector. The database has to be 
1819 first choosen with the help of the {\tt AliCDBManager}. The parameters 
1820 are then called by an {\tt AliTRDcalibDB} instance. The macro 
1821 {\tt \$AliRoot/TRD/Macros/ReadCDD.C} shows how to read a local database 
1822 and plot the gas gain or drift velocity as function of the detector 
1823 number or pad number.
1824 %
1825 \section{DAQ Calibration}
1826 Calibration procedures are performed online during data-taking on 
1827 different systems. The principal role of the Data AcQuisition System is 
1828 to build the events and archive the data to permanent storage tapes. In 
1829 addition it also provides an efficient access to the data. Nevertheless 
1830 the complete reconstruction of the events with tracks is not available. 
1831 Two algorithms are executed on DAQ for the TRD: a pedestal algorithm and 
1832 an algorithm for the drift velocity and timeoffset. They are implemented 
1833 as rpm packages, that can be easily built inside AliRoot compiled with 
1834 the DATE software \cite{DATE}. The outputs of the algorithms are stored 
1835 in root files and put on the DAQ File Exchange Server (FXS). At the end 
1836 of the run they are picked up by the so called SHUTTLE and further 
1837 processed in the Preprocessor to fill finally the OCDB. 
1838 \begin{figure}[h]
1839   \centering\mbox{\epsfig{file=plots/baselinenoisedet0run34510ex.eps,width=0.45\textwidth}}
1840   \caption{\label{baselinenoisedet0run34510ex}2D histogram of the 
1841 detector 0 (SM 0, S0, L0) with the ADC value distributions around 
1842 the baseline (10 ADC counts) for each pad (PEDESTAL run 34510).}
1843 \end{figure}
1844 \subsection{Pedestal algorithm}
1845 During a pedestal run empty events without zero suppression are taken 
1846 with the TRD alone and a random trigger. They are used to determine 
1847 the noise in ADC counts of each pad. The algorithm can be found in the 
1848 {\tt TRDPEDESTALda.cxx} file of the AliRoot TRD directory. It is 
1849 executed on the Local Data Concentrators (LDCs), which are part of the 
1850 dataflow and gives access to sub-events. The TRD has three LDCs 
1851 corresponding to the following blocks of supermodules (SMs):
1852 \begin{itemize}
1853 \item 0-1-2-9-10-11
1854 \item 3-4-5-12-13-14
1855 \item 6-7-8-15-16-17
1856 \end{itemize}   
1857 Three algorithms are therefore executed in parallel during a PEDESTAL 
1858 run for a full installed TRD. After about 100 events, the data-taking 
1859 stops automatically and a 2D histogram is filled for each chamber with 
1860 the ADC amplitude distributions around the baseline for each pad. Such 
1861 a histogram is shown in Fig.\ref{baselinenoisedet0run34510ex} for 
1862 chamber 0 (SM 0 Stack 0 Layer 0).
1863 \begin{figure}[h]
1864   \centering\mbox{\epsfig{file=plots/run38125sm0nounfold.eps,width=0.88\textwidth,height=0.55\textwidth}}
1865   \caption{\label{run38125sm0nounfold}Noise in the six planes of 
1866 SM 0 (PEDESTAL run 38125). The five stacks in each layer are in 
1867 the {\it{z}} direction.}
1868 \end{figure}
1869 The chambers should be so configured that the data is without zero 
1870 suppression otherwise an error message appears on the DAQ online 
1871 Logbook. The container class is called {\tt AliTRDCalibPadStatus} 
1872 and allows to further fit the distributions with a Gaussian to 
1873 determine the baseline and noise of each pad. The function is called 
1874 {\tt AliTRDCalibPadStatus::AnalyseHisto()}. In 
1875 Fig.\ref{run38125sm0nounfold} the noise in SM 0 is plotted for the 
1876 PEDESTAL run 38125. It shows stripe patterns of higher noise in the 
1877 $z$-direction (beam direction) correlated to the static pad capacitance 
1878 of the pad plane. The noise distributions has to be first corrected 
1879 for the expected noise variations induced by the pad capacitance 
1880 before a status can be given to each pad. This is not done on the DAQ 
1881 but just before storing the parameters inside the Offline Condition 
1882 Database (OCDB) in the Preprocessor.
1883
1884 \subsection{Drift velocity and timeoffset algorithm}
1885 The drift velocity and timeoffset are calibrated with physics events, 
1886 $pp$ or $PbPb$ collisions. The algorithm is called 
1887 {\tt TRDVDRIFTda.cxx} and can be found in the AliRoot TRD directory. 
1888 It is executed on a dedicated monitoring server, which is not part 
1889 of the dataflow and gives access to full events of the TRD. The 
1890 physics events are used to fill continuously during data-taking an 
1891 average pulse height for each detector. They are stored in a 
1892 {\tt TProfile2D}, which is a member of a { \tt AliTRDCalibraFillHisto} 
1893 object. The {\tt TProfile2D} is written at the end of the run in a 
1894 root file put on the DAQ FXS.\\
1895 \begin{figure}[h]
1896   \centering\mbox{\epsfig{file=plots/referenceph2d.eps,width=0.6\textwidth,,height=0.5\textwidth}}
1897   \caption{\label{referenceph2d}2D histogram containing the average 
1898 pulse height distributions of each calibration group (here detector), 
1899 produced with decalibrated simulated $pp$ events.}
1900 \end{figure}
1901
1902 Fig.\ref{referenceph2d} shows an output {\tt TProfile2D} obtained 
1903 from simulated decalibrated $pp$ collisions at 14\,TeV. The first 
1904 peak in time corresponds to the amplification region, where the 
1905 contributions of ionization electrons, which come from both sides 
1906 of the anode wire plane, are overlapping. The flat plateau results 
1907 from the electrons in the drift region. The tail is caused by the 
1908 Time Response Function. From this average signal as function of time 
1909 the drift velocity and timeoffset can be extracted by fit procedures. 
1910 This last step is performed in the Preprocessor.\\
1911 Since no tracking is available on DAQ, a simple tracklet finder is 
1912 used. It was optimized for a low charged particle multiplicity 
1913 environment. The algorithm looks for a maximum of the signal 
1914 amplitudes in the chamber after integration over all timebins. The 
1915 average pulse height is then filled for a spot of two pad rows 
1916 ($z$ direction) and four pad columns ($r\phi$ direction) around the 
1917 maximum. Further details can be found in the function 
1918 {\tt AliTRDCalibraFillHisto::ProcessEventDAQ}.
1919 %
1920 \section{HLT Calibration}
1921 The High Level Trigger has the big advantage to provide an online 
1922 reconstruction of the events. The idea is then to run the calibration 
1923 procedures in a transparent way, independent whether online or 
1924 offline. The same function 
1925 \\{\tt AliTRDCalibraFillHisto::UpdateHistogramsV1(AliTRDtrackV1 *t)} 
1926 is used to fill the $dE/dx$ distributions (gain), the average pulse 
1927 height (drift velocity and timeoffset) and the Pad Response Function 
1928 for each detector in respectively one {\tt TH2I} and two 
1929 {\tt TProfile2Ds}. The calibration is nevertheless done per chamber, 
1930 whereas by integrating statistics it will be possible to get the gain, 
1931 drift velocity and timeoffset distributions inside the chambers offline. 
1932 Therefore the class {\tt AliTRDCalibraFillHisto} contains a flag 
1933 ({\tt fIsHLT}) to avoid extra calculations not needed at the detector 
1934 level.\\
1935 \begin{figure}[hbt]
1936   \centering\mbox{\epsfig{file=plots/referencech2d.eps,width=0.55\textwidth,,height=0.45\textwidth}}
1937   \caption{\label{referencech2d}A 2D histogram containing the 
1938 $dE$$/$$dx$ distributions of each detector. These were produced 
1939 with decalibrated simulated $pp$ events.}
1940 \end{figure}
1941
1942 Fig.\ref{referencech2d} shows one example of a {\tt TH2I} histogram, 
1943 where the $dE/dx$ distributions of each detector is stored for $pp$ 
1944 collisions at 14\,TeV. No minimal $p_{T}$ cut was applied on the 
1945 TRD tracks. Assuming that the charged particles are uniformy 
1946 distributed over the TRD chambers, the position of the Most Probable 
1947 Value of the $dE/dx$ distribution is used to calibrate the gain.\\ 
1948 At the beginning of each run, a local copy of the OCDB is updated 
1949 on the HLT cluster: the HCDB (HLT Condition Database). The last set 
1950 of calibration objects are used to reconstruct the events. The gain 
1951 correction preformed during the tracking has to be taken into account 
1952 when filling the $dE/dx$ distributions. That is why the calibration 
1953 algorithm has to know which database was used during the 
1954 reconstruction. The TRD HLT code can be found in the {\tt HLT/TRD} 
1955 subdirectory of the AliRoot installation. The calibration is 
1956 implemented as an {\tt AliHLTTRDCalibrationComponent}, whose members 
1957 are an {\tt AliCDBManager} together with the path for the current 
1958 database used, and an {\tt AliTRDCalibraFillHisto} object. The main 
1959 functions are:
1960 \begin{itemize}
1961 \item {\tt AliHLTCalibrationComponent::InitCalibration}, where the 
1962 {\tt TH2I} and {\tt TProfile2Ds} are created.
1963 \item {\tt AliHLTCalibrationComponent::ProcessCalibration}, where 
1964 the function\\ 
1965 {\tt AliTRDCalibraFillHisto::UpdateHistogramsV1(AliTRDtrackV1 *t)} 
1966 is called to fill the histograms.
1967 \item {\tt AliHLTCalibrationComponent::FormOutput}, which returns 
1968 a {\tt TObjArray} with the histograms.
1969 \end{itemize}     
1970 The histograms are shipped at the end of each run to the HLT File 
1971 Exchange Server to be picked up by the SHUTTLE and further processed 
1972 by the Preprocessor, exactly as the data from the calibration on DAQ.
1973 %
1974 \section{Preprocessor}
1975 %
1976 The online systems, like the Detector Control System (DCS), the DAQ 
1977 and the HLT, are protected from outside by a firewall. A special 
1978 framework, called the SHUTTLE, has been developped to retrieve offline 
1979 data in the online systems or store relevant information from the 
1980 online systems in the OCDB. The SHUTTLE has access to the DCS, DAQ 
1981 and HLT FXS. At the end of each run the reference data, outputs of 
1982 the calibration algorithms on DAQ and HLT, are retrieved and further 
1983 processed to determine the calibration constants (gain, drift velocity, 
1984 timeoffset and width of the Pad Response Function). The reference 
1985 data are finally stored in the Grid reference Data Base, whereas the 
1986 results of the fit procedures are stored in the OCDB.\\
1987 The code is contained in the {\tt AliTRDPreprocessor} class. The 
1988 Process function is executed for the run types: PEDESTAL, STANDALONE, 
1989 DAQ and PHYSICS.
1990 \begin{itemize}
1991 \item The PEDESTAL run are dedicated to the calibration of the noise 
1992 on DAQ. Only the output of the DAQ pedestal algorithm is retrieved at 
1993 the SHUTTLE. From the noise and baseline of each pad, a pad status is 
1994 determined. Disconnected pads are recognizable by a small noise. 
1995 Bridged pads have the same noise and baseline. The noise and 
1996 padstatus of the previous pedestal run in the OCDB are taken for half 
1997 chambers, which were not On. Finally the database entries 
1998 {\tt DetNoise}, {\tt PadNoise} and {\tt PadStatus} are populated in 
1999 the OCDB. More informations can be found in the function 
2000 \\{\tt AliTRDPreprocessor::ExtractPedestals}.
2001 \item The STANDALONE runs are used to check the data integrity or the 
2002 correlated noise. The data are taken with the TRD alone and a random 
2003 trigger. Only the DCS data are retrieved.
2004 \item The DAQ run are test runs for the DAQ people. Only the DCS data 
2005 are retrieved.
2006 \item The PHYSICS run are global runs including more than one detector 
2007 and different trigger clusters. They are used for the calibration of 
2008 the gain, driftvelocity and timeoffset, and width of the PRF. Therefore 
2009 the output of the calibration algorihms running on HLT are retrieved. 
2010 If the procedure is not successful the output of the 
2011 driftvelocity$/$timeoffset algorithm on DAQ is also retrieved. The 
2012 reference data, the histograms, are fitted using an 
2013 {\tt ALiTRDCalibraFit} instance:
2014 \begin{itemize}
2015 \item {\tt AliTRDCalibraFit::AnalyseCH(const TH2I *ch)} determines 
2016 the MPVs of the $dE/dx$ distributions and compares them to a reference 
2017 value.
2018 \item {\tt AliTRDCalibraFit::AnalysePH(const TProfile2D *ph)} fits 
2019 the average pulse height and determines the position of the amplification 
2020 region peak and the end of the drift region for each chamber. Knowing 
2021 the length of the drift region one can deduce the drift velocity. The 
2022 amplification peak gives also information on the timeoffset.   
2023 \item {\tt AliTRDCalibraFit::AnalysePRFMarianFit(const TProfile2D *prf)} 
2024 determines the spread of the clusters as function of azimuthal angle of 
2025 the track. The minimum gives the width of the PRF.
2026 \end{itemize}
2027 The results of each fit procedure are stored in a {\tt TObjArray} of 
2028 \\{\tt AliTRDCalibraFit::AliTRDFitInfo} objects, one per chamber, which 
2029 is a member of the {\tt AliTRDCalibraFit} instance. The functions 
2030 {\tt AliTRDCalibratFit::CreateDetObject*} and {\tt ::CreatePadObject*} 
2031 allow to create from the {\tt TObjArray} the final calibration objects, 
2032 that have to be put in the OCDB.
2033 \end{itemize}
2034 Tab.\ref{taskruntype} summarizes the tasks executed by the prepocessor 
2035 for each run type.
2036 \begin{table}[h]
2037 \begin{center}
2038 \begin{tabular} {|c|c|c|c|c|}
2039 \hline run type & DCS data points  & DCS FXS & DAQ FXS & HLT FXS  \\
2040  & temperatures  & electronic  & calibration DA  & calibration DA   \\
2041  & voltages, etc $\cdots$  &  configuration & noise/($v_{dE}$$/$$t_{0}$)  
2042 & $g$/($v_{dE}$$/$$t_{0}$)/$\sigma_{PRF}$   \\
2043 \hline DAQ   & yes & yes & no & no \\\hline
2044 \hline PEDESTAL   & no & no & yes (noise) & no \\\hline
2045 \hline STANDALONE & yes & yes & no & no \\\hline
2046 \hline PHYSICS & yes & yes & yes ($v_{dE}$$/$$t_{0}$) & yes \\\hline
2047 \end{tabular} 
2048 \caption{\label{taskruntype} Tasks performed by the TRD preprocessor 
2049 for every run type.} 
2050 \end{center}
2051 \end{table}
2052 The DCS data points are measurements of the currents, voltages, 
2053 temperatures and other variables of the chambers as function of time. 
2054 They are saved in the DCS Archive DB during the run and made available 
2055 at the SHUTTLE by AMANDA.
2056 %
2057 \section{Offline Calibration}
2058 The offline calibration of the gain, driftvelocity$/$timeoffset and 
2059 width of the PRF is meant to improve the first calibration online. 
2060 It follows the following steps:
2061 \begin{itemize}
2062 \item Fill reference data (the $dE/dx$ distributions, the average 
2063 pulse heights $\cdots$) during the reconstruction of the events offline.
2064 \item Store the reference data in root files in AliEn.
2065 \item Merge the reference data of different runs and$/$or calibration groups.
2066 \item Fit the reference data to extract the calibration constants and 
2067 create the calibration objects.
2068 \item Store the calibration objects according to their run validity in 
2069 the OCDB.
2070 \end{itemize}
2071 The calibration procedure is not performed per detector anymore but per 
2072 pad, at least for the first step, the filling of the reference data. 
2073 Depending on the available statics the reference data of different pads 
2074 (calibration groups) can be merged together to determine a mean 
2075 calibration coefficient over these pads.
2076 \subsection{AliTRDCalibraVector container}
2077 The high granularity of the calibration, with a total number of 1181952 
2078 pads, implies that the size of the reference data has to be reduced to 
2079 the strict minimum needed.
2080 \begin{table}[h]
2081 \begin{center}
2082 \begin{tabular} {|c|c|c|}
2083 \hline reference data & Number of  & size  \\
2084  for & calibration groups  & in MB   \\\hline
2085  gain & 1181952 & 225 \\\hline
2086  driftvelocity$/$timeoffset & 1181952 & 271 \\\hline
2087  PRF  & 131328  & 200 \\\hline
2088  All together & & 696 \\\hline
2089 \end{tabular} 
2090 \caption{\label{sizeofAliTRDCalibraVector} Size of the 
2091 {\tt AliTRDCalibraVector} object for a given granularity.} 
2092 \end{center}
2093 \end{table}
2094
2095 The {\tt TH2I} and {\tt TProfile2D} objects are not a good option 
2096 anymore. Therefore a container class, {\tt AliTRDCalibraVector}, was 
2097 developped. The {\tt TH2I} corresponds to an array of UShort (2 Bytes) 
2098 for the number of entries in each bin, the {\tt TProfile2D} to an array 
2099 of UShort for the number of entries in each bin and two arrays of Float 
2100 for the sum of the weights and the sum of the squared weights in each 
2101 bin. The mean value and its error are computed per hand in the functions 
2102 {\tt AliTRDCalibraVector::UpdateVector*}, where the object is filled 
2103 with new data. The size of the {\tt AliTRDCalibraVector} object is 
2104 summarized in Tab.\ref{sizeofAliTRDCalibraVector}.\\
2105 %
2106 \subsection{Additional method to calibrate the drift velocity}
2107 In addition an other method is available for the calibration of the 
2108 drift velocity. It is based on the comparison of the slope of the TRD 
2109 tracklet in the azimuthal plane $xy$ with the $\phi$ angle of the 
2110 global track. It can be shown that the slope $dy/dt$ of a TRD tracklet 
2111 depends linearly on its global track parameters, 
2112 $\tan(\phi)+(dz/dx)\tan(\beta_{tilt})$ \cite{THESISR}. The slope 
2113 parameter is the drift velocity in the electric field direction, 
2114 whereas the constant gives the tangent of the Lorentz angle. If the 
2115 TRD tracklet crosses two different pads in the $z$ direction (the 
2116 beam direction), the relation is not true anymore. Therefore such 
2117 tracklets are rejected in the calibration procedure. The reference 
2118 data are a {\tt TObjArray} of one {\tt TH2F} histogram for each 
2119 detector.\\
2120 \begin{figure}[hbt]
2121   \centering\mbox{\epsfig{file=plots/crossrow.eps,width=0.5\textwidth,height=0.45\textwidth}}
2122   \caption{\label{crossrow}The correlation between $dy/dt$ and 
2123 $\tan(\phi)+(dz/dx)\tan(\beta_{tilt})$ for the reconstructed track 
2124 in one chamber. The tracks crossing at least two pad rows are in 
2125 red crosses and those crossing one pad row in blue points.}
2126 \end{figure}
2127
2128 Fig.\ref{crossrow} shows one example of such a histogram. They are 
2129 filled in the function 
2130 \\{\tt AliTRDCalibraFillHisto: :UpdateHistogramsV1(AliTRDtrackV1 *t)}, 
2131 like the reference data for other calibration constants, if the 
2132 flag {\tt fLinearFitterDebugOn} is true.\\
2133 The histograms are stored in the container class, 
2134 \\{\tt AliTRDCalibraVdriftLinearFit}, for which a {\tt Merge} and 
2135 {\tt Add} function have been implemented. In a second step, the 
2136 {\tt AliTRDCalibraVdriftLinearFit} objects can be merged together 
2137 for different runs. In a third step, the {\tt TH2F} histograms are 
2138 fitted in the function \\{\tt AliTRDCalibraVdriftLinearFit::FillPEArray}. 
2139 The result parameters are members of the 
2140 {\tt AliTRDCalibraVdriftLinearFit} object, as well as their error 
2141 coming from the fit procedures. Finally the 
2142 {\tt AliTRDCalibraVdriftLinearFit} object is passed to an 
2143 {\tt AliTRDCalibraFit} instance through the function 
2144 {\tt AliTRDCalibraFit::AnalyseLinearFitters}, in which the Lorentz 
2145 angle is computed from the fit parameters and stored together with 
2146 the drift velocity in a {\tt TObjArray}, member of the 
2147 {\tt AliTRDCalibraFit} instance. As for the other calibration 
2148 constants the functions {\tt AliTRDCalibratFit::CreateDetObject*} 
2149 and {\tt ::CreatePadObject*} allows to create the final calibration 
2150 objects, that have to be put in the OCDB. Since the Lorentz angle 
2151 is not a OCDB entries, it is only used for debugging.
2152 %       
2153 \subsection{The calibration AliAnalysisTask}
2154 The reference data of the calibration are filled in an AliAnalysisTask 
2155 during the reconstruction or after the reconstruction. Since it needs 
2156 some informations only stored in the AliESDfriends, they have to be 
2157 written if one wants to run the calibration. This will be the case 
2158 only for TRD track above a given $p_{T}$ since the size of the events 
2159 is otherwise to big.
2160 %
2161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2162 \newpage
2163 \setcounter{chapter}{4}
2164 \setcounter{section}{0}    
2165 \Chapter{Alignment}
2166 \thispagestyle{empty}
2167 %
2168 \section{???}
2169 %
2170 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2171 \newpage
2172 \setcounter{chapter}{5}
2173 \setcounter{section}{0}    
2174 \Chapter{Quality Assurance (QA)}
2175 \thispagestyle{empty}
2176 %
2177 \section{???}
2178 %
2179 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2180 \newpage
2181 \setcounter{chapter}{6}
2182 \setcounter{section}{0}    
2183 \Chapter{High Level Trigger (HLT)}
2184 \thispagestyle{empty}
2185 %
2186 \section{???}
2187 %
2188 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2189 \newpage
2190 \setcounter{chapter}{7}
2191 \setcounter{section}{0}    
2192 \Chapter{References}
2193 \thispagestyle{empty}
2194 %
2195 \begin{thebibliography}{99}
2196 %
2197 \bibitem{ALIROOT}  {\it The ALICE Offline Bible}\\
2198                    http://aliceinfo.cern.ch/export/sites/AlicePortal/Offline/galleries/Download/OfflineDownload/ \\
2199                    OfflineBible.pdf.
2200 %
2201 \bibitem{CLEMENS}  C.~Adler,
2202                    {\it Radiation length of the ALICE TRD}
2203 %
2204 \bibitem{DAVID}    D.~Emschermann,
2205                    {\it Numbering Convention for the ALICE TRD Detector.},
2206                    http://www.physi.uni-heidelberg.de/\~demscher/alice/numbering/more/TRD\_numbering\_v04.pdf.
2207 %
2208 \bibitem{TRPHOT}   M.~Castellano et al.,
2209                    Comp. Phys. Comm. {\bf 55}, 431 (1988),
2210                    Comp. Phys. Comm. {\bf 61}, 395 (1990),
2211 %
2212 \bibitem{DATE}     K.~Schossmaier et al.,
2213                    {\it The Alice Data Acquisition and Test Environment DATE V5}, 
2214                    CHEP06.
2215 %
2216 \bibitem{THESISR}  R.~Bailhache, 
2217                    {\it Calibration of the ALICE Transition Radiation Detector 
2218                    and a study of $Z^{0}$ and heavy quark production in $pp$ 
2219                    collisions at the LHC},
2220                    PhD thesis, University of Darmstadt (Germany), 2009.
2221 %
2222 \end{thebibliography}
2223 %
2224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2225 %
2226 \end{document}
2227 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%