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