added the notion of expert QA data
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Aug 2008 19:44:40 +0000 (19:44 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Aug 2008 19:44:40 +0000 (19:44 +0000)
STEER/AliCorrQADataMakerRec.cxx
STEER/AliQA.cxx
STEER/AliQA.h
STEER/AliQADataMaker.cxx
STEER/AliQADataMaker.h
STEER/AliQADataMakerRec.cxx
STEER/AliQADataMakerRec.h
STEER/AliQADataMakerSim.cxx
STEER/AliQADataMakerSim.h

index 776b2ee..2a5d16a 100644 (file)
@@ -42,7 +42,7 @@ ClassImp(AliCorrQADataMakerRec)
            
 //____________________________________________________________________________ 
 AliCorrQADataMakerRec::AliCorrQADataMakerRec(AliQADataMaker ** qadm ) : 
-  AliQADataMakerRec("Corr", "Corr Quality Assurance Data Maker"),
+AliQADataMakerRec(AliQA::GetDetName(AliQA::kCORR), "Corr Quality Assurance Data Maker"),
   fMaxRawVar(0),  
   fqadm(qadm)
 {
index a53bbad..b6b6aa9 100644 (file)
@@ -76,6 +76,7 @@ const TString AliQA::fkgQACorrNtName     = "CorrQA" ;
 const TString AliQA::fkgRefOCDBDirName   = "Ref"  ; 
 TString AliQA::fkgRefDataDirName        = ""  ; 
 const TString AliQA::fkgQARefOCDBDefault = "alien://folder=/alice/QA/20"  ; 
+const TString AliQA::fkgExpert                  = "QAExpErT" ; 
 
 //____________________________________________________________________________
 AliQA::AliQA() : 
index 63573ce..257f2d2 100644 (file)
@@ -50,6 +50,7 @@ public:
        const Bool_t           CheckFatal() const ;
        static void            Close() ; 
        static const char *    GetAliTaskName(ALITASK_t tsk) ;
+  static const TString   GetExpert() { return fkgExpert ; }
        static const TString   GetLabLocalFile() { return fkgLabLocalFile ; } 
        static const TString   GetLabLocalOCDB() { return fkgLabLocalOCDB ; } 
        static const TString   GetLabAliEnOCDB() { return fkgLabAliEnOCDB ; } 
@@ -123,6 +124,7 @@ private:
        static TString       fgQAResultFileName     ; //! the output file where the QA results are stored  
        static TString       fgRTNames[]                  ; //! list of Run Type names   
        static TString       fgTaskNames[]              ; //! list of tasks names   
+  static const TString fkgExpert              ; //! name for the expert directory
        static const TString fkgLabLocalFile        ; //! label to identify a file as local 
        static const TString fkgLabLocalOCDB        ; //! label to identify a file as local OCDB 
        static const TString fkgLabAliEnOCDB        ; //! label to identify a file as AliEn OCDB 
index 7d48e30..9a08428 100644 (file)
@@ -75,7 +75,7 @@ AliQADataMaker::AliQADataMaker(const AliQADataMaker& qadm) :
 }
 
 //____________________________________________________________________________
-Int_t AliQADataMaker::Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t saveForCorr) 
+Int_t AliQADataMaker::Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t expert, const Bool_t saveForCorr) 
 { 
        // Set histograms memory resident and add to the list
        // Maximm allowed is 10000
@@ -89,6 +89,11 @@ Int_t AliQADataMaker::Add2List(TH1 * hist, const Int_t index, TObjArray * list,
                return -1 ; 
        } else {
                hist->SetDirectory(0) ; 
+    if (expert) {
+      TString name(hist->GetTitle()) ; 
+      name.Append(AliQA::GetExpert()) ; 
+      hist->SetTitle(name) ;
+    }
                list->AddAtAndExpand(hist, index) ; 
     char * name = Form("%s_%s", list->GetName(), hist->GetName()) ;  
     TParameter<double> * p = new TParameter<double>(name, 9999.9999) ;
index f28ee34..320ef2f 100644 (file)
@@ -40,12 +40,12 @@ public:
        AliQADataMaker(const AliQADataMaker& qadm) ;   
        virtual ~AliQADataMaker() {} // dtor
   
-       virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index)          = 0 ; 
-       virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index)            = 0 ; 
-       virtual Int_t Add2HitsList(TH1 * hist, const Int_t index)            = 0 ; 
-       virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index)       = 0 ; 
-       virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t saveForCorr = kFALSE)            = 0 ; 
-       virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index)         = 0 ; 
+       virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)          = 0 ; 
+       virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)            = 0 ; 
+       virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)            = 0 ; 
+       virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)       = 0 ; 
+       virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE)            = 0 ; 
+       virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)         = 0 ; 
        virtual void        Exec(AliQA::TASKINDEX_t, TObject * data)         = 0 ;
        virtual void        EndOfCycle()                                     = 0 ;
        virtual void        EndOfCycle(AliQA::TASKINDEX_t)                   = 0 ;
