]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIMUONVQADATAMAKERREC_H | |
2 | #define ALIMUONVQADATAMAKERREC_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | // $Id$ | |
8 | ||
9 | /// \ingroup rec | |
10 | /// \class AliMUONVQADataMakerRec | |
11 | /// \brief Interface for a MUON QADataMakerRec | |
12 | /// | |
13 | // Author Laurent Aphecetche | |
14 | ||
15 | #ifndef ROOT_TObject | |
16 | # include "TObject.h" | |
17 | #endif | |
18 | ||
19 | #ifndef ALIRECOPARAM_H | |
20 | # include "AliRecoParam.h" | |
21 | #endif | |
22 | ||
23 | #ifndef ALIQAv1_H | |
24 | # include "AliQAv1.h" | |
25 | #endif | |
26 | ||
27 | #include "AliQADataMakerRec.h" | |
28 | ||
29 | class AliESDEvent; | |
30 | class AliMUONRecoParam; | |
31 | class AliRawReader; | |
32 | class TH1; | |
33 | class TObjArray; | |
34 | class TTree; | |
35 | ||
36 | class AliMUONVQADataMakerRec : public TObject | |
37 | { | |
38 | public: | |
39 | AliMUONVQADataMakerRec(AliQADataMakerRec* master); | |
40 | virtual ~AliMUONVQADataMakerRec(); | |
41 | ||
42 | /// Initialization for handling Digits | |
43 | virtual void InitDigits() = 0; | |
44 | /// Initialization for handling ESD | |
45 | virtual void InitESDs() = 0; | |
46 | /// Initialization for handling Raws | |
47 | virtual void InitRaws() = 0; | |
48 | /// Initialization for handling RecPoints | |
49 | virtual void InitRecPoints() = 0; | |
50 | ||
51 | /// Produces QA data for Raws | |
52 | virtual void MakeRaws(AliRawReader* rawReader) = 0; | |
53 | /// Produces QA data for Digits | |
54 | virtual void MakeDigits(TTree* dig) = 0; | |
55 | /// Produces QA data for RecPoints | |
56 | virtual void MakeRecPoints(TTree* recpo) = 0; | |
57 | /// Produces QA data for ESD | |
58 | virtual void MakeESDs(AliESDEvent* esd) = 0; | |
59 | ||
60 | /// Wrap up things at each cycle for Raws | |
61 | virtual void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list) = 0; | |
62 | /// Wrap up things at each cycle for RecPoints | |
63 | virtual void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list) = 0; | |
64 | /// Wrap up things at each cycle for ESD | |
65 | virtual void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list) = 0; | |
66 | /// Wrap up things at each cycle for Digits | |
67 | virtual void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list) = 0; | |
68 | ||
69 | /// Reset anything that must be reset for Raws | |
70 | virtual void ResetDetectorRaws(TObjArray* list) { ResetDetector(list); } | |
71 | /// Reset anything that must be reset for RecPoints | |
72 | virtual void ResetDetectorRecPoints(TObjArray* list) { ResetDetector(list); } | |
73 | /// Reset anything that must be reset for ESD | |
74 | virtual void ResetDetectorESDs(TObjArray* list) { ResetDetector(list); } | |
75 | /// Reset anything that must be reset for Digits | |
76 | virtual void ResetDetectorDigits(TObjArray* list) { ResetDetector(list); } | |
77 | /// | |
78 | void ForbidCloning(TH1* h, Bool_t v=kTRUE) { if (fMaster) fMaster->ForbidCloning(h,v); } | |
79 | /// | |
80 | protected: | |
81 | ||
82 | void ResetDetector(const TObjArray* list); | |
83 | ||
84 | Int_t RunNumber() const; | |
85 | ||
86 | AliRecoParam::EventSpecie_t CurrentEventSpecie() const; | |
87 | ||
88 | const AliMUONRecoParam* GetRecoParam() const; | |
89 | ||
90 | TObject* GetDigitsData(Int_t index) const {return fMaster ? fMaster->GetDigitsData(index) : 0x0;} | |
91 | TObject* GetESDsData(Int_t index) const {return fMaster ? fMaster->GetESDsData(index) : 0x0;} | |
92 | TObject* GetRecPointsData(Int_t index) const {return fMaster ? fMaster->GetRecPointsData(index) : 0x0;} | |
93 | TObject* GetRawsData(Int_t index) const {return fMaster ? fMaster->GetRawsData(index) : 0x0;} | |
94 | ||
95 | TH1* GetDigitsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetDigitsData(index, trCl) : 0x0;} | |
96 | TH1* GetESDsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetESDsData(index, trCl) : 0x0;} | |
97 | TH1* GetRecPointsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRecPointsData(index, trCl) : 0x0;} | |
98 | TH1* GetRawsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRawsData(index,trCl) : 0x0;} | |
99 | ||
100 | TH1* GetMatchingRawsHisto(Int_t index, Int_t trigId) const {return fMaster ? fMaster->GetMatchingRawsHisto(index, trigId) : 0x0;} | |
101 | ||
102 | Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE); | |
103 | Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE); | |
104 | Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE); | |
105 | Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE); | |
106 | // | |
107 | Int_t FillDigitsData(Int_t index, double x) {return fMaster ? fMaster->FillDigitsData(index,x) : 0;} | |
108 | Int_t FillRawsData(Int_t index, double x) {return fMaster ? fMaster->FillRawsData(index,x) : 0;} | |
109 | Int_t FillRecPointsData(Int_t index, double x) {return fMaster ? fMaster->FillRecPointsData(index,x) : 0;} | |
110 | Int_t FillESDsData(Int_t index, double x) {return fMaster ? fMaster->FillESDsData(index,x) : 0;} | |
111 | // | |
112 | Int_t FillDigitsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillDigitsData(index,x,y) : 0;} | |
113 | Int_t FillRawsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRawsData(index,x,y) : 0;} | |
114 | Int_t FillRecPointsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRecPointsData(index,x,y) : 0;} | |
115 | Int_t FillESDsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillESDsData(index,x,y) : 0;} | |
116 | // | |
117 | Int_t FillDigitsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillDigitsData(index,x,y,w) : 0;} | |
118 | Int_t FillRawsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillRawsData(index,x,y,w) : 0;} | |
119 | Int_t FillRecPointsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillRecPointsData(index,x,y,w) : 0;} | |
120 | Int_t FillESDsData(Int_t index, double x, double y, double w) {return fMaster ? fMaster->FillESDsData(index,x,y,w) : 0;} | |
121 | // | |
122 | void ClonePerTrigClass(AliQAv1::TASKINDEX_t task); | |
123 | ||
124 | AliQADataMakerRec* fMaster; ///< master to get access to its methods | |
125 | ||
126 | private: | |
127 | /// Not implemented | |
128 | AliMUONVQADataMakerRec(const AliMUONVQADataMakerRec& rhs); | |
129 | /// Not implemented | |
130 | AliMUONVQADataMakerRec& operator=(const AliMUONVQADataMakerRec& rhs); | |
131 | ||
132 | ClassDef(AliMUONVQADataMakerRec,1) // Interface for a MUON QADataMakerRec | |
133 | }; | |
134 | ||
135 | #endif |