]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFQAChecker.cxx
add un-use functionality to clusters
[u/mrichter/AliRoot.git] / TOF / AliTOFQAChecker.cxx
index 0fde9366fc4a15f54857928e04dcb245dbdb42fc..58f647584445e19b812fd380a6977dcf27b7faee 100644 (file)
 
 /* $Id$ */
 
-/*
-  Checks the quality assurance. 
-  By analysis of the histograms & comparing with reference data
-  S.Arcelli
-*/
+/////////////////////////////////////////////////////////////////////
+//                                                                 //
+//  Checks the quality assurance.                                  //
+//  By analysis of the histograms & comparing with reference data  //
+//  S.Arcelli                                                      //
+//                                                                 //
+/////////////////////////////////////////////////////////////////////
+
+#include "TH1.h"
+#include "TObjArray.h"
+
 #include "AliLog.h"
-#include "AliQA.h"
-#include "AliQAChecker.h"
+//#include "AliQAv1.h"
+//#include "AliQAChecker.h"
+
 #include "AliTOFQAChecker.h"
 
 ClassImp(AliTOFQAChecker)
 
-//__________________________________________________________________
-AliTOFQAChecker& AliTOFQAChecker::operator = (const AliTOFQAChecker& qac )
+//____________________________________________________________________________
+Double_t * AliTOFQAChecker::Check(AliQAv1::ALITASK_t /*index*/, TObjArray ** list) 
 {
-  // Equal operator.
-  this->~AliTOFQAChecker();
-  new(this) AliTOFQAChecker(qac);
-  return *this;
-}
+
+  // Super-basic check on the QA histograms on the input list: 
+  // look whether they are empty!
+
+  Double_t * test  = new Double_t[AliRecoParam::kNSpecies] ; 
+  Int_t count[AliRecoParam::kNSpecies] = { 0 }; 
+
+  for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
+    test[specie] = 1.0 ; 
+    if ( !AliQAv1::Instance()->IsEventSpecieSet(specie) ) 
+      continue ; 
+    if (list[specie]->GetEntries() == 0){  
+      test[specie] = 0.0 ; // nothing to check
+    }
+    else {
+      TIter next(list[specie]) ; 
+      TH1 * hdata ;
+      count[specie] = 0 ; 
+      while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
+        if (hdata) { 
+          Double_t rv = 0.;
+          if(hdata->GetEntries()>0)rv=1; 
+          AliDebug(AliQAv1::GetQADebugLevel(), Form("%s -> %f", hdata->GetName(), rv)) ; 
+          count[specie]++ ; 
+          test[specie] += rv ; 
+        }
+        else{
+          AliError("Data type cannot be processed") ;
+        }
+      }
+      if (count[specie] != 0) { 
+        if (test[specie]==0) {
+          AliWarning("Histograms are there, but they are all empty: setting flag to kWARNING");
+          test[specie] = 0.5;  //upper limit value to set kWARNING flag for a task
+        }
+        else {
+        test[specie] /= count[specie] ;
+        }
+        AliDebug(AliQAv1::GetQADebugLevel(), Form("Test Result = %f", test[specie])) ; 
+      }
+    }
+  }
+  return test ; 
+}  
+
+