added merging for QA
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2008 13:18:28 +0000 (13:18 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2008 13:18:28 +0000 (13:18 +0000)
STEER/AliQA.cxx
STEER/AliQA.h
STEER/AliQADataMakerSteer.h

index 198805cf19e967208d8189e4de7e20cef9a43f65..0781d0f57423269a1876e323f23117812aafab55 100644 (file)
@@ -244,6 +244,7 @@ const char * AliQA::GetAliTaskName(ALITASK_t tsk)
        }
        return tskName.Data() ;
 }
+
 //_______________________________________________________________
 const char * AliQA::GetBitName(QABIT_t bit) const
 {
@@ -534,6 +535,26 @@ AliQA *  AliQA::Instance(const TASKINDEX_t tsk)
        return Instance(index) ; 
 }
 
+//_______________________________________________________________
+void AliQA::Merge(TCollection * list) {
+       // Merge the QA resuls in the list into this single AliQA object
+       
+       for (Int_t det = 0 ; det < kNDET ; det++) {
+               Set(DETECTORINDEX_t(det)) ; 
+               for (Int_t task = 0 ; task < kNTASK ; task++) {
+                       Set(ALITASK_t(task)) ; 
+                       for (Int_t bit = 0 ; bit < kNBIT ; bit++) {
+                               TIter next(list) ;
+                               AliQA * qa ; 
+                               while ( (qa = (AliQA*)next() ) ) {
+                                       qa->IsSet(DETECTORINDEX_t(det), ALITASK_t(task), QABIT_t(bit)) ;
+                                       Set(QABIT_t(bit)) ; 
+                               } // qa list
+                       } // bit
+               } // task
+       } // detector
+}
+
 //_______________________________________________________________
 const ULong_t AliQA::Offset(ALITASK_t tsk) const
 {
index 3bee309d97c72cd06c309a8c30c82531fe8fba91..770040d121d34c29e5eca5d5407e2e5d26a3638b 100644 (file)
@@ -76,6 +76,7 @@ public:
        const Bool_t           IsSet(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) const ;
        const Bool_t           IsSetAny(DETECTORINDEX_t det, ALITASK_t tsk) const ;
        const Bool_t           IsSetAny(DETECTORINDEX_t det) const ;
+       void                   Merge(TCollection * list) ; 
        void                   Set(QABIT_t bit) ;
        static void                            SetQAResultDirName(const char * name) ; 
        static void            SetQARefStorage(const char * name) ; 
index e4bd64c8555a5aff484d72f8cdd35416b55892a0..ecd26dcaee164897d3c02c9cfe2ab94eb0c30580 100644 (file)
@@ -44,14 +44,14 @@ public:
        TObjArray * GetFromOCDB(AliQA::DETECTORINDEX_t det, AliQA::TASKINDEX_t task, const char * year) const ; 
        AliQADataMaker * GetQADataMaker(const Int_t iDet) ; 
        void        InitQADataMaker(UInt_t run, const AliRecoParam & par, Bool_t sameCycle, Bool_t startOption=kTRUE, TObjArray * detArray=0x0) ; 
-       Bool_t      Merge(const Int_t runNumber = -1) const ;  
+       Bool_t      Merge(const Int_t runNumber = -1 ) const ;  
        void        Reset(const Bool_t sameCycle = kFALSE) ;  
        TString     Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex=AliQA::kNULLTASKINDEX, Bool_t const sameCycle = kFALSE, const char * fileName = NULL) ; 
        TString     Run(const char * detectors, AliRawReader * rawReader, Bool_t const sameCycle = kFALSE) ; 
        TString     Run(const char * detectors, const char * filename, Bool_t const sameCycle = kFALSE) ;
        void        RunOneEvent(AliRawReader * rawReader) ; 
-       void                            RunOneEventInOneDetector(Int_t det, TTree * tree) ; 
-       void                            RunOneEvent(AliESDEvent *& esd)  ;
+       void        RunOneEventInOneDetector(Int_t det, TTree * tree) ; 
+       void        RunOneEvent(AliESDEvent *& esd)  ;
        Bool_t      Save2OCDB(const Int_t runNumber, const char * year = "08", const Int_t cycleNumber=0, const char * detectors = "ALL") const ; 
        void        SetActiveDetectors(TString aDet) { fDetectors = aDet ;  }
        void        SetCycleLength(const AliQA::DETECTORINDEX_t det, const Int_t cycle) { fQACycles[det] = cycle ; }
@@ -65,17 +65,19 @@ public:
 
 private: 
        Bool_t                       DoIt(const AliQA::TASKINDEX_t taskIndex) ;
-       AliLoader      * GetLoader(Int_t iDet) ; 
-       const Int_t      GetQACycles(const Int_t iDet) { return fQACycles[iDet] ; }
+       AliLoader   * GetLoader(Int_t iDet) ; 
+       const Int_t   GetQACycles(const Int_t iDet) { return fQACycles[iDet] ; }
        Bool_t                       Init(const AliQA::TASKINDEX_t taskIndex, const  char * fileName = NULL) ;
-       Bool_t           InitRunLoader() ; 
-       Bool_t           IsSelected(const char * detName)  ;
-       Bool_t           Finish(const AliQA::TASKINDEX_t taskIndex) ;
-       Bool_t           SaveIt2OCDB(const Int_t runNumber, TFile * inputFile, const char * year) const ;  
+       Bool_t        InitRunLoader() ; 
+       Bool_t        IsSelected(const char * detName)  ;
+       Bool_t        Finish(const AliQA::TASKINDEX_t taskIndex) ;
+       Bool_t        MergeData(const Int_t runNumber) const ;  
+       Bool_t        MergeResults(const Int_t runNumber) const ;  
+       Bool_t        SaveIt2OCDB(const Int_t runNumber, TFile * inputFile, const char * year) const ;  
 
  
        UInt_t             fCurrentEvent ;                 //! event counter
-       Bool_t                         fCycleSame ;                    //! true if 2 consecutive data making for a same detector   
+       Bool_t                         fCycleSame ;                    //! true if 2 consecutive data making for a same detector   
        TString            fDetectors ;                    //! list of active detectors 
        TString            fDetectorsW ;                   //! list of active detectors with QA implemented 
        AliESDEvent *      fESD ;                          //! current ESD