AliRoot Core  3dc7879 (3dc7879)
AliQADataMaker.h
Go to the documentation of this file.
1 #ifndef ALIQADATAMAKER_H
2 #define ALIQADATAMAKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 
7 /* $Id$ */
8 
9 //
10 // Base Class:
11 // Produces the data needed to calculate the quality assurance.
12 // All data must be mergeable objects.
13 // Y. Schutz CERN July 2007
14 //
15 
16 
17 // --- ROOT system ---
18 #include <TH1.h>
19 #include <TObjArray.h>
20 #include <TNamed.h>
21 #include <TArrayI.h>
22 //class TCanvas ;
23 class TClonesArray;
24 class TDirectory;
25 class TFile;
26 class TObject;
27 class TTree;
28 class AliESDEvent;
29 class AliRawReader;
31 
32 // --- Standard library ---
33 
34 // --- AliRoot header files ---
35 #include "AliQAv1.h"
36 #include "AliRecoParam.h"
37 
38 class AliQADataMaker: public TNamed {
39 
40  public:
41 
42  AliQADataMaker(const Char_t * name="", const Char_t * title="") ; // ctor
43  AliQADataMaker(const AliQADataMaker& qadm) ;
44  virtual ~AliQADataMaker() ; // dtor
45  //
46  void ForbidCloning(TH1* h, Bool_t v=kTRUE) {h->SetBit(AliQAv1::GetForbidCloningBit(),v);}
47  Bool_t IsCloningForbidden(TH1* h) const {return h->TestBit(AliQAv1::GetForbidCloningBit());}
48  Char_t* GetHistoTrigger(const TH1* h) const;
49  //
50  virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ;
51  virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ;
52  virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ;
53  virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ;
54  virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE) = 0 ;
55  virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE) = 0 ;
56  virtual void Exec(AliQAv1::TASKINDEX_t, TObject * data) = 0 ;
57  virtual void EndOfCycle() = 0 ;
58  virtual void EndOfCycle(AliQAv1::TASKINDEX_t ) = 0 ;
59  virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list ) = 0 ;
60  void Finish() const ;
62  //
63  virtual TObject* GetDigitsData(const Int_t index) = 0 ;
64  virtual TObject* GetESDsData(const Int_t index) = 0 ;
65  virtual TObject* GetHitsData(const Int_t index) = 0 ;
66  virtual TObject* GetRecPointsData(const Int_t index) = 0 ;
67  virtual TObject* GetRawsData(const Int_t index) = 0 ;
68  virtual TObject* GetSDigitsData(const Int_t index) = 0 ;
69  //
70  virtual TH1* GetDigitsData(const Int_t index, int cloneID) = 0 ;
71  virtual TH1* GetESDsData(const Int_t index, int cloneID) = 0 ;
72  virtual TH1* GetHitsData(const Int_t index, int cloneID) = 0 ;
73  virtual TH1* GetRecPointsData(const Int_t index, int cloneID) = 0 ;
74  virtual TH1* GetRawsData(const Int_t index, int cloneID) = 0 ;
75  virtual TH1* GetSDigitsData(const Int_t index, int cloneID) = 0 ;
76  //
77  virtual TObjArray* GetDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
78  virtual TObjArray* GetSDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
79  virtual TObjArray* GetESDsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
80  virtual TObjArray* GetHitsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
81  virtual TObjArray* GetRecPointsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
82  virtual TObjArray* GetRawsDataOfTrigClass(int cloneID, TObjArray *dest=0) = 0;
83 
84  //
85  const Char_t * GetDetectorDirName() const { return fDetectorDirName.Data() ; }
87  virtual const AliDetectorRecoParam * GetRecoParam() { return NULL ; }
88  Int_t GetRun() const { return fRun ; }
89  Int_t Increment() { return ++fCycleCounter ; }
90  virtual TObjArray** Init(AliQAv1::TASKINDEX_t, Int_t cycles = -1) = 0 ;
92  virtual void Init(AliQAv1::TASKINDEX_t, TObjArray ** list, Int_t run, Int_t cycles = -1) = 0 ;
93  virtual void InitDigits() = 0 ;
94  virtual void InitESDs() = 0 ;
95  virtual void InitRaws() = 0 ;
96  virtual void InitRecPoints() = 0 ;
97  Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
98  Bool_t IsValidEventSpecie(Int_t eventSpecieIndex, TObjArray ** list) ;
99  void Reset() { fCycleCounter = 0 ; }
100  virtual void ResetDetector(AliQAv1::TASKINDEX_t task) = 0 ;
101  void SetCycle(Int_t nevts) { fCycle = nevts ; }
102  void SetWriteExpert() { fWriteExpert = kTRUE ; }
103  virtual void StartOfCycle(Int_t run = -1) = 0 ;
104  virtual void StartOfCycle(AliQAv1::TASKINDEX_t, Int_t run, const Bool_t sameCycle = kFALSE) = 0 ;
105  void UnSetWriteExpert() { fWriteExpert = kFALSE ; }
106  Bool_t WriteExpert() { return fWriteExpert ; }
109  virtual void SetRecoParam(const AliDetectorRecoParam *) {;}
110 
111  virtual void InitRecPointsForTracker() {;} // needed by AliGlobalQADataMaker
112 
113  Int_t IsClonedPerTrigClass(Int_t index, TObjArray ** list);
114  Bool_t IsOrigHistoKept(Int_t index, TObjArray ** list);
115  Bool_t MatchesToTriggers(UInt_t hpos) const;
116  //
117  virtual TObjArray* GetMatchingDigitsData(const Int_t index, TObjArray* optDest=0) = 0 ;
118  virtual TObjArray* GetMatchingESDsData(const Int_t index, TObjArray* optDest=0) = 0 ;
119  virtual TObjArray* GetMatchingHitsData(const Int_t index, TObjArray* optDest=0) = 0 ;
120  virtual TObjArray* GetMatchingRecPointsData(const Int_t index, TObjArray* optDest=0) = 0 ;
121  virtual TObjArray* GetMatchingRawsData(const Int_t index, TObjArray* optDest=0) = 0 ;
122  virtual TObjArray* GetMatchingSDigitsData(const Int_t index, TObjArray* optDest=0) = 0 ;
123  //
124  virtual TH1* GetMatchingRawsHisto(Int_t index, Int_t trigId) = 0;
125  virtual TH1* GetMatchingDigitsHisto(Int_t index, Int_t trigId) = 0;
126  virtual TH1* GetMatchingSDigitsHisto(Int_t index, Int_t trigId) = 0;
127  virtual TH1* GetMatchingHitsHisto(Int_t index, Int_t trigId) = 0;
128  virtual TH1* GetMatchingRecPointsHisto(Int_t index, Int_t trigId) = 0;
129  virtual TH1* GetMatchingESDsHisto(Int_t index, Int_t trigId) = 0;
130  //
131  virtual TObjArray* GetMatchingRawsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
132  virtual TObjArray* GetMatchingDigitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
133  virtual TObjArray* GetMatchingSDigitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
134  virtual TObjArray* GetMatchingHitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
135  virtual TObjArray* GetMatchingRecPointsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
136  virtual TObjArray* GetMatchingESDsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) = 0;
137  //
138  virtual Int_t FillHitsData(Int_t index, double x) = 0;
139  virtual Int_t FillDigitsData(Int_t index, double x) = 0;
140  virtual Int_t FillSDigitsData(Int_t index, double x) = 0;
141  virtual Int_t FillRawsData(Int_t index, double x) = 0;
142  virtual Int_t FillRecPointsData(Int_t index, double x) = 0;
143  virtual Int_t FillESDsData(Int_t index, double x) = 0;
144  //
145  virtual Int_t FillHitsData(Int_t index, double x, double y) = 0;
146  virtual Int_t FillDigitsData(Int_t index, double x, double y) = 0;
147  virtual Int_t FillSDigitsData(Int_t index, double x, double y) = 0;
148  virtual Int_t FillRawsData(Int_t index, double x, double y) = 0;
149  virtual Int_t FillRecPointsData(Int_t index, double x, double y) = 0;
150  virtual Int_t FillESDsData(Int_t index, double x, double y) = 0;
151  //
152  virtual Int_t FillHitsData(Int_t index, double x, double y, double z) = 0;
153  virtual Int_t FillDigitsData(Int_t index, double x, double y, double z) = 0;
154  virtual Int_t FillSDigitsData(Int_t index, double x, double y, double z) = 0;
155  virtual Int_t FillRawsData(Int_t index, double x, double y, double z) = 0;
156  virtual Int_t FillRecPointsData(Int_t index, double x, double y, double z) = 0;
157  virtual Int_t FillESDsData(Int_t index, double x, double y, double z) = 0;
158  //
159  virtual Int_t SetHitsDataBinContent(Int_t index, int bin, double w) = 0;
160  virtual Int_t SetDigitsDataBinContent(Int_t index, int bin, double w) = 0;
161  virtual Int_t SetSDigitsDataBinContent(Int_t index, int bin, double w) = 0;
162  virtual Int_t SetRawsDataBinContent(Int_t index, int bin, double w) = 0;
163  virtual Int_t SetRecPointsDataBinContent(Int_t index, int bin, double w) = 0;
164  virtual Int_t SetESDsDataBinContent(Int_t index, int bin, double w) = 0;
165  //
166  virtual Int_t SetHitsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
167  virtual Int_t SetDigitsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
168  virtual Int_t SetSDigitsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
169  virtual Int_t SetRawsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
170  virtual Int_t SetRecPointsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
171  virtual Int_t SetESDsDataBinContent(Int_t index, int binX, int binY, double w) = 0;
172  //
173  virtual Int_t SetHitsDataBinError(Int_t index, int bin, double err) = 0;
174  virtual Int_t SetDigitsDataBinError(Int_t index, int bin, double err) = 0;
175  virtual Int_t SetSDigitsDataBinError(Int_t index, int bin, double err) = 0;
176  virtual Int_t SetRawsDataBinError(Int_t index, int bin, double err) = 0;
177  virtual Int_t SetRecPointsDataBinError(Int_t index, int bin, double err) = 0;
178  virtual Int_t SetESDsDataBinError(Int_t index, int bin, double err) = 0;
179  //
180  virtual Int_t SetHitsDataBinError(Int_t index, int binX, int binY, double err) = 0;
181  virtual Int_t SetDigitsDataBinError(Int_t index, int binX, int binY, double err) = 0;
182  virtual Int_t SetSDigitsDataBinError(Int_t index, int binX, int binY, double err) = 0;
183  virtual Int_t SetRawsDataBinError(Int_t index, int binX, int binY, double err) = 0;
184  virtual Int_t SetRecPointsDataBinError(Int_t index, int binX, int binY, double err) = 0;
185  virtual Int_t SetESDsDataBinError(Int_t index, int binX, int binY, double err) = 0;
186  //
187  virtual Int_t ResetHitsData(Int_t index, Option_t *opt="") = 0;
188  virtual Int_t ResetDigitsData(Int_t index, Option_t *opt="") = 0;
189  virtual Int_t ResetSDigitsData(Int_t index, Option_t *opt="") = 0;
190  virtual Int_t ResetRawsData(Int_t index, Option_t *opt="") = 0;
191  virtual Int_t ResetRecPointsData(Int_t index, Option_t *opt="") = 0;
192  virtual Int_t ResetESDsData(Int_t index, Option_t *opt="") = 0;
193  //
194  virtual Int_t ResetStatsHitsData(Int_t index) = 0;
195  virtual Int_t ResetStatsDigitsData(Int_t index) = 0;
196  virtual Int_t ResetStatsSDigitsData(Int_t index) = 0;
197  virtual Int_t ResetStatsRawsData(Int_t index) = 0;
198  virtual Int_t ResetStatsRecPointsData(Int_t index) = 0;
199  virtual Int_t ResetStatsESDsData(Int_t index) = 0;
200  //
207  //
208  Int_t GetEvCountCycle(AliRecoParam::EventSpecie_t sp, AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const;
209  Int_t GetEvCountTotal(AliRecoParam::EventSpecie_t sp, AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const;
210  Int_t GetEvCountCycle(AliQAv1::TASKINDEX_t task,Int_t trCl=-1) const {return GetEvCountTotal(fEventSpecie,task,trCl);}
211  Int_t GetEvCountTotal(AliQAv1::TASKINDEX_t task,Int_t trCl=-1) const {return GetEvCountCycle(fEventSpecie,task,trCl);}
212  //
213  Int_t GetEvCountCycleRaws(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kRAWS,trCl);}
214  Int_t GetEvCountCycleHits(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kHITS,trCl);}
215  Int_t GetEvCountCycleSDigits(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kSDIGITS,trCl);}
216  Int_t GetEvCountCycleDigits(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kDIGITS,trCl);}
217  Int_t GetEvCountCycleRecPoints(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kRECPOINTS,trCl);}
218  Int_t GetEvCountCycleESDS(Int_t trCl=-1) const {return GetEvCountCycle(AliQAv1::kESDS,trCl);}
219  //
220  Int_t GetEvCountTotalRaws(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kRAWS,trCl);}
221  Int_t GetEvCountTotalHits(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kHITS,trCl);}
222  Int_t GetEvCountTotalSDigits(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kSDIGITS,trCl);}
223  Int_t GetEvCountTotalDigits(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kDIGITS,trCl);}
224  Int_t GetEvCountTotalRecPoints(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kRECPOINTS,trCl);}
225  Int_t GetEvCountTotalESDS(Int_t trCl=-1) const {return GetEvCountTotal(AliQAv1::kESDS,trCl);}
226  //
227  void IncEvCountCycle(AliQAv1::TASKINDEX_t task, Int_t diff=1);
228  void IncEvCountTotal(AliQAv1::TASKINDEX_t task, Int_t diff=1);
229  //
238  //
247  //
248  virtual void ClonePerTrigClass(AliQAv1::TASKINDEX_t task) = 0;
249  //
250  static Int_t SetEventTrigClasses(const char* triggers);
252  static TNamed* GetTrigClass(Int_t i) {return fgTrigClasses ? (TNamed*)fgTrigClasses->At(i) : 0;}
253  static const char* GetTrigClassName(Int_t i) {return fgTrigClasses ? (i<0||i>=GetNTrigClasses() ? "TriggerBlind":GetTrigClass(i)->GetName()) : 0;}
254  static TNamed* GetEventTrigClass(Int_t i) {return (TNamed*)fgEventTrigClasses.At(i);}
255  static Int_t GetNEventTrigClasses() {return fgEventTrigClasses.GetEntriesFast();}
256  static void ResetEventTrigClasses() {fgEventTrigClasses.Clear(); fgEventTrigClasses.SetUniqueID(0);}
257  static Int_t GetNTrigClasses() {return fgTrigClasses ? fgTrigClasses->GetEntriesFast() : 0;}
258  static Bool_t IsEventTriggerSet() {return fgEventTrigClasses.GetUniqueID()>0;}
259  static void SetCloningRequest(TObjArray* aliases, TObjArray* histos);
260  //
261  static TObjArray* GetDataOfTrigClass(TObjArray * arr, Int_t cloneID, TObjArray *dest=0);
262  static TObjArray* GetDataOfTrigClass(TObjArray ** list, Int_t specieIndex, int cloneID, TObjArray *dest);
263  //
264  static const char* GetTriggerPrefix() {return fgkTriggerPrefix;}
265  //
266  protected:
267  virtual void ClonePerTrigClassL(TObjArray ** list, AliQAv1::TASKINDEX_t task);
268  virtual Int_t ClonePerTrigClassA(TObjArray * list, const char* hnm, const char* triggers, Bool_t keepOriginal=kFALSE);
269  virtual Int_t ClonePerTrigClassH(Int_t index, TObjArray* list, TObjArray* trigArr, Bool_t keepOriginal=kFALSE);
270  //
271  Int_t Add2List(TH1 * hist, const Int_t index, TObjArray ** list, const Bool_t expert = kFALSE, const Bool_t image = kFALSE, const Bool_t saveForCorr = kFALSE) ;
272  TH1 * CloneMe(TH1 * hist, Int_t specie) const ;
273  virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t task ) ;
274  TObject * GetData(TObjArray ** list, const Int_t index);
275  TH1* GetData(TObjArray ** list, const Int_t index, Int_t cloneID);
276  TObjArray* GetDataOfTrigClass(TObjArray ** list, Int_t cloneID, TObjArray *dest=0);
277  virtual void InitHits() = 0 ;
278  //virtual void InitRecParticles() = 0 ;
279  virtual void InitSDigits() = 0 ;
280  //virtual void InitTrackSegments() = 0 ;
281  virtual void MakeESDs(AliESDEvent * ) = 0 ;
282  virtual void MakeHits() = 0 ;
283  virtual void MakeHits(TTree * ) = 0 ;
284  virtual void MakeDigits() = 0 ;
285  virtual void MakeDigits(TTree * ) = 0 ;
286  //virtual void MakeRecParticles( ) = 0 ;
287  virtual void MakeRaws(AliRawReader *) = 0 ;
288  virtual void MakeRecPoints(TTree * ) = 0 ;
289  virtual void MakeSDigits() = 0 ;
290  virtual void MakeSDigits(TTree * ) = 0 ;
291  //virtual void MakeTrackSegments(TTree * ) = 0 ;
292  void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; }
293  virtual void StartOfDetectorCycle() = 0 ;
294  //
295  TH1* GetMatchingHisto(TObjArray ** list, Int_t index, Int_t trigId);
296  TObjArray* GetMatchingHistosSet(TObjArray ** list, const Int_t* indexList, Int_t nHist, Int_t trigId);
297  TObjArray* GetMatchingHistos(TObjArray ** list, Int_t index, TObjArray* optDest=0);
298  Bool_t CheckCloningConsistency(TObjArray ** list, const Int_t* indexList, Int_t nHist, Bool_t checkTriggers=kFALSE);
299  Int_t FillData(TObjArray ** list, Int_t index, double x);
300  Int_t FillData(TObjArray ** list, Int_t index, double x, double y);
301  Int_t FillData(TObjArray ** list, Int_t index, double x, double y, double z);
302  Int_t SetDataBinContent(TObjArray ** list, Int_t index, int bin, double w);
303  Int_t SetDataBinContent(TObjArray ** list, Int_t index, int binX, int binY, double w);
304  Int_t SetDataBinError(TObjArray ** list, Int_t index, int bin, double err);
305  Int_t SetDataBinError(TObjArray ** list, Int_t index, int binX, int binY, double err);
306  Int_t ResetData(TObjArray ** list, Int_t index, Option_t* option = "");
307  Int_t ResetStatsData(TObjArray ** list, Int_t index);
308  //
309  TFile * fOutput ;
310  TDirectory * fDetectorDir ;
311  TString fDetectorDirName ;
312  Int_t fCurrentCycle ;
313  Int_t fCycle ;
314  Int_t fCycleCounter ;
315  Bool_t fWriteExpert ;
316  TList ** fParameterList ;
317  Int_t fRun ;
319  TClonesArray * fDigitsArray ;
320  TArrayI fEvCountCycle[AliRecoParam::kNSpecies]; // cycle event counters per specie and per task and eventually per trigger class
321  TArrayI fEvCountTotal[AliRecoParam::kNSpecies]; // total event counters per specie and per task and eventually per trigger class
322  //
323  static TObjArray fgEventTrigClasses; // array of indices of fired trigger classes for current event (indices of fgTriggeClasses)
324  static TObjArray* fgCloningRequest; // set of histogram names and trigger aliases
325  static TObjArray* fgTrigClasses; // set of trigger_aliases and corresponding trigger names
326  static const Char_t* fgkTriggerPrefix; // special prefix to separate the trigger name from histo name
327  private:
328  AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented
329 
330  ClassDef(AliQADataMaker,5) // description
331 
332 };
333 
334 //____________________________________________________________________________
335 inline Bool_t AliQADataMaker::IsOrigHistoKept(Int_t index, TObjArray ** list) {
336  // check if the histogram was cloned and the original is kept
337  TObject* h = GetData(list,index); if (!h) return kFALSE;
338  return (!h->TestBit(AliQAv1::GetClonedBit())) || h->TestBit(AliQAv1::GetOrigHistoKeptBit());
339 }
340 
341 //____________________________________________________________________________
342 inline Int_t AliQADataMaker::IsClonedPerTrigClass(Int_t index, TObjArray ** list)
343 {
344  // if the historgam was cloned per trigger, return number of clones, otherwise, return 0
345  TObject* obj = GetData(list, index);
346  if (!obj || !obj->TestBit(AliQAv1::GetClonedBit())) return 0;
347  return ((TObjArray*)obj)->GetEntriesFast();
348 }
349 
350 //____________________________________________________________________________
351 inline Bool_t AliQADataMaker::MatchesToTriggers(UInt_t hpos) const
352 {
353  // check if the position hpos of clones TObjArray matches to one of event triggers classes
354  // if the event trigger was not set, every position is matching
355  if (!IsEventTriggerSet()) return kTRUE; // if triggers are not set, then this is a call from EndOfCycle
356  for (int itc=GetNEventTrigClasses();itc--;) if (fgEventTrigClasses.UncheckedAt(itc)->GetUniqueID()==hpos) return kTRUE;
357  return kFALSE;
358 }
359 
360 #endif // AliQADataMaker_H
virtual TObjArray * GetMatchingDigitsData(const Int_t index, TObjArray *optDest=0)=0
virtual TObject * GetHitsData(const Int_t index)=0
virtual TObjArray * GetMatchingESDsData(const Int_t index, TObjArray *optDest=0)=0
virtual Int_t FillESDsData(Int_t index, double x)=0
Bool_t CheckCloningConsistency(TObjArray **list, const Int_t *indexList, Int_t nHist, Bool_t checkTriggers=kFALSE)
Int_t GetEvCountTotalHits(Int_t trCl=-1) const
Int_t GetEvCountCycleSDigits(Int_t trCl=-1) const
virtual TObjArray * GetMatchingSDigitsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
TH1 * CloneMe(TH1 *hist, Int_t specie) const
virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray **list)=0
static const TObjArray & GetEventTrigClasses()
static const Char_t * fgkTriggerPrefix
virtual Int_t SetDigitsDataBinError(Int_t index, int bin, double err)=0
void IncEvCountTotalSDigits(Int_t diff=1)
TList ** fParameterList
flag to write or not the expert QA data
void ForbidCloning(TH1 *h, Bool_t v=kTRUE)
void IncEvCountTotalRecParticles(Int_t diff=1)
virtual Int_t SetESDsDataBinContent(Int_t index, int bin, double w)=0
virtual TObjArray * GetRawsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
virtual TObjArray * GetMatchingRawsData(const Int_t index, TObjArray *optDest=0)=0
virtual TObject * GetESDsData(const Int_t index)=0
virtual Int_t ResetStatsSDigitsData(Int_t index)=0
Int_t GetEvCountTotal(AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const
const Char_t * GetDetectorDirName() const
virtual Int_t SetESDsDataBinError(Int_t index, int bin, double err)=0
virtual Int_t ClonePerTrigClassA(TObjArray *list, const char *hnm, const char *triggers, Bool_t keepOriginal=kFALSE)
virtual TH1 * GetMatchingRecPointsHisto(Int_t index, Int_t trigId)=0
void Finish() const
static TObjArray * fgTrigClasses
virtual Int_t ResetRawsData(Int_t index, Option_t *opt="")=0
virtual Int_t SetHitsDataBinError(Int_t index, int bin, double err)=0
static UInt_t GetOrigHistoKeptBit()
Definition: AliQAv1.h:87
void IncEvCountCycle(AliQAv1::TASKINDEX_t task, Int_t diff=1)
void IncEvCountCycleDigits(Int_t diff=1)
#define TObjArray
static void SetCloningRequest(TObjArray *aliases, TObjArray *histos)
virtual Int_t ClonePerTrigClassH(Int_t index, TObjArray *list, TObjArray *trigArr, Bool_t keepOriginal=kFALSE)
Int_t FillData(TObjArray **list, Int_t index, double x)
virtual Int_t ResetStatsRawsData(Int_t index)=0
Bool_t IsValidEventSpecie(Int_t eventSpecieIndex, TObjArray **list)
static TObjArray * fgCloningRequest
virtual TH1 * GetMatchingHitsHisto(Int_t index, Int_t trigId)=0
virtual const AliDetectorRecoParam * GetRecoParam()
static TNamed * GetTrigClass(Int_t i)
void IncEvCountTotalRecPoints(Int_t diff=1)
Bool_t WriteExpert()
virtual Int_t FillRawsData(Int_t index, double x)=0
virtual TObject * GetDigitsData(const Int_t index)=0
void IncEvCountCycleTrackSegments(Int_t diff=1)
Int_t GetEvCountTotal(AliRecoParam::EventSpecie_t sp, AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const
Char_t * GetHistoTrigger(const TH1 *h) const
Int_t fCycle
current cycle number
Bool_t IsCycleDone() const
virtual Int_t FillHitsData(Int_t index, double x)=0
Int_t SetDataBinError(TObjArray **list, Int_t index, int bin, double err)
Int_t GetEvCountTotalESDS(Int_t trCl=-1) const
void IncEvCountCycleRecPoints(Int_t diff=1)
Int_t GetEvCountCycleDigits(Int_t trCl=-1) const
virtual Int_t Add2DigitsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE)=0
void ResetEvCountCycle()
virtual TObjArray * GetMatchingSDigitsData(const Int_t index, TObjArray *optDest=0)=0
TDirectory * fDetectorDir
output root file
void SetCycle(Int_t nevts)
Int_t GetEvCountCycle(AliRecoParam::EventSpecie_t sp, AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const
Int_t IsClonedPerTrigClass(Int_t index, TObjArray **list)
Bool_t fWriteExpert
cycle counter
static void ResetEventTrigClasses()
virtual void MakeHits()=0
void SetEventSpecie(Int_t es)
static UInt_t GetForbidCloningBit()
Definition: AliQAv1.h:86
static TObjArray * GetDataOfTrigClass(TObjArray *arr, Int_t cloneID, TObjArray *dest=0)
Int_t SetDataBinContent(TObjArray **list, Int_t index, int bin, double w)
Int_t GetEvCountCycleHits(Int_t trCl=-1) const
virtual void MakeESDs(AliESDEvent *)=0
virtual TH1 * GetMatchingDigitsHisto(Int_t index, Int_t trigId)=0
virtual void Exec(AliQAv1::TASKINDEX_t, TObject *data)=0
AliQADataMaker & operator=(const AliQADataMaker &)
virtual TObjArray * GetRecPointsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
virtual Int_t Add2ESDsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE)=0
virtual TObject * GetSDigitsData(const Int_t index)=0
virtual Int_t ResetStatsESDsData(Int_t index)=0
Int_t fCycleCounter
length (# events) of the QA data acquisition cycle
TArrayI fEvCountTotal[AliRecoParam::kNSpecies]
virtual Int_t SetRawsDataBinContent(Int_t index, int bin, double w)=0
virtual Int_t SetRawsDataBinError(Int_t index, int bin, double err)=0
void IncEvCountCycleRecParticles(Int_t diff=1)
TClonesArray * fDigitsArray
event specie, see AliRecoParam
virtual Int_t Add2RawsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE, const Bool_t saveForCorr=kFALSE)=0
virtual Int_t Add2RecPointsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE)=0
TString fDetectorDirName
directory for the given detector in the file
virtual void ResetDetector(AliQAv1::TASKINDEX_t task)=0
virtual Int_t FillDigitsData(Int_t index, double x)=0
virtual Int_t ResetDigitsData(Int_t index, Option_t *opt="")=0
virtual TH1 * GetMatchingSDigitsHisto(Int_t index, Int_t trigId)=0
virtual void InitRaws()=0
virtual Int_t SetDigitsDataBinContent(Int_t index, int bin, double w)=0
virtual Int_t SetRecPointsDataBinError(Int_t index, int bin, double err)=0
virtual Int_t ResetESDsData(Int_t index, Option_t *opt="")=0
virtual void ClonePerTrigClass(AliQAv1::TASKINDEX_t task)=0
void IncEvCountTotal(AliQAv1::TASKINDEX_t task, Int_t diff=1)
virtual TObjArray * GetMatchingESDsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
virtual void ClonePerTrigClassL(TObjArray **list, AliQAv1::TASKINDEX_t task)
static Bool_t IsEventTriggerSet()
virtual void MakeSDigits()=0
static TObjArray fgEventTrigClasses
static Int_t GetNEventTrigClasses()
TObject * GetData(TObjArray **list, const Int_t index)
static EventSpecie_t ConvertIndex(Int_t index)
virtual void InitDigits()=0
virtual Int_t ResetSDigitsData(Int_t index, Option_t *opt="")=0
Int_t GetEvCountTotalDigits(Int_t trCl=-1) const
virtual TObjArray * GetHitsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
Int_t GetEvCountTotalRecPoints(Int_t trCl=-1) const
virtual Int_t SetRecPointsDataBinContent(Int_t index, int bin, double w)=0
static const char * GetTriggerPrefix()
Int_t GetEvCountCycleRecPoints(Int_t trCl=-1) const
void IncEvCountTotalDigits(Int_t diff=1)
virtual ~AliQADataMaker()
Int_t ResetStatsData(TObjArray **list, Int_t index)
virtual void InitRecPoints()=0
virtual Int_t SetSDigitsDataBinContent(Int_t index, int bin, double w)=0
Bool_t MatchesToTriggers(UInt_t hpos) const
virtual TObject * GetRecPointsData(const Int_t index)=0
void IncEvCountTotalHits(Int_t diff=1)
static TNamed * GetEventTrigClass(Int_t i)
void ResetEvCountTotal()
virtual TH1 * GetMatchingRawsHisto(Int_t index, Int_t trigId)=0
TObjArray * GetMatchingHistosSet(TObjArray **list, const Int_t *indexList, Int_t nHist, Int_t trigId)
TArrayI fEvCountCycle[AliRecoParam::kNSpecies]
array to hold the sdigits
static Int_t GetNTrigClasses()
TH1 * GetMatchingHisto(TObjArray **list, Int_t index, Int_t trigId)
AliRecoParam::EventSpecie_t GetEventSpecie() const
virtual void InitHits()=0
Int_t GetRun() const
virtual Int_t ResetStatsHitsData(Int_t index)=0
virtual void MakeRecPoints(TTree *)=0
void ResetEvCountTotal(AliRecoParam::EventSpecie_t isp)
Int_t GetEvCountTotalSDigits(Int_t trCl=-1) const
virtual void DefaultEndOfDetectorCycle(AliQAv1::TASKINDEX_t task)
void IncEvCountTotalTrackSegments(Int_t diff=1)
void IncEvCountCycleHits(Int_t diff=1)
virtual TObjArray * GetMatchingHitsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
virtual TObjArray * GetMatchingRawsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
virtual Int_t SetHitsDataBinContent(Int_t index, int bin, double w)=0
static Int_t SetEventTrigClasses(const char *triggers)
virtual void InitRecPointsForTracker()
virtual Int_t Add2HitsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE)=0
virtual TObjArray ** Init(AliQAv1::TASKINDEX_t, Int_t cycles=-1)=0
virtual TObjArray * GetMatchingRecPointsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
virtual void MakeDigits()=0
virtual void StartOfCycle(Int_t run=-1)=0
virtual void StartOfDetectorCycle()=0
static UInt_t GetClonedBit()
Definition: AliQAv1.h:85
Int_t GetEvCountCycle(AliQAv1::TASKINDEX_t task, Int_t trCl=-1) const
void SetEventSpecie(AliRecoParam::EventSpecie_t es)
virtual void EndOfCycle()=0
void UnSetWriteExpert()
Int_t ResetData(TObjArray **list, Int_t index, Option_t *option="")
void IncEvCountCycleSDigits(Int_t diff=1)
virtual Int_t ResetRecPointsData(Int_t index, Option_t *opt="")=0
virtual TObjArray * GetMatchingDigitsHistosSet(const Int_t *indexList, Int_t nHist, Int_t trigId)=0
TASKINDEX_t
Definition: AliQAv1.h:30
virtual TObjArray * GetESDsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
void IncEvCountCycleRaws(Int_t diff=1)
virtual TObjArray * GetMatchingHitsData(const Int_t index, TObjArray *optDest=0)=0
virtual Int_t FillSDigitsData(Int_t index, double x)=0
static EventSpecie_t Convert(Int_t ies)
AliQADataMaker(const Char_t *name="", const Char_t *title="")
Int_t GetEvCountCycleESDS(Int_t trCl=-1) const
Int_t Add2List(TH1 *hist, const Int_t index, TObjArray **list, const Bool_t expert=kFALSE, const Bool_t image=kFALSE, const Bool_t saveForCorr=kFALSE)
void IncEvCountCycleESDs(Int_t diff=1)
virtual void SetRecoParam(const AliDetectorRecoParam *)
void IncEvCountTotalESDs(Int_t diff=1)
virtual Int_t ResetStatsDigitsData(Int_t index)=0
static Int_t AConvert(EventSpecie_t es)
virtual TH1 * GetMatchingESDsHisto(Int_t index, Int_t trigId)=0
virtual void MakeRaws(AliRawReader *)=0
virtual TObjArray * GetSDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
Bool_t IsOrigHistoKept(Int_t index, TObjArray **list)
virtual Int_t ResetHitsData(Int_t index, Option_t *opt="")=0
TList * GetParameterList() const
virtual TObjArray * GetDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0)=0
TObjArray * GetMatchingHistos(TObjArray **list, Int_t index, TObjArray *optDest=0)
virtual Int_t ResetStatsRecPointsData(Int_t index)=0
void ResetEvCountCycle(AliRecoParam::EventSpecie_t isp)
virtual Int_t Add2SDigitsList(TH1 *hist, const Int_t index, const Bool_t expert=kFALSE, const Bool_t image=kFALSE)=0
virtual TObjArray * GetMatchingRecPointsData(const Int_t index, TObjArray *optDest=0)=0
virtual Int_t SetSDigitsDataBinError(Int_t index, int bin, double err)=0
virtual void InitSDigits()=0
Int_t GetEvCountCycleRaws(Int_t trCl=-1) const
Int_t GetEvCountTotalRaws(Int_t trCl=-1) const
virtual Int_t FillRecPointsData(Int_t index, double x)=0
static const char * GetTrigClassName(Int_t i)
AliRecoParam::EventSpecie_t fEventSpecie
run number
Int_t fCurrentCycle
detector directory name in the quality assurance data file
virtual void InitESDs()=0
Int_t fRun
list of QA data parameters
Bool_t IsCloningForbidden(TH1 *h) const
void IncEvCountTotalRaws(Int_t diff=1)
virtual TObject * GetRawsData(const Int_t index)=0