]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ESDCheck/AliPMDQATask.cxx
Updates on Lambda_c decays (S. Masciocchi)
[u/mrichter/AliRoot.git] / ESDCheck / AliPMDQATask.cxx
CommitLineData
1dfe075f 1
2/**************************************************************************
3 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
7 * *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
0b28fd57 16
17/* $Id$ */
18
1dfe075f 19//_________________________________________________________________________
20// An analysis task to check the PMD data in simulated data
21//
22//*-- Yves Schutz
23//////////////////////////////////////////////////////////////////////////////
24
0b28fd57 25#include <TCanvas.h>
1dfe075f 26#include <TChain.h>
0b28fd57 27#include <TFile.h>
1dfe075f 28#include <TH1F.h>
29#include <TH2F.h>
1dfe075f 30#include <TLine.h>
0b28fd57 31#include <TROOT.h>
1dfe075f 32#include <TStyle.h>
1dfe075f 33
34#include "AliPMDQATask.h"
35#include "AliPMDUtility.h"
36#include "AliESD.h"
37#include "AliLog.h"
38
39//______________________________________________________________________________
40AliPMDQATask::AliPMDQATask(const char *name) :
41 AliAnalysisTask(name,""),
42 fChain(0),
43 fESD(0),
44 fhPMDP1(0),
45 fhPMDC2(0),
46 fhPMDP2(0),
47 fhPMDC3(0),
48 fhPMDP3(0),
49 fhPMDP4(0),
50 fhPMDC5(0),
51 fhPMDP5(0),
52 fhPMDCP0(0),
53 fhPMDCP1(0),
54 fhPMDCP2(0),
55 fhPMDCP3(0),
56 fhPMDCP4(0),
57 fhPMDSM1(0),
58 fhPMDSM2(0),
59 fhPMDSM3(0),
60 fhPMDSM4(0),
61 fhPMDSM5(0),
62 fhPMDSM6(0),
63 fhPMDSM7(0),
64 fhPMDSM8(0),
65 fhPMDSM9(0),
66 fhPMDSM10(0),
67 fhPMDSM11(0),
68 fhPMDSM12(0),
69 fhPMDSM13(0),
70 fhPMDSM14(0),
71 fhPMDSM15(0),
72 fhPMDSM16(0),
73 fhPMDSM17(0),
74 fhPMDSM18(0),
75 fhPMDSM19(0),
76 fhPMDSM20(0),
77 fhPMDSM21(0),
78 fhPMDSM22(0),
79 fhPMDSM23(0),
80 fhPMDSM24(0),
81 fhPMDSM (0)
82{
83 // Constructor.
84 // Input slot #0 works with an Ntuple
85 DefineInput(0, TChain::Class());
86 // Output slot #0 writes into a TH1 container
87 DefineOutput(0, TObjArray::Class()) ;
88}
89
90//______________________________________________________________________________
91AliPMDQATask::~AliPMDQATask()
92{
93 // dtor
94 fOutputContainer->Clear() ;
95 delete fOutputContainer ;
96
97 delete fhPMDP1 ;
98 delete fhPMDC2 ;
99 delete fhPMDP2 ;
100 delete fhPMDC3 ;
101 delete fhPMDP3 ;
102 delete fhPMDP4 ;
103 delete fhPMDC5 ;
104 delete fhPMDP5 ;
105 delete fhPMDCP0 ;
106 delete fhPMDCP1 ;
107 delete fhPMDCP2 ;
108 delete fhPMDCP3 ;
109 delete fhPMDCP4 ;
110 delete fhPMDSM1 ;
111 delete fhPMDSM2 ;
112 delete fhPMDSM3 ;
113 delete fhPMDSM4 ;
114 delete fhPMDSM5 ;
115 delete fhPMDSM6 ;
116 delete fhPMDSM7 ;
117 delete fhPMDSM8 ;
118 delete fhPMDSM9 ;
119 delete fhPMDSM10 ;
120 delete fhPMDSM11 ;
121 delete fhPMDSM12 ;
122 delete fhPMDSM13 ;
123 delete fhPMDSM14 ;
124 delete fhPMDSM15 ;
125 delete fhPMDSM16 ;
126 delete fhPMDSM17 ;
127 delete fhPMDSM18 ;
128 delete fhPMDSM19 ;
129 delete fhPMDSM20 ;
130 delete fhPMDSM21 ;
131 delete fhPMDSM22 ;
132 delete fhPMDSM23 ;
133 delete fhPMDSM24 ;
134 delete fhPMDSM ;
135
136}
137
138//______________________________________________________________________________
c52c2132 139void AliPMDQATask::ConnectInputData(const Option_t*)
1dfe075f 140{
141 // Initialisation of branch container and histograms
142
143 AliInfo(Form("*** Initialization of %s", GetName())) ;
144
145 // Get input data
146 fChain = dynamic_cast<TChain *>(GetInputData(0)) ;
147 if (!fChain) {
148 AliError(Form("Input 0 for %s not found\n", GetName()));
149 return ;
150 }
151
c52c2132 152 // One should first check if the branch address was taken by some other task
153 char ** address = (char **)GetBranchAddress(0, "ESD");
154 if (address) {
155 fESD = (AliESD*)(*address);
156 } else {
157 fESD = new AliESD();
158 SetBranchAddress(0, "ESD", &fESD);
1dfe075f 159 }
c52c2132 160}
161
162//________________________________________________________________________
163void AliPMDQATask::CreateOutputObjects()
164{
1dfe075f 165 // create histograms
166
1e20f195 167 OpenFile(0) ;
168
1dfe075f 169 fhPMDP1 = new TH2F("fhPMDP1","XY of Clusters",100,-100.,100.,100,-100.,100.);
170 fhPMDC2 = new TH1F("fhPMDC2","CPV PHI",200,-1,9);
171 fhPMDP2 = new TH1F("fhPMDP2","PRE PHI",200,-1,9);
172 fhPMDC3 = new TH1F("fhPMDC3","CPV Clus",30,0.,500.);
173 fhPMDP3 = new TH1F("fhPMDP3","PRE N-gammalike",20,0.,500.);
174 fhPMDP4 = new TH1F("fhPMDP4","PRE EDEP",30,0.,1000.);
175 fhPMDC5 = new TH1F("fhPMDC5","CPV n-cell",20,0.,100.);
176 fhPMDP5 = new TH1F("fhPMDP5","PMD n-cell",20,0.,100.);
177 fhPMDCP0 = new TH2F("fhPMDCP0","PRE CLUS Quad.1 vs 2",150,0.,300.,150,0.,300.);
178 fhPMDCP1 = new TH2F("fhPMDCP1","PRE CLUS Quad.3 vs 4",150,0.,300.,150,0.,300.);
179 fhPMDCP2 = new TH2F("fhPMDCP2","PRE EDEP Quad.3 vs 4",50,0.,300.,50,0.,300.);
180 fhPMDCP3 = new TH2F("fhPMDCP3","PRE EDEP vs Tot Clus ",10,0.,1000.,10,0.,300.);
181 fhPMDCP4 = new TH2F("fhPMDCP4","PRE Clus vs CPV Clus ",150,0.,200.,150,0.,200.);
182
183 fhPMDSM1 = new TH2F("fhPMDSM1","PRE Cluster XY",200,-100,100,200,-100,100);
184 fhPMDSM2 = new TH2F("fhPMDSM2","",999,-100.0,100.0,999,-100.0,100.0);
185 fhPMDSM3 = new TH2F("fhPMDSM3","",999,-100.0,100.0,999,-100.0,100.0);
186 fhPMDSM4 = new TH2F("fhPMDSM4","",999,-100.0,100.0,999,-100.0,100.0);
187 fhPMDSM5 = new TH2F("fhPMDSM5","",999,-100.0,100.0,999,-100.0,100.0);
188 fhPMDSM6 = new TH2F("fhPMDSM6","",999,-100.0,100.0,999,-100.0,100.0);
189 fhPMDSM7 = new TH2F("fhPMDSM7","",999,-100.0,100.0,999,-100.0,100.0);
190 fhPMDSM8 = new TH2F("fhPMDSM8","",999,-100.0,100.0,999,-100.0,100.0);
191 fhPMDSM9 = new TH2F("fhPMDSM9","",999,-100.0,100.0,999,-100.0,100.0);
192 fhPMDSM10 = new TH2F("fhPMDSM10","",999,-100.0,100.0,999,-100.0,100.0);
193 fhPMDSM11 = new TH2F("fhPMDSM11","",999,-100.0,100.0,999,-100.0,100.0);
194 fhPMDSM12 = new TH2F("fhPMDSM12","",999,-100.0,100.0,999,-100.0,100.0);
195 fhPMDSM13 = new TH2F("fhPMDSM13","",999,-100.0,100.0,999,-100.0,100.0);
196 fhPMDSM14 = new TH2F("fhPMDSM14","",999,-100.0,100.0,999,-100.0,100.0);
197 fhPMDSM15 = new TH2F("fhPMDSM15","",999,-100.0,100.0,999,-100.0,100.0);
198 fhPMDSM16 = new TH2F("fhPMDSM16","",999,-100.0,100.0,999,-100.0,100.0);
199 fhPMDSM17 = new TH2F("fhPMDSM17","",999,-100.0,100.0,999,-100.0,100.0);
200 fhPMDSM18 = new TH2F("fhPMDSM18","",999,-100.0,100.0,999,-100.0,100.0);
201 fhPMDSM19 = new TH2F("fhPMDSM19","",999,-100.0,100.0,999,-100.0,100.0);
202 fhPMDSM20 = new TH2F("fhPMDSM20","",999,-100.0,100.0,999,-100.0,100.0);
203 fhPMDSM21 = new TH2F("fhPMDSM21","",999,-100.0,100.0,999,-100.0,100.0);
204 fhPMDSM22 = new TH2F("fhPMDSM22","",999,-100.0,100.0,999,-100.0,100.0);
205 fhPMDSM23 = new TH2F("fhPMDSM23","",999,-100.0,100.0,999,-100.0,100.0);
206 fhPMDSM24 = new TH2F("fhPMDSM24","",999,-100.0,100.0,999,-100.0,100.0);
207 fhPMDSM = new TH1F("fhPMDSM","Plot of all 24 Super Modules",24,0,24);
208
209 // create output container
210
211 fOutputContainer = new TObjArray(38) ;
212 fOutputContainer->SetName("PMD") ;
213
214 fOutputContainer->AddAt(fhPMDP1, 0 );
215 fOutputContainer->AddAt(fhPMDC2, 1 );
216 fOutputContainer->AddAt(fhPMDP2, 2 );
217 fOutputContainer->AddAt(fhPMDC3, 3 );
218 fOutputContainer->AddAt(fhPMDP3, 4 );
219 fOutputContainer->AddAt(fhPMDP4, 5 );
220 fOutputContainer->AddAt(fhPMDC5, 6 );
221 fOutputContainer->AddAt(fhPMDP5, 7 );
222 fOutputContainer->AddAt(fhPMDCP0, 8 );
223 fOutputContainer->AddAt(fhPMDCP1, 9);
224 fOutputContainer->AddAt(fhPMDCP2, 10 );
225 fOutputContainer->AddAt(fhPMDCP3, 11 );
226 fOutputContainer->AddAt(fhPMDCP4, 12 );
227
228 fOutputContainer->AddAt(fhPMDSM1, 13 );
229 fOutputContainer->AddAt(fhPMDSM2, 14 );
230 fOutputContainer->AddAt(fhPMDSM3, 15 );
231 fOutputContainer->AddAt(fhPMDSM4, 16 );
232 fOutputContainer->AddAt(fhPMDSM5, 17 );
233 fOutputContainer->AddAt(fhPMDSM6, 18 );
234 fOutputContainer->AddAt(fhPMDSM7, 19 );
235 fOutputContainer->AddAt(fhPMDSM8, 20 );
236 fOutputContainer->AddAt(fhPMDSM9, 21 );
237 fOutputContainer->AddAt(fhPMDSM10, 22 );
238 fOutputContainer->AddAt(fhPMDSM11, 23 );
239 fOutputContainer->AddAt(fhPMDSM12, 24 );
240 fOutputContainer->AddAt(fhPMDSM13, 25 );
241 fOutputContainer->AddAt(fhPMDSM14, 26 );
242 fOutputContainer->AddAt(fhPMDSM15, 27 );
243 fOutputContainer->AddAt(fhPMDSM16, 28 );
244 fOutputContainer->AddAt(fhPMDSM17, 29 );
245 fOutputContainer->AddAt(fhPMDSM18, 30 );
246 fOutputContainer->AddAt(fhPMDSM19, 31 );
247 fOutputContainer->AddAt(fhPMDSM20, 32 );
248 fOutputContainer->AddAt(fhPMDSM21, 33 );
249 fOutputContainer->AddAt(fhPMDSM22, 34 );
250 fOutputContainer->AddAt(fhPMDSM23, 35 );
251 fOutputContainer->AddAt(fhPMDSM24, 36 );
252 fOutputContainer->AddAt(fhPMDSM, 37 );
253}
254
255//______________________________________________________________________________
256void AliPMDQATask::Exec(Option_t *)
257{
258 // Processing of one event
259
260 Long64_t entry = fChain->GetReadEntry() ;
261
262 if (!fESD) {
263 AliError("fESD is not connected to the input!") ;
264 return ;
265 }
266
267 if ( !((entry-1)%100) )
268 AliInfo(Form("%s ----> Processing event # %lld", (dynamic_cast<TChain *>(fChain))->GetFile()->GetName(), entry)) ;
269
270 // ************************ PMD
271
272 AliPMDUtility *cc = new AliPMDUtility();
273
274 Int_t smn;
275 Int_t n=0;
276 Float_t totCPVClus ;
277 Float_t totPREClus ;
278 Float_t totPREEdep ;
279 Float_t totCPVCell ;
280 Float_t totPRECell ;
281 Float_t preCluQUAD[4] ;
282 Float_t cpvCluQUAD[4] ;
283 Float_t preADCQUAD[4] ;
284 Float_t cpvADCQUAD[4] ;
285 Float_t preCelQUAD[4] ;
286 Float_t cpvCelQUAD[4] ;
287
288 Int_t npmdCl = fESD->GetNumberOfPmdTracks();
289
290 // ****** The loop over PMD clusters
291
292 for (Int_t kk = 0; kk < 4 ; kk++) {
293 cpvCluQUAD[kk] = 0.0 ;
294 preCluQUAD[kk] = 0.0 ;
295 cpvCelQUAD[kk] = 0.0 ;
296 preCelQUAD[kk] = 0.0 ;
297 preADCQUAD[kk] = 0.0 ;
298 }
299
300 while (npmdCl--) {
301
302 AliESDPmdTrack * pmdtr = fESD->GetPmdTrack(npmdCl);
303 Int_t det = pmdtr->GetDetector();
304 Float_t clsX = pmdtr->GetClusterX();
305 Float_t clsY = pmdtr->GetClusterY();
306 Float_t clsZ = pmdtr->GetClusterZ();
307 Float_t ncell = pmdtr->GetClusterCells();
308 Float_t adc = pmdtr->GetClusterADC();
309
310 cc->SetXYZ(clsX,clsY,clsZ);
311 cc->CalculateEta();
312 cc->CalculatePhi();
313 Float_t eta = cc->GetEta();
314 Float_t phi = cc->GetPhi();
315
316 // Calculating S.Module Number from Cluster .
317
318 CalculateSMN(clsX, clsY, smn);
319 if( det == 1)
320 {
321 if(smn >= 0 && smn <= 5) {
322 ++cpvCluQUAD[0] ;
323 cpvADCQUAD[0] =+ adc ;
324 cpvCelQUAD[0] =+ ncell ;
325 }
326 if(smn >= 6 && smn <=11) {
327 ++cpvCluQUAD[1] ;
328 cpvADCQUAD[1] =+ adc ;
329 cpvCelQUAD[1] =+ ncell ;
330 }
331 if(smn >=12 && smn <=17) {
332 ++cpvCluQUAD[2] ;
333 cpvADCQUAD[2] =+ adc ;
334 cpvCelQUAD[2] =+ ncell ;
335 }
336 if(smn >=18 && smn <=23) {
337 ++cpvCluQUAD[3] ;
338 cpvADCQUAD[3] =+ adc ;
339 cpvCelQUAD[3] =+ ncell ;
340 }
341
342 if(eta >= 2.3 && eta <= 3.5)
343 {
344 fhPMDC2->Fill(phi);
345 }
346 }
347 if( det == 0)
348 {
349 if(smn >= 0 && smn <= 5) {
350 ++preCluQUAD[0] ;
351 preADCQUAD[0] =+ adc ;
352 preCelQUAD[0] =+ ncell ;
353 }
354 if(smn >= 6 && smn <=11) {
355 ++preCluQUAD[1] ;
356 preADCQUAD[1] =+ adc ;
357 preCelQUAD[1] =+ ncell ;
358 }
359 if(smn >=12 && smn <=17) {
360 ++preCluQUAD[2] ;
361 preADCQUAD[2] =+ adc ;
362 preCelQUAD[2] =+ ncell ;
363 }
364 if(smn >=18 && smn <=23) {
365 ++preCluQUAD[3] ;
366 preADCQUAD[3] =+ adc ;
367 preCelQUAD[3] =+ ncell ;
368 }
369 if ( n <= 100 ) {
370 fhPMDSM->Fill(smn);
371 if(smn == 0) fhPMDSM1->Fill(-clsX,clsY);
372 if(smn == 0) fhPMDSM1->Fill(-clsX,clsY);
373 if(smn == 1) fhPMDSM2->Fill(-clsX,clsY);
374 if(smn == 2) fhPMDSM3->Fill(-clsX,clsY);
375 if(smn == 3) fhPMDSM4->Fill(-clsX,clsY);
376 if(smn == 4) fhPMDSM5->Fill(-clsX,clsY);
377 if(smn == 5) fhPMDSM6->Fill(-clsX,clsY);
378 if(smn == 6) fhPMDSM7->Fill(-clsX,clsY);
379 if(smn == 7) fhPMDSM8->Fill(-clsX,clsY);
380 if(smn == 8) fhPMDSM9->Fill(-clsX,clsY);
381 if(smn == 9) fhPMDSM10->Fill(-clsX,clsY);
382 if(smn ==10) fhPMDSM11->Fill(-clsX,clsY);
383 if(smn ==11) fhPMDSM12->Fill(-clsX,clsY);
384 if(smn ==12) fhPMDSM13->Fill(-clsX,clsY);
385 if(smn ==13) fhPMDSM14->Fill(-clsX,clsY);
386 if(smn ==14) fhPMDSM15->Fill(-clsX,clsY);
387 if(smn ==15) fhPMDSM16->Fill(-clsX,clsY);
388 if(smn ==16) fhPMDSM17->Fill(-clsX,clsY);
389 if(smn ==17) fhPMDSM18->Fill(-clsX,clsY);
390 if(smn ==18) fhPMDSM19->Fill(-clsX,clsY);
391 if(smn ==19) fhPMDSM20->Fill(-clsX,clsY);
392 if(smn ==20) fhPMDSM21->Fill(-clsX,clsY);
393 if(smn ==21) fhPMDSM22->Fill(-clsX,clsY);
394 if(smn ==22) fhPMDSM23->Fill(-clsX,clsY);
395 if(smn ==23) fhPMDSM24->Fill(-clsX,clsY);
396 }
397 if(eta >= 2.3 && eta <= 3.5)
398 {
399 fhPMDP2->Fill(phi);
400 }
401 fhPMDP1->Fill(clsX,clsY);
402 }
403 }
404 for (Int_t k = 0 ; k < 4 ; k++) {
405 totCPVClus =+ cpvCluQUAD [k] ;
406 totPREClus =+ preCluQUAD [k] ;
407 totCPVCell =+ cpvCelQUAD [k] ;
408 totPRECell =+ preCelQUAD [k] ;
409 totPREEdep =+ preADCQUAD [k] ;
410 }
411 Float_t totCPVpreClus = totPREClus + totCPVClus ;
412
413 // if(eta >= 2.3 && eta <= 3.5) {
414 fhPMDC3->Fill(totCPVClus);
415 fhPMDP3->Fill(totPREClus);
416 fhPMDP4->Fill(totPREEdep);
417 fhPMDP5->Fill(totPRECell);
418 fhPMDCP0->Fill(preCluQUAD[0],preCluQUAD[1]);
419 fhPMDCP1->Fill(preCluQUAD[2],preCluQUAD[3]);
420 fhPMDCP2->Fill(preADCQUAD[2],preADCQUAD[3]);
421 fhPMDCP3->Fill(totPREEdep,totCPVpreClus);
422 fhPMDCP4->Fill(totPREClus,totCPVClus);
423 // }
424 totCPVClus = 0.0;
425 totPREClus = 0.0;
426 totCPVCell = 0.0;
427 totPRECell = 0.0;
428 totPREEdep = 0.0;
429
430 PostData(0, fOutputContainer);
431}
432
433//______________________________________________________________________________
434void AliPMDQATask::Terminate(Option_t *)
435{
436 // Processing when the event loop is ended
c52c2132 437 fOutputContainer = (TObjArray*)GetOutputData(0);
1dfe075f 438
c52c2132 439 fhPMDP1 = (TH2F*)fOutputContainer->At(0);
440 fhPMDC2 = (TH1F*)fOutputContainer->At(1);
441 fhPMDP2 = (TH1F*)fOutputContainer->At(2);
442 fhPMDC3 = (TH1F*)fOutputContainer->At(3);
443 fhPMDP3 = (TH1F*)fOutputContainer->At(4);
444 fhPMDP4 = (TH1F*)fOutputContainer->At(5);
445 fhPMDC5 = (TH1F*)fOutputContainer->At(6);
446 fhPMDP5 = (TH1F*)fOutputContainer->At(7);
447 fhPMDCP0 = (TH2F*)fOutputContainer->At(8);
448 fhPMDCP1 = (TH2F*)fOutputContainer->At(9);
449 fhPMDCP2 = (TH2F*)fOutputContainer->At(10);
450 fhPMDCP3 = (TH2F*)fOutputContainer->At(11);
451 fhPMDCP4 = (TH2F*)fOutputContainer->At(12);
452
453 fhPMDSM1 = (TH2F*)fOutputContainer->At(13);
454 fhPMDSM2 = (TH2F*)fOutputContainer->At(14);
455 fhPMDSM3 = (TH2F*)fOutputContainer->At(15);
456 fhPMDSM4 = (TH2F*)fOutputContainer->At(16);
457 fhPMDSM5 = (TH2F*)fOutputContainer->At(17);
458 fhPMDSM6 = (TH2F*)fOutputContainer->At(18);
459 fhPMDSM7 = (TH2F*)fOutputContainer->At(19);
460 fhPMDSM8 = (TH2F*)fOutputContainer->At(20);
461 fhPMDSM9 = (TH2F*)fOutputContainer->At(21);
462 fhPMDSM10 = (TH2F*)fOutputContainer->At(22);
463 fhPMDSM11 = (TH2F*)fOutputContainer->At(23);
464 fhPMDSM12 = (TH2F*)fOutputContainer->At(24);
465 fhPMDSM13 = (TH2F*)fOutputContainer->At(25);
466 fhPMDSM14 = (TH2F*)fOutputContainer->At(26);
467 fhPMDSM15 = (TH2F*)fOutputContainer->At(27);
468 fhPMDSM16 = (TH2F*)fOutputContainer->At(28);
469 fhPMDSM17 = (TH2F*)fOutputContainer->At(29);
470 fhPMDSM18 = (TH2F*)fOutputContainer->At(30);
471 fhPMDSM19 = (TH2F*)fOutputContainer->At(31);
472 fhPMDSM20 = (TH2F*)fOutputContainer->At(32);
473 fhPMDSM21 = (TH2F*)fOutputContainer->At(33);
474 fhPMDSM22 = (TH2F*)fOutputContainer->At(34);
475 fhPMDSM23 = (TH2F*)fOutputContainer->At(35);
476 fhPMDSM24 = (TH2F*)fOutputContainer->At(36);
477 fhPMDSM = (TH1F*)fOutputContainer->At(37);
478
2704006a 479 Bool_t problem = kFALSE ;
84eb42a1 480 AliInfo(Form(" *** %s Report:", GetName())) ;
481
1dfe075f 482 gStyle->SetOptStat(110000);
483 gStyle->SetOptFit(1);
484
485 TCanvas *cPMD0 = new TCanvas("cPMD0","PMD ESD Test #1", 10,10, 600, 600);
486 cPMD0->Range(-100, -100,100 ,100 );
487 fhPMDSM1->SetMarkerColor(2);
488 fhPMDSM1->Draw();
489 fhPMDSM1->GetXaxis()->SetTitle("Cluster X");
490 fhPMDSM1->GetYaxis()->SetTitle("Cluster Y");
491 fhPMDSM2->SetMarkerColor(2);
492 fhPMDSM2->Draw("same");
493 fhPMDSM3->SetMarkerColor(2);
494 fhPMDSM3->Draw("same");
495 fhPMDSM4->SetMarkerColor(2);
496 fhPMDSM4->Draw("same");
497 fhPMDSM5->SetMarkerColor(2);
498 fhPMDSM5->Draw("same");
499 fhPMDSM6->SetMarkerColor(2);
500 fhPMDSM6->Draw("same");
501 fhPMDSM7->SetMarkerColor(4);
502 fhPMDSM7->Draw("same");
503 fhPMDSM8->SetMarkerColor(4);
504 fhPMDSM8->Draw("same");
505 fhPMDSM9->SetMarkerColor(4);
506 fhPMDSM9->Draw("same");
507 fhPMDSM10->SetMarkerColor(4);
508 fhPMDSM10->Draw("same");
509 fhPMDSM11->SetMarkerColor(4);
510 fhPMDSM11->Draw("same");
511 fhPMDSM12->SetMarkerColor(4);
512 fhPMDSM12->Draw("same");
513 fhPMDSM13->SetMarkerColor(6);
514 fhPMDSM13->Draw("same");
515 fhPMDSM14->SetMarkerColor(6);
516 fhPMDSM14->Draw("same");
517 fhPMDSM15->SetMarkerColor(6);
518 fhPMDSM15->Draw("same");
519 fhPMDSM16->SetMarkerColor(6);
520 fhPMDSM16->Draw("same");
521 fhPMDSM17->SetMarkerColor(6);
522 fhPMDSM17->Draw("same");
523 fhPMDSM18->SetMarkerColor(6);
524 fhPMDSM18->Draw("same");
525 fhPMDSM19->SetMarkerColor(8);
526 fhPMDSM19->Draw("same");
527 fhPMDSM20->SetMarkerColor(8);
528 fhPMDSM20->Draw("same");
529 fhPMDSM21->SetMarkerColor(8);
530 fhPMDSM21->Draw("same");
531 fhPMDSM22->SetMarkerColor(8);
532 fhPMDSM22->Draw("same");
533 fhPMDSM23->SetMarkerColor(8);
534 fhPMDSM23->Draw("same");
535 fhPMDSM24->SetMarkerColor(8);
536 fhPMDSM24->Draw("same");
537
538 DrawPMDBoundary();
539 DrawPMDBoundarySM1();
540 DrawPMDBoundarySM2();
541 DrawPMDBoundarySM3();
542 DrawPMDBoundarySM4();
543 cPMD0->Print("ClusterXY.eps");
544
545 TCanvas *cPMD1 = new TCanvas("cPMD1"," PMD ESD Test #2",10, 10, 600,600);
546 cPMD1->Divide(1,2);
547 cPMD1->cd(1);
548 cPMD1->SetFillColor(0);
549 fhPMDC2->SetLineColor(4);
550 fhPMDC2->Draw();
551 cPMD1->cd(2);
552 fhPMDP2->SetLineColor(2);
553 fhPMDP2->Draw();
554 cPMD1->Print("CPVPREphi.eps");
555
556 TCanvas *cPMD2 = new TCanvas("cPMD2","PMD ESD test #3",10, 10, 600, 600);
557 cPMD2->cd();
558 fhPMDSM->SetFillColor(2);
559 fhPMDSM->Draw();
560 cPMD2->Print("AllSMN.eps");
561
562 TCanvas *cPMD3 = new TCanvas("cPMD3", "PMD ESD test #4",10, 10, 600, 600);
563 cPMD3->Divide(2,2);
564 cPMD3->cd(1);
565 fhPMDCP0->SetMarkerColor(9);
566 fhPMDCP0->Draw();
567 cPMD3->cd(2);
568 fhPMDCP1->SetMarkerColor(6);
569 fhPMDCP1->Draw();
570 cPMD3->cd(3);
571 fhPMDP3->SetLineColor(2);
572 fhPMDP3->Draw();
573 cPMD3->cd(4);
574 fhPMDCP4->SetMarkerColor(3);
575 fhPMDCP4->Draw();
576 cPMD3->Print("CPVPREClus.eps");
577
578 TCanvas *cPMD4 = new TCanvas("cPMD4","PMD ESD test #5", 10, 10, 600, 600);
579 cPMD4->Divide(1,2);
580 cPMD4->cd(1);
581 fhPMDC3->SetLineColor(4);
582 fhPMDC3->Draw();
583 cPMD4->cd(2);
584 fhPMDP4->SetLineColor(2);
585 fhPMDP4->Draw();
586 cPMD4->Print("CPVPREAdc.eps");
587
588 char line[1024] ;
84eb42a1 589 sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ;
1dfe075f 590 gROOT->ProcessLine(line);
591
2704006a 592 AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
1dfe075f 593
2704006a 594 char * report ;
595 if(problem)
596 report="Problems found, please check!!!";
597 else
598 report="OK";
599
600 AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ;
1dfe075f 601}
602
603//______________________________________________________________________________
604void AliPMDQATask::CalculateSMN( Float_t clsX, Float_t clsY, Int_t & smn)
605{
606 Double_t xcon[96] = {75.133, 54.204, 53.254, 32.326, 31.376,10.447,
607 75.133, 54.204, 53.254, 32.326, 31.376,10.447,
608 75.133, 54.204, 53.254, 32.326, 31.376,10.447,
609 75.133, 54.204, 53.254, 32.326, 31.376,10.447,
610 -75.133, -54.204, -53.254, -32.326, -31.376,-10.447,
611 -75.133, -54.204, -53.254, -32.326, -31.376,-10.447,
612 -75.133, -54.204, -53.254, -32.326, -31.376,-10.447,
613 -75.133, -54.204, -53.254, -32.326, -31.376,-10.447,
614 9.167, -32.543, -33.493, -75.133,
615 9.167, -32.543, -33.493, -75.133,
616 9.167, -32.543, -33.493, -75.133,
617 9.167, -32.543, -33.493, -75.133,
618 9.167, -32.543, -33.493, -75.133,
619 9.167, -32.543, -33.493, -75.133,
620 -9.167, 32.543, 33.493, 75.133,
621 -9.167, 32.543, 33.493, 75.133,
622 -9.167, 32.543, 33.493, 75.133,
623 -9.167, 32.543, 33.493, 75.133,
624 -9.167, 32.543, 33.493, 75.133,
625 -9.167, 32.543, 33.493, 75.133};
626
627 Double_t ycon[96] = {86.475, 86.475, 86.475, 86.475, 86.475, 86.475,
628 38.225, 38.225, 38.225, 38.225, 38.225, 38.225,
629 37.325, 37.325, 37.325, 37.325, 37.325, 37.325,
630 -10.925, -10.925, -10.925, -10.925, -10.925, -10.925,
631 -86.475, -86.475, -86.475, -86.475, -86.475, -86.475,
632 -38.225, -38.225, -38.225, -38.225, -38.225, -38.225,
633 -37.325, -37.325, -37.325, -37.325, -37.325, -37.325,
634 10.925, 10.925, 10.925, 10.925, 10.925, 10.925,
635 86.475, 86.475, 86.475, 86.475,
636 62.225, 62.225, 62.225, 62.225,
637 61.325, 61.325, 61.325, 61.325,
638 37.075, 37.075, 37.075, 37.075,
639 36.175, 36.175, 36.175, 36.175,
640 11.925, 11.925, 11.925 , 11.925,
641 -86.475, -86.475, -86.475, -86.475,
642 -62.225, -62.225, -62.225, -62.225,
643 -61.325, -61.325, -61.325, -61.325,
644 -37.075, -37.075, -37.075, -37.075,
645 -36.175, -36.175, -36.175, -36.175,
646 -11.925, -11.925, -11.925 , -11.925 };
647
648 if((clsX <= xcon[0]) && (clsX >= xcon[1]) &&
649 (clsY <= ycon[0]) && (clsY >= ycon[6])) smn = 0 ;
650
651 else if((clsX <=xcon[2]) && (clsX >= xcon[3]) &&
652 (clsY <= ycon[1]) && (clsY >= ycon[7]))smn = 1 ;
653
654 else if((clsX <=xcon[4]) && (clsX >= xcon[5]) &&
655 (clsY <= ycon[3]) && (clsY >= ycon[8]))smn = 2 ;
656
657 else if((clsX <= xcon[0]) && (clsX >= xcon[1]) &&
658 (clsY <= ycon[12]) && (clsY >= ycon[18])) smn = 3 ;
659
660 else if((clsX <=xcon[2]) && (clsX >= xcon[3]) &&
661 (clsY <= ycon[12]) && (clsY >= ycon[18]))smn = 4 ;
662
663 else if((clsX <=xcon[4]) && (clsX >= xcon[5]) &&
664 (clsY <= ycon[12]) && (clsY >= ycon[18]))smn = 5 ;
665 //------------------------------------------------------------------
666 else if((clsX >= xcon[24]) && (clsX <= xcon[25]) &&
667 (clsY >= ycon[24]) && (clsY <= ycon[30])) smn = 6 ;
668
669 else if((clsX >=xcon[26]) && (clsX <= xcon[27]) &&
670 (clsY >= ycon[25]) && (clsY <= ycon[31]))smn = 7 ;
671
672 else if((clsX >=xcon[28]) && (clsX <= xcon[29]) &&
673 (clsY >= ycon[26]) && (clsY <= ycon[32]))smn = 8 ;
674
675 else if((clsX >= xcon[24]) && (clsX <= xcon[25]) &&
676 (clsY >= ycon[36]) && (clsY <= ycon[42])) smn = 9 ;
677
678 else if((clsX >=xcon[26]) && (clsX <= xcon[27]) &&
679 (clsY >= ycon[36]) && (clsY <= ycon[42]))smn = 10;
680
681 else if((clsX >=xcon[28]) && (clsX <= xcon[29]) &&
682 (clsY >= ycon[36]) && (clsY <= ycon[42]))smn = 11;
683 //------------------------------------------------------------------
684 else if((clsX <= xcon[48]) && (clsX >= xcon[49]) &&
685 (clsY <= ycon[48]) && (clsY >= ycon[52])) smn = 12 ;
686
687 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
688 (clsY <= ycon[48]) && (clsY >= ycon[52]))smn = 13 ;
689
690 else if((clsX <=xcon[48]) && (clsX >= xcon[49]) &&
691 (clsY <= ycon[56]) && (clsY >= ycon[60]))smn = 14 ;
692
693 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
694 (clsY <= ycon[56]) && (clsY >= ycon[60]))smn = 15 ;
695
696 else if((clsX <=xcon[48]) && (clsX >= xcon[49]) &&
697 (clsY <= ycon[64]) && (clsY >= ycon[68]))smn = 16 ;
698
699 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
700 (clsY <= ycon[64]) && (clsY >= ycon[68]))smn = 17 ;
701 //--------------------------------------------------------------
702 else if((clsX >= xcon[72]) && (clsX <= xcon[73]) &&
703 (clsY >= ycon[72]) && (clsY <= ycon[76])) smn = 18 ;
704
705 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
706 (clsY >= ycon[72]) && (clsY <= ycon[76]))smn = 19 ;
707
708 else if((clsX >=xcon[72]) && (clsX <= xcon[73]) &&
709 (clsY >= ycon[80]) && (clsY <= ycon[84]))smn = 20 ;
710
711 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
712 (clsY >= ycon[80]) && (clsY <= ycon[84]))smn = 21;
713
714 else if((clsX >= xcon[72]) && (clsX <= xcon[73]) &&
715 (clsY >= ycon[88]) && (clsY <= ycon[92])) smn = 22 ;
716
717 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
718 (clsY >= ycon[88]) && (clsY <= ycon[92]))smn = 23 ;
719 else smn = 111;
720 }
721
722//______________________________________________________________________________
723void AliPMDQATask::DrawPMDBoundary()
724{
725 // Draw PMD boundaries
726
727 gStyle->SetLineWidth(2);
728 gStyle->SetLineColor(2);
729 TLine * l;
730 l = new TLine(75.1333, 86.475, -75.1333, 86.475); l->Draw("same");
731 l = new TLine(-75.1333, 86.470,-75.1333, -86.475); l->Draw("same");
732 l = new TLine(-75.1333, -86.475,75.1333, -86.475); l->Draw("same");
733 l = new TLine(75.1333, -86.475,75.1333, 86.475); l->Draw("same");
734}
735
736//______________________________________________________________________________
737void AliPMDQATask::DrawPMDBoundarySM1()
738{
739 // Draw boundaries of Super Module 1
740
741 gStyle->SetLineWidth(1);
742 gStyle->SetLineColor(4);
743 TLine * l;
744 l = new TLine(-75.1333, 86.475, -10.447, 86.475); l->Draw("same");
745 l = new TLine(-10.447, 86.475, -10.446, -10.925); l->Draw("same");
746 l = new TLine(-10.446, -10.925, -75.1333,-10.925); l->Draw("same");
747 l = new TLine(-75.1333,-10.925, -75.1333, 86.475); l->Draw("same");
748}
749
750//______________________________________________________________________________
751void AliPMDQATask::DrawPMDBoundarySM2()
752{
753 // Draw boundaries of Super Module 2
754
755 gStyle->SetLineWidth(1);
756 gStyle->SetLineColor(4);
757 TLine * l;
758 l = new TLine(75.1333, -86.475, 10.446, -86.475); l->Draw("same");
759 l = new TLine(10.446, -86.475, 10.446, 10.925); l->Draw("same");
760 l = new TLine(10.446, 10.925, 75.1333, 10.925); l->Draw("same");
761 l = new TLine(75.1333, 10.925, 75.1333, -86.475); l->Draw("same");
762}
763
764
765//______________________________________________________________________________
766void AliPMDQATask::DrawPMDBoundarySM3()
767{
768 // Draw boundaries of Super Module 3
769
770 gStyle->SetLineWidth(1);
771 gStyle->SetLineColor(1);
772 TLine * l;
773 l = new TLine( -9.167, 86.475, 75.1333, 86.475); l->Draw("same");
774 l = new TLine(75.1333,86.475, 75.1333, 11.925); l->Draw("same");
775 l = new TLine(75.1333,11.925, -9.167, 11.925); l->Draw("same");
776 l = new TLine( -9.167, 11.925, -9.167, 86.475); l->Draw("same");
777}
778
779//______________________________________________________________________________
780void AliPMDQATask::DrawPMDBoundarySM4()
781{
782 // Draw boundaries of Super Module 4
783
784 gStyle->SetLineWidth(1);
785 gStyle->SetLineColor(1);
786 TLine * l;
787 l = new TLine(9.167, -86.475, -75.1333,-86.475); l->Draw("same");
788 l = new TLine(-75.1333,-86.475, -75.1333,-11.925); l->Draw("same");
789 l = new TLine(-75.1333,-11.925, 9.167, -11.925); l->Draw("same");
790 l = new TLine(9.167, -11.925, 9.167, -86.475); l->Draw("same");
791}