]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ZDC/AliZDCQAChecker.cxx
- adding histograms for neutrons and anti-neutrons for MC data
[u/mrichter/AliRoot.git] / ZDC / AliZDCQAChecker.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16
17// --- ROOT system ---
18#include <TH1F.h>
19#include <TIterator.h>
20#include <TString.h>
21
22// --- Standard library ---
23
24// --- AliRoot header files ---
25#include "AliLog.h"
26#include "AliZDCQAChecker.h"
27
28ClassImp(AliZDCQAChecker)
29
30//____________________________________________________________________________
31void AliZDCQAChecker::Check(Double_t * test, AliQAv1::ALITASK_t index, TObjArray ** list,
32 const AliDetectorRecoParam * /*recoParam*/)
33{
34 // Checks the QA histograms on the input list:
35 //
36 const char* taskName = AliQAv1::GetAliTaskName(index);
37 //printf("\n\tAliZDCQAChecker -> checking QA histos for task %s\n",taskName);
38 //
39 Int_t ihitHisto=0, idigHisto=0;
40 Int_t irecHisto=0, irawHisto=0, esdInd=0;
41
42 for(Int_t specie = 0; specie<AliRecoParam::kNSpecies; specie++){
43 Int_t count = 0;
44 if(!AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(specie)))
45 continue ;
46 //printf("\tAliZDCQAChecker -> specie %d, AliRecoParam::ConvertIndex(specie) %d, AliRecoParam::kLowMult %d, IsEventSpecieSet(specie) %d\n",
47 // specie, AliRecoParam::ConvertIndex(specie) ,AliRecoParam::kLowMult,
48 // AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(specie)));
49
50 // ====================================================================
51 // Checks for p-p events
52 // ====================================================================
53 if(AliRecoParam::ConvertIndex(specie) == AliRecoParam::kLowMult){
54 if(list[specie]->GetEntries()==0){
55 AliWarning("\t The list to be checked is empty!"); // nothing to check
56 return;
57 }
58 //AliDebug(AliQAv1::GetQADebugLevel(), Form("\n\tAliZDCQAChecker-> checking QA histograms for task %s\n\n",taskName));
59 TIter next(list[specie]);
60 count = 0;
61 TH1 * hdata;
62
63 Float_t res=0., percentageDiff=0.30;
64 Float_t meanZNA=0., meanZNC=0., meanZPA=0., meanZPC=0.;
65 Float_t pmCZNA=0., pmCZNC=0., pmCZPA=0., pmCZPC=0.;
66 Float_t pmQZNA=0., pmQZNC=0., pmQZPA=0., pmQZPC=0.;
67 Float_t sumADCZNA=0., sumADCZNC=0., sumADCZPA=0., sumADCZPC=0.;
68 Float_t adcCZNA=0., adcCZNC=0., adcCZPA=0., adcCZPC=0.;
69 Float_t adcQZNA=0., adcQZNC=0., adcQZPA=0., adcQZPC=0.;
70
71 while((hdata = dynamic_cast<TH1 *>(next()))){
72 if(hdata){
73 // -------------------------------------------------------------------
74 if(index == AliQAv1::kSIM){
75 //AliDebug(AliQAv1::GetQADebugLevel(), Form("\tAliZDCQAChecker-> checking histo %s",hdata->GetName()));
76 // Check HITS histos
77 //
78 if(!(strncmp(hdata->GetName(),"hHits",5))){
79 if(hdata->GetEntries()>0){
80 if(ihitHisto==0) meanZNC = hdata->GetMean();
81 else if(ihitHisto==1) meanZNA = hdata->GetMean();
82 else if(ihitHisto==2) meanZPC = hdata->GetMean();
83 else if(ihitHisto==3) meanZPA = hdata->GetMean();
84 else if(ihitHisto==4) pmQZNC = hdata->GetMean();
85 else if(ihitHisto==5) pmQZNA = hdata->GetMean();
86 else if(ihitHisto==6) pmQZPC = hdata->GetMean();
87 else if(ihitHisto==7) pmQZPA = hdata->GetMean();
88 else if(ihitHisto==8) pmCZNC = hdata->GetMean();
89 else if(ihitHisto==9) pmCZNA = hdata->GetMean();
90 else if(ihitHisto==10) pmCZPC = hdata->GetMean();
91 else if(ihitHisto==11) pmCZPA = hdata->GetMean();
92 }
93 //
94 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
95 if(ihitHisto==11){
96 if(TMath::Abs(meanZNC)>1.e-10){
97 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
98 res=1.;
99 else
100 res=.5;
101 test[specie] += res;
102 count++;
103 }
104 if(TMath::Abs(meanZNA)>1.e-10){
105 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
106 res=1.;
107 else percentageDiff=
108 res=.5;
109 test[specie] += res;
110 count++;
111 }
112 if(TMath::Abs(meanZPC)>1.e-10){
113 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
114 res=1.;
115 else
116 res=.5;
117 test[specie] += res;
118 count++;
119 }
120 if(TMath::Abs(meanZPA)>1.e-10){
121 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
122 res=1.;
123 else
124 res=.5;
125 test[specie] += res;
126 count++;
127 }
128 }
129 ihitHisto++;
130 }
131 // Check DIGIT HIGH GAIN CHAIN histos
132 else if(!(strncmp(hdata->GetName(),"hDig",4))){
133 if(hdata->GetEntries()>0){
134 if(idigHisto==0) sumADCZNC = hdata->GetMean();
135 else if(idigHisto==1) sumADCZNA = hdata->GetMean();
136 else if(idigHisto==2) sumADCZPC = hdata->GetMean();
137 else if(idigHisto==3) sumADCZPA = hdata->GetMean();
138 else if(idigHisto==4) pmQZNC = hdata->GetMean();
139 else if(idigHisto==5) pmQZNA = hdata->GetMean();
140 else if(idigHisto==6) pmQZPC = hdata->GetMean();
141 else if(idigHisto==7) pmQZPA = hdata->GetMean();
142 else if(idigHisto==8) pmCZNC = hdata->GetMean();
143 else if(idigHisto==9) pmCZNA = hdata->GetMean();
144 else if(idigHisto==10) pmCZPC = hdata->GetMean();
145 else if(idigHisto==11) pmCZPA = hdata->GetMean();
146 }
147 //
148 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
149 if(idigHisto==11){
150 if(TMath::Abs(sumADCZNC)>1.e-10){
151 if((TMath::Abs(adcQZNC-adcCZNC)/adcCZNC)<percentageDiff)
152 res=1.;
153 else
154 res=.5;
155 test[specie] += res;
156 count++;
157 }
158 if(TMath::Abs(sumADCZNA)>1.e-10){
159 if((TMath::Abs(adcQZNA-adcCZNA)/adcCZNA)<percentageDiff)
160 res=1.;
161 else
162 res=.5;
163 test[specie] += res;
164 count++;
165 }
166 if(TMath::Abs(sumADCZPC)>1.e-10){
167 if((TMath::Abs(adcQZPC-adcCZPC)/adcCZPC)<percentageDiff)
168 res=1.;
169 else
170 res=.5;
171 test[specie] += res;
172 count++;
173 }
174 if(TMath::Abs(sumADCZPA)>1.e-10){
175 if((TMath::Abs(adcQZPA-adcCZPA)/adcCZPA)<percentageDiff)
176 res=1.;
177 else
178 res=.5;
179 test[specie] += res;
180 count++;
181 }
182 }
183 idigHisto++;
184 }
185 }
186 // -------------------------------------------------------------------
187 else if(index == AliQAv1::kRAW) {
188 //
189 // Check RAW HIGH GAIN CHAIN histos
190 if(hdata->GetEntries()>0){
191 if(irawHisto==0) sumADCZNC = hdata->GetMean();
192 else if(irawHisto==1) sumADCZNA = hdata->GetMean();
193 else if(irawHisto==2) sumADCZPC = hdata->GetMean();
194 else if(irawHisto==3) sumADCZPA = hdata->GetMean();
195 else if(irawHisto==6) adcQZNC = hdata->GetMean();
196 else if(irawHisto==7) adcQZNA = hdata->GetMean();
197 else if(irawHisto==8) adcQZPC = hdata->GetMean();
198 else if(irawHisto==9) adcQZPA = hdata->GetMean();
199 else if(irawHisto==10) adcCZNC = hdata->GetMean();
200 else if(irawHisto==11) adcCZNA = hdata->GetMean();
201 else if(irawHisto==12) adcCZPC = hdata->GetMean();
202 else if(irawHisto==13) adcCZPA = hdata->GetMean();
203 }
204 //
205 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
206 if(irawHisto==13){
207 if(TMath::Abs(sumADCZNC)>1.e-10){
208 if((TMath::Abs(adcQZNC-adcCZNC)/adcCZNC)<percentageDiff)
209 res=1.;
210 else
211 res=.5;
212 test[specie] += res;
213 count++;
214 }
215 if(TMath::Abs(sumADCZNA)>1.e-10){
216 if((TMath::Abs(adcQZNA-adcCZNA)/adcCZNA)<percentageDiff)
217 res=1.;
218 else
219 res=.5;
220 test[specie] += res;
221 count++;
222 }
223 if(TMath::Abs(sumADCZPC)>1.e-10){
224 if((TMath::Abs(adcQZPC-adcCZPC)/adcCZPC)<percentageDiff)
225 res=1.;
226 else
227 res=.5;
228 test[specie] += res;
229 count++;
230 }
231 if(TMath::Abs(sumADCZPA)>1.e-10){
232 if((TMath::Abs(adcQZPA-adcCZPA)/adcCZPA)<percentageDiff)
233 res=1.;
234 else
235 res=.5;
236 test[specie] += res;
237 count++;
238 }
239 }
240 irawHisto++;
241 }
242 // -------------------------------------------------------------------
243 else if(index == AliQAv1::kREC) {
244 //
245 // Check REC HIGH GAIN CHAIN histos
246 if(hdata->GetEntries()>0){
247 if(irecHisto==0) meanZNC = hdata->GetMean();
248 else if(irecHisto==1) meanZNA = hdata->GetMean();
249 else if(irecHisto==2) meanZPC = hdata->GetMean();
250 else if(irecHisto==3) meanZPA = hdata->GetMean();
251 else if(irecHisto==4) pmQZNC = hdata->GetMean();
252 else if(irecHisto==5) pmQZNA = hdata->GetMean();
253 else if(irecHisto==6) pmQZPC = hdata->GetMean();
254 else if(irecHisto==7) pmQZPA = hdata->GetMean();
255 else if(irecHisto==8) pmCZNC = hdata->GetMean();
256 else if(irecHisto==9) pmCZNA = hdata->GetMean();
257 else if(irecHisto==10) pmCZPC = hdata->GetMean();
258 else if(irecHisto==11) pmCZPA = hdata->GetMean();
259 }
260 //
261 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
262 if(irecHisto==11){
263 if(TMath::Abs(meanZNC)>1.e-10){
264 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
265 res=1.;
266 else
267 res=.5;
268 test[specie] += res;
269 count++;
270 }
271 if(TMath::Abs(meanZNA)>1.e-10){
272 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
273 res=1.;
274 else
275 res=.5;
276 test[specie] += res;
277 count++;
278 }
279 if(TMath::Abs(meanZPC)>1.e-10){
280 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
281 res=1.;
282 else
283 res=.5;
284 test[specie] += res;
285 count++;
286 }
287 if(TMath::Abs(meanZPA)>1.e-10){
288 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
289 res=1.;
290 else
291 res=.5;
292 test[specie] += res;
293 count++;
294 }
295 }
296 irecHisto++;
297 }
298 // -------------------------------------------------------------------
299 else if(index == AliQAv1::kESD) {
300 //
301 // Check ESD HIGH GAIN CHAIN histos
302 if(hdata->GetEntries()>0){
303 if(esdInd==2) sumADCZNC = hdata->GetMean();
304 else if(esdInd==3) sumADCZNA = hdata->GetMean();
305 else if(esdInd==4) sumADCZPC = hdata->GetMean();
306 else if(esdInd==5) sumADCZPA = hdata->GetMean();
307 else if(esdInd==8) pmQZNC = hdata->GetMean();
308 else if(esdInd==9) pmQZNA = hdata->GetMean();
309 else if(esdInd==10) pmQZPC = hdata->GetMean();
310 else if(esdInd==11) pmQZPA = hdata->GetMean();
311 else if(esdInd==12) pmCZNC = hdata->GetMean();
312 else if(esdInd==13) pmCZNA = hdata->GetMean();
313 else if(esdInd==14) pmCZPC = hdata->GetMean();
314 else if(esdInd==15) pmCZPA = hdata->GetMean();
315 }
316 //
317 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
318 if(esdInd==15){
319 if(TMath::Abs(sumADCZNC)>1.e-10){
320 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
321 res=1.;
322 else
323 res=.5;
324 test[specie] += res;
325 count++;
326 }
327 if(TMath::Abs(sumADCZNA)>1.e-10){
328 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
329 res=1.;
330 else
331 res=.5;
332 test[specie] += res;
333 count++;
334 }
335 if(TMath::Abs(sumADCZPC)>1.e-10){
336 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
337 res=1.;
338 else
339 res=.5;
340 test[specie] += res;
341 count++;
342 }
343 if(TMath::Abs(sumADCZPA)>1.e-10){
344 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
345 res=1.;
346 else
347 res=.5;
348 test[specie] += res;
349 count++;
350 }
351 }
352 esdInd++;
353 }
354 else {
355 AliWarning(Form("\n\t No ZDC QA for %s task\n",taskName));
356 return ;
357 }
358 }//if(hdata)
359 else AliError("AliZDCQAChecker-> No histos!!!\n");
360 }
361 } // LowMult (p-p)
362 // ====================================================================
363 // Checks for A-A events
364 // ====================================================================
365 else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kHighMult) {
366 if(list[specie]->GetEntries()==0){
367 AliWarning("\t The list to be checked is empty!");
368 return ;
369 }
370 //AliDebug(AliQAv1::GetQADebugLevel(), Form("\n\tAliZDCQAChecker-> checking QA histograms for task %s\n\n",taskName));
371 //
372 TIter next(list[specie]);
373 count = 0;
374 TH1 * hdata;
375
376 Float_t res=0., percentageDiff=0.10;
377 Float_t meanZNA=0., meanZNC=0., meanZPA=0., meanZPC=0.;
378 Float_t pmCZNA=0., pmCZNC=0., pmCZPA=0., pmCZPC=0.;
379 Float_t pmQZNA=0., pmQZNC=0., pmQZPA=0., pmQZPC=0.;
380 Float_t sumADCZNA=0., sumADCZNC=0., sumADCZPA=0., sumADCZPC=0.;
381 Float_t adcCZNA=0., adcCZNC=0., adcCZPA=0., adcCZPC=0.;
382 Float_t adcQZNA=0., adcQZNC=0., adcQZPA=0., adcQZPC=0.;
383
384 while((hdata = dynamic_cast<TH1 *>(next()))){
385 if(hdata){
386 //AliDebug(AliQAv1::GetQADebugLevel(), Form("\tAliZDCQAChecker-> checking histo %s",hdata->GetName()));
387 // -------------------------------------------------------------------
388 if(index == AliQAv1::kSIM){
389 // Check HITS histos
390 if (!(strncmp(hdata->GetName(),"hHits",5))){
391 if(hdata->GetEntries()>0){
392 if(ihitHisto==0) meanZNC = hdata->GetMean();
393 else if(ihitHisto==1) meanZNA = hdata->GetMean();
394 else if(ihitHisto==2) meanZPC = hdata->GetMean();
395 else if(ihitHisto==3) meanZPA = hdata->GetMean();
396 else if(ihitHisto==4) pmQZNC = hdata->GetMean();
397 else if(ihitHisto==5) pmQZNA = hdata->GetMean();
398 else if(ihitHisto==6) pmQZPC = hdata->GetMean();
399 else if(ihitHisto==7) pmQZPA = hdata->GetMean();
400 else if(ihitHisto==8) pmCZNC = hdata->GetMean();
401 else if(ihitHisto==9) pmCZNA = hdata->GetMean();
402 else if(ihitHisto==10) pmCZPC = hdata->GetMean();
403 else if(ihitHisto==11) pmCZPA = hdata->GetMean();
404 }
405 //
406 // --- Check whether 2*|Mean ZNA - Mean ZNC|/(Mean ZNA + Mean ZNC) < percentageDiff
407 // --- and 2*|Mean ZPA - Mean ZPC|/(Mean ZPA + Mean ZPC) < 2*percentageDiff
408 if(ihitHisto==3){
409 if(TMath::Abs(meanZNC)>1.e-10 && TMath::Abs(meanZNA)>1.e-10){
410 if((2*TMath::Abs(meanZNC-meanZNA)/(meanZNA+meanZNC))<percentageDiff)
411 res=1.;
412 else
413 res=.5;
414 test[specie] += res;
415 count++;
416 }
417 if(TMath::Abs(meanZPC)>1.e-10 && TMath::Abs(meanZPA)>1.e-10){
418 if((TMath::Abs(meanZPC-meanZPA)/(meanZPA+meanZPC))<percentageDiff)
419 res=1.;
420 else
421 res=.5;
422 test[specie] += res;
423 count++;
424 }
425 }
426 // --- Check whether (mean PMQi - PMC)/PMC < percentageDiff
427 if(ihitHisto==11){
428 if(TMath::Abs(meanZNC)>1.e-10){
429 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
430 res=1.;
431 else
432 res=.5;
433 test[specie] += res;
434 count++;
435 }
436 if(TMath::Abs(meanZNA)>1.e-10){
437 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
438 res=1.;
439 else
440 res=.5;
441 test[specie] += res;
442 count++;
443 }
444 if(TMath::Abs(meanZPC)>1.e-10){
445 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
446 res=1.;
447 else
448 res=.5;
449 test[specie] += res;
450 count++;
451 }
452 if(TMath::Abs(meanZPA)>1.e-10){
453 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
454 res=1.;
455 else
456 res=.5;
457 test[specie] += res;
458 count++;
459 }
460 }
461 ihitHisto++;
462 }
463 // Check DIGITS histos
464 else if (!(strncmp(hdata->GetName(),"hDig",4))){
465 if(hdata->GetEntries()>0){
466 if(idigHisto==0) sumADCZNC = hdata->GetMean();
467 else if(idigHisto==1) sumADCZNA = hdata->GetMean();
468 else if(idigHisto==2) sumADCZPC = hdata->GetMean();
469 else if(idigHisto==3) sumADCZPA = hdata->GetMean();
470 else if(idigHisto==4) adcQZNC = hdata->GetMean();
471 else if(idigHisto==5) adcQZNA = hdata->GetMean();
472 else if(idigHisto==6) adcQZPC = hdata->GetMean();
473 else if(idigHisto==7) adcQZPA = hdata->GetMean();
474 else if(idigHisto==8) adcCZNC = hdata->GetMean();
475 else if(idigHisto==9) adcCZNA = hdata->GetMean();
476 else if(idigHisto==10) adcCZPC = hdata->GetMean();
477 else if(idigHisto==11) adcCZPA = hdata->GetMean();
478 }
479 //
480 // --- Check whether 2*|Mean ZNA - Mean ZNC|/(Mean ZNA + Mean ZNC) < percentageDiff
481 // --- and 2*|Mean ZPA - Mean ZPC|/(Mean ZPA + Mean ZPC) < 2*percentageDiff
482 if(idigHisto==3){
483 if(TMath::Abs(sumADCZNC)>1.e-10 && TMath::Abs(sumADCZNA)>1.e-10){
484 if((2*TMath::Abs(sumADCZNC-sumADCZNA)/(sumADCZNA+sumADCZNC))<percentageDiff)
485 res=1.;
486 else
487 res=.5;
488 test[specie] += res;
489 count++;
490 }
491 if(TMath::Abs(sumADCZPC)>1.e-10 && TMath::Abs(sumADCZPA)>1.e-10){
492 if((TMath::Abs(sumADCZPC-sumADCZPA)/(sumADCZPA+sumADCZPC))<percentageDiff)
493 res=1.;
494 else
495 res=.5;
496 test[specie] += res;
497 count++;
498 }
499 }
500 // --- Check whether (sumADC PMQi - PMC)/PMC < percentageDiff
501 if(idigHisto==11){
502 if(TMath::Abs(sumADCZNC)>1.e-10){
503 if((TMath::Abs(adcQZNC-adcCZNC)/adcCZNC)<percentageDiff)
504 res=1.;
505 else
506 res=.5;
507 test[specie] += res;
508 count++;
509 }
510 if(TMath::Abs(sumADCZNA)>1.e-10){
511 if((TMath::Abs(adcQZNA-adcCZNA)/adcCZNA)<percentageDiff)
512 res=1.;
513 else
514 res=.5;
515 test[specie] += res;
516 count++;
517 }
518 if(TMath::Abs(sumADCZPC)>1.e-10){
519 if((TMath::Abs(adcQZPC-adcCZPC)/adcCZPC)<percentageDiff)
520 res=1.;
521 else
522 res=.5;
523 test[specie] += res;
524 count++;
525 }
526 if(TMath::Abs(sumADCZPA)>1.e-10){
527 if((TMath::Abs(adcQZPA-adcCZPA)/adcCZPA)<percentageDiff)
528 res=1.;
529 else
530 res=.5;
531 test[specie] += res;
532 count++;
533 }
534 }
535 idigHisto++;
536 }
537 }
538 // -------------------------------------------------------------------
539 else if(index == AliQAv1::kRAW){
540 //
541 // Check RAW HIGH GAIN CHAIN histos
542 if(hdata->GetEntries()>0){
543 if(irawHisto==0) sumADCZNC = hdata->GetMean();
544 else if(irawHisto==1) sumADCZNA = hdata->GetMean();
545 else if(irawHisto==2) sumADCZPC = hdata->GetMean();
546 else if(irawHisto==3) sumADCZPA = hdata->GetMean();
547 else if(irawHisto==6) adcQZNC = hdata->GetMean();
548 else if(irawHisto==7) adcQZNA = hdata->GetMean();
549 else if(irawHisto==8) adcQZPC = hdata->GetMean();
550 else if(irawHisto==9) adcQZPA = hdata->GetMean();
551 else if(irawHisto==10) adcCZNC = hdata->GetMean();
552 else if(irawHisto==11) adcCZNA = hdata->GetMean();
553 else if(irawHisto==12) adcCZPC = hdata->GetMean();
554 else if(irawHisto==13) adcCZPA = hdata->GetMean();
555 }
556 //
557 // --- Check whether 2*|Mean ZNA - Mean ZNC|/(Mean ZNA + Mean ZNC) < percentageDiff
558 // --- and 2*|Mean ZPA - Mean ZPC|/(Mean ZPA + Mean ZPC) < 2*percentageDiff
559 if(irawHisto==3){
560 if(TMath::Abs(sumADCZNC)>1.e-10 && TMath::Abs(sumADCZNA)>1.e-10){
561 if((2*TMath::Abs(sumADCZNC-sumADCZNA)/(sumADCZNA+sumADCZNC))<percentageDiff)
562 res=1.;
563 else
564 res=.5;
565 test[specie] += res;
566 count++;
567 }
568 if(TMath::Abs(sumADCZPC)>1.e-10 && TMath::Abs(sumADCZPA)>1.e-10){
569 if((TMath::Abs(sumADCZPC-sumADCZPA)/(sumADCZPA+sumADCZPC))<percentageDiff)
570 res=1.;
571 else
572 res=.5;
573 test[specie] += res;
574 count++;
575 }
576 }
577 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
578 if(irawHisto==13){
579 if(TMath::Abs(sumADCZNC)>1.e-10){
580 if((TMath::Abs(adcQZNC-adcCZNC)/adcCZNC)<percentageDiff)
581 res=1.;
582 else
583 res=.5;
584 test[specie] += res;
585 count++;
586 }
587 if(TMath::Abs(sumADCZNA)>1.e-10){
588 if((TMath::Abs(adcQZNA-adcCZNA)/adcCZNA)<percentageDiff)
589 res=1.;
590 else
591 res=.5;
592 test[specie] += res;
593 count++;
594 }
595 if(TMath::Abs(sumADCZPC)>1.e-10){
596 if((TMath::Abs(adcQZPC-adcCZPC)/adcCZPC)<percentageDiff)
597 res=1.;
598 else
599 res=.5;
600 test[specie] += res;
601 count++;
602 }
603 if(TMath::Abs(sumADCZPA)>1.e-10){
604 if((TMath::Abs(adcQZPA-adcCZPA)/adcCZPA)<percentageDiff)
605 res=1.;
606 else
607 res=.5;
608 test[specie] += res;
609 count++;
610 }
611 }
612 irawHisto++;
613 }
614 // -------------------------------------------------------------------
615 else if(index == AliQAv1::kREC){
616 //
617 // Check RAW HIGH GAIN CHAIN histos
618 if(hdata->GetEntries()>0){
619 if(irecHisto==0) meanZNC = hdata->GetMean();
620 else if(irecHisto==1) meanZNA = hdata->GetMean();
621 else if(irecHisto==2) meanZPC = hdata->GetMean();
622 else if(irecHisto==3) meanZPA = hdata->GetMean();
623 else if(irecHisto==4) pmQZNC = hdata->GetMean();
624 else if(irecHisto==5) pmQZNA = hdata->GetMean();
625 else if(irecHisto==6) pmQZPC = hdata->GetMean();
626 else if(irecHisto==7) pmQZPA = hdata->GetMean();
627 else if(irecHisto==8) pmCZNC = hdata->GetMean();
628 else if(irecHisto==9) pmCZNA = hdata->GetMean();
629 else if(irecHisto==10) pmCZPC = hdata->GetMean();
630 else if(irecHisto==11) pmCZPA = hdata->GetMean();
631 }
632 //
633 // --- Check whether 2*|Mean ZNA - Mean ZNC|/(Mean ZNA + Mean ZNC) < percentageDiff
634 // --- and 2*|Mean ZPA - Mean ZPC|/(Mean ZPA + Mean ZPC) < 2*percentageDiff
635 if(irecHisto==3){
636 if(TMath::Abs(meanZNC)>1.e-10 && TMath::Abs(meanZNA)>1.e-10){
637 if((2*TMath::Abs(meanZNC-meanZNA)/(meanZNA+meanZNC))<percentageDiff)
638 res=1.;
639 else
640 res=.5;
641 test[specie] += res;
642 count++;
643 }
644 if(TMath::Abs(meanZPC)>1.e-10 && TMath::Abs(meanZPA)>1.e-10){
645 if((TMath::Abs(meanZPC-meanZPA)/(meanZPA+meanZPC))<percentageDiff)
646 res=1.;
647 else
648 res=.5;
649 test[specie] += res;
650 count++;
651 }
652 }
653 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
654 if(irecHisto==11){
655 if(TMath::Abs(meanZNC)>1.e-10){
656 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
657 res=1.;
658 else
659 res=.5;
660 test[specie] += res;
661 count++;
662 }
663 if(TMath::Abs(meanZNA)>1.e-10){
664 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
665 res=1.;
666 else
667 res=.5;
668 test[specie] += res;
669 count++;
670 }
671 if(TMath::Abs(meanZPC)>1.e-10){
672 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
673 res=1.;
674 else
675 res=.5;
676 test[specie] += res;
677 count++;
678 }
679 if(TMath::Abs(meanZPA)>1.e-10){
680 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
681 res=1.;
682 else
683 res=.5;
684 test[specie] += res;
685 count++;
686 }
687 }
688 irecHisto++;
689 }
690 // -------------------------------------------------------------------
691 else if(index == AliQAv1::kESD){
692 //
693 // Check ESD HIGH GAIN CHAIN histos
694 if(hdata->GetEntries()>0){
695 if(esdInd==2) sumADCZNC = hdata->GetMean();
696 else if(esdInd==3) sumADCZNA = hdata->GetMean();
697 else if(esdInd==4) sumADCZPC = hdata->GetMean();
698 else if(esdInd==5) sumADCZPA = hdata->GetMean();
699 else if(esdInd==8) pmQZNC = hdata->GetMean();
700 else if(esdInd==9) pmQZNA = hdata->GetMean();
701 else if(esdInd==10) pmQZPC = hdata->GetMean();
702 else if(esdInd==11) pmQZPA = hdata->GetMean();
703 else if(esdInd==12) pmCZNC = hdata->GetMean();
704 else if(esdInd==13) pmCZNA = hdata->GetMean();
705 else if(esdInd==14) pmCZPC = hdata->GetMean();
706 else if(esdInd==15) pmCZPA = hdata->GetMean();
707 }
708 //
709 // --- Check whether 2*|Mean ZNA - Mean ZNC|/(Mean ZNA + Mean ZNC) < percentageDiff
710 // --- and 2*|Mean ZPA - Mean ZPC|/(Mean ZPA + Mean ZPC) < 2*percentageDiff
711 if(esdInd==5){
712 if(TMath::Abs(sumADCZNC)>1.e-10 && TMath::Abs(sumADCZNA)>1.e-10){
713 if((2*TMath::Abs(sumADCZNC-sumADCZNA)/(sumADCZNA+sumADCZNC))<percentageDiff)
714 res=1.;
715 else
716 res=.5;
717 test[specie] += res;
718 count++;
719 }
720 if(TMath::Abs(sumADCZPC)>1.e-10 && TMath::Abs(sumADCZPA)>1.e-10){
721 if((TMath::Abs(sumADCZPC-sumADCZPA)/(sumADCZPA+sumADCZPC))<percentageDiff)
722 res=1.;
723 else
724 res=.5;
725 test[specie] += res;
726 count++;
727 }
728 }
729 // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
730 if(esdInd==15){
731 if(TMath::Abs(sumADCZNC)>1.e-10){
732 if((TMath::Abs(pmQZNC-pmCZNC)/pmCZNC)<percentageDiff)
733 res=1.;
734 else
735 res=.5;
736 test[specie] += res;
737 count++;
738 }
739 if(TMath::Abs(sumADCZNA)>1.e-10){
740 if((TMath::Abs(pmQZNA-pmCZNA)/pmCZNA)<percentageDiff)
741 res=1.;
742 else
743 res=.5;
744 test[specie] += res;
745 count++;
746 }
747 if(TMath::Abs(sumADCZPC)>1.e-10){
748 if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff)
749 res=1.;
750 else
751 res=.5;
752 test[specie] += res;
753 count++;
754 }
755 if(TMath::Abs(sumADCZPA)>1.e-10){
756 if((TMath::Abs(pmQZPA-pmCZPA)/pmCZPA)<percentageDiff)
757 res=1.;
758 else
759 res=.5;
760 test[specie] += res;
761 count++;
762 }
763 }
764 esdInd++;
765 }
766 else {
767 AliWarning(Form("\n\t No ZDC QA for %s task\n",taskName));
768 return ;
769 }
770 }//if(hdata)
771 else AliError("\t No histos found for ZDC!!!\n");
772 }
773 } // HighMult (Pb-Pb)
774 // ====================================================================
775 // Checks for Calibration events
776 // ====================================================================
777 else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kCalib) {
778 AliWarning(Form("\n\t No check implemented in ZDC QA for %s task\n",taskName));
779 return ;
780 } // Calibration
781 // ====================================================================
782 // Checks for cosmic events
783 // ====================================================================
784 else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kCosmic) {
785 AliWarning(Form("\n\t No check implemented in ZDC QA for %s task\n",taskName));
786 return ;
787 } // Cosmic
788 if(TMath::Abs(count)>1.e-10) test[specie] = test[specie]/count;
789 AliDebug(AliQAv1::GetQADebugLevel(), Form("\n\t ZDC QA check result = %1.2f\n",test[specie]));
790 } // Loop on species
791}