/* $Id$ */
-/*
- Base Class:
- Produces the data needed to calculate the quality assurance.
- All data must be mergeable objects.
- Y. Schutz CERN July 2007
-*/
+//
+// Base Class:
+// Produces the data needed to calculate the quality assurance.
+// All data must be mergeable objects.
+// Y. Schutz CERN July 2007
+//
// --- ROOT system ---
class TTree;
class AliESDEvent;
class AliRawReader;
+class AliDetectorRecoParam;
// --- Standard library ---
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) = 0 ;
- virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index) = 0 ;
- virtual void Exec(AliQA::TASKINDEX, TObject * data) = 0 ;
- virtual void EndOfCycle(AliQA::TASKINDEX) = 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 ;
void Finish() const ;
- virtual TH1 * GetDigitsData(const Int_t index) = 0 ;
+ virtual TH1 * GetDigitsData(const Int_t index) = 0 ;
virtual TH1 * GetESDsData(const Int_t index) = 0 ;
virtual TH1 * GetHitsData(const Int_t index) = 0 ;
virtual TH1 * GetRecPointsData(const Int_t index) = 0 ;
virtual TH1 * GetRawsData(const Int_t index) = 0 ;
virtual TH1 * GetSDigitsData(const Int_t index) = 0 ;
const char * GetDetectorDirName() const { return fDetectorDirName.Data() ; }
+ TList * GetParameterList() const { return fParameterList ; }
const Int_t Increment() { return ++fCycleCounter ; }
- virtual TObjArray * Init(AliQA::TASKINDEX, Int_t run, Int_t cycles = -1) = 0 ;
- virtual void Init(AliQA::TASKINDEX, TObjArray * list, Int_t run, Int_t cycles = -1) = 0 ;
+ virtual TObjArray * Init(AliQA::TASKINDEX_t, Int_t cycles = -1) = 0 ;
+ virtual void Init(AliQA::TASKINDEX_t, TObjArray * list, Int_t run, Int_t cycles = -1) = 0 ;
const Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
- void Reset(const Bool_t sameCycle = kTRUE) ;
- void SetCycle(Int_t nevts) { fCycle = nevts ; }
- virtual void StartOfCycle(AliQA::TASKINDEX, const Bool_t sameCycle = kFALSE) = 0 ;
+ void Reset() { fCycleCounter = 0 ; }
+ void SetCycle(Int_t nevts) { fCycle = nevts ; }
+ void SetWriteExpert() { fWriteExpert = kTRUE ; }
+ virtual void StartOfCycle(Int_t run = -1) = 0 ;
+ virtual void StartOfCycle(AliQA::TASKINDEX_t, Int_t run, const Bool_t sameCycle = kFALSE) = 0 ;
+ void UnSetWriteExpert() { fWriteExpert = kFALSE ; }
+ Bool_t WriteExpert() { return fWriteExpert ; }
+ virtual void SetRecoParam(const AliDetectorRecoParam */*param*/) { return; }
+
protected:
- Int_t Add2List(TH1 * hist, const Int_t index, TObjArray * list) ;
- virtual void EndOfDetectorCycle(AliQA::TASKINDEX, TObjArray * ) = 0 ;
+ 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) ;
virtual void InitDigits() = 0 ;
virtual void InitESDs() = 0 ;
Int_t fCurrentCycle ; //! current cycle number
Int_t fCycle ; //! length (# events) of the QA data acquisition cycle
Int_t fCycleCounter ; //! cycle counter
+ Bool_t fWriteExpert ; //! flag to write or not the expert QA data
+ TList * fParameterList ; //! list of QA data parameters
Int_t fRun ; //! run number
private: