Line data Source code
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 0 : virtual void ResetDetectorRaws(TObjArray* list) { ResetDetector(list); }
71 : /// Reset anything that must be reset for RecPoints
72 0 : virtual void ResetDetectorRecPoints(TObjArray* list) { ResetDetector(list); }
73 : /// Reset anything that must be reset for ESD
74 0 : virtual void ResetDetectorESDs(TObjArray* list) { ResetDetector(list); }
75 : /// Reset anything that must be reset for Digits
76 0 : virtual void ResetDetectorDigits(TObjArray* list) { ResetDetector(list); }
77 : ///
78 0 : 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 0 : 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 0 : TObject* GetRecPointsData(Int_t index) const {return fMaster ? fMaster->GetRecPointsData(index) : 0x0;}
93 0 : TObject* GetRawsData(Int_t index) const {return fMaster ? fMaster->GetRawsData(index) : 0x0;}
94 :
95 0 : 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 0 : TH1* GetRecPointsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRecPointsData(index, trCl) : 0x0;}
98 0 : TH1* GetRawsData(Int_t index, int trCl) const {return fMaster ? fMaster->GetRawsData(index,trCl) : 0x0;}
99 :
100 0 : 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 0 : Int_t FillDigitsData(Int_t index, double x) {return fMaster ? fMaster->FillDigitsData(index,x) : 0;}
108 0 : Int_t FillRawsData(Int_t index, double x) {return fMaster ? fMaster->FillRawsData(index,x) : 0;}
109 0 : Int_t FillRecPointsData(Int_t index, double x) {return fMaster ? fMaster->FillRecPointsData(index,x) : 0;}
110 0 : 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 0 : Int_t FillRawsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRawsData(index,x,y) : 0;}
114 0 : Int_t FillRecPointsData(Int_t index, double x, double y) {return fMaster ? fMaster->FillRecPointsData(index,x,y) : 0;}
115 0 : 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 0 : 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 18 : ClassDef(AliMUONVQADataMakerRec,1) // Interface for a MUON QADataMakerRec
133 : };
134 :
135 : #endif
|