2 /**************************************************************************
3 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 //_________________________________________________________________________
20 // An analysis task to check the PMD data in simulated data
23 //////////////////////////////////////////////////////////////////////////////
35 #include "AliPMDQATask.h"
36 #include "AliPMDUtility.h"
40 //______________________________________________________________________________
41 AliPMDQATask::AliPMDQATask(const char *name) :
42 AliAnalysisTask(name,""),
85 // Input slot #0 works with an Ntuple
86 DefineInput(0, TChain::Class());
87 // Output slot #0 writes into a TH1 container
88 DefineOutput(0, TObjArray::Class()) ;
91 //______________________________________________________________________________
92 AliPMDQATask::~AliPMDQATask()
95 fOutputContainer->Clear() ;
96 delete fOutputContainer ;
139 //______________________________________________________________________________
140 void AliPMDQATask::ConnectInputData(const Option_t*)
142 // Initialisation of branch container and histograms
144 AliInfo(Form("*** Initialization of %s", GetName())) ;
147 fChain = dynamic_cast<TChain *>(GetInputData(0)) ;
149 AliError(Form("Input 0 for %s not found\n", GetName()));
153 // One should first check if the branch address was taken by some other task
154 char ** address = (char **)GetBranchAddress(0, "ESD");
156 fESD = (AliESD*)(*address);
159 SetBranchAddress(0, "ESD", &fESD);
163 //________________________________________________________________________
164 void AliPMDQATask::CreateOutputObjects()
170 fhPMDP1 = new TH2F("fhPMDP1","XY of Clusters",100,-100.,100.,100,-100.,100.);
171 fhPMDC2 = new TH1F("fhPMDC2","CPV PHI",200,-1,9);
172 fhPMDP2 = new TH1F("fhPMDP2","PRE PHI",200,-1,9);
173 fhPMDC3 = new TH1F("fhPMDC3","CPV Clus",30,0.,500.);
174 fhPMDP3 = new TH1F("fhPMDP3","PRE N-gammalike",20,0.,500.);
175 fhPMDP4 = new TH1F("fhPMDP4","PRE EDEP",30,0.,1000.);
176 fhPMDC5 = new TH1F("fhPMDC5","CPV n-cell",20,0.,100.);
177 fhPMDP5 = new TH1F("fhPMDP5","PMD n-cell",20,0.,100.);
178 fhPMDCP0 = new TH2F("fhPMDCP0","PRE CLUS Quad.1 vs 2",150,0.,300.,150,0.,300.);
179 fhPMDCP1 = new TH2F("fhPMDCP1","PRE CLUS Quad.3 vs 4",150,0.,300.,150,0.,300.);
180 fhPMDCP2 = new TH2F("fhPMDCP2","PRE EDEP Quad.3 vs 4",50,0.,300.,50,0.,300.);
181 fhPMDCP3 = new TH2F("fhPMDCP3","PRE EDEP vs Tot Clus ",10,0.,1000.,10,0.,300.);
182 fhPMDCP4 = new TH2F("fhPMDCP4","PRE Clus vs CPV Clus ",150,0.,200.,150,0.,200.);
184 fhPMDSM1 = new TH2F("fhPMDSM1","PRE Cluster XY",200,-100,100,200,-100,100);
185 fhPMDSM2 = new TH2F("fhPMDSM2","",999,-100.0,100.0,999,-100.0,100.0);
186 fhPMDSM3 = new TH2F("fhPMDSM3","",999,-100.0,100.0,999,-100.0,100.0);
187 fhPMDSM4 = new TH2F("fhPMDSM4","",999,-100.0,100.0,999,-100.0,100.0);
188 fhPMDSM5 = new TH2F("fhPMDSM5","",999,-100.0,100.0,999,-100.0,100.0);
189 fhPMDSM6 = new TH2F("fhPMDSM6","",999,-100.0,100.0,999,-100.0,100.0);
190 fhPMDSM7 = new TH2F("fhPMDSM7","",999,-100.0,100.0,999,-100.0,100.0);
191 fhPMDSM8 = new TH2F("fhPMDSM8","",999,-100.0,100.0,999,-100.0,100.0);
192 fhPMDSM9 = new TH2F("fhPMDSM9","",999,-100.0,100.0,999,-100.0,100.0);
193 fhPMDSM10 = new TH2F("fhPMDSM10","",999,-100.0,100.0,999,-100.0,100.0);
194 fhPMDSM11 = new TH2F("fhPMDSM11","",999,-100.0,100.0,999,-100.0,100.0);
195 fhPMDSM12 = new TH2F("fhPMDSM12","",999,-100.0,100.0,999,-100.0,100.0);
196 fhPMDSM13 = new TH2F("fhPMDSM13","",999,-100.0,100.0,999,-100.0,100.0);
197 fhPMDSM14 = new TH2F("fhPMDSM14","",999,-100.0,100.0,999,-100.0,100.0);
198 fhPMDSM15 = new TH2F("fhPMDSM15","",999,-100.0,100.0,999,-100.0,100.0);
199 fhPMDSM16 = new TH2F("fhPMDSM16","",999,-100.0,100.0,999,-100.0,100.0);
200 fhPMDSM17 = new TH2F("fhPMDSM17","",999,-100.0,100.0,999,-100.0,100.0);
201 fhPMDSM18 = new TH2F("fhPMDSM18","",999,-100.0,100.0,999,-100.0,100.0);
202 fhPMDSM19 = new TH2F("fhPMDSM19","",999,-100.0,100.0,999,-100.0,100.0);
203 fhPMDSM20 = new TH2F("fhPMDSM20","",999,-100.0,100.0,999,-100.0,100.0);
204 fhPMDSM21 = new TH2F("fhPMDSM21","",999,-100.0,100.0,999,-100.0,100.0);
205 fhPMDSM22 = new TH2F("fhPMDSM22","",999,-100.0,100.0,999,-100.0,100.0);
206 fhPMDSM23 = new TH2F("fhPMDSM23","",999,-100.0,100.0,999,-100.0,100.0);
207 fhPMDSM24 = new TH2F("fhPMDSM24","",999,-100.0,100.0,999,-100.0,100.0);
208 fhPMDSM = new TH1F("fhPMDSM","Plot of all 24 Super Modules",24,0,24);
210 // create output container
212 fOutputContainer = new TObjArray(38) ;
213 fOutputContainer->SetName("PMD") ;
215 fOutputContainer->AddAt(fhPMDP1, 0 );
216 fOutputContainer->AddAt(fhPMDC2, 1 );
217 fOutputContainer->AddAt(fhPMDP2, 2 );
218 fOutputContainer->AddAt(fhPMDC3, 3 );
219 fOutputContainer->AddAt(fhPMDP3, 4 );
220 fOutputContainer->AddAt(fhPMDP4, 5 );
221 fOutputContainer->AddAt(fhPMDC5, 6 );
222 fOutputContainer->AddAt(fhPMDP5, 7 );
223 fOutputContainer->AddAt(fhPMDCP0, 8 );
224 fOutputContainer->AddAt(fhPMDCP1, 9);
225 fOutputContainer->AddAt(fhPMDCP2, 10 );
226 fOutputContainer->AddAt(fhPMDCP3, 11 );
227 fOutputContainer->AddAt(fhPMDCP4, 12 );
229 fOutputContainer->AddAt(fhPMDSM1, 13 );
230 fOutputContainer->AddAt(fhPMDSM2, 14 );
231 fOutputContainer->AddAt(fhPMDSM3, 15 );
232 fOutputContainer->AddAt(fhPMDSM4, 16 );
233 fOutputContainer->AddAt(fhPMDSM5, 17 );
234 fOutputContainer->AddAt(fhPMDSM6, 18 );
235 fOutputContainer->AddAt(fhPMDSM7, 19 );
236 fOutputContainer->AddAt(fhPMDSM8, 20 );
237 fOutputContainer->AddAt(fhPMDSM9, 21 );
238 fOutputContainer->AddAt(fhPMDSM10, 22 );
239 fOutputContainer->AddAt(fhPMDSM11, 23 );
240 fOutputContainer->AddAt(fhPMDSM12, 24 );
241 fOutputContainer->AddAt(fhPMDSM13, 25 );
242 fOutputContainer->AddAt(fhPMDSM14, 26 );
243 fOutputContainer->AddAt(fhPMDSM15, 27 );
244 fOutputContainer->AddAt(fhPMDSM16, 28 );
245 fOutputContainer->AddAt(fhPMDSM17, 29 );
246 fOutputContainer->AddAt(fhPMDSM18, 30 );
247 fOutputContainer->AddAt(fhPMDSM19, 31 );
248 fOutputContainer->AddAt(fhPMDSM20, 32 );
249 fOutputContainer->AddAt(fhPMDSM21, 33 );
250 fOutputContainer->AddAt(fhPMDSM22, 34 );
251 fOutputContainer->AddAt(fhPMDSM23, 35 );
252 fOutputContainer->AddAt(fhPMDSM24, 36 );
253 fOutputContainer->AddAt(fhPMDSM, 37 );
256 //______________________________________________________________________________
257 void AliPMDQATask::Exec(Option_t *)
259 // Processing of one event
261 Long64_t entry = fChain->GetReadEntry() ;
264 AliError("fESD is not connected to the input!") ;
268 if ( !((entry-1)%100) )
269 AliInfo(Form("%s ----> Processing event # %lld", (dynamic_cast<TChain *>(fChain))->GetFile()->GetName(), entry)) ;
271 // ************************ PMD
273 AliPMDUtility *cc = new AliPMDUtility();
282 Float_t preCluQUAD[4] ;
283 Float_t cpvCluQUAD[4] ;
284 Float_t preADCQUAD[4] ;
285 Float_t cpvADCQUAD[4] ;
286 Float_t preCelQUAD[4] ;
287 Float_t cpvCelQUAD[4] ;
289 Int_t npmdCl = fESD->GetNumberOfPmdTracks();
291 // ****** The loop over PMD clusters
293 for (Int_t kk = 0; kk < 4 ; kk++) {
294 cpvCluQUAD[kk] = 0.0 ;
295 preCluQUAD[kk] = 0.0 ;
296 cpvCelQUAD[kk] = 0.0 ;
297 preCelQUAD[kk] = 0.0 ;
298 preADCQUAD[kk] = 0.0 ;
303 AliESDPmdTrack * pmdtr = fESD->GetPmdTrack(npmdCl);
304 Int_t det = pmdtr->GetDetector();
305 Float_t clsX = pmdtr->GetClusterX();
306 Float_t clsY = pmdtr->GetClusterY();
307 Float_t clsZ = pmdtr->GetClusterZ();
308 Float_t ncell = pmdtr->GetClusterCells();
309 Float_t adc = pmdtr->GetClusterADC();
311 cc->SetXYZ(clsX,clsY,clsZ);
314 Float_t eta = cc->GetEta();
315 Float_t phi = cc->GetPhi();
317 // Calculating S.Module Number from Cluster .
319 CalculateSMN(clsX, clsY, smn);
322 if(smn >= 0 && smn <= 5) {
324 cpvADCQUAD[0] =+ adc ;
325 cpvCelQUAD[0] =+ ncell ;
327 if(smn >= 6 && smn <=11) {
329 cpvADCQUAD[1] =+ adc ;
330 cpvCelQUAD[1] =+ ncell ;
332 if(smn >=12 && smn <=17) {
334 cpvADCQUAD[2] =+ adc ;
335 cpvCelQUAD[2] =+ ncell ;
337 if(smn >=18 && smn <=23) {
339 cpvADCQUAD[3] =+ adc ;
340 cpvCelQUAD[3] =+ ncell ;
343 if(eta >= 2.3 && eta <= 3.5)
350 if(smn >= 0 && smn <= 5) {
352 preADCQUAD[0] =+ adc ;
353 preCelQUAD[0] =+ ncell ;
355 if(smn >= 6 && smn <=11) {
357 preADCQUAD[1] =+ adc ;
358 preCelQUAD[1] =+ ncell ;
360 if(smn >=12 && smn <=17) {
362 preADCQUAD[2] =+ adc ;
363 preCelQUAD[2] =+ ncell ;
365 if(smn >=18 && smn <=23) {
367 preADCQUAD[3] =+ adc ;
368 preCelQUAD[3] =+ ncell ;
372 if(smn == 0) fhPMDSM1->Fill(-clsX,clsY);
373 if(smn == 0) fhPMDSM1->Fill(-clsX,clsY);
374 if(smn == 1) fhPMDSM2->Fill(-clsX,clsY);
375 if(smn == 2) fhPMDSM3->Fill(-clsX,clsY);
376 if(smn == 3) fhPMDSM4->Fill(-clsX,clsY);
377 if(smn == 4) fhPMDSM5->Fill(-clsX,clsY);
378 if(smn == 5) fhPMDSM6->Fill(-clsX,clsY);
379 if(smn == 6) fhPMDSM7->Fill(-clsX,clsY);
380 if(smn == 7) fhPMDSM8->Fill(-clsX,clsY);
381 if(smn == 8) fhPMDSM9->Fill(-clsX,clsY);
382 if(smn == 9) fhPMDSM10->Fill(-clsX,clsY);
383 if(smn ==10) fhPMDSM11->Fill(-clsX,clsY);
384 if(smn ==11) fhPMDSM12->Fill(-clsX,clsY);
385 if(smn ==12) fhPMDSM13->Fill(-clsX,clsY);
386 if(smn ==13) fhPMDSM14->Fill(-clsX,clsY);
387 if(smn ==14) fhPMDSM15->Fill(-clsX,clsY);
388 if(smn ==15) fhPMDSM16->Fill(-clsX,clsY);
389 if(smn ==16) fhPMDSM17->Fill(-clsX,clsY);
390 if(smn ==17) fhPMDSM18->Fill(-clsX,clsY);
391 if(smn ==18) fhPMDSM19->Fill(-clsX,clsY);
392 if(smn ==19) fhPMDSM20->Fill(-clsX,clsY);
393 if(smn ==20) fhPMDSM21->Fill(-clsX,clsY);
394 if(smn ==21) fhPMDSM22->Fill(-clsX,clsY);
395 if(smn ==22) fhPMDSM23->Fill(-clsX,clsY);
396 if(smn ==23) fhPMDSM24->Fill(-clsX,clsY);
398 if(eta >= 2.3 && eta <= 3.5)
402 fhPMDP1->Fill(clsX,clsY);
405 for (Int_t k = 0 ; k < 4 ; k++) {
406 totCPVClus =+ cpvCluQUAD [k] ;
407 totPREClus =+ preCluQUAD [k] ;
408 totCPVCell =+ cpvCelQUAD [k] ;
409 totPRECell =+ preCelQUAD [k] ;
410 totPREEdep =+ preADCQUAD [k] ;
412 Float_t totCPVpreClus = totPREClus + totCPVClus ;
414 // if(eta >= 2.3 && eta <= 3.5) {
415 fhPMDC3->Fill(totCPVClus);
416 fhPMDP3->Fill(totPREClus);
417 fhPMDP4->Fill(totPREEdep);
418 fhPMDP5->Fill(totPRECell);
419 fhPMDCP0->Fill(preCluQUAD[0],preCluQUAD[1]);
420 fhPMDCP1->Fill(preCluQUAD[2],preCluQUAD[3]);
421 fhPMDCP2->Fill(preADCQUAD[2],preADCQUAD[3]);
422 fhPMDCP3->Fill(totPREEdep,totCPVpreClus);
423 fhPMDCP4->Fill(totPREClus,totCPVClus);
431 PostData(0, fOutputContainer);
434 //______________________________________________________________________________
435 void AliPMDQATask::Terminate(Option_t *)
437 // Processing when the event loop is ended
438 fOutputContainer = (TObjArray*)GetOutputData(0);
440 fhPMDP1 = (TH2F*)fOutputContainer->At(0);
441 fhPMDC2 = (TH1F*)fOutputContainer->At(1);
442 fhPMDP2 = (TH1F*)fOutputContainer->At(2);
443 fhPMDC3 = (TH1F*)fOutputContainer->At(3);
444 fhPMDP3 = (TH1F*)fOutputContainer->At(4);
445 fhPMDP4 = (TH1F*)fOutputContainer->At(5);
446 fhPMDC5 = (TH1F*)fOutputContainer->At(6);
447 fhPMDP5 = (TH1F*)fOutputContainer->At(7);
448 fhPMDCP0 = (TH2F*)fOutputContainer->At(8);
449 fhPMDCP1 = (TH2F*)fOutputContainer->At(9);
450 fhPMDCP2 = (TH2F*)fOutputContainer->At(10);
451 fhPMDCP3 = (TH2F*)fOutputContainer->At(11);
452 fhPMDCP4 = (TH2F*)fOutputContainer->At(12);
454 fhPMDSM1 = (TH2F*)fOutputContainer->At(13);
455 fhPMDSM2 = (TH2F*)fOutputContainer->At(14);
456 fhPMDSM3 = (TH2F*)fOutputContainer->At(15);
457 fhPMDSM4 = (TH2F*)fOutputContainer->At(16);
458 fhPMDSM5 = (TH2F*)fOutputContainer->At(17);
459 fhPMDSM6 = (TH2F*)fOutputContainer->At(18);
460 fhPMDSM7 = (TH2F*)fOutputContainer->At(19);
461 fhPMDSM8 = (TH2F*)fOutputContainer->At(20);
462 fhPMDSM9 = (TH2F*)fOutputContainer->At(21);
463 fhPMDSM10 = (TH2F*)fOutputContainer->At(22);
464 fhPMDSM11 = (TH2F*)fOutputContainer->At(23);
465 fhPMDSM12 = (TH2F*)fOutputContainer->At(24);
466 fhPMDSM13 = (TH2F*)fOutputContainer->At(25);
467 fhPMDSM14 = (TH2F*)fOutputContainer->At(26);
468 fhPMDSM15 = (TH2F*)fOutputContainer->At(27);
469 fhPMDSM16 = (TH2F*)fOutputContainer->At(28);
470 fhPMDSM17 = (TH2F*)fOutputContainer->At(29);
471 fhPMDSM18 = (TH2F*)fOutputContainer->At(30);
472 fhPMDSM19 = (TH2F*)fOutputContainer->At(31);
473 fhPMDSM20 = (TH2F*)fOutputContainer->At(32);
474 fhPMDSM21 = (TH2F*)fOutputContainer->At(33);
475 fhPMDSM22 = (TH2F*)fOutputContainer->At(34);
476 fhPMDSM23 = (TH2F*)fOutputContainer->At(35);
477 fhPMDSM24 = (TH2F*)fOutputContainer->At(36);
478 fhPMDSM = (TH1F*)fOutputContainer->At(37);
480 Bool_t problem = kFALSE ;
481 AliInfo(Form(" *** %s Report:", GetName())) ;
483 gStyle->SetOptStat(110000);
484 gStyle->SetOptFit(1);
486 TCanvas *cPMD0 = new TCanvas("cPMD0","PMD ESD Test #1", 10,10, 600, 600);
487 cPMD0->Range(-100, -100,100 ,100 );
488 fhPMDSM1->SetMarkerColor(2);
490 fhPMDSM1->GetXaxis()->SetTitle("Cluster X");
491 fhPMDSM1->GetYaxis()->SetTitle("Cluster Y");
492 fhPMDSM2->SetMarkerColor(2);
493 fhPMDSM2->Draw("same");
494 fhPMDSM3->SetMarkerColor(2);
495 fhPMDSM3->Draw("same");
496 fhPMDSM4->SetMarkerColor(2);
497 fhPMDSM4->Draw("same");
498 fhPMDSM5->SetMarkerColor(2);
499 fhPMDSM5->Draw("same");
500 fhPMDSM6->SetMarkerColor(2);
501 fhPMDSM6->Draw("same");
502 fhPMDSM7->SetMarkerColor(4);
503 fhPMDSM7->Draw("same");
504 fhPMDSM8->SetMarkerColor(4);
505 fhPMDSM8->Draw("same");
506 fhPMDSM9->SetMarkerColor(4);
507 fhPMDSM9->Draw("same");
508 fhPMDSM10->SetMarkerColor(4);
509 fhPMDSM10->Draw("same");
510 fhPMDSM11->SetMarkerColor(4);
511 fhPMDSM11->Draw("same");
512 fhPMDSM12->SetMarkerColor(4);
513 fhPMDSM12->Draw("same");
514 fhPMDSM13->SetMarkerColor(6);
515 fhPMDSM13->Draw("same");
516 fhPMDSM14->SetMarkerColor(6);
517 fhPMDSM14->Draw("same");
518 fhPMDSM15->SetMarkerColor(6);
519 fhPMDSM15->Draw("same");
520 fhPMDSM16->SetMarkerColor(6);
521 fhPMDSM16->Draw("same");
522 fhPMDSM17->SetMarkerColor(6);
523 fhPMDSM17->Draw("same");
524 fhPMDSM18->SetMarkerColor(6);
525 fhPMDSM18->Draw("same");
526 fhPMDSM19->SetMarkerColor(8);
527 fhPMDSM19->Draw("same");
528 fhPMDSM20->SetMarkerColor(8);
529 fhPMDSM20->Draw("same");
530 fhPMDSM21->SetMarkerColor(8);
531 fhPMDSM21->Draw("same");
532 fhPMDSM22->SetMarkerColor(8);
533 fhPMDSM22->Draw("same");
534 fhPMDSM23->SetMarkerColor(8);
535 fhPMDSM23->Draw("same");
536 fhPMDSM24->SetMarkerColor(8);
537 fhPMDSM24->Draw("same");
540 DrawPMDBoundarySM1();
541 DrawPMDBoundarySM2();
542 DrawPMDBoundarySM3();
543 DrawPMDBoundarySM4();
544 cPMD0->Print("ClusterXY.eps");
546 TCanvas *cPMD1 = new TCanvas("cPMD1"," PMD ESD Test #2",10, 10, 600,600);
549 cPMD1->SetFillColor(0);
550 fhPMDC2->SetLineColor(4);
553 fhPMDP2->SetLineColor(2);
555 cPMD1->Print("CPVPREphi.eps");
557 TCanvas *cPMD2 = new TCanvas("cPMD2","PMD ESD test #3",10, 10, 600, 600);
559 fhPMDSM->SetFillColor(2);
561 cPMD2->Print("AllSMN.eps");
563 TCanvas *cPMD3 = new TCanvas("cPMD3", "PMD ESD test #4",10, 10, 600, 600);
566 fhPMDCP0->SetMarkerColor(9);
569 fhPMDCP1->SetMarkerColor(6);
572 fhPMDP3->SetLineColor(2);
575 fhPMDCP4->SetMarkerColor(3);
577 cPMD3->Print("CPVPREClus.eps");
579 TCanvas *cPMD4 = new TCanvas("cPMD4","PMD ESD test #5", 10, 10, 600, 600);
582 fhPMDC3->SetLineColor(4);
585 fhPMDP4->SetLineColor(2);
587 cPMD4->Print("CPVPREAdc.eps");
590 sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ;
591 gROOT->ProcessLine(line);
593 AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
597 report="Problems found, please check!!!";
601 AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report.Data())) ;
604 //______________________________________________________________________________
605 void AliPMDQATask::CalculateSMN( Float_t clsX, Float_t clsY, Int_t & smn)
607 Double_t xcon[96] = {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 -75.133, -54.204, -53.254, -32.326, -31.376,-10.447,
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 -9.167, 32.543, 33.493, 75.133};
628 Double_t ycon[96] = {86.475, 86.475, 86.475, 86.475, 86.475, 86.475,
629 38.225, 38.225, 38.225, 38.225, 38.225, 38.225,
630 37.325, 37.325, 37.325, 37.325, 37.325, 37.325,
631 -10.925, -10.925, -10.925, -10.925, -10.925, -10.925,
632 -86.475, -86.475, -86.475, -86.475, -86.475, -86.475,
633 -38.225, -38.225, -38.225, -38.225, -38.225, -38.225,
634 -37.325, -37.325, -37.325, -37.325, -37.325, -37.325,
635 10.925, 10.925, 10.925, 10.925, 10.925, 10.925,
636 86.475, 86.475, 86.475, 86.475,
637 62.225, 62.225, 62.225, 62.225,
638 61.325, 61.325, 61.325, 61.325,
639 37.075, 37.075, 37.075, 37.075,
640 36.175, 36.175, 36.175, 36.175,
641 11.925, 11.925, 11.925 , 11.925,
642 -86.475, -86.475, -86.475, -86.475,
643 -62.225, -62.225, -62.225, -62.225,
644 -61.325, -61.325, -61.325, -61.325,
645 -37.075, -37.075, -37.075, -37.075,
646 -36.175, -36.175, -36.175, -36.175,
647 -11.925, -11.925, -11.925 , -11.925 };
649 if((clsX <= xcon[0]) && (clsX >= xcon[1]) &&
650 (clsY <= ycon[0]) && (clsY >= ycon[6])) smn = 0 ;
652 else if((clsX <=xcon[2]) && (clsX >= xcon[3]) &&
653 (clsY <= ycon[1]) && (clsY >= ycon[7]))smn = 1 ;
655 else if((clsX <=xcon[4]) && (clsX >= xcon[5]) &&
656 (clsY <= ycon[3]) && (clsY >= ycon[8]))smn = 2 ;
658 else if((clsX <= xcon[0]) && (clsX >= xcon[1]) &&
659 (clsY <= ycon[12]) && (clsY >= ycon[18])) smn = 3 ;
661 else if((clsX <=xcon[2]) && (clsX >= xcon[3]) &&
662 (clsY <= ycon[12]) && (clsY >= ycon[18]))smn = 4 ;
664 else if((clsX <=xcon[4]) && (clsX >= xcon[5]) &&
665 (clsY <= ycon[12]) && (clsY >= ycon[18]))smn = 5 ;
666 //------------------------------------------------------------------
667 else if((clsX >= xcon[24]) && (clsX <= xcon[25]) &&
668 (clsY >= ycon[24]) && (clsY <= ycon[30])) smn = 6 ;
670 else if((clsX >=xcon[26]) && (clsX <= xcon[27]) &&
671 (clsY >= ycon[25]) && (clsY <= ycon[31]))smn = 7 ;
673 else if((clsX >=xcon[28]) && (clsX <= xcon[29]) &&
674 (clsY >= ycon[26]) && (clsY <= ycon[32]))smn = 8 ;
676 else if((clsX >= xcon[24]) && (clsX <= xcon[25]) &&
677 (clsY >= ycon[36]) && (clsY <= ycon[42])) smn = 9 ;
679 else if((clsX >=xcon[26]) && (clsX <= xcon[27]) &&
680 (clsY >= ycon[36]) && (clsY <= ycon[42]))smn = 10;
682 else if((clsX >=xcon[28]) && (clsX <= xcon[29]) &&
683 (clsY >= ycon[36]) && (clsY <= ycon[42]))smn = 11;
684 //------------------------------------------------------------------
685 else if((clsX <= xcon[48]) && (clsX >= xcon[49]) &&
686 (clsY <= ycon[48]) && (clsY >= ycon[52])) smn = 12 ;
688 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
689 (clsY <= ycon[48]) && (clsY >= ycon[52]))smn = 13 ;
691 else if((clsX <=xcon[48]) && (clsX >= xcon[49]) &&
692 (clsY <= ycon[56]) && (clsY >= ycon[60]))smn = 14 ;
694 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
695 (clsY <= ycon[56]) && (clsY >= ycon[60]))smn = 15 ;
697 else if((clsX <=xcon[48]) && (clsX >= xcon[49]) &&
698 (clsY <= ycon[64]) && (clsY >= ycon[68]))smn = 16 ;
700 else if((clsX <=xcon[50]) && (clsX >= xcon[51]) &&
701 (clsY <= ycon[64]) && (clsY >= ycon[68]))smn = 17 ;
702 //--------------------------------------------------------------
703 else if((clsX >= xcon[72]) && (clsX <= xcon[73]) &&
704 (clsY >= ycon[72]) && (clsY <= ycon[76])) smn = 18 ;
706 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
707 (clsY >= ycon[72]) && (clsY <= ycon[76]))smn = 19 ;
709 else if((clsX >=xcon[72]) && (clsX <= xcon[73]) &&
710 (clsY >= ycon[80]) && (clsY <= ycon[84]))smn = 20 ;
712 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
713 (clsY >= ycon[80]) && (clsY <= ycon[84]))smn = 21;
715 else if((clsX >= xcon[72]) && (clsX <= xcon[73]) &&
716 (clsY >= ycon[88]) && (clsY <= ycon[92])) smn = 22 ;
718 else if((clsX >=xcon[74]) && (clsX <= xcon[75]) &&
719 (clsY >= ycon[88]) && (clsY <= ycon[92]))smn = 23 ;
723 //______________________________________________________________________________
724 void AliPMDQATask::DrawPMDBoundary()
726 // Draw PMD boundaries
728 gStyle->SetLineWidth(2);
729 gStyle->SetLineColor(2);
731 l = new TLine(75.1333, 86.475, -75.1333, 86.475); l->Draw("same");
732 l = new TLine(-75.1333, 86.470,-75.1333, -86.475); l->Draw("same");
733 l = new TLine(-75.1333, -86.475,75.1333, -86.475); l->Draw("same");
734 l = new TLine(75.1333, -86.475,75.1333, 86.475); l->Draw("same");
737 //______________________________________________________________________________
738 void AliPMDQATask::DrawPMDBoundarySM1()
740 // Draw boundaries of Super Module 1
742 gStyle->SetLineWidth(1);
743 gStyle->SetLineColor(4);
745 l = new TLine(-75.1333, 86.475, -10.447, 86.475); l->Draw("same");
746 l = new TLine(-10.447, 86.475, -10.446, -10.925); l->Draw("same");
747 l = new TLine(-10.446, -10.925, -75.1333,-10.925); l->Draw("same");
748 l = new TLine(-75.1333,-10.925, -75.1333, 86.475); l->Draw("same");
751 //______________________________________________________________________________
752 void AliPMDQATask::DrawPMDBoundarySM2()
754 // Draw boundaries of Super Module 2
756 gStyle->SetLineWidth(1);
757 gStyle->SetLineColor(4);
759 l = new TLine(75.1333, -86.475, 10.446, -86.475); l->Draw("same");
760 l = new TLine(10.446, -86.475, 10.446, 10.925); l->Draw("same");
761 l = new TLine(10.446, 10.925, 75.1333, 10.925); l->Draw("same");
762 l = new TLine(75.1333, 10.925, 75.1333, -86.475); l->Draw("same");
766 //______________________________________________________________________________
767 void AliPMDQATask::DrawPMDBoundarySM3()
769 // Draw boundaries of Super Module 3
771 gStyle->SetLineWidth(1);
772 gStyle->SetLineColor(1);
774 l = new TLine( -9.167, 86.475, 75.1333, 86.475); l->Draw("same");
775 l = new TLine(75.1333,86.475, 75.1333, 11.925); l->Draw("same");
776 l = new TLine(75.1333,11.925, -9.167, 11.925); l->Draw("same");
777 l = new TLine( -9.167, 11.925, -9.167, 86.475); l->Draw("same");
780 //______________________________________________________________________________
781 void AliPMDQATask::DrawPMDBoundarySM4()
783 // Draw boundaries of Super Module 4
785 gStyle->SetLineWidth(1);
786 gStyle->SetLineColor(1);
788 l = new TLine(9.167, -86.475, -75.1333,-86.475); l->Draw("same");
789 l = new TLine(-75.1333,-86.475, -75.1333,-11.925); l->Draw("same");
790 l = new TLine(-75.1333,-11.925, 9.167, -11.925); l->Draw("same");
791 l = new TLine(9.167, -11.925, 9.167, -86.475); l->Draw("same");