/* $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 ---
// --- AliRoot header files ---
#include "AliQA.h"
+#include "AliRecoParam.h"
class AliQADataMaker: public TNamed {
AliQADataMaker(const char * name="", const char * title="") ; // ctor
AliQADataMaker(const AliQADataMaker& qadm) ;
- AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/) {;}
- virtual ~AliQADataMaker() {;} // dtor
+ virtual ~AliQADataMaker() {} // dtor
- virtual const Int_t Add2DigitsList(TH1 * hist, const Int_t index) = 0 ;
- virtual const Int_t Add2ESDsList(TH1 * hist, const Int_t index) = 0 ;
- virtual const Int_t Add2HitsList(TH1 * hist, const Int_t index) = 0 ;
- virtual const Int_t Add2RecPointsList(TH1 * hist, const Int_t index) = 0 ;
- virtual const Int_t Add2RawsList(TH1 * hist, const Int_t index) = 0 ;
- virtual const 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 * 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() { return fDetectorDirName.Data() ; }
- 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 ;
- 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 ;
-
+ 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[AliRecoParam::AConvert(fEventSpecie)] ; }
+ Int_t Increment() { return ++fCycleCounter ; }
+ 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 ;
+ Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
+ 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 ; }
+ void SetEventSpecie(AliRecoParam::EventSpecie_t es) { fEventSpecie = es ; }
+ void SetEventSpecie(Int_t es) { fEventSpecie = AliRecoParam::Convert(es) ; }
+ virtual void SetRecoParam(const AliDetectorRecoParam */*param*/) {AliInfo("To be implemented by AliQADataMakerRec, not needed yet in Sim") ; }
+
protected:
- Int_t Add2List(TH1 * hist, const Int_t index, TObjArray * list) ;
- virtual void EndOfDetectorCycle(AliQA::TASKINDEX, TObjArray * ) = 0 ;
- TObject * GetData(TObjArray * list, const Int_t index) ;
+ Int_t Add2List(TH1 * hist, const Int_t index, TObjArray ** list, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE) ;
+ TH1 * CloneMe(TH1 * hist, Int_t specie) const ;
+ virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t task ) ;
+ virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray ** list ) = 0 ;
+ TObject * GetData(TObjArray ** list, const Int_t index) ;
virtual void InitDigits() = 0 ;
virtual void InitESDs() = 0 ;
virtual void InitHits() = 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
+ AliRecoParam::EventSpecie_t fEventSpecie ; //! event specie, see AliRecoParam
+private:
+ AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented
+
ClassDef(AliQADataMaker,1) // description