]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFReconstructor.cxx
Switching of the decoder version used in reconstruction
[u/mrichter/AliRoot.git] / TOF / AliTOFReconstructor.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 // class for TOF reconstruction                                              //
21 //                                                                           //
22 ///////////////////////////////////////////////////////////////////////////////
23
24 #include <cstdlib>
25 #include "TObjArray.h"
26 #include "TString.h"
27
28 #include "AliLog.h"
29 #include "AliRawReader.h"
30
31 #include "AliTOFClusterFinder.h"
32 #include "AliTOFClusterFinderV1.h"
33 #include "AliTOFcalib.h"
34 #include "AliTOFtrackerMI.h"
35 #include "AliTOFtracker.h"
36 #include "AliTOFtrackerV1.h"
37 #include "AliTOFReconstructor.h"
38
39 class TTree;
40
41 class AliESDEvent;
42
43 ClassImp(AliTOFReconstructor)
44
45  //____________________________________________________________________
46 AliTOFReconstructor::AliTOFReconstructor() 
47   : AliReconstructor(),
48     fTOFcalib(0)
49 {
50 //
51 // ctor
52 //
53   
54   //Retrieving the TOF calibration info  
55   fTOFcalib    = new AliTOFcalib();
56   fTOFcalib->CreateCalObjects();
57
58   if(!fTOFcalib->ReadParOnlineDelayFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}  
59   if(!fTOFcalib->ReadParOnlineStatusFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}  
60
61   if(!fTOFcalib->ReadParOfflineFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}  
62 }
63
64 //_____________________________________________________________________________
65 AliTOFReconstructor::~AliTOFReconstructor() 
66 {
67 //
68 // dtor
69 //
70   delete fTOFcalib;
71 }
72
73 //_____________________________________________________________________________
74 void AliTOFReconstructor::Reconstruct(AliRawReader *rawReader,
75                                       TTree *clustersTree) const
76 {
77   //
78   // reconstruct clusters from Raw Data
79   //
80
81   TString optionString = GetOption();
82   // use V1 cluster finder if selected
83   if (optionString.Contains("ClusterizerV1")) {
84     static AliTOFClusterFinderV1 tofClus(fTOFcalib);
85
86     // decoder version option
87     if (optionString.Contains("DecoderV0"))
88       tofClus.SetDecoderVersion(0);
89     else
90       tofClus.SetDecoderVersion(1);
91     
92     tofClus.Digits2RecPoints(rawReader, clustersTree);
93   }
94   else {
95     static AliTOFClusterFinder tofClus(fTOFcalib);
96     
97     // decoder version option
98     if (optionString.Contains("DecoderV0"))
99       tofClus.SetDecoderVersion(0);
100     else
101       tofClus.SetDecoderVersion(1);
102
103     tofClus.Digits2RecPoints(rawReader, clustersTree);
104   }
105
106 }
107
108 //_____________________________________________________________________________
109 void AliTOFReconstructor::Reconstruct(TTree *digitsTree,
110                                       TTree *clustersTree) const
111 {
112   //
113   // reconstruct clusters from digits
114   //
115
116   AliDebug(2,Form("Global Event loop mode: Creating Recpoints from Digits Tree")); 
117
118   TString optionString = GetOption();
119   // use V1 cluster finder if selected
120   if (optionString.Contains("ClusterizerV1")) {
121     static AliTOFClusterFinderV1 tofClus(fTOFcalib);
122
123     // decoder version option
124     if (optionString.Contains("DecoderV0"))
125       tofClus.SetDecoderVersion(0);
126     else
127       tofClus.SetDecoderVersion(1);
128     
129     tofClus.Digits2RecPoints(digitsTree, clustersTree);
130   }
131   else {
132     static AliTOFClusterFinder tofClus(fTOFcalib);
133
134     // decoder version option
135     if (optionString.Contains("DecoderV0"))
136       tofClus.SetDecoderVersion(0);
137     else
138       tofClus.SetDecoderVersion(1);
139     
140     tofClus.Digits2RecPoints(digitsTree, clustersTree);
141   }
142
143 }
144 //_____________________________________________________________________________
145   void AliTOFReconstructor::ConvertDigits(AliRawReader* reader, TTree* digitsTree) const
146 {
147 // reconstruct clusters from digits
148
149   AliDebug(2,Form("Global Event loop mode: Converting Raw Data to a Digits Tree")); 
150
151   TString optionString = GetOption();
152   // use V1 cluster finder if selected
153   if (optionString.Contains("ClusterizerV1")) {
154     static AliTOFClusterFinderV1 tofClus(fTOFcalib);
155
156     // decoder version option
157     if (optionString.Contains("DecoderV0"))
158       tofClus.SetDecoderVersion(0);
159     else
160       tofClus.SetDecoderVersion(1);
161     
162     tofClus.Raw2Digits(reader, digitsTree);
163   }
164   else {
165     static AliTOFClusterFinder tofClus(fTOFcalib);
166
167     // decoder version option
168     if (optionString.Contains("DecoderV0"))
169       tofClus.SetDecoderVersion(0);
170     else
171       tofClus.SetDecoderVersion(1);
172     
173     tofClus.Raw2Digits(reader, digitsTree);
174   }
175
176 }
177
178 //_____________________________________________________________________________
179 AliTracker* AliTOFReconstructor::CreateTracker() const
180 {
181
182   // 
183   // create a TOF tracker using 
184   // TOF Reco Param collected by STEER
185   //
186
187   TString selectedTracker = GetOption();
188  
189   AliTracker *tracker;
190   // use MI tracker if selected
191   if (selectedTracker.Contains("TrackerMI")) {
192     tracker = new AliTOFtrackerMI();
193   }
194   // use V1 tracker if selected
195   else if (selectedTracker.Contains("TrackerV1")) {
196     tracker =  new AliTOFtrackerV1();
197   }
198   else {
199     tracker = new AliTOFtracker();
200   }
201   return tracker;
202
203 }