Updates to AddTask macro from Chris
[u/mrichter/AliRoot.git] / MUON / AliMUONVQADataMakerRec.h
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