@@ -71,7 +71,7 @@ public:
          
 protected: 
 
-       Int_t          Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t saveForCorr = kFALSE) ;
+       Int_t          Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE) ;
        virtual void   DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t task ) ; 
        virtual void   EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray * obj ) = 0 ; 
        TObject *      GetData(TObjArray * list, const Int_t index) ;
index 72bd9cc..c19ee37 100644 (file)
@@ -129,9 +129,31 @@ void AliQADataMakerRec::EndOfCycle(AliQA::TASKINDEX_t task)
                subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ; 
        if ( subDir ) {
                subDir->cd() ; 
-               if (list) 
-                       list->Write() ;
-    if (fObject) {
+               if (list) {
+      TIter next(list) ; 
+      TH1 * obj ; 
+      while ( (obj = dynamic_cast<TH1 *>(next())) ) {
+        TString name(obj->GetTitle()) ;
+        if (!name.Contains(AliQA::GetExpert())) {
+          obj->Write() ;
+        }
+      }
+      TDirectory * expertDir = subDir->GetDirectory(AliQA::GetExpert()) ; 
+      if ( expertDir ) {
+        expertDir->cd() ;
+        next.Reset() ; 
+        while ( (obj = dynamic_cast<TH1 *>(next())) ) {
+          TString name(obj->GetTitle()) ;
+          if (!name.Contains(AliQA::GetExpert())) 
+            continue ; 
+          name.ReplaceAll(AliQA::GetExpert(), "") ;
+          obj->SetTitle(name) ; 
+          obj->Write() ;
+        }      
+      }
+    }
+    if (fObject && GetName() == AliQA::kCORR) {
+      subDir->cd() ; 
       fObject->Write() ; 
     }
        }
@@ -254,7 +276,13 @@ void AliQADataMakerRec::StartOfCycle(AliQA::TASKINDEX_t task, Int_t run, const B
        TDirectory * subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ; 
        if (!subDir)
                subDir = fDetectorDir->mkdir(AliQA::GetTaskName(task)) ;  
+  TDirectory * expertDir = subDir->GetDirectory(AliQA::GetExpert()) ; 
+  if (!expertDir)
+    expertDir = subDir->mkdir(AliQA::GetExpert()) ; 
+  
        subDir->cd() ; 
+  
 
        StartOfDetectorCycle() ; 
 }
index ba4d7ec..664f781 100644 (file)
@@ -30,12 +30,12 @@ public:
        AliQADataMakerRec& operator = (const AliQADataMakerRec& qadm) ;
        virtual ~AliQADataMakerRec() ; // dtor
   
-       virtual Int_t Add2DigitsList(TH1 * /*hist*/, const Int_t /*index*/)    { return -1 ; } 
-       virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index)  { return Add2List(hist, index, fESDsQAList) ; }
-       virtual Int_t Add2HitsList(TH1 * /*hist*/, const Int_t /*index*/)       { return -1 ; }  
-       virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index)  { return Add2List(hist, index, fRecPointsQAList) ; }
-       virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t saveForCorr = kFALSE)  { return Add2List(hist, index, fRawsQAList, saveForCorr) ; }
-       virtual Int_t Add2SDigitsList(TH1 * /*hist*/, const Int_t /*index*/)   { return -1 ; } 
+       virtual Int_t Add2DigitsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/)    { return -1 ; } 
+       virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)  { return Add2List(hist, index, fESDsQAList, expert) ; }
+       virtual Int_t Add2HitsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/)       { return -1 ; }  
+       virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)  { return Add2List(hist, index, fRecPointsQAList, expert) ; }
+       virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE)  { return Add2List(hist, index, fRawsQAList, expert, saveForCorr) ; }
+       virtual Int_t Add2SDigitsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/)   { return -1 ; } 
        virtual void        Exec(AliQA::TASKINDEX_t task, TObject * data) ;
        virtual void        EndOfCycle() ;
        virtual void        EndOfCycle(AliQA::TASKINDEX_t task) ;
