]>
Commit | Line | Data |
---|---|---|
2e42b4d4 | 1 | #ifndef ALIQADATAMAKER_H |
2 | #define ALIQADATAMAKER_H | |
421ab0fb | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | ||
7 | /* $Id$ */ | |
8 | ||
202374b1 | 9 | // |
10 | // Base Class: | |
11 | // Produces the data needed to calculate the quality assurance. | |
12 | // All data must be mergeable objects. | |
13 | // Y. Schutz CERN July 2007 | |
14 | // | |
421ab0fb | 15 | |
16 | ||
17 | // --- ROOT system --- | |
6c18591a | 18 | #include <TH1.h> |
4edbc5bc | 19 | #include <TObjArray.h> |
421ab0fb | 20 | #include <TNamed.h> |
4edbc5bc | 21 | class TClonesArray; |
7079c8d7 | 22 | class TDirectory; |
4edbc5bc | 23 | class TFile; |
d76c31f4 | 24 | class TObject; |
25 | class TTree; | |
26 | class AliESDEvent; | |
d5cf81bd | 27 | class AliRawReader; |
b8bd1ab8 | 28 | class AliDetectorRecoParam; |
a5fa6165 | 29 | |
421ab0fb | 30 | // --- Standard library --- |
31 | ||
32 | // --- AliRoot header files --- | |
2e42b4d4 | 33 | #include "AliQA.h" |
421ab0fb | 34 | |
2e42b4d4 | 35 | class AliQADataMaker: public TNamed { |
421ab0fb | 36 | |
37 | public: | |
04236e67 | 38 | |
39 | AliQADataMaker(const char * name="", const char * title="") ; // ctor | |
40 | AliQADataMaker(const AliQADataMaker& qadm) ; | |
54194e95 | 41 | virtual ~AliQADataMaker() {} // dtor |
421ab0fb | 42 | |
54194e95 | 43 | virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index) = 0 ; |
44 | virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index) = 0 ; | |
45 | virtual Int_t Add2HitsList(TH1 * hist, const Int_t index) = 0 ; | |
46 | virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index) = 0 ; | |
a2b64fbd | 47 | virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t saveForCorr = kFALSE) = 0 ; |
54194e95 | 48 | virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index) = 0 ; |
96d67a8d | 49 | virtual void Exec(AliQA::TASKINDEX_t, TObject * data) = 0 ; |
50 | virtual void EndOfCycle(AliQA::TASKINDEX_t) = 0 ; | |
04236e67 | 51 | void Finish() const ; |
940d8e5f | 52 | virtual TH1 * GetDigitsData(const Int_t index) = 0 ; |
eaff8e3b | 53 | virtual TH1 * GetESDsData(const Int_t index) = 0 ; |
54 | virtual TH1 * GetHitsData(const Int_t index) = 0 ; | |
55 | virtual TH1 * GetRecPointsData(const Int_t index) = 0 ; | |
56 | virtual TH1 * GetRawsData(const Int_t index) = 0 ; | |
57 | virtual TH1 * GetSDigitsData(const Int_t index) = 0 ; | |
58 | const char * GetDetectorDirName() const { return fDetectorDirName.Data() ; } | |
a2b64fbd | 59 | TList * GetParameterList() const { return fParameterList ; } |
04236e67 | 60 | const Int_t Increment() { return ++fCycleCounter ; } |
96d67a8d | 61 | virtual TObjArray * Init(AliQA::TASKINDEX_t, Int_t run, Int_t cycles = -1) = 0 ; |
62 | virtual void Init(AliQA::TASKINDEX_t, TObjArray * list, Int_t run, Int_t cycles = -1) = 0 ; | |
04236e67 | 63 | const Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; } |
609d9712 | 64 | void Reset(const Bool_t sameCycle = kTRUE) ; |
940d8e5f | 65 | void SetCycle(Int_t nevts) { fCycle = nevts ; } |
96d67a8d | 66 | virtual void StartOfCycle(AliQA::TASKINDEX_t, const Bool_t sameCycle = kFALSE) = 0 ; |
6c18591a | 67 | |
a2b64fbd | 68 | virtual void SetRecoParam(const AliDetectorRecoParam */*param*/) { return; } |
b8bd1ab8 | 69 | |
421ab0fb | 70 | protected: |
71 | ||
a2b64fbd | 72 | Int_t Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t saveForCorr = kFALSE) ; |
96d67a8d | 73 | virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t task ) ; |
74 | virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray * obj ) = 0 ; | |
04236e67 | 75 | TObject * GetData(TObjArray * list, const Int_t index) ; |
76 | virtual void InitDigits() = 0 ; | |
77 | virtual void InitESDs() = 0 ; | |
78 | virtual void InitHits() = 0 ; | |
79 | //virtual void InitRecParticles() = 0 ; | |
80 | virtual void InitRecPoints() = 0 ; | |
81 | virtual void InitRaws() = 0 ; | |
82 | virtual void InitSDigits() = 0 ; | |
83 | //virtual void InitTrackSegments() = 0 ; | |
84 | virtual void MakeESDs(AliESDEvent * ) = 0 ; | |
85 | virtual void MakeHits(TClonesArray * ) = 0 ; | |
86 | virtual void MakeHits(TTree * ) = 0 ; | |
87 | virtual void MakeDigits(TClonesArray * ) = 0 ; | |
88 | virtual void MakeDigits(TTree * ) = 0 ; | |
89 | //virtual void MakeRecParticles(TClonesArray * ) = 0 ; | |
90 | virtual void MakeRaws(AliRawReader *) = 0 ; | |
91 | virtual void MakeRecPoints(TTree * ) = 0 ; | |
92 | virtual void MakeSDigits(TClonesArray * ) = 0 ; | |
93 | virtual void MakeSDigits(TTree * ) = 0 ; | |
94 | //virtual void MakeTrackSegments(TTree * ) = 0 ; | |
95 | void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; } | |
96 | virtual void StartOfDetectorCycle() = 0 ; | |
97 | ||
98 | TFile * fOutput ; //! output root file | |
99 | TDirectory * fDetectorDir ; //! directory for the given detector in the file | |
100 | TString fDetectorDirName ; //! detector directory name in the quality assurance data file | |
101 | Int_t fCurrentCycle ; //! current cycle number | |
102 | Int_t fCycle ; //! length (# events) of the QA data acquisition cycle | |
103 | Int_t fCycleCounter ; //! cycle counter | |
a2b64fbd | 104 | TList * fParameterList ; //! list of QA data parameters |
04236e67 | 105 | Int_t fRun ; //! run number |
54194e95 | 106 | |
107 | private: | |
108 | AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented | |
109 | ||
a4976ef3 | 110 | |
2e42b4d4 | 111 | ClassDef(AliQADataMaker,1) // description |
421ab0fb | 112 | |
113 | }; | |
114 | ||
2e42b4d4 | 115 | #endif // AliQADataMaker_H |