]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliQADataMaker.h
Removal of out-of-event-loop QA. Correlation QA. Some clean-up in QA code (Yves)
[u/mrichter/AliRoot.git] / STEER / AliQADataMaker.h
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 class TClonesArray;
22 class TDirectory;
23 class TFile;  
24 class TObject; 
25 class TTree; 
26 class AliESDEvent;
27 class AliRawReader;
28 class AliDetectorRecoParam;
29
30 // --- Standard library ---
31
32 // --- AliRoot header files ---
33 #include "AliQA.h"
34
35 class AliQADataMaker: public TNamed {
36   
37 public:
38         
39         AliQADataMaker(const char * name="", const char * title="") ;          // ctor
40         AliQADataMaker(const AliQADataMaker& qadm) ;   
41         virtual ~AliQADataMaker() {} // dtor
42   
43         virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index)          = 0 ; 
44         virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index)            = 0 ; 
45         virtual Int_t Add2HitsList(TH1 * hist, const Int_t index)            = 0 ; 
46         virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index)       = 0 ; 
47         virtual Int_t Add2RawsList(TH1 * hist, const Int_t index, const Bool_t saveForCorr = kFALSE)            = 0 ; 
48         virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index)         = 0 ; 
49         virtual void        Exec(AliQA::TASKINDEX_t, TObject * data)         = 0 ;
50         virtual void        EndOfCycle()                                     = 0 ;
51         virtual void        EndOfCycle(AliQA::TASKINDEX_t)                   = 0 ;
52         void                Finish() const ; 
53         virtual TH1 *       GetDigitsData(const Int_t index)                       = 0 ; 
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() ; }
60   TList *             GetParameterList() const { return fParameterList ; }
61         const Int_t         Increment() { return ++fCycleCounter ; } 
62         virtual TObjArray * Init(AliQA::TASKINDEX_t, Int_t cycles = -1)                              = 0 ;
63         virtual void        Init(AliQA::TASKINDEX_t, TObjArray * list, Int_t run, Int_t cycles = -1) = 0 ;
64         const Bool_t        IsCycleDone() const { return fCycleCounter > fCycle ? kTRUE : kFALSE ; }
65         void                Reset() { fCycleCounter = 0 ; }
66         void                SetCycle(Int_t nevts) { fCycle = nevts ; } 
67         virtual void        StartOfCycle(Int_t run = -1)                                                      = 0 ;
68         virtual void        StartOfCycle(AliQA::TASKINDEX_t, Int_t run, const Bool_t sameCycle = kFALSE) = 0 ;
69
70         virtual void        SetRecoParam(const AliDetectorRecoParam */*param*/) { return; }
71           
72 protected: 
73
74         Int_t          Add2List(TH1 * hist, const Int_t index, TObjArray * list, const Bool_t saveForCorr = kFALSE) ;
75         virtual void   DefaultEndOfDetectorCycle(AliQA::TASKINDEX_t task ) ; 
76         virtual void   EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray * obj ) = 0 ; 
77         TObject *      GetData(TObjArray * list, const Int_t index) ;
78         virtual void   InitDigits()        = 0 ; 
79         virtual void   InitESDs()          = 0 ; 
80         virtual void   InitHits()          = 0 ; 
81   //virtual void   InitRecParticles()  = 0 ; 
82         virtual void   InitRecPoints()     = 0 ; 
83         virtual void   InitRaws()          = 0 ; 
84         virtual void   InitSDigits()       = 0 ; 
85   //virtual void   InitTrackSegments()  = 0 ; 
86         virtual void   MakeESDs(AliESDEvent * )          = 0 ; 
87         virtual void   MakeHits(TClonesArray * )         = 0 ; 
88         virtual void   MakeHits(TTree * )                = 0 ;  
89         virtual void   MakeDigits(TClonesArray * )       = 0 ;  
90         virtual void   MakeDigits(TTree * )              = 0 ; 
91   //virtual void   MakeRecParticles(TClonesArray * ) = 0 ; 
92         virtual void   MakeRaws(AliRawReader *)          = 0 ; 
93         virtual void   MakeRecPoints(TTree * )           = 0 ; 
94         virtual void   MakeSDigits(TClonesArray * )      = 0 ;  
95         virtual void   MakeSDigits(TTree * )             = 0 ;  
96   //virtual void   MakeTrackSegments(TTree * )           = 0 ;  
97         void           ResetCycle() { fCurrentCycle++ ; fCycleCounter = 0 ; } 
98         virtual void   StartOfDetectorCycle()            = 0 ;
99         
100         TFile *        fOutput ;          //! output root file
101         TDirectory *   fDetectorDir ;     //! directory for the given detector in the file
102         TString        fDetectorDirName ; //! detector directory name in the quality assurance data file
103         Int_t          fCurrentCycle ;    //! current cycle number
104         Int_t          fCycle ;           //! length (# events) of the QA data acquisition cycle  
105         Int_t          fCycleCounter ;    //! cycle counter
106   TList *        fParameterList ;   //! list of QA data parameters
107         Int_t          fRun ;             //! run number
108
109 private:
110         AliQADataMaker& operator = (const AliQADataMaker& /*qadm*/); // Not implemented
111
112   
113  ClassDef(AliQADataMaker,1)  // description 
114
115 };
116
117 #endif // AliQADataMaker_H