]>
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> |
634696f5 | 21 | //class TCanvas ; |
4edbc5bc | 22 | class TClonesArray; |
7079c8d7 | 23 | class TDirectory; |
4edbc5bc | 24 | class TFile; |
d76c31f4 | 25 | class TObject; |
26 | class TTree; | |
27 | class AliESDEvent; | |
d5cf81bd | 28 | class AliRawReader; |
b8bd1ab8 | 29 | class AliDetectorRecoParam; |
a5fa6165 | 30 | |
421ab0fb | 31 | // --- Standard library --- |
32 | ||
33 | // --- AliRoot header files --- | |
4e25ac79 | 34 | #include "AliQAv1.h" |
57acd2d2 | 35 | #include "AliRecoParam.h" |
421ab0fb | 36 | |
2e42b4d4 | 37 | class AliQADataMaker: public TNamed { |
421ab0fb | 38 | |
39 | public: | |
04236e67 | 40 | |
fec0891b | 41 | AliQADataMaker(const Char_t * name="", const Char_t * title="") ; // ctor |
04236e67 | 42 | AliQADataMaker(const AliQADataMaker& qadm) ; |
71f27f1f | 43 | virtual ~AliQADataMaker() ; // dtor |
421ab0fb | 44 | |
7d297381 | 45 | virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; |
46 | virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; | |
47 | virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; | |
48 | virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; | |
02392740 | 49 | 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 ; |
7d297381 | 50 | virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ; |
2b261f20 | 51 | virtual void Exec(AliQAv1::TASKINDEX_t, TObject * data) = 0 ; |
57acd2d2 | 52 | virtual void EndOfCycle() = 0 ; |
2b261f20 | 53 | virtual void EndOfCycle(AliQAv1::TASKINDEX_t ) = 0 ; |
60e4cf7e | 54 | virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list ) = 0 ; |
04236e67 | 55 | void Finish() const ; |
940d8e5f | 56 | virtual TH1 * GetDigitsData(const Int_t index) = 0 ; |
eaff8e3b | 57 | virtual TH1 * GetESDsData(const Int_t index) = 0 ; |
f4af9d92 | 58 | AliRecoParam::EventSpecie_t GetEventSpecie() const { return fEventSpecie ; } |
eaff8e3b | 59 | virtual TH1 * GetHitsData(const Int_t index) = 0 ; |
60 | virtual TH1 * GetRecPointsData(const Int_t index) = 0 ; | |
61 | virtual TH1 * GetRawsData(const Int_t index) = 0 ; | |
62 | virtual TH1 * GetSDigitsData(const Int_t index) = 0 ; | |
211a7313 | 63 | const Char_t * GetDetectorDirName() const { return fDetectorDirName.Data() ; } |
57acd2d2 | 64 | TList * GetParameterList() const { return fParameterList[AliRecoParam::AConvert(fEventSpecie)] ; } |
2b261f20 | 65 | virtual const AliDetectorRecoParam * GetRecoParam() { return NULL ; } |
f4af9d92 | 66 | Int_t GetRun() const { return fRun ; } |
57acd2d2 | 67 | Int_t Increment() { return ++fCycleCounter ; } |
211a7313 | 68 | virtual TObjArray** Init(AliQAv1::TASKINDEX_t, Int_t cycles = -1) = 0 ; |
69 | TObjArray* Init(AliQAv1::TASKINDEX_t, AliRecoParam::EventSpecie_t es, Int_t cycles = -1) ; | |
70 | virtual void Init(AliQAv1::TASKINDEX_t, TObjArray ** list, Int_t run, Int_t cycles = -1) = 0 ; | |
8d9b9ce5 | 71 | virtual void InitDigits() = 0 ; |
34470548 | 72 | virtual void InitESDs() = 0 ; |
6252ceeb | 73 | virtual void InitRaws() = 0 ; |
4c2c255c | 74 | virtual void InitRecPoints() = 0 ; |
75 | Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; } | |
6252ceeb | 76 | Bool_t IsValidEventSpecie(Int_t eventSpecieIndex, TObjArray ** list) ; |
930e6e3e | 77 | void Reset() { fCycleCounter = 0 ; } |
9ac91920 | 78 | virtual void ResetDetector(AliQAv1::TASKINDEX_t task) = 0 ; |
940d8e5f | 79 | void SetCycle(Int_t nevts) { fCycle = nevts ; } |
b1af1125 | 80 | void SetWriteExpert() { fWriteExpert = kTRUE ; } |
211a7313 | 81 | virtual void StartOfCycle(Int_t run = -1) = 0 ; |
4e25ac79 | 82 | virtual void StartOfCycle(AliQAv1::TASKINDEX_t, Int_t run, const Bool_t sameCycle = kFALSE) = 0 ; |
b1af1125 | 83 | void UnSetWriteExpert() { fWriteExpert = kFALSE ; } |
84 | Bool_t WriteExpert() { return fWriteExpert ; } | |
57acd2d2 | 85 | void SetEventSpecie(AliRecoParam::EventSpecie_t es) { fEventSpecie = es ; } |
86 | void SetEventSpecie(Int_t es) { fEventSpecie = AliRecoParam::Convert(es) ; } | |
2b261f20 | 87 | virtual void SetRecoParam(const AliDetectorRecoParam *) {;} |
88 | ||
eca4fa66 | 89 | virtual void InitRecPointsForTracker() {;} // needed by AliGlobalQADataMaker |
90 | ||
421ab0fb | 91 | protected: |
92 | ||
7d297381 | 93 | 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) ; |
57acd2d2 | 94 | TH1 * CloneMe(TH1 * hist, Int_t specie) const ; |
4e25ac79 | 95 | virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t task ) ; |
57acd2d2 | 96 | TObject * GetData(TObjArray ** list, const Int_t index) ; |
04236e67 | 97 | virtual void InitHits() = 0 ; |
98 | //virtual void InitRecParticles() = 0 ; | |
04236e67 | 99 | virtual void InitSDigits() = 0 ; |
100 | //virtual void InitTrackSegments() = 0 ; | |
101 | virtual void MakeESDs(AliESDEvent * ) = 0 ; | |
6252ceeb | 102 | virtual void MakeHits() = 0 ; |
04236e67 | 103 | virtual void MakeHits(TTree * ) = 0 ; |
6252ceeb | 104 | virtual void MakeDigits() = 0 ; |
04236e67 | 105 | virtual void MakeDigits(TTree * ) = 0 ; |
6252ceeb | 106 | //virtual void MakeRecParticles( ) = 0 ; |
04236e67 | 107 | virtual void MakeRaws(AliRawReader *) = 0 ; |
108 | virtual void MakeRecPoints(TTree * ) = 0 ; | |
6252ceeb | 109 | virtual void MakeSDigits() = 0 ; |
04236e67 | 110 | virtual void MakeSDigits(TTree * ) = 0 ; |
111 | //virtual void MakeTrackSegments(TTree * ) = 0 ; | |
112 | void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; } | |
113 | virtual void StartOfDetectorCycle() = 0 ; | |
114 | ||
115 | TFile * fOutput ; //! output root file | |
116 | TDirectory * fDetectorDir ; //! directory for the given detector in the file | |
117 | TString fDetectorDirName ; //! detector directory name in the quality assurance data file | |
118 | Int_t fCurrentCycle ; //! current cycle number | |
119 | Int_t fCycle ; //! length (# events) of the QA data acquisition cycle | |
120 | Int_t fCycleCounter ; //! cycle counter | |
b1af1125 | 121 | Bool_t fWriteExpert ; //! flag to write or not the expert QA data |
57acd2d2 | 122 | TList ** fParameterList ; //! list of QA data parameters |
04236e67 | 123 | Int_t fRun ; //! run number |
57acd2d2 | 124 | AliRecoParam::EventSpecie_t fEventSpecie ; //! event specie, see AliRecoParam |
6252ceeb | 125 | TClonesArray * fDigitsArray ; //! array to hold the sdigits |
126 | ||
54194e95 | 127 | private: |
128 | AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented | |
129 | ||
a4976ef3 | 130 | |
6252ceeb | 131 | ClassDef(AliQADataMaker,3) // description |
421ab0fb | 132 | |
133 | }; | |
134 | ||
2e42b4d4 | 135 | #endif // AliQADataMaker_H |