Fix for raw ctp decoding (Marek)
[u/mrichter/AliRoot.git] / STEER / STEER / AliQADataMakerRec.h
1 #ifndef ALIQADATAMAKERREC_H
2 #define ALIQADATAMAKERREC_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 //  Base Class:
10 //  Produces the data needed to calculate the quality assurance. 
11 //  All data must be mergeable objects.
12 //  Y. Schutz CERN July 2007
13 //
14
15 // --- ROOT system ---
16 class TNtupleD ; 
17 // --- Standard library ---
18
19 // --- AliRoot header files ---
20 class AliDetectorRecoParam ;
21 #include "AliQADataMaker.h"
22 #include "AliQAv1.h"
23
24 class AliQADataMakerRec: public AliQADataMaker {
25   
26 public:
27         
28         AliQADataMakerRec(const char * name="", const char * title="") ;          // ctor
29         AliQADataMakerRec(const AliQADataMakerRec& qadm) ;   
30         AliQADataMakerRec& operator = (const AliQADataMakerRec& qadm) ;
31         virtual ~AliQADataMakerRec() ; // dtor
32   
33         virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)    
34   { return Add2List(hist, index, fDigitsQAList, expert, image) ; }
35   virtual Int_t Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)                      
36     { return Add2List(hist, index, fESDsQAList, expert, image) ; }
37   virtual Int_t Add2HitsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*image = kFALSE*/)      
38     { return -1 ; }  
39   virtual Int_t Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)                 
40     { return Add2List(hist, index, fRecPointsQAList, expert, image) ; }
41   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)  
42   { return Add2List(hist, index, fRawsQAList, expert, image, saveForCorr) ; }
43   virtual Int_t Add2SDigitsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*image = kFALSE*/)   { return -1 ; } 
44         
45   virtual void        Exec(AliQAv1::TASKINDEX_t task, TObject * data) ;
46   virtual void        EndOfCycle() ;
47   virtual void        EndOfCycle(AliQAv1::TASKINDEX_t task) ;
48   virtual void        EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** ) {AliInfo("To be implemented by detectors");} 
49   virtual const AliDetectorRecoParam * GetRecoParam() { return fRecoParam ; }
50
51   virtual TObject*    GetDigitsData(const Int_t index   )   { return GetData(fDigitsQAList, index); } 
52   virtual TObject*    GetESDsData(const Int_t index)        { return GetData(fESDsQAList, index); }
53   virtual TObject*    GetHitsData(const Int_t /*index*/)    { return NULL ; }
54   virtual TObject*    GetRecPointsData(const Int_t index)   { return GetData(fRecPointsQAList, index); }
55   virtual TObject*    GetRawsData(const Int_t index)        { return GetData(fRawsQAList, index); }
56   virtual TObject*    GetSDigitsData(const Int_t /*index*/) { return NULL; }  
57   //
58   virtual TH1*        GetDigitsData(const Int_t index, int cloneID)      { return GetData(fDigitsQAList, index, cloneID); } 
59   virtual TH1*        GetESDsData(const Int_t index, int cloneID)        { return GetData(fESDsQAList, index, cloneID); }
60   virtual TH1*        GetHitsData(const Int_t /*index*/, int)            { return NULL ; }
61   virtual TH1*        GetRecPointsData(const Int_t index, int cloneID)   { return GetData(fRecPointsQAList, index, cloneID); }
62   virtual TH1*        GetRawsData(const Int_t index, int cloneID)        { return GetData(fRawsQAList, index, cloneID); }
63   virtual TH1*        GetSDigitsData(const Int_t /*index*/, int)         { return NULL; }  
64   //
65   virtual TObjArray*  GetDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0)           {return GetDataOfTrigClass(fDigitsQAList,cloneID,dest);}
66   virtual TObjArray*  GetSDigitsDataOfTrigClass(int /*cloneID*/, TObjArray */*dest*/=0)  {return NULL;}
67   virtual TObjArray*  GetESDsDataOfTrigClass(int cloneID, TObjArray *dest=0)             {return GetDataOfTrigClass(fESDsQAList,cloneID,dest);}
68   virtual TObjArray*  GetHitsDataOfTrigClass(int /*cloneID*/, TObjArray */*dest*/=0)     {return NULL;}
69   virtual TObjArray*  GetRecPointsDataOfTrigClass(int cloneID, TObjArray *dest=0)        {return GetDataOfTrigClass(fRecPointsQAList,cloneID,dest);}
70   virtual TObjArray*  GetRawsDataOfTrigClass(int cloneID, TObjArray *dest=0)             {return GetDataOfTrigClass(fRawsQAList,cloneID,dest);}
71   //
72   virtual TObjArray** Init(AliQAv1::TASKINDEX_t task, Int_t cycles = -1) ;
73   virtual void        Init(AliQAv1::TASKINDEX_t task, TObjArray ** list, Int_t run, Int_t cycles = -1) ;
74   virtual void        InitRaws()                          {AliInfo("To be implemented by detectors");}
75   virtual void        InitRecPoints()                     {AliInfo("To be implemented by detectors");}
76   virtual void        InitDigits()                        {AliInfo("To be implemented by detectors");}
77   virtual void        InitESDs()                          {AliInfo("To be implemented by detectors");}
78   virtual void        ResetDetector(AliQAv1::TASKINDEX_t task) ;
79   virtual void        StartOfCycle(Int_t run = -1) ;
80   virtual void        StartOfCycle(AliQAv1::TASKINDEX_t task, Int_t run, const Bool_t sameCycle = kFALSE) ;
81   virtual void        SetRecoParam(const AliDetectorRecoParam *param) { fRecoParam = param; }
82   //
83   virtual TObjArray* GetMatchingHitsData(const Int_t, TObjArray*)                      {return 0;}
84   virtual TObjArray* GetMatchingSDigitsData(const Int_t, TObjArray*)                   {return 0;}
85   virtual TObjArray* GetMatchingDigitsData(const Int_t index, TObjArray* optDest=0)    {return GetMatchingHistos(fDigitsQAList,index,optDest);}
86   virtual TObjArray* GetMatchingRawsData(const Int_t index, TObjArray* optDest=0)      {return GetMatchingHistos(fRawsQAList,index,optDest);}
87   virtual TObjArray* GetMatchingRecPointsData(const Int_t index, TObjArray* optDest=0) {return GetMatchingHistos(fRecPointsQAList,index,optDest);}
88   virtual TObjArray* GetMatchingESDsData(const Int_t index, TObjArray* optDest=0)      {return GetMatchingHistos(fESDsQAList,index,optDest);}
89   //
90   virtual TH1*       GetMatchingHitsHisto(Int_t , Int_t )                  {return 0;}
91   virtual TH1*       GetMatchingSDigitsHisto(Int_t , Int_t )               {return 0;}
92   virtual TH1*       GetMatchingDigitsHisto(Int_t index, Int_t trigId)     {return GetMatchingHisto(fDigitsQAList,index,trigId);}
93   virtual TH1*       GetMatchingRawsHisto(Int_t index, Int_t trigId)       {return GetMatchingHisto(fRawsQAList,index,trigId);}
94   virtual TH1*       GetMatchingRecPointsHisto(Int_t index, Int_t trigId)  {return GetMatchingHisto(fRecPointsQAList,index,trigId);}
95   virtual TH1*       GetMatchingESDsHisto(Int_t index, Int_t trigId)       {return GetMatchingHisto(fESDsQAList,index,trigId);}
96   //
97   virtual TObjArray* GetMatchingHitsHistosSet(const Int_t*, Int_t ,Int_t)                            {return 0;}
98   virtual TObjArray* GetMatchingSDigitsHistosSet(const Int_t* , Int_t ,Int_t)                        {return 0;}
99   virtual TObjArray* GetMatchingDigitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId)    {return GetMatchingHistosSet(fDigitsQAList,indexList,nHist,trigId);}
100   virtual TObjArray* GetMatchingRawsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId)      {return GetMatchingHistosSet(fRawsQAList,indexList,nHist,trigId);}
101   virtual TObjArray* GetMatchingRecPointsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) {return GetMatchingHistosSet(fRecPointsQAList,indexList,nHist,trigId);}
102   virtual TObjArray* GetMatchingESDsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId)      {return GetMatchingHistosSet(fESDsQAList,indexList,nHist,trigId);}
103   //
104   virtual Int_t  FillHitsData(Int_t, double )                          {return -1;}
105   virtual Int_t  FillSDigitsData(Int_t, double)                        {return -1;}
106   virtual Int_t  FillDigitsData(Int_t index, double x)                 {return FillData(fDigitsQAList, index, x);}
107   virtual Int_t  FillRawsData(Int_t index, double x)                   {return FillData(fRawsQAList, index, x);}
108   virtual Int_t  FillRecPointsData(Int_t index, double x)              {return FillData(fRecPointsQAList, index, x);}
109   virtual Int_t  FillESDsData(Int_t index, double x)                   {return FillData(fESDsQAList, index, x);}
110   //
111   virtual Int_t  FillHitsData(Int_t, double, double)                   {return -1;}
112   virtual Int_t  FillSDigitsData(Int_t, double, double)                {return -1;}
113   virtual Int_t  FillDigitsData(Int_t index, double x, double y)       {return FillData(fDigitsQAList, index, x, y);}
114   virtual Int_t  FillRawsData(Int_t index, double x, double y)         {return FillData(fRawsQAList, index, x, y);}
115   virtual Int_t  FillRecPointsData(Int_t index, double x, double y)    {return FillData(fRecPointsQAList, index, x, y);}
116   virtual Int_t  FillESDsData(Int_t index, double x, double y)         {return FillData(fESDsQAList, index, x, y);}
117   //
118   virtual Int_t  FillHitsData(Int_t, double, double, double)                     {return -1;}
119   virtual Int_t  FillSDigitsData(Int_t, double, double, double)                  {return -1;}
120   virtual Int_t  FillDigitsData(Int_t index, double x, double y, double z)       {return FillData(fDigitsQAList, index, x,y,z);}
121   virtual Int_t  FillRawsData(Int_t index, double x, double y, double z)         {return FillData(fRawsQAList, index, x,y,z);}
122   virtual Int_t  FillRecPointsData(Int_t index, double x, double y, double z)    {return FillData(fRecPointsQAList, index, x,y,z);}
123   virtual Int_t  FillESDsData(Int_t index, double x, double y, double z)         {return FillData(fESDsQAList, index, x,y,z);}
124   //
125   virtual Int_t  SetHitsDataBinContent(Int_t, int, double)                       {return -1;}
126   virtual Int_t  SetSDigitsDataBinContent(Int_t, int, double)                    {return -1;}
127   virtual Int_t  SetDigitsDataBinContent(Int_t index, int bin, double w)         {return SetDataBinContent(fDigitsQAList, index,bin,w);}
128   virtual Int_t  SetRawsDataBinContent(Int_t index, int bin, double w)           {return SetDataBinContent(fRawsQAList, index,bin,w);}
129   virtual Int_t  SetRecPointsDataBinContent(Int_t index, int bin, double w)      {return SetDataBinContent(fRecPointsQAList, index,bin,w);}
130   virtual Int_t  SetESDsDataBinContent(Int_t index, int bin, double w)           {return SetDataBinContent(fESDsQAList, index,bin,w);}
131   //
132   virtual Int_t  SetHitsDataBinContent(Int_t, int, int, double)                         {return -1;}
133   virtual Int_t  SetSDigitsDataBinContent(Int_t, int, int, double)                      {return -1;}
134   virtual Int_t  SetDigitsDataBinContent(Int_t index, int binX, int binY, double w)     {return SetDataBinContent(fDigitsQAList, index,binX,binY,w);}
135   virtual Int_t  SetRawsDataBinContent(Int_t index, int binX, int binY, double w)       {return SetDataBinContent(fRawsQAList, index,binX,binY,w);}
136   virtual Int_t  SetRecPointsDataBinContent(Int_t index, int binX, int binY, double w)  {return SetDataBinContent(fRecPointsQAList, index,binX,binY,w);}
137   virtual Int_t  SetESDsDataBinContent(Int_t index, int binX, int binY, double w)       {return SetDataBinContent(fESDsQAList, index,binX,binY,w);}
138   //
139   virtual Int_t  SetHitsDataBinError(Int_t, int, double)                        {return -1;}
140   virtual Int_t  SetSDigitsDataBinError(Int_t, int, double)                     {return -1;}
141   virtual Int_t  SetDigitsDataBinError(Int_t index, int bin, double err)        {return SetDataBinError(fDigitsQAList, index,bin,err);}
142   virtual Int_t  SetRawsDataBinError(Int_t index, int bin, double err)          {return SetDataBinError(fRawsQAList, index,bin,err);}
143   virtual Int_t  SetRecPointsDataBinError(Int_t index, int bin, double err)     {return SetDataBinError(fRecPointsQAList, index,bin,err);}
144   virtual Int_t  SetESDsDataBinError(Int_t index, int bin, double err)          {return SetDataBinError(fESDsQAList, index,bin,err);}
145   //
146   virtual Int_t  SetHitsDataBinError(Int_t, int, int, double)                              {return -1;}
147   virtual Int_t  SetSDigitsDataBinError(Int_t, int, int, double)                           {return -1;}
148   virtual Int_t  SetDigitsDataBinError(Int_t index, int binX, int binY, double err)        {return SetDataBinError(fDigitsQAList, index,binX,binY,err);}
149   virtual Int_t  SetRawsDataBinError(Int_t index, int binX, int binY, double err)          {return SetDataBinError(fRawsQAList, index,binX,binY,err);}
150   virtual Int_t  SetRecPointsDataBinError(Int_t index, int binX, int binY, double err)     {return SetDataBinError(fRecPointsQAList, index,binX,binY,err);}
151   virtual Int_t  SetESDsDataBinError(Int_t index, int binX, int binY, double err)          {return SetDataBinError(fESDsQAList, index,binX,binY,err);}
152   //
153   virtual Int_t  ResetHitsData(Int_t, Option_t*)                      {return -1;}
154   virtual Int_t  ResetSDigitsData(Int_t, Option_t*)                   {return -1;}
155   virtual Int_t  ResetDigitsData(Int_t index, Option_t* opt="")       {return ResetData(fDigitsQAList, index, opt);}
156   virtual Int_t  ResetRawsData(Int_t index, Option_t* opt="")         {return ResetData(fRawsQAList, index, opt);}
157   virtual Int_t  ResetRecPointsData(Int_t index, Option_t* opt="")    {return ResetData(fRecPointsQAList, index, opt);}
158   virtual Int_t  ResetESDsData(Int_t index, Option_t* opt="")         {return ResetData(fESDsQAList, index, opt);}
159   //
160   virtual Int_t  ResetStatsHitsData(Int_t)                            {return -1;}
161   virtual Int_t  ResetStatsSDigitsData(Int_t)                         {return -1;}
162   virtual Int_t  ResetStatsDigitsData(Int_t index)                    {return ResetStatsData(fDigitsQAList, index);}
163   virtual Int_t  ResetStatsRawsData(Int_t index)                      {return ResetStatsData(fRawsQAList, index);}
164   virtual Int_t  ResetStatsRecPointsData(Int_t index)                 {return ResetStatsData(fRecPointsQAList, index);}
165   virtual Int_t  ResetStatsESDsData(Int_t index)                      {return ResetStatsData(fESDsQAList, index);}
166   //
167   virtual void   ClonePerTrigClass(AliQAv1::TASKINDEX_t task);
168   //
169 protected: 
170
171   virtual void   InitRecoParams() ; 
172   virtual void   InitHits()                          {AliWarning("Call not valid") ; }
173   //virtual void   InitRecParticles()                {AliInfo("To be implemented by detectors");}
174   virtual void   InitSDigits()                       {AliWarning("Call not valid") ; }
175   //virtual void   InitTrackSegments()               {AliInfo("To ne implemented by detectors");}
176   virtual void   MakeESDs(AliESDEvent * )            {AliInfo("To be implemented by detectors");} 
177   virtual void   MakeHits()                          {AliWarning("Call not valid") ; }
178   virtual void   MakeHits(TTree * )                  {AliWarning("Call not valid") ; }  
179   virtual void   MakeDigits()                        {AliInfo("To be implemented by detectors");}   
180   virtual void   MakeDigits(TTree * )                {AliInfo("To be implemented by detectors");}   
181   //virtual void   MakeRecParticles()                {AliInfo("To be implemented by detectors");} 
182   virtual void   MakeRaws(AliRawReader *)            {AliInfo("To be implemented by detectors");} 
183   virtual void   MakeRecPoints(TTree * )             {AliInfo("To be implemented by detectors");} 
184   virtual void   MakeSDigits()                       {AliWarning("Call not valid") ; }     
185   virtual void   MakeSDigits(TTree * )               {AliWarning("Call not valid") ; }    
186   virtual void   StartOfDetectorCycle()              {AliInfo("To be implemented by detectors");} 
187   
188   TObjArray * *               fDigitsQAList ;     //! list of the digits QA data objects
189   TObjArray * *               fESDsQAList ;       //! list of the ESDs QA data objects
190   TObjArray * *               fRawsQAList ;       //! list of the raws QA data objects
191   TObjArray * *               fRecPointsQAList ;  //! list of the RecPoints QA data objects
192   TNtupleD  **                fCorrNt ;           //! This is used by Corr only to hold its Ntuple. 
193   const AliDetectorRecoParam *fRecoParam;         //! const pointer to the reco parameters to be used in the reco QA
194   TClonesArray *              fRecPointsArray;    //! Array that contains the RecPoints    
195   
196  ClassDef(AliQADataMakerRec,4)  // description 
197
198 };
199
200 #endif // ALIQADATAMAKERREC_H