Removing obsolete option
[u/mrichter/AliRoot.git] / STEER / AliQADataMaker.h
CommitLineData
2e42b4d4 1#ifndef ALIQADATAMAKER_H
2#define ALIQADATAMAKER_H
421ab0fb 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
202374b1 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//
421ab0fb 15
16
17// --- ROOT system ---
6c18591a 18#include <TH1.h>
4edbc5bc 19#include <TObjArray.h>
421ab0fb 20#include <TNamed.h>
4edbc5bc 21class TClonesArray;
7079c8d7 22class TDirectory;
4edbc5bc 23class TFile;
d76c31f4 24class TObject;
25class TTree;
26class AliESDEvent;
d5cf81bd 27class AliRawReader;
b8bd1ab8 28class AliDetectorRecoParam;
a5fa6165 29
421ab0fb 30// --- Standard library ---
31
32// --- AliRoot header files ---
2e42b4d4 33#include "AliQA.h"
421ab0fb 34
2e42b4d4 35class AliQADataMaker: public TNamed {
421ab0fb 36
37public:
04236e67 38
39 AliQADataMaker(const char * name="", const char * title="") ; // ctor
40 AliQADataMaker(const AliQADataMaker& qadm) ;
54194e95 41 virtual ~AliQADataMaker() {} // dtor
421ab0fb 42
6e65319c 43 virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE) = 0 ;
44 virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE) = 0 ;
45 virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE) = 0 ;
46 virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE) = 0 ;
47 virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE) = 0 ;
48 virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE) = 0 ;
930e6e3e 49 virtual void Exec(AliQA::TASKINDEX_t, TObject * data) = 0 ;
50 virtual void EndOfCycle() = 0 ;
51 virtual void EndOfCycle(AliQA::TASKINDEX_t) = 0 ;
04236e67 52 void Finish() const ;
940d8e5f 53 virtual TH1 * GetDigitsData(const Int_t index) = 0 ;
eaff8e3b 54 virtual TH1 * GetESDsData(const Int_t index) = 0 ;
55 virtual TH1 * GetHitsData(const Int_t index) = 0 ;
56 virtual TH1 * GetRecPointsData(const Int_t index) = 0 ;
57 virtual TH1 * GetRawsData(const Int_t index) = 0 ;
58 virtual TH1 * GetSDigitsData(const Int_t index) = 0 ;
59 const char * GetDetectorDirName() const { return fDetectorDirName.Data() ; }
a2b64fbd 60 TList * GetParameterList() const { return fParameterList ; }
f12d42ce 61 Int_t Increment() { return ++fCycleCounter ; }
930e6e3e 62 virtual TObjArray * Init(AliQA::TASKINDEX_t, Int_t cycles = -1) = 0 ;
96d67a8d 63 virtual void Init(AliQA::TASKINDEX_t, TObjArray * list, Int_t run, Int_t cycles = -1) = 0 ;
f12d42ce 64 Bool_t IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
930e6e3e 65 void Reset() { fCycleCounter = 0 ; }
940d8e5f 66 void SetCycle(Int_t nevts) { fCycle = nevts ; }
b1af1125 67 void SetWriteExpert() { fWriteExpert = kTRUE ; }
930e6e3e 68 virtual void StartOfCycle(Int_t run = -1) = 0 ;
69 virtual void StartOfCycle(AliQA::TASKINDEX_t, Int_t run, const Bool_t sameCycle = kFALSE) = 0 ;
b1af1125 70 void UnSetWriteExpert() { fWriteExpert = kFALSE ; }
71 Bool_t WriteExpert() { return fWriteExpert ; }
6c18591a 72
a2b64fbd 73 virtual void SetRecoParam(const AliDetectorRecoParam */*param*/) { return; }
b8bd1ab8 74
421ab0fb 75protected:
76
6e65319c 77 Int_t Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t expert = kFALSE, const Bool_t saveForCorr = kFALSE) ;
96d67a8d 78 virtual void DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t task ) ;
79 virtual void EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray * obj ) = 0 ;
04236e67 80 TObject * GetData(TObjArray * list, const Int_t index) ;
81 virtual void InitDigits() = 0 ;
82 virtual void InitESDs() = 0 ;
83 virtual void InitHits() = 0 ;
84 //virtual void InitRecParticles() = 0 ;
85 virtual void InitRecPoints() = 0 ;
86 virtual void InitRaws() = 0 ;
87 virtual void InitSDigits() = 0 ;
88 //virtual void InitTrackSegments() = 0 ;
89 virtual void MakeESDs(AliESDEvent * ) = 0 ;
90 virtual void MakeHits(TClonesArray * ) = 0 ;
91 virtual void MakeHits(TTree * ) = 0 ;
92 virtual void MakeDigits(TClonesArray * ) = 0 ;
93 virtual void MakeDigits(TTree * ) = 0 ;
94 //virtual void MakeRecParticles(TClonesArray * ) = 0 ;
95 virtual void MakeRaws(AliRawReader *) = 0 ;
96 virtual void MakeRecPoints(TTree * ) = 0 ;
97 virtual void MakeSDigits(TClonesArray * ) = 0 ;
98 virtual void MakeSDigits(TTree * ) = 0 ;
99 //virtual void MakeTrackSegments(TTree * ) = 0 ;
100 void ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; }
101 virtual void StartOfDetectorCycle() = 0 ;
102
103 TFile * fOutput ; //! output root file
104 TDirectory * fDetectorDir ; //! directory for the given detector in the file
105 TString fDetectorDirName ; //! detector directory name in the quality assurance data file
106 Int_t fCurrentCycle ; //! current cycle number
107 Int_t fCycle ; //! length (# events) of the QA data acquisition cycle
108 Int_t fCycleCounter ; //! cycle counter
b1af1125 109 Bool_t fWriteExpert ; //! flag to write or not the expert QA data
a2b64fbd 110 TList * fParameterList ; //! list of QA data parameters
04236e67 111 Int_t fRun ; //! run number
54194e95 112
113private:
114 AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented
115
a4976ef3 116
2e42b4d4 117 ClassDef(AliQADataMaker,1) // description
421ab0fb 118
119};
120
2e42b4d4 121#endif // AliQADataMaker_H