}
return tskName.Data() ;
}
+
//_______________________________________________________________
const char * AliQA::GetBitName(QABIT_t bit) const
{
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
{
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 ; }
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