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