]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSQADataMakerRec.cxx
Fixes for bug #49914: Compilation breaks in trunk, and bug #48629: Trunk cannot read...
[u/mrichter/AliRoot.git] / ITS / AliITSQADataMakerRec.cxx
index 5ffeba1677ec23f7c45f726d45700d7928cfc3f4..e80251d9097dc887fb616a79f0f8deecc0fe8b5d 100644 (file)
@@ -34,7 +34,7 @@
 #include "AliITSQASDDDataMakerRec.h"
 #include "AliITSQASSDDataMakerRec.h"
 #include "AliLog.h"
-#include "AliQA.h"
+#include "AliQAv1.h"
 #include "AliQAChecker.h"
 #include "AliITSQAChecker.h"
 #include "AliRawReader.h"
@@ -47,7 +47,7 @@ ClassImp(AliITSQADataMakerRec)
 
 //____________________________________________________________________________ 
 AliITSQADataMakerRec::AliITSQADataMakerRec(Bool_t kMode, Short_t subDet, Short_t ldc) :
-AliQADataMakerRec(AliQA::GetDetName(AliQA::kITS), "ITS Quality Assurance Data Maker"),
+AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kITS), "ITS Quality Assurance Data Maker"),
 fkOnline(kMode),
 fHLTMode(0),
 fSubDetector(subDet),
@@ -121,20 +121,35 @@ void AliITSQADataMakerRec::StartOfDetectorCycle()
 }
 
 //____________________________________________________________________________ 
-void AliITSQADataMakerRec::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list)
+void AliITSQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list)
 {
   // launch the QA checking
-  AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); 
-  if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->EndOfDetectorCycle(task, list);
-  if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->EndOfDetectorCycle(task, list);
-  if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->EndOfDetectorCycle(task, list);
+
+  for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
+    SetEventSpecie(specie) ; 
+    AliDebug(1,"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list[specie])\n"); 
+    if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->EndOfDetectorCycle(task, list[specie]);
+    if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->EndOfDetectorCycle(task, list[specie]);
+    if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->EndOfDetectorCycle(task, list[specie]);
+  
   
-  AliQAChecker *qac = AliQAChecker::Instance();
-  AliITSQAChecker *qacb = (AliITSQAChecker *) qac->GetDetQAChecker(0);
-  if(fSubDetector == 0 ){
-    qacb->SetTaskOffset(fSPDDataMaker->GetOffset(), fSDDDataMaker->GetOffset(), fSSDDataMaker->GetOffset()); //Setting the offset for the QAChecker list
+    AliQAChecker *qac = AliQAChecker::Instance();
+    AliITSQAChecker *qacb = (AliITSQAChecker *) qac->GetDetQAChecker(0);
+    Int_t subdet=GetSubDet();
+    qacb->SetSubDet(subdet);
+    if(subdet== 0 ){
+      qacb->SetTaskOffset(fSPDDataMaker->GetOffset(task), fSDDDataMaker->GetOffset(task), fSSDDataMaker->GetOffset(task)); //Setting the offset for the QAChecker list
+    }
+    else
+      if(subdet!=0){
+       Int_t offset=GetDetTaskOffset(subdet, task);
+       qacb->SetDetTaskOffset(subdet,offset);
+      }
+
+    qac->Run( AliQAv1::kITS , task, list); 
+
   }
-  qac->Run( AliQA::kITS , task, list);  //temporary skipping the checking
 }
 
 //____________________________________________________________________________ 
@@ -367,14 +382,16 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd)
     
     Int_t nclsITS = track->GetNcls(0);
 
-    Bool_t itsrefit=kFALSE,tpcin=kFALSE;
+    Bool_t itsrefit=kFALSE,tpcin=kFALSE,itsin=kFALSE;
     if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE;
     if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcin=kTRUE;     
+    if ((track->GetStatus() & AliESDtrack::kITSin)) itsin=kTRUE;     
     if(nclsITS>=5 && itsrefit) nITSrefit5++;
 
     if(tpcin) {
       GetESDsData(0)->Fill(nclsITS);
-    } else {
+    }
+    if(itsin && !tpcin){
       GetESDsData(2)->Fill(nclsITS);
     }
 
@@ -443,3 +460,31 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd)
 
   return;
 }
+
+//_________________________________________________________________
+Int_t AliITSQADataMakerRec::GetDetTaskOffset(Int_t subdet,AliQAv1::TASKINDEX_t task)
+{
+  switch(subdet)
+    {
+
+      Int_t offset;
+    case 1:
+      offset=fSPDDataMaker->GetOffset(task);
+      return offset;
+      break;
+    case 2:
+      offset=fSDDDataMaker->GetOffset(task);
+      return offset;
+      break;
+    case 3:
+      offset=fSSDDataMaker->GetOffset(task);
+      return offset;
+      break;
+    default:
+      AliWarning("No specific subdetector (SPD, SDD, SSD) selected!! Offset set to zero \n");
+      offset=0;
+      return offset;
+      break;
+    }
+  //return offset;
+}