Always delete TObjArrays created by TString::Tokenize (Ruben)
[u/mrichter/AliRoot.git] / MUON / AliMUONVQADataMakerRec.h
CommitLineData
ece56eb9 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///
c442ee61 13// Author Laurent Aphecetche
ece56eb9 14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18
19#ifndef ALIRECOPARAM_H
20# include "AliRecoParam.h"
21#endif
22
b3d57767 23#ifndef ALIQAv1_H
24# include "AliQAv1.h"
25#endif
26
92664bc8 27#include "AliQADataMakerRec.h"
28
ece56eb9 29class AliESDEvent;
ece56eb9 30class AliMUONRecoParam;
31class AliRawReader;
32class TH1;
33class TObjArray;
34class TTree;
35
36class AliMUONVQADataMakerRec : public TObject
37{
38public:
39 AliMUONVQADataMakerRec(AliQADataMakerRec* master);
40 virtual ~AliMUONVQADataMakerRec();
41
ca04ed6c 42 /// Initialization for handling Digits
ece56eb9 43 virtual void InitDigits() = 0;
ca04ed6c 44 /// Initialization for handling ESD
ece56eb9 45 virtual void InitESDs() = 0;
ca04ed6c 46 /// Initialization for handling Raws
ece56eb9 47 virtual void InitRaws() = 0;
ca04ed6c 48 /// Initialization for handling RecPoints
ece56eb9 49 virtual void InitRecPoints() = 0;
50
ca04ed6c 51 /// Produces QA data for Raws
ece56eb9 52 virtual void MakeRaws(AliRawReader* rawReader) = 0;
ca04ed6c 53 /// Produces QA data for Digits
ece56eb9 54 virtual void MakeDigits(TTree* dig) = 0;
ca04ed6c 55 /// Produces QA data for RecPoints
ece56eb9 56 virtual void MakeRecPoints(TTree* recpo) = 0;
ca04ed6c 57 /// Produces QA data for ESD
ece56eb9 58 virtual void MakeESDs(AliESDEvent* esd) = 0;
59
ca04ed6c 60 /// Wrap up things at each cycle for Raws
ece56eb9 61 virtual void EndOfDetectorCycleRaws(Int_t specie, TObjArray** list) = 0;
ca04ed6c 62 /// Wrap up things at each cycle for RecPoints
ece56eb9 63 virtual void EndOfDetectorCycleRecPoints(Int_t specie, TObjArray** list) = 0;
ca04ed6c 64 /// Wrap up things at each cycle for ESD
ece56eb9 65 virtual void EndOfDetectorCycleESDs(Int_t specie, TObjArray** list) = 0;
ca04ed6c 66 /// Wrap up things at each cycle for Digits
ece56eb9 67 virtual void EndOfDetectorCycleDigits(Int_t specie, TObjArray** list) = 0;
68
152fe71e 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); }
92664bc8 77 ///
78 void ForbidCloning(TH1* h, Bool_t v=kTRUE) { if (fMaster) fMaster->ForbidCloning(h,v); }
79 ///
ece56eb9 80protected:
81
57e2ad1a 82 void ResetDetector(const TObjArray* list);
152fe71e 83
ece56eb9 84 Int_t RunNumber() const;
85
86 AliRecoParam::EventSpecie_t CurrentEventSpecie() const;
87
88 const AliMUONRecoParam* GetRecoParam() const;
89
92664bc8 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
ac09753d 100 TH1* GetMatchingRawsHisto(Int_t index, Int_t trigId) const {return fMaster ? fMaster->GetMatchingRawsHisto(index, trigId) : 0x0;}
101
ece56eb9 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);
92664bc8 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
9ee1d6ff 124 AliQADataMakerRec* fMaster; ///< master to get access to its methods
125
ece56eb9 126private:
949d9006 127 /// Not implemented
ece56eb9 128 AliMUONVQADataMakerRec(const AliMUONVQADataMakerRec& rhs);
949d9006 129 /// Not implemented
ece56eb9 130 AliMUONVQADataMakerRec& operator=(const AliMUONVQADataMakerRec& rhs);
131
ece56eb9 132 ClassDef(AliMUONVQADataMakerRec,1) // Interface for a MUON QADataMakerRec
133};
134
135#endif