]>
Commit | Line | Data |
---|---|---|
d15a28e7 | 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 | ||
b2a60966 | 16 | /* $Id$ */ |
17 | ||
d15a28e7 | 18 | //_________________________________________________________________________ |
a3dfe79c | 19 | //*-- |
7acf6008 | 20 | //*-- Author: Gines Martinez & Yves Schutz (SUBATECH) |
f1aeaf5d | 21 | //*-- Compleetely redesigned by Dmitri Peressounko (SUBATECH & RRC KI) March 2001 |
7acf6008 | 22 | ///////////////////////////////////////////////////////////////////////////////////// |
9a6ec61a | 23 | // Wrapping class for reconstruction. Allows to produce reconstruction from |
24 | // different steps: from previously produced hits,sdigits, etc. Each new reconstruction | |
a4e98857 | 25 | // flow (e.g. digits, made from them RecPoints, subsequently made TrackSegments, |
26 | // subsequently made RecParticles) are distinguished by the title of created branches. One can | |
27 | // use this title as a comment, see use case below. | |
28 | // Thanks to getters, one can set | |
29 | // parameters to reconstruction briks. The full set of parameters is saved in the | |
30 | // corresponding branch: e.g. parameters of clusterizer are stored in branch | |
21cd0c07 | 31 | // TreeR::AliPHOSClusterizer with the same title as the branch containing the RecPoints. // TTree does not support overwriting, therefore one can not produce several |
9a6ec61a | 32 | // branches with the same names and titles - use different titles. |
33 | // | |
a4e98857 | 34 | // Use case: |
7acf6008 | 35 | // |
36 | // root [0] AliPHOSReconstructioner * r = new AliPHOSReconstructioner("galice.root") | |
37 | // // Set the header file | |
38 | // root [1] r->ExecuteTask() | |
a4e98857 | 39 | // // Make full chain of reconstruction |
7acf6008 | 40 | // |
41 | // // One can specify the title for each branch | |
42 | // root [2] r->SetBranchFileName("RecPoints","RecPoints1") ; | |
7acf6008 | 43 | // |
9a6ec61a | 44 | // // One can change parameters of reconstruction algorithms |
45 | // root [3] r->GetClusterizer()->SetEmcLocalMaxCut(0.02) | |
46 | // | |
47 | // // One can specify the starting point of the reconstruction and title of all | |
48 | // // branches produced in this pass | |
49 | // root [4] r->StartFrom("AliPHOSClusterizer","Local max cut 0.02") | |
50 | // // means that will use already generated Digits and produce only RecPoints, | |
51 | // // TS and RecParticles | |
7acf6008 | 52 | // |
53 | // // And finally one can call ExecuteTask() with the following options | |
9a6ec61a | 54 | // root [5] r->ExecuteTask("debug all timing") |
7acf6008 | 55 | // // deb - prints the numbers of produced SDigits, Digits etc. |
56 | // // deb all - prints in addition list of made SDigits, digits etc. | |
57 | // // timing - prints benchmarking results | |
9a6ec61a | 58 | /////////////////////////////////////////////////////////////////////////////////////////////////// |
d15a28e7 | 59 | |
60 | // --- ROOT system --- | |
61 | ||
62 | #include "TClonesArray.h" | |
7acf6008 | 63 | #include "TROOT.h" |
64 | #include "TTree.h" | |
2bd5457f | 65 | #include "TFile.h" |
d15a28e7 | 66 | |
67 | // --- Standard library --- | |
364de5c6 | 68 | |
d15a28e7 | 69 | // --- AliRoot header files --- |
7acf6008 | 70 | #include "AliRun.h" |
d15a28e7 | 71 | #include "AliPHOSReconstructioner.h" |
7acf6008 | 72 | #include "AliPHOSClusterizerv1.h" |
73 | #include "AliPHOSDigitizer.h" | |
74 | #include "AliPHOSSDigitizer.h" | |
75 | #include "AliPHOSTrackSegmentMakerv1.h" | |
76 | #include "AliPHOSPIDv1.h" | |
9ec91567 | 77 | #include "AliPHOSFastRecParticle.h" |
0b06c60d | 78 | #include "AliPHOSCpvRecPoint.h" |
d15a28e7 | 79 | |
80 | ClassImp(AliPHOSReconstructioner) | |
81 | ||
d15a28e7 | 82 | //____________________________________________________________________________ |
7acf6008 | 83 | AliPHOSReconstructioner::AliPHOSReconstructioner():TTask("AliPHOSReconstructioner","") |
d15a28e7 | 84 | { |
b2a60966 | 85 | // ctor |
fbf811ec | 86 | fToSplit = kFALSE ; |
7acf6008 | 87 | fDigitizer = 0 ; |
88 | fClusterizer = 0 ; | |
89 | fTSMaker = 0 ; | |
90 | fPID = 0 ; | |
91 | fSDigitizer = 0 ; | |
9c88dd1b | 92 | fHeaderFileName = "galice.root" ; |
d15a28e7 | 93 | |
7acf6008 | 94 | fIsInitialized = kFALSE ; |
d15a28e7 | 95 | |
6ad0bfa0 | 96 | } |
97 | ||
6ad0bfa0 | 98 | //____________________________________________________________________________ |
fbf811ec | 99 | AliPHOSReconstructioner::AliPHOSReconstructioner(const char* headerFile,const char * branchName,Bool_t toSplit): |
108bc8df | 100 | TTask("AliPHOSReconstructioner","") |
d15a28e7 | 101 | { |
7acf6008 | 102 | // ctor |
103 | ||
104 | fHeaderFileName = headerFile ; | |
fbf811ec | 105 | fToSplit = toSplit ; |
108bc8df | 106 | fSDigitsBranch= branchName; |
fbf811ec | 107 | fSDigitizer = new AliPHOSSDigitizer(fHeaderFileName.Data(),fSDigitsBranch.Data(),toSplit) ; |
7acf6008 | 108 | Add(fSDigitizer) ; |
109 | ||
108bc8df | 110 | fDigitsBranch=branchName ; |
fbf811ec | 111 | fDigitizer = new AliPHOSDigitizer(fHeaderFileName.Data(),fDigitsBranch.Data(),toSplit) ; |
7acf6008 | 112 | Add(fDigitizer) ; |
113 | ||
114 | ||
108bc8df | 115 | fRecPointBranch=branchName ; |
fbf811ec | 116 | fClusterizer = new AliPHOSClusterizerv1(fHeaderFileName.Data(),fRecPointBranch.Data(),toSplit) ; |
7acf6008 | 117 | Add(fClusterizer) ; |
2131115b | 118 | |
b73f246d | 119 | |
108bc8df | 120 | fTSBranch=branchName ; |
fbf811ec | 121 | fTSMaker = new AliPHOSTrackSegmentMakerv1(fHeaderFileName.Data(),fTSBranch.Data(),toSplit) ; |
7acf6008 | 122 | Add(fTSMaker) ; |
123 | ||
124 | ||
108bc8df | 125 | fRecPartBranch=branchName ; |
fbf811ec | 126 | fPID = new AliPHOSPIDv1(fHeaderFileName.Data(),fRecPartBranch.Data(),toSplit) ; |
7acf6008 | 127 | Add(fPID) ; |
128 | ||
129 | fIsInitialized = kTRUE ; | |
130 | ||
131 | } | |
132 | //____________________________________________________________________________ | |
a4e98857 | 133 | void AliPHOSReconstructioner::Exec(Option_t *option) |
134 | { | |
7acf6008 | 135 | //chesk, if the names of branches, which should be made conicide with already |
136 | //existing | |
137 | if(!fIsInitialized) | |
138 | Init() ; | |
139 | ||
21cd0c07 | 140 | TString message(" ") ; |
fbf811ec | 141 | // gAlice->GetEvent(0) ; |
142 | ||
143 | // if(fSDigitizer->IsActive()&& gAlice->TreeS()){ //Will produce SDigits | |
144 | // TBranch * sdigitsBranch = 0; | |
145 | // TBranch * sdigitizerBranch = 0; | |
146 | ||
147 | // TObjArray * branches = gAlice->TreeS()->GetListOfBranches() ; | |
148 | // Int_t ibranch; | |
149 | // Bool_t phosNotFound = kTRUE ; | |
150 | // Bool_t sdigitizerNotFound = kTRUE ; | |
151 | ||
152 | // for(ibranch = 0;ibranch <branches->GetEntries();ibranch++){ | |
153 | // if(phosNotFound){ | |
154 | // sdigitsBranch=(TBranch *) branches->At(ibranch) ; | |
155 | // if(( strcmp("PHOS",sdigitsBranch->GetName())==0 ) && | |
156 | // (fSDigitsBranch.CompareTo(sdigitsBranch->GetTitle())== 0 )) | |
157 | // phosNotFound = kFALSE ; | |
158 | // } | |
159 | // if(sdigitizerNotFound){ | |
160 | // sdigitizerBranch = (TBranch *) branches->At(ibranch) ; | |
161 | // if(( strcmp(sdigitizerBranch->GetName(),"AliPHOSSDigitizer") == 0) && | |
162 | // (fSDigitsBranch.CompareTo(sdigitizerBranch->GetTitle())== 0 ) ) | |
163 | // sdigitizerNotFound = kFALSE ; | |
164 | // } | |
165 | // } | |
7acf6008 | 166 | |
fbf811ec | 167 | // if(!(sdigitizerNotFound && phosNotFound)){ |
21cd0c07 | 168 | // message = " Branches PHOS or AliPHOSSDigitizer with title %s\n" ; |
169 | // message += " already exist in TreeS. ROOT does not allow updating/overwriting.\n" ; | |
170 | // message += " Specify another title for branches or use StartFrom() method\n" ; | |
171 | // Error("Exec", message.Data(), fSDigitsBranch.Data() ) ; | |
fbf811ec | 172 | // //mark all tasks as inactive |
173 | // TIter next(fTasks); | |
174 | // TTask *task; | |
175 | // while((task=(TTask*)next())) | |
176 | // task->SetActive(kFALSE) ; | |
7acf6008 | 177 | |
fbf811ec | 178 | // return ; |
179 | // } | |
180 | // } | |
59cd4405 | 181 | |
fbf811ec | 182 | // if(fDigitizer->IsActive() && gAlice->TreeD()){ //Will produce Digits |
183 | // TBranch * digitsBranch = 0; | |
184 | // TBranch * digitizerBranch = 0; | |
7acf6008 | 185 | |
fbf811ec | 186 | // TObjArray * branches = gAlice->TreeD()->GetListOfBranches() ; |
187 | // Int_t ibranch; | |
188 | // Bool_t phosNotFound = kTRUE ; | |
189 | // Bool_t digitizerNotFound = kTRUE ; | |
7acf6008 | 190 | |
fbf811ec | 191 | // for(ibranch = 0;ibranch <branches->GetEntries();ibranch++){ |
192 | // if(phosNotFound){ | |
193 | // digitsBranch=(TBranch *) branches->At(ibranch) ; | |
194 | // if(( strcmp("PHOS",digitsBranch->GetName())==0 ) && | |
195 | // (fDigitsBranch.CompareTo(digitsBranch->GetTitle())== 0 )) | |
196 | // phosNotFound = kFALSE ; | |
197 | // } | |
198 | // if(digitizerNotFound){ | |
199 | // digitizerBranch = (TBranch *) branches->At(ibranch) ; | |
200 | // if(( strcmp(digitizerBranch->GetName(),"AliPHOSDigitizer") == 0) && | |
201 | // (fDigitsBranch.CompareTo(digitizerBranch->GetTitle())== 0 ) ) | |
202 | // digitizerNotFound = kFALSE ; | |
203 | // } | |
204 | // } | |
2aad621e | 205 | |
fbf811ec | 206 | // if(!(digitizerNotFound && phosNotFound)){ |
21cd0c07 | 207 | // message = " Branches PHOS or AliPHOSDigitizer with title %s\n" ; |
208 | // message += " already exist in TreeD. ROOT does not allow updating/overwriting.\n" ; | |
209 | // message += " Specify another title for branches or use StartFrom() method" ; | |
210 | // Error("Exec", message>Data(), fDigitsBranch.Data() ) ; | |
fbf811ec | 211 | // //mark all tasks as inactive |
212 | // TIter next(fTasks); | |
213 | // TTask *task; | |
214 | // while((task=(TTask*)next())) | |
215 | // task->SetActive(kFALSE) ; | |
7acf6008 | 216 | |
fbf811ec | 217 | // return ; |
218 | // } | |
219 | // } | |
220 | ||
221 | // if(fClusterizer->IsActive() && gAlice->TreeR()){ //Will produce RecPoints | |
222 | // TBranch * emcBranch = 0; | |
223 | // TBranch * cpvBranch = 0; | |
224 | // TBranch * clusterizerBranch = 0; | |
7acf6008 | 225 | |
fbf811ec | 226 | // TObjArray * branches = gAlice->TreeR()->GetListOfBranches() ; |
227 | // Int_t ibranch; | |
228 | // Bool_t emcNotFound = kTRUE ; | |
229 | // Bool_t cpvNotFound = kTRUE ; | |
230 | // Bool_t clusterizerNotFound = kTRUE ; | |
7acf6008 | 231 | |
fbf811ec | 232 | // for(ibranch = 0;ibranch <branches->GetEntries();ibranch++){ |
7acf6008 | 233 | |
fbf811ec | 234 | // if(emcNotFound){ |
235 | // emcBranch=(TBranch *) branches->At(ibranch) ; | |
236 | // if(fRecPointBranch.CompareTo(emcBranch->GetTitle())==0 ) | |
237 | // if( strcmp(emcBranch->GetName(),"PHOSEmcRP") == 0) | |
238 | // emcNotFound = kFALSE ; | |
239 | // } | |
240 | // if(cpvNotFound){ | |
241 | // cpvBranch=(TBranch *) branches->At(ibranch) ; | |
242 | // if(fRecPointBranch.CompareTo(cpvBranch->GetTitle())==0 ) | |
243 | // if( strcmp(cpvBranch->GetName(),"PHOSCpvRP") == 0) | |
244 | // cpvNotFound = kFALSE ; | |
245 | // } | |
246 | // if(clusterizerNotFound){ | |
247 | // clusterizerBranch = (TBranch *) branches->At(ibranch) ; | |
248 | // if( fRecPointBranch.CompareTo(clusterizerBranch->GetTitle()) == 0) | |
249 | // if( strcmp(clusterizerBranch->GetName(),"AliPHOSClusterizer") == 0) | |
250 | // clusterizerNotFound = kFALSE ; | |
251 | // } | |
252 | // } | |
253 | ||
254 | // if(!(clusterizerNotFound && emcNotFound && cpvNotFound)){ | |
21cd0c07 | 255 | // message = " Branches PHOSEmcRP, PHOSCpvRP or AliPHOSClusterizer with title %s\n" ; |
256 | // message += " already exist in TreeR. ROOT does not allow updating/overwriting.\n" ; | |
257 | // message += " Specify another title for branches or use StartFrom() method\n" ; | |
258 | // Error("Exec", message.Data(),fRecPointBranch.Data() ) ; | |
fbf811ec | 259 | // //mark all tasks as inactive |
260 | // TIter next(fTasks); | |
261 | // TTask *task; | |
262 | // while((task=(TTask*)next())) | |
263 | // task->SetActive(kFALSE) ; | |
264 | // return ; | |
265 | // } | |
266 | // } | |
2aad621e | 267 | |
fbf811ec | 268 | // if(fTSMaker->IsActive() && gAlice->TreeR()){ //Produce TrackSegments |
269 | // TBranch * tsMakerBranch = 0; | |
270 | // TBranch * tsBranch = 0; | |
7acf6008 | 271 | |
fbf811ec | 272 | // TObjArray * branches = gAlice->TreeR()->GetListOfBranches() ; |
273 | // Int_t ibranch; | |
274 | // Bool_t tsMakerNotFound = kTRUE ; | |
275 | // Bool_t tsNotFound = kTRUE ; | |
7acf6008 | 276 | |
fbf811ec | 277 | // for(ibranch = 0;(ibranch <branches->GetEntries())&&(tsMakerNotFound||tsNotFound);ibranch++){ |
278 | // if(tsMakerNotFound){ | |
279 | // tsMakerBranch=(TBranch *) branches->At(ibranch) ; | |
280 | // if( fTSBranch.CompareTo(tsMakerBranch->GetTitle())==0 ) | |
281 | // if( strcmp(tsMakerBranch->GetName(),"AliPHOSTrackSegmentMaker") == 0) | |
282 | // tsMakerNotFound = kFALSE ; | |
283 | // } | |
284 | // if(tsNotFound){ | |
285 | // tsBranch=(TBranch *) branches->At(ibranch) ; | |
286 | // if( fTSBranch.CompareTo(tsBranch->GetTitle())==0 ) | |
287 | // if( strcmp(tsBranch->GetName(),"PHOSTS") == 0) | |
288 | // tsNotFound = kFALSE ; | |
289 | // } | |
290 | // } | |
7acf6008 | 291 | |
fbf811ec | 292 | // if(!(tsMakerNotFound &&tsNotFound) ){ |
21cd0c07 | 293 | // message = " Branches PHOSTS or AliPHOSTrackSegmentMaker with title %s\n" ; |
294 | // message += " already exist in TreeR. ROOT does not allow updating/overwriting.\n" ; | |
295 | // message += " Specify another title for branches or use StartFrom() method\n" ; | |
296 | // Error("Exec", message.Data(),fTSBranch.Data() ) ; | |
fbf811ec | 297 | // //mark all tasks as inactive |
298 | // TIter next(fTasks); | |
299 | // TTask *task; | |
300 | // while((task=(TTask*)next())) | |
301 | // task->SetActive(kFALSE) ; | |
302 | // return ; | |
2aad621e | 303 | |
fbf811ec | 304 | // } |
7acf6008 | 305 | |
fbf811ec | 306 | // } |
7acf6008 | 307 | |
fbf811ec | 308 | // if(fPID->IsActive() && gAlice->TreeR()){ //Produce RecParticles |
309 | // TBranch * pidBranch = 0; | |
310 | // TBranch * rpBranch = 0; | |
2aad621e | 311 | |
fbf811ec | 312 | // TObjArray * branches = gAlice->TreeR()->GetListOfBranches() ; |
313 | // Int_t ibranch; | |
314 | // Bool_t pidNotFound = kTRUE ; | |
315 | // Bool_t rpNotFound = kTRUE ; | |
7acf6008 | 316 | |
fbf811ec | 317 | // for(ibranch = 0;(ibranch <branches->GetEntries()) && pidNotFound && rpNotFound ;ibranch++){ |
318 | // if(pidNotFound){ | |
319 | // pidBranch=(TBranch *) branches->At(ibranch) ; | |
320 | // if( (strcmp(fRecPartBranch,pidBranch->GetTitle())==0 ) && | |
321 | // (strcmp(pidBranch->GetName(),"AliPHOSPID") == 0) ) | |
322 | // pidNotFound = kFALSE ; | |
323 | // } | |
324 | // if(rpNotFound){ | |
325 | // rpBranch=(TBranch *) branches->At(ibranch) ; | |
326 | // if( (strcmp(fRecPartBranch,rpBranch->GetTitle())==0 ) && | |
327 | // (strcmp(rpBranch->GetName(),"PHOSRP") == 0) ) | |
328 | // rpNotFound = kFALSE ; | |
329 | // } | |
330 | // } | |
7acf6008 | 331 | |
fbf811ec | 332 | // if(!pidNotFound || !rpNotFound ){ |
21cd0c07 | 333 | // message = " Branches PHOSRP or AliPHOSPID with title %s\n" ; |
334 | // message += " already exist in TreeR. ROOT does not allow updating/overwriting.\n" ; | |
335 | // message += " Specify another title for branches.\n" ; | |
336 | // Error("Exec", message.Data(), fRecPartBranch.Data() ) ; | |
fbf811ec | 337 | // //mark all tasks as inactive |
338 | // TIter next(fTasks); | |
339 | // TTask *task; | |
340 | // while((task=(TTask*)next())) | |
341 | // task->SetActive(kFALSE) ; | |
342 | // return ; | |
343 | // } | |
2aad621e | 344 | |
fbf811ec | 345 | // } |
7acf6008 | 346 | } |
347 | //____________________________________________________________________________ | |
348 | void AliPHOSReconstructioner::Init() | |
349 | { | |
a4e98857 | 350 | // initiliaze Reconstructioner if necessary: we can not do this in default constructor |
7acf6008 | 351 | |
352 | if(!fIsInitialized){ | |
353 | // Initialisation | |
354 | ||
81b0fcd1 | 355 | fSDigitsBranch="Default" ; |
fbf811ec | 356 | fSDigitizer = new AliPHOSSDigitizer(fHeaderFileName.Data(),fSDigitsBranch.Data(),fToSplit) ; |
7acf6008 | 357 | Add(fSDigitizer) ; |
358 | ||
81b0fcd1 | 359 | fDigitsBranch="Default" ; |
fbf811ec | 360 | fDigitizer = new AliPHOSDigitizer(fHeaderFileName.Data(),fDigitsBranch.Data(),fToSplit) ; |
7acf6008 | 361 | Add(fDigitizer) ; |
362 | ||
81b0fcd1 | 363 | fRecPointBranch="Default" ; |
fbf811ec | 364 | fClusterizer = new AliPHOSClusterizerv1(fHeaderFileName.Data(),fRecPointBranch.Data(),fToSplit) ; |
7acf6008 | 365 | Add(fClusterizer) ; |
366 | ||
81b0fcd1 | 367 | fTSBranch="Default" ; |
fbf811ec | 368 | fTSMaker = new AliPHOSTrackSegmentMakerv1(fHeaderFileName.Data(),fTSBranch.Data(),fToSplit) ; |
7acf6008 | 369 | Add(fTSMaker) ; |
370 | ||
371 | ||
81b0fcd1 | 372 | fRecPartBranch="Default" ; |
fbf811ec | 373 | fPID = new AliPHOSPIDv1(fHeaderFileName.Data(),fRecPartBranch.Data(),fToSplit) ; |
7acf6008 | 374 | Add(fPID) ; |
375 | ||
376 | fIsInitialized = kTRUE ; | |
377 | } | |
378 | } | |
379 | //____________________________________________________________________________ | |
380 | AliPHOSReconstructioner::~AliPHOSReconstructioner() | |
381 | { | |
baef0810 | 382 | // Delete data members if any |
383 | ||
81b0fcd1 | 384 | // if(fSDigitizer) |
385 | // delete fSDigitizer ; | |
83974468 | 386 | |
81b0fcd1 | 387 | // if(fDigitizer) |
388 | // delete fDigitizer ; | |
7acf6008 | 389 | |
81b0fcd1 | 390 | // if(fClusterizer) |
391 | // delete fClusterizer ; | |
7acf6008 | 392 | |
81b0fcd1 | 393 | // if(fTSMaker) |
394 | // delete fTSMaker ; | |
7acf6008 | 395 | |
81b0fcd1 | 396 | // if(fPID) |
397 | // delete fPID ; | |
2bd5457f | 398 | |
399 | // TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data()) ; | |
400 | ||
401 | // if(file != 0) { | |
402 | // file->Close(); | |
403 | // delete file; | |
404 | // printf("File %s is closed\n",fHeaderFileName.Data()); | |
405 | // } | |
406 | ||
7acf6008 | 407 | } |
fbf811ec | 408 | // //____________________________________________________________________________ |
409 | // void AliPHOSReconstructioner::SetBranchTitle(const char* branch, const char * title) | |
410 | // { | |
411 | // //Diverge correcpoinding branch to the file "title" | |
412 | ||
413 | // if(strcmp(branch,"SDigits") == 0){ | |
414 | // fSDigitizer->SetSDigitsBranch(title) ; | |
415 | // fDigitizer->SetSDigitsBranch(title) ; | |
416 | // fSDigitsBranch = title ; | |
417 | // return ; | |
418 | // } | |
7acf6008 | 419 | |
fbf811ec | 420 | // if(strcmp(branch,"Digits") == 0){ |
421 | // fDigitizer->SetName(title) ; | |
422 | // fClusterizer->SetName(title) ; | |
423 | // fDigitsBranch = title ; | |
424 | // return ; | |
425 | // } | |
426 | ||
427 | // if(strcmp(branch,"RecPoints") == 0){ | |
428 | // fClusterizer->SetRecPointsBranch(title) ; | |
429 | // fTSMaker->SetRecPointsBranch(title) ; | |
430 | // fRecPointBranch = title ; | |
431 | // return ; | |
432 | // } | |
433 | ||
434 | // if(strcmp(branch,"TrackSegments") == 0){ | |
435 | // fTSMaker->SetTrackSegmentsBranch(title) ; | |
436 | // fPID->SetTrackSegmentsBranch(title) ; | |
437 | // fTSBranch = title ; | |
438 | // return ; | |
439 | // } | |
440 | ||
441 | // if(strcmp(branch,"RecParticles") == 0){ | |
442 | // fPID->SetRecParticlesBranch(title) ; | |
443 | // fRecPartBranch = title ; | |
444 | // return ; | |
445 | // } | |
446 | ||
21cd0c07 | 447 | // |
448 | // TString message ; | |
449 | // message = "There is no branch %s !\n" ; | |
450 | // message += "Available branches `SDigits', `Digits', `RecPoints', `TrackSegments' and `RecParticles'\n" ; | |
451 | // Warning("SetBranchTitle", message.Data(), branch ) ; | |
fbf811ec | 452 | // } |
453 | // //____________________________________________________________________________ | |
454 | // void AliPHOSReconstructioner::StartFrom(char * module,char* title) | |
455 | // { | |
456 | // // in the next pass of reconstruction (call ExecuteTask()) reconstruction will | |
457 | // // start from the module "module", and in the case of non zero title all | |
458 | // // pruduced branches will have title "title". The following "modules" are recognized | |
459 | // // "SD" - AliPHOSSDigitizer, | |
460 | // // "D" - AliPHOSDigitizer | |
461 | // // "C" - AliPHOSClusterizer | |
462 | // // "TS" - AliPHOSTrackSegmentMaker | |
463 | // // "RP" - AliPHOSPID | |
464 | ||
465 | // if(!fIsInitialized) | |
466 | // Init() ; | |
467 | ||
468 | // char * moduleName = new char[30]; | |
469 | // if(strstr(module,"SD")) | |
470 | // sprintf(moduleName,"AliPHOSSDigitizer") ; | |
471 | // else | |
472 | // if(strstr(module,"D") ) | |
473 | // sprintf(moduleName,"AliPHOSDigitizer") ; | |
474 | // else | |
475 | // if(strstr(module,"C") || strstr(module,"RecPoint") ) | |
476 | // sprintf(moduleName,"AliPHOSClusterizer") ; | |
477 | // else | |
478 | // if(strstr(module,"TS") || strstr(module,"Track") ) | |
479 | // sprintf(moduleName,"AliPHOSTrackSegmentMaker") ; | |
480 | // else | |
481 | // if(strstr(module,"PID") || strstr(module,"Particle") || strstr(module,"RP") ) | |
482 | // sprintf(moduleName,"AliPHOSPID") ; | |
483 | // else{ | |
21cd0c07 | 484 | // Warning("StartFrom", "Do not know such a module / Rec Object ") ; |
fbf811ec | 485 | // return ; |
486 | // } | |
9a6ec61a | 487 | |
fbf811ec | 488 | // TIter next(fTasks); |
489 | // TTask *task; | |
490 | // Bool_t active = kFALSE ; | |
491 | // while((task=(TTask*)next())){ | |
492 | // if (strcmp(moduleName,task->GetName())==0) | |
493 | // active = kTRUE; | |
494 | // task->SetActive(active) ; | |
495 | // if(active && title){ // set title to branches | |
496 | // switch(strlen(task->GetName()) ) { | |
497 | // case 17: // "AliPHOSSDigitizer" | |
498 | // fSDigitizer->SetSDigitsBranch(title) ; | |
499 | // fDigitizer->SetSDigitsBranch(title) ; | |
500 | // fSDigitsBranch = title ; | |
501 | // break ; | |
502 | // case 16: //"AliPHOSDigitizer" | |
503 | // fDigitizer->SetName(title) ; | |
504 | // fClusterizer->SetName(title) ; | |
505 | // fDigitsBranch = title ; | |
506 | // break ; | |
507 | // case 18: //"AliPHOSClusterizer" | |
508 | // fClusterizer->SetRecPointsBranch(title) ; | |
509 | // fTSMaker->SetRecPointsBranch(title) ; | |
510 | // fRecPointBranch = title ; | |
511 | // break ; | |
512 | // case 24: //"AliPHOSTrackSegmentMaker" | |
513 | // fTSMaker->SetTrackSegmentsBranch(title) ; | |
514 | // fPID->SetTrackSegmentsBranch(title) ; | |
515 | // fTSBranch = title ; | |
516 | // break ; | |
517 | // case 10: // "AliPHOSPID" | |
518 | // fPID->SetRecParticlesBranch(title) ; | |
519 | // fRecPartBranch = title ; | |
520 | // break ; | |
521 | // } | |
9a6ec61a | 522 | |
fbf811ec | 523 | // } |
524 | // } | |
9a6ec61a | 525 | |
fbf811ec | 526 | // delete [] moduleName; |
527 | // } | |
7acf6008 | 528 | //____________________________________________________________________________ |
baef0810 | 529 | |
530 | void AliPHOSReconstructioner::Print(Option_t * option)const { | |
531 | // Print reconstructioner data | |
532 | ||
21cd0c07 | 533 | TString message ; |
534 | message = "-----------------AliPHOSReconstructioner---------------\n" ; | |
535 | message += " Reconstruction of the header file %s\n" ; | |
536 | message += " with the following modules:\n" ; | |
7acf6008 | 537 | |
538 | if(fSDigitizer->IsActive()){ | |
21cd0c07 | 539 | message += " (+) %s to branch %s\n" ; |
7acf6008 | 540 | } |
541 | if(fDigitizer->IsActive()){ | |
21cd0c07 | 542 | message += " (+) %s to branch %s\n" ; |
7acf6008 | 543 | } |
544 | ||
545 | if(fClusterizer->IsActive()){ | |
21cd0c07 | 546 | message += " (+) %s to branch %s\n" ; |
7acf6008 | 547 | } |
548 | ||
549 | if(fTSMaker->IsActive()){ | |
21cd0c07 | 550 | message += " (+) %s to branch %s\n" ; |
7acf6008 | 551 | } |
552 | ||
7acf6008 | 553 | if(fPID->IsActive()){ |
21cd0c07 | 554 | message += " (+) %s to branch %s\n" ; |
7acf6008 | 555 | } |
21cd0c07 | 556 | Info("Print", message.Data(), |
557 | fHeaderFileName.Data(), | |
558 | fSDigitizer->GetName(), fSDigitsBranch.Data(), | |
559 | fDigitizer->GetName(), fDigitsBranch.Data() , | |
560 | fClusterizer->GetName(), fRecPointBranch.Data(), | |
561 | fTSMaker->GetName(), fTSBranch.Data() , | |
562 | fPID->GetName(), fRecPartBranch.Data() ) ; | |
51926850 | 563 | } |