1 /**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 // *****************************************
19 // Checks the quality assurance
20 // by comparing with reference data
21 // W.Ferrarese P.Cerello Mag 2008
24 // --- ROOT system ---
26 #include <Riostream.h>
28 // --- AliRoot header files ---
29 #include "AliITSQAChecker.h"
30 #include "AliITSQASPDChecker.h"
31 #include "AliITSQASDDChecker.h"
32 #include "AliITSQASSDChecker.h"
34 ClassImp(AliITSQAChecker)
36 //____________________________________________________________________________
37 AliITSQAChecker::AliITSQAChecker(Bool_t kMode, Short_t subDet, Short_t ldc) :
38 AliQACheckerBase("ITS","SDD Quality Assurance Checker"),
45 fSPDChecker(0), // SPD Checker
46 fSDDChecker(0), // SDD Checker
47 fSSDChecker(0) // SSD Checker
49 fkOnline = kMode; fDet = subDet; fLDC = ldc;
50 if(fDet == 0 || fDet == 1) {
51 AliDebug(1,"AliITSQAChecker::Create SPD Checker\n");
53 if(fDet == 0 || fDet == 2) {
54 AliDebug(1,"AliITSQAChecker::Create SDD Checker\n");
56 if(fDet == 0 || fDet == 3) {
57 AliDebug(1,"AliITSQAChecker::Create SSD Checker\n");
62 //__________________________________________________________________
63 AliITSQAChecker& AliITSQAChecker::operator = (const AliITSQAChecker& qac )
66 this->~AliITSQAChecker();
67 new(this) AliITSQAChecker(qac);
71 //____________________________________________________________________________
72 const Double_t AliITSQAChecker::Check(AliQA::ALITASK_t index, TObjArray * list)
75 // Super-basic check on the QA histograms on the input list:
76 // look whether they are empty!
77 Double_t spdCheck, sddCheck, ssdCheck;
79 if(fDet == 0 || fDet == 1) {
80 AliDebug(1,"AliITSQAChecker::Create SPD Checker\n");
82 fSPDChecker = new AliITSQASPDChecker();
84 fSPDChecker->SetTaskOffset(fSPDOffset);
85 spdCheck = fSPDChecker->Check(index, list);
86 if(spdCheck<retval)retval = spdCheck;
88 if(fDet == 0 || fDet == 2) {
89 AliDebug(1,"AliITSQAChecker::Create SDD Checker\n");
91 fSDDChecker = new AliITSQASDDChecker();
93 fSDDChecker->SetTaskOffset(fSDDOffset);
94 sddCheck = fSDDChecker->Check(index, list);
95 if(sddCheck<retval)retval = sddCheck;
97 if(fDet == 0 || fDet == 3) {
98 AliDebug(1,"AliITSQAChecker::Create SSD Checker\n");
100 fSSDChecker = new AliITSQASSDChecker();
101 AliInfo(Form("Number of monitored objects SSD: %d", list->GetEntries()));
103 fSSDChecker->SetTaskOffset(fSSDOffset);
104 ssdCheck = fSSDChecker->Check(index, list);
105 if(ssdCheck<retval)retval = ssdCheck; }
106 // here merging part for common ITS QA result
108 AliDebug(1,Form("AliITSQAChecker::QAChecker returned value is %f \n",retval));
114 //____________________________________________________________________________
115 void AliITSQAChecker::SetTaskOffset(Int_t SPDOffset, Int_t SDDOffset, Int_t SSDOffset)
117 //Setting the 3 offsets for each task called
118 fSPDOffset = SPDOffset;
119 fSDDOffset = SDDOffset;
120 fSSDOffset = SSDOffset;