]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EMCAL/doc/reconstruction.tex
add histograms depending on the track type, mainly for hybrids
[u/mrichter/AliRoot.git] / EMCAL / doc / reconstruction.tex
CommitLineData
1a60af39 1\r
2\r
3\section{Reconstruction code}\r
4\r
5\r
6The energy deposited by the particles in the towers produces scintillating light that is propagated with optic fibers through the different layers to APD placed at the base of the cells. The APDs amplify the signal and generate an electronic pulse shape that is stored in the raw data format. From this pulse shape, we extract the signal amplitude and the arrival time. The pulse shape is fitted during the reconstruction via a parametrized function and TMinuit, and those 2 values are extracted.\r
7\r
8A particle produces signals in different towers (electromagnetic shower expands more than its Moli\`ere radius which is a cell size). The next step is the formation of clusters of cells that belong to the same particle, although depending on the energy, granularity, clusterization algorithm or event type, those clusters might have contributions from different particles. The default algorithm in pp collisions is a simple aggregation of neighboring cells until there is no more cells above a certain energy threshold (named {\it clusterizer V1}). In case of Pb-Pb collisions environment, where particle showers merge quite often, we apply another algorithm that aggregates cells to the clusters until reaching a cell with more energy than the precedent (named {\it clusterizer V2}). Depending on the analysis type, one might want to use one or the other clusterization type. For this reason, a re-clusterization is also possible at the analysis level. A last clusterizer is implemented, which makes 3x3 clusters. It has been used in jet analysis for instance in order to avoid biasing jet reconstruction where one is interested in the energy flow over a large area without explicit reconstruction of photon showers and where the driving consideration is that the wide clusterizer does not interfere with the jet finder. For $\pi^{0}$, $\eta$, and direct $\gamma$ analyses, {\it V2} is most likely preferable).\r
9\r
10Once the cluster is defined, we calculate cluster parameters, shower shape parameters, that will help at the analysis level to identify each cluster as one particle type. Also, we compare the cluster position information with the propagation of tracks measured in the central barrel to the EMCAL surface, to identify the clusters generated by charged particles.\r
11\r
12The final analysis objects, ESDs and AODs, contain all the cluster and cell basic informations allowing to redo the clusterization if needed at the analysis level.\r
13\r
14%The class AliReconstruction manages this part. This step can\r
15%begin either from the Digits or from the Raw data. We can distinguish\r
16%different steps described in the following sections. \r
17\r
18\r
19\subsection{Offline data base access}\r
20\r
21How to create explained OCDB/OADB section.\r
22\r
23\subsubsection{Energy calibration}\r
24\r
25\subsubsection{Bad channels - Marie, Alexis}\r
26\r
27\subsubsection{Alignment - Marco}\r
28\r
29\subsection{Raw data fitting: from ADC sample to digits - David}\r
30\r
31\begin{lstlisting}\r
32AliEMCALRawUtils, AliCaloRawAnalyzer*, AliCalo*, AliEMCALDigit.\r
33\end{lstlisting}\r
34\r
35\subsection{Clusterization: From digits to clusters - Constantin, Adam}\r
36\r
37\begin{lstlisting}\r
38AliEMCALClusterizer*, AliEMCALRecPoint\r
39\end{lstlisting}\r
40\r
41\subsection{Cluster-Track matching - Rongrong, Shingo, Michael}\r
42\r
43Even though EMCal is intended to measure the energy of particles that interact with EMCal via electromagnetic showering, e.g. photons and electrons, charged hadrons can also deposit energy in EMCal, most commonly via minimum ionization, but also via nuclear interactions generating hadronic showers. In the analysis where the distinction between hadroic and electromagnetic showers is necessary, cluster-track matching is often used to meet this requirement. \r
44\r
45The main method used to extrapolate tracks in the ALICE software framework is:\r
46\r
47\begin{DDbox}{\linewidth}\r
48\begin{lstlisting}\r
49 static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x, Double_t m,Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8,Int_t sign=0, Bool_t addTimeStep=kFALSE); \r
50\end{lstlisting}\r
51\end{DDbox}\r
52which takes the following arguments: {\it ``track''} stores all the information of the starting point for the extrapolation; {\it ``x''} is the coordinate of the destination plane in the local coordinate system; {\it ``m''} is the mass assumption for the track; {\it ``maxStep''} is the step size used in the extrapolation. This method extrapolates the track trajectory to a destination plane in a magnetic field, taking into account the energy loss of the tracks when going through detector materials. However, the energy loss model is tuned for charged hadrons, so it does not work very well for electrons or positions whose primary energy loss process is bremsstrahlung.\r
53\r
54For EMCal, the track-cluster matching is done by default in the reconstruction chain and the code is implemented in:\r
55\r
56\begin{DDbox}{\linewidth}\r
57\begin{lstlisting}\r
58 AliEMCALTracker::PropagateBack(AliESDEvent* esd)\r
59\end{lstlisting}\r
60\end{DDbox}\r
61\r
62The logic of the matching procedure is the following:\r
63\begin{itemize}\r
64\item Find all the EMCal clusters in the event. See AliEMCALTracker::LoadClusters().\r
65\item Find all the good tracks in the event. See AliEMCALTracker:: LoadTracks(). Several cuts are applied to select good tracks\r
66 \begin{itemize}\r
67 \item Minimum $p_{\rm{T}}$ cut, which can be set during the reconstruction.\r
68 \item Cut on number of TPC clusters, which can be set during the reconstruction. \r
69 \item $|\eta|<0.8$ and $20^{\circ} < \varphi < 120^{\circ} $. These fiducial cuts are hard coded since tracks out of this range should never make it to EMCal. \r
70 \end{itemize}\r
71\item For each good track, find the nearest cluster as matched if their residuals fall within the cuts. See AliEMCALTracker::FindMatchedCluster(), which follows the following steps:\r
72 \begin{itemize}\r
73 \item Get the starting point: if the {\it friendTrack} is available, use the last point on the TPC. Otherwise, use the point at the inner wall of the TPC. \r
74 \item Extrapolate tracks to the EMCal surface at 430 cm, and apply fiducial cuts on the extrapolated points: $|\eta|<0.75$ and $70^{\circ} < \varphi < 190^{\circ} $. The step size in the extrapolation can be set in the reconstruction, and the default value is 20 cm.\r
75 \item Extrapolate tracks further, with 5 cm step size, to the positions of all the EMCal clusters which are in the vicinity of the extrapolated points from last step. Then the distance between extrapolated tracks to the clusters are calculated, and the nearest cluster is assigned as matched if the residuals fall within cuts. By fitting the distributions of the residuals using Gaussian functions, we can choose to cut on $N\sigma$ of the residuals.To further improve the matching performance, $p_{\rm{T}}$ and charge dependent cuts can be used. \r
76 \end{itemize}\r
77\end{itemize}\r
78\r
79\subsection{How to execute the reconstruction}\r
80\r
81Executing the reconstruction is very similar to the simulation case, see the macro TestEMCALReconstruction.C (a bit more detailed than the one in \$ALICE\_ROOT/EMCAL/macros) :\r
82\r
83\begin{DDbox}{\linewidth}\r
84\begin{lstlisting}\r
85void TestEMCALReconstruction() {\r
86\r
87TString detector=``EMCAL TPC'';//Same function as in Simulation.C \r
88\r
89AliReconstruction rec; //Create reconstruction object \r
90\r
91//Making Tracking \r
92rec.SetRunTracking(detector) ;\r
93\r
94//Particle Reconstruction. Make Rec Points \r
95rec.SetRunReconstruction(detector); \r
96\r
97//read RAW data. Give directory where raw data is stored\r
98//rec.SetInput(``RawDataDirectory/raw.root");\r
99\r
100//Make vertex finder \r
101rec.SetRunVertexFinder(kFALSE) ; // false only if the tracking detectors are not included.\r
102\r
103//Fill ESD file with RecPoints information. \r
104rec.SetFillESD(detector) ; \r
105\r
106//Run Reconstruction \r
107rec.Run() ;\r
108}\r
109\end{lstlisting}\r
110\end{DDbox}\r
111\r
112\r