X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliQADataMaker.h;h=2496007764b1efac9618dd873471c28bfd989762;hb=7d6298844d815257941b991f031d2075ca375dc2;hp=ad5f7bc1cc08f999af1bdaa2c7c4a541dae88abf;hpb=4edbc5bc72e058d14f3abe309ad004f257ab7c15;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliQADataMaker.h b/STEER/AliQADataMaker.h index ad5f7bc1cc0..2496007764b 100644 --- a/STEER/AliQADataMaker.h +++ b/STEER/AliQADataMaker.h @@ -6,18 +6,19 @@ /* $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 --- #include #include #include +//class TCanvas ; class TClonesArray; class TDirectory; class TFile; @@ -25,87 +26,109 @@ class TObject; class TTree; class AliESDEvent; class AliRawReader; +class AliDetectorRecoParam; // --- Standard library --- // --- AliRoot header files --- -#include "AliQA.h" +#include "AliQAv1.h" +#include "AliRecoParam.h" class AliQADataMaker: public TNamed { public: + + AliQADataMaker(const Char_t * name="", const Char_t * title="") ; // ctor + AliQADataMaker(const AliQADataMaker& qadm) ; + virtual ~AliQADataMaker() ; // dtor - AliQADataMaker(const char * name="", const char * title="") ; // ctor - AliQADataMaker(const AliQADataMaker& qadm) ; - AliQADataMaker& operator = (const AliQADataMaker& qadm) ; - virtual ~AliQADataMaker() {;} // dtor - - const Int_t Add2DigitsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fDigitsQAList) ; } - const Int_t Add2ESDsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fESDsQAList) ; } - const Int_t Add2HitsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fHitsQAList) ; } - const Int_t Add2RecPointsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fRecPointsQAList) ; } - const Int_t Add2RawsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fRawsQAList) ; } - const Int_t Add2SDigitsList(TH1 * hist, const Int_t index) { return Add2List(hist, index, fSDigitsQAList) ; } - virtual void Exec(AliQA::TASKINDEX, TObject * data) ; - void EndOfCycle(AliQA::TASKINDEX) ; - void Finish() const ; - TH1 * GetDigitsData(const Int_t index) { return dynamic_cast(GetData(fDigitsQAList, index)) ; } - TH1 * GetESDsData(const Int_t index) { return dynamic_cast(GetData(fESDsQAList, index)) ; } - TH1 * GetHitsData(const Int_t index) { return dynamic_cast(GetData(fHitsQAList, index)) ; } - TH1 * GetRecPointsData(const Int_t index) { return dynamic_cast(GetData(fRecPointsQAList, index)) ; } - TH1 * GetRawsData(const Int_t index) { return dynamic_cast(GetData(fRawsQAList, index)) ; } - TH1 * GetSDigitsData(const Int_t index) { return dynamic_cast(GetData(fSDigitsQAList, index)) ; } - const char * GetDetectorDirName() { return fDetectorDirName.Data() ; } - const Int_t Increment() { return ++fCycleCounter ; } - TObjArray * Init(AliQA::TASKINDEX, Int_t run, Int_t cycles = -1) ; - void Init(AliQA::TASKINDEX, TObjArray * list, Int_t run, Int_t cycles = -1) ; - const Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; } - void Reset() ; - void SetCycle(Int_t nevts) { fCycle = nevts ; } - void StartOfCycle(AliQA::TASKINDEX, const Bool_t sameCycle = kFALSE) ; + virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; + virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; + virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; + virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; + virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE) = 0 ; + virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; + virtual void Exec(AliQAv1::TASKINDEX_t, TObject * data) = 0 ; + virtual void EndOfCycle() = 0 ; + virtual void EndOfCycle(AliQAv1::TASKINDEX_t ) = 0 ; + virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list ) = 0 ; + void Finish() const ; + virtual TH1 * GetDigitsData(const Int_t index) = 0 ; + virtual TH1 * GetESDsData(const Int_t index) = 0 ; + AliRecoParam::EventSpecie_t GetEventSpecie() const { return fEventSpecie ; } + 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_t * GetDetectorDirName() const { return fDetectorDirName.Data() ; } + TList * GetParameterList() const { return fParameterList[AliRecoParam::AConvert(fEventSpecie)] ; } + virtual const AliDetectorRecoParam * GetRecoParam() { return NULL ; } + Int_t GetRun() const { return fRun ; } + Int_t Increment() { return ++fCycleCounter ; } + virtual TObjArray** Init(AliQAv1::TASKINDEX_t, Int_t cycles = -1) = 0 ; + TObjArray* Init(AliQAv1::TASKINDEX_t, AliRecoParam::EventSpecie_t es, Int_t cycles = -1) ; + virtual void Init(AliQAv1::TASKINDEX_t, TObjArray ** list, Int_t run, Int_t cycles = -1) = 0 ; + virtual void InitDigits() = 0 ; + virtual void InitESDs() = 0 ; + virtual void InitRaws() = 0 ; + virtual void InitRecPoints() = 0 ; + Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; } + Bool_t IsValidEventSpecie(Int_t eventSpecieIndex, TObjArray ** list) ; + void Reset() { fCycleCounter = 0 ; } + virtual void ResetDetector(AliQAv1::TASKINDEX_t task) = 0 ; + void SetCycle(Int_t nevts) { fCycle = nevts ; } + void SetWriteExpert() { fWriteExpert = kTRUE ; } + virtual void StartOfCycle(Int_t run = -1) = 0 ; + virtual void StartOfCycle(AliQAv1::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 *) {;} + + virtual void InitRecPointsForTracker() {;} // needed by AliGlobalQADataMaker protected: - Int_t Add2List(TH1 * hist, const Int_t index, TObjArray * list) ; - virtual void EndOfDetectorCycle(AliQA::TASKINDEX, TObjArray * ) {AliInfo("To be implemented by detectors");} - TObject * GetData(TObjArray * list, const Int_t index) { return list->At(index) ; } - virtual void InitDigits() {AliInfo("To be implemented by detectors");} - virtual void InitESDs() {AliInfo("To be implemented by detectors");} - virtual void InitHits() {AliInfo("To be implemented by detectors");} - //virtual void InitRecParticles() {AliInfo("To be implemented by detectors");} - virtual void InitRecPoints() {AliInfo("To be implemented by detectors");} - virtual void InitRaws() {AliInfo("To be implemented by detectors");} - virtual void InitSDigits() {AliInfo("To be implemented by detectors");} - //virtual void InitTrackSegments() {AliInfo("To ne implemented by detectors");} - virtual void MakeESDs(AliESDEvent * ) {AliInfo("To be implemented by detectors");} - virtual void MakeHits(TClonesArray * ) {AliInfo("To be implemented by detectors");} - virtual void MakeHits(TTree * ) {AliInfo("To be implemented by detectors");} - virtual void MakeDigits(TClonesArray * ) {AliInfo("To be implemented by detectors");} - virtual void MakeDigits(TTree * ) {AliInfo("To be implemented by detectors");} - // virtual void MakeRecParticles(TClonesArray * ) {AliInfo("To be implemented by detectors");} - virtual void MakeRaws(AliRawReader *) {AliInfo("To be implemented by detectors");} - virtual void MakeRecPoints(TTree * ) {AliInfo("To be implemented by detectors");} - virtual void MakeSDigits(TClonesArray * ) {AliInfo("To be implemented by detectors");} - virtual void MakeSDigits(TTree * ) {AliInfo("To be implemented by detectors");} - //virtual void MakeTrackSegments(TTree * ) {AliInfo("To be implemented by detectors");} - void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; } - virtual void StartOfDetectorCycle() {AliInfo("To be implemented by detectors");} + Int_t Add2List(TH1 * hist, const Int_t index, TObjArray ** list, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE) ; + TH1 * CloneMe(TH1 * hist, Int_t specie) const ; + virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t task ) ; + TObject * GetData(TObjArray ** list, const Int_t index) ; + virtual void InitHits() = 0 ; + //virtual void InitRecParticles() = 0 ; + virtual void InitSDigits() = 0 ; + //virtual void InitTrackSegments() = 0 ; + virtual void MakeESDs(AliESDEvent * ) = 0 ; + virtual void MakeHits() = 0 ; + virtual void MakeHits(TTree * ) = 0 ; + virtual void MakeDigits() = 0 ; + virtual void MakeDigits(TTree * ) = 0 ; + //virtual void MakeRecParticles( ) = 0 ; + virtual void MakeRaws(AliRawReader *) = 0 ; + virtual void MakeRecPoints(TTree * ) = 0 ; + virtual void MakeSDigits() = 0 ; + virtual void MakeSDigits(TTree * ) = 0 ; + //virtual void MakeTrackSegments(TTree * ) = 0 ; + void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; } + virtual void StartOfDetectorCycle() = 0 ; + + TFile * fOutput ; //! output root file + TDirectory * fDetectorDir ; //! directory for the given detector in the file + TString fDetectorDirName ; //! detector directory name in the quality assurance data file + 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 + TClonesArray * fDigitsArray ; //! array to hold the sdigits + +private: + AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented - TFile * fOutput ; //! output root file - TDirectory * fDetectorDir ; //! directory for the given detector in the file - TString fDetectorDirName ; //! detector directory name in the quality assurance data file - TObjArray * fDigitsQAList ; //! list of the digits QA data objects - TObjArray * fESDsQAList ; //! list of the ESDs QA data objects - TObjArray * fHitsQAList ; //! list of the hits QA data objects - TObjArray * fRawsQAList ; //! list of the raws QA data objects - TObjArray * fRecPointsQAList ; //! list of the recpoints QA data objects - TObjArray * fSDigitsQAList ; //! list of the sdigits QA data objects - Int_t fCurrentCycle ; //! current cycle number - Int_t fCycle ; //! length (# events) of the QA data acquisition cycle - Int_t fCycleCounter ; //! cycle counter - Int_t fRun ; //! run number - ClassDef(AliQADataMaker,1) // description + ClassDef(AliQADataMaker,3) // description };