/// \class AliMUONVQADataMakerRec
/// \brief Interface for a MUON QADataMakerRec
///
-/// author Laurent Aphecetche
+// Author Laurent Aphecetche
#ifndef ROOT_TObject
# include "TObject.h"
# include "AliRecoParam.h"
#endif
+#ifndef ALIQAv1_H
+# include "AliQAv1.h"
+#endif
+
+#include "AliQADataMakerRec.h"
+
class AliESDEvent;
-class AliQADataMakerRec;
class AliMUONRecoParam;
class AliRawReader;
class TH1;
AliMUONVQADataMakerRec(AliQADataMakerRec* master);
virtual ~AliMUONVQADataMakerRec();
+ /// Initialization for handling Digits
virtual void InitDigits() = 0;
+ /// Initialization for handling ESD
virtual void InitESDs() = 0;
+ /// Initialization for handling Raws
virtual void InitRaws() = 0;
+ /// Initialization for handling RecPoints
virtual void InitRecPoints() = 0;
+ /// Produces QA data for Raws
virtual void MakeRaws(AliRawReader* rawReader) = 0;
+ /// Produces QA data for Digits
virtual void MakeDigits(TTree* dig) = 0;
+ /// Produces QA data for RecPoints
virtual void MakeRecPoints(TTree* recpo) = 0;
+ /// Produces QA data for ESD
virtual void MakeESDs(AliESDEvent* esd) = 0;
+ /// Wrap up things at each cycle for Raws
virtual void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list) = 0;
+ /// Wrap up things at each cycle for RecPoints
virtual void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list) = 0;
+ /// Wrap up things at each cycle for ESD
virtual void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list) = 0;
+ /// Wrap up things at each cycle for Digits
virtual void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list) = 0;
+ /// Reset anything that must be reset for Raws
+ virtual void ResetDetectorRaws(TObjArray* list) { ResetDetector(list); }
+ /// Reset anything that must be reset for RecPoints
+ virtual void ResetDetectorRecPoints(TObjArray* list) { ResetDetector(list); }
+ /// Reset anything that must be reset for ESD
+ virtual void ResetDetectorESDs(TObjArray* list) { ResetDetector(list); }
+ /// Reset anything that must be reset for Digits
+ virtual void ResetDetectorDigits(TObjArray* list) { ResetDetector(list); }
+ ///
+ void ForbidCloning(TH1* h, Bool_t v=kTRUE) { if (fMaster) fMaster->ForbidCloning(h,v); }
+ ///
protected:
+ void ResetDetector(const TObjArray* list);
+
Int_t RunNumber() const;
AliRecoParam::EventSpecie_t CurrentEventSpecie() const;
const AliMUONRecoParam* GetRecoParam() const;
- TH1* GetDigitsData(Int_t index) const;
- TH1* GetESDsData(Int_t index) const;
- TH1* GetRecPointsData(Int_t index) const;
- TH1* GetRawsData(Int_t index) const;
-
+ TObject* GetDigitsData(Int_t index) const {return fMaster ? fMaster->GetDigitsData(index) : 0x0;}
+ TObject* GetESDsData(Int_t index) const {return fMaster ? fMaster->GetESDsData(index) : 0x0;}
+ TObject* GetRecPointsData(Int_t index) const {return fMaster ? fMaster->GetRecPointsData(index) : 0x0;}
+ TObject* GetRawsData(Int_t index) const {return fMaster ? fMaster->GetRawsData(index) : 0x0;}
+
+ TH1* GetDigitsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetDigitsData(index, trCl) : 0x0;}
+ TH1* GetESDsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetESDsData(index, trCl) : 0x0;}
+ TH1* GetRecPointsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRecPointsData(index, trCl) : 0x0;}
+ TH1* GetRawsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRawsData(index,trCl) : 0x0;}
+
+ TH1* GetMatchingRawsHisto(Int_t index, Int_t trigId) const {return fMaster ? fMaster->GetMatchingRawsHisto(index, trigId) : 0x0;}
+
Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);
Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);
Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);
Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE);
-
+ //
+ Int_t FillDigitsData(Int_t index, double x) {return fMaster ? fMaster->FillDigitsData(index,x) : 0;}
+ Int_t FillRawsData(Int_t index, double x) {return fMaster ? fMaster->FillRawsData(index,x) : 0;}
+ Int_t FillRecPointsData(Int_t index, double x) {return fMaster ? fMaster->FillRecPointsData(index,x) : 0;}
+ Int_t FillESDsData(Int_t index, double x) {return fMaster ? fMaster->FillESDsData(index,x) : 0;}
+ //
+ Int_t FillDigitsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillDigitsData(index,x,y) : 0;}
+ Int_t FillRawsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRawsData(index,x,y) : 0;}
+ Int_t FillRecPointsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRecPointsData(index,x,y) : 0;}
+ Int_t FillESDsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillESDsData(index,x,y) : 0;}
+ //
+ Int_t FillDigitsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillDigitsData(index,x,y,w) : 0;}
+ Int_t FillRawsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillRawsData(index,x,y,w) : 0;}
+ Int_t FillRecPointsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillRecPointsData(index,x,y,w) : 0;}
+ Int_t FillESDsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillESDsData(index,x,y,w) : 0;}
+ //
+ void ClonePerTrigClass(AliQAv1::TASKINDEX_t task);
+
+ AliQADataMakerRec* fMaster; ///< master to get access to its methods
+
private:
+ /// Not implemented
AliMUONVQADataMakerRec(const AliMUONVQADataMakerRec& rhs);
+ /// Not implemented
AliMUONVQADataMakerRec& operator=(const AliMUONVQADataMakerRec& rhs);
- AliQADataMakerRec* fMaster; ///< master to get access to its methods
-
ClassDef(AliMUONVQADataMakerRec,1) // Interface for a MUON QADataMakerRec
};