new functionality and new class added
[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 class AliESDEvent;
24 class AliQADataMakerRec;
25 class AliMUONRecoParam;
26 class AliRawReader;
27 class TH1;
28 class TObjArray;
29 class TTree;
30
31 class AliMUONVQADataMakerRec : public TObject
32 {
33 public:
34   AliMUONVQADataMakerRec(AliQADataMakerRec* master);
35   virtual ~AliMUONVQADataMakerRec();
36   
37   /// Initialization for handling Digits
38   virtual void InitDigits() = 0; 
39   /// Initialization for handling ESD
40   virtual void InitESDs() = 0; 
41   /// Initialization for handling Raws
42   virtual void InitRaws() = 0; 
43   /// Initialization for handling RecPoints
44   virtual void InitRecPoints() = 0; 
45   
46   /// Produces QA data for Raws
47   virtual void MakeRaws(AliRawReader* rawReader) = 0; 
48   /// Produces QA data for Digits
49   virtual void MakeDigits(TTree* dig) = 0; 
50   /// Produces QA data for RecPoints
51   virtual void MakeRecPoints(TTree* recpo) = 0;
52   /// Produces QA data for ESD
53   virtual void MakeESDs(AliESDEvent* esd) = 0;
54   
55   /// Wrap up things at each cycle for Raws
56   virtual void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list) = 0;
57   /// Wrap up things at each cycle for RecPoints
58   virtual void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list) = 0;
59   /// Wrap up things at each cycle for ESD
60   virtual void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list) = 0;
61   /// Wrap up things at each cycle for Digits
62   virtual void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list) = 0;
63
64   /// Reset anything that must be reset for Raws
65   virtual void ResetDetectorRaws(TObjArray* list) { ResetDetector(list); }
66   /// Reset anything that must be reset for RecPoints
67   virtual void ResetDetectorRecPoints(TObjArray* list) { ResetDetector(list); }
68   /// Reset anything that must be reset for ESD
69   virtual void ResetDetectorESDs(TObjArray* list) { ResetDetector(list); }
70   /// Reset anything that must be reset for Digits
71   virtual void ResetDetectorDigits(TObjArray* list) { ResetDetector(list); }
72   
73 protected:
74
75   void ResetDetector(TObjArray* list);
76   
77   Int_t RunNumber() const;
78   
79   AliRecoParam::EventSpecie_t CurrentEventSpecie() const;
80   
81   const AliMUONRecoParam* GetRecoParam() const;
82   
83   TH1* GetDigitsData(Int_t index) const;
84   TH1* GetESDsData(Int_t index) const;
85   TH1* GetRecPointsData(Int_t index) const;
86   TH1* GetRawsData(Int_t index) const;
87                     
88   Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);  
89   Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);                      
90   Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE);                 
91   Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE);  
92   
93 private:
94   /// Not implemented
95   AliMUONVQADataMakerRec(const AliMUONVQADataMakerRec& rhs);
96   /// Not implemented
97   AliMUONVQADataMakerRec& operator=(const AliMUONVQADataMakerRec& rhs);
98   
99   AliQADataMakerRec* fMaster; ///< master to get access to its methods
100   
101   ClassDef(AliMUONVQADataMakerRec,1) // Interface for a MUON QADataMakerRec
102 };
103
104 #endif