index 598e427..369bc87 100644 (file)
@@ -117,8 +117,30 @@ void AliQADataMakerSim::EndOfCycle(AliQA::TASKINDEX_t task)
        TDirectory * subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ; 
        if (subDir) { 
                subDir->cd() ; 
-               list->Write() ; 
-       }
+    TIter next(list) ; 
+    TH1 * obj ; 
+    while ( (obj = dynamic_cast<TH1 *>(next())) ) {
+      TString name(obj->GetTitle()) ;
+      if (name.Contains(AliQA::GetExpert())) {
+        name.ReplaceAll(AliQA::GetExpert(), "") ;
+        obj->SetTitle(name) ; 
+        obj->Write() ;
+      }
+    }
+    TDirectory * expertDir = subDir->GetDirectory(AliQA::GetExpert()) ; 
+    if ( expertDir ) {
+      expertDir->cd() ;
+      next.Reset() ; 
+      while ( (obj = dynamic_cast<TH1 *>(next())) ) {
+        TString name(obj->GetTitle()) ;
+        if (name.Contains(AliQA::GetExpert())) 
+          continue ; 
+        name.ReplaceAll(AliQA::GetExpert(), "") ;
+        obj->SetTitle(name) ; 
+        obj->Write() ;
+      }      
+    }
+  }
   ResetCycle() ; 
 }
  
@@ -255,6 +277,11 @@ void AliQADataMakerSim::StartOfCycle(AliQA::TASKINDEX_t task, Int_t run, const B
        TDirectory * subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ; 
        if (!subDir)
                subDir = fDetectorDir->mkdir(AliQA::GetTaskName(task)) ;  
+  
+  TDirectory * expertDir = subDir->GetDirectory(AliQA::GetExpert()) ; 
+  if (!expertDir)
+    expertDir = subDir->mkdir(AliQA::GetExpert()) ; 
+
        subDir->cd() ; 
          
        StartOfDetectorCycle() ; 
index 5f1d1f8..4b81917 100644 (file)
@@ -28,12 +28,12 @@ public:
        AliQADataMakerSim& operator = (const AliQADataMakerSim& qadm) ;
        virtual ~AliQADataMakerSim() ; // dtor
   
-       virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index)    { return Add2List(hist, index, fDigitsQAList) ; }
-       virtual Int_t Add2ESDsList(TH1 * /*hist*/, const Int_t /*index*/)      { return -1 ; } 
-       virtual Int_t Add2HitsList(TH1 * hist, const Int_t index)      { return Add2List(hist, index, fHitsQAList) ; }
-       virtual Int_t Add2RecPointsList(TH1 * /*hist*/, const Int_t /*index*/) { return -1 ; } 
-       virtual Int_t Add2RawsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t saveForCorr = kFALSE)      { return -1 ; }  
-       virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index)   { return Add2List(hist, index, fSDigitsQAList) ; }
+       virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)    { return Add2List(hist, index, fDigitsQAList, expert) ; }
+       virtual Int_t Add2ESDsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/)      { return -1 ; } 
+       virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)      { return Add2List(hist, index, fHitsQAList, expert) ; }
+       virtual Int_t Add2RecPointsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/) { return -1 ; } 
+       virtual Int_t Add2RawsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*saveForCorr = kFALSE*/)      { return -1 ; }  
+       virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE)   { return Add2List(hist, index, fSDigitsQAList, expert) ; }
        virtual void        Exec(AliQA::TASKINDEX_t task, TObject * data) ;
        virtual void        EndOfCycle() ;
        virtual void        EndOfCycle(AliQA::TASKINDEX_t task) ;