ROOT logo
#ifndef AliQADataMakerSim_H
#define AliQADataMakerSim_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


/* $Id$ */

//  Base Class:
//  Produces the data needed to calculate the quality assurance. 
//  All data must be mergeable objects.
//  Y. Schutz CERN July 2007


// --- ROOT system ---

// --- Standard library ---

// --- AliRoot header files ---
#include "AliQADataMaker.h"

class AliQADataMakerSim: public AliQADataMaker {
  
public:
	
	AliQADataMakerSim(const char * name="", const char * title="") ;          // ctor
	AliQADataMakerSim(const AliQADataMakerSim& qadm) ;   
	AliQADataMakerSim& operator = (const AliQADataMakerSim& qadm) ;
	virtual ~AliQADataMakerSim() ; // dtor
  
	virtual Int_t Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)                    
    { return Add2List(hist, index, fDigitsQAList, expert, image) ; }
	virtual Int_t Add2ESDsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*image = kFALSE*/)    
  { return -1 ; } 
	virtual Int_t Add2HitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)                      
  { return Add2List(hist, index, fHitsQAList, expert, image) ; }
	virtual Int_t Add2RecPointsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*image = kFALSE*/) 
    { return -1 ; } 
  virtual Int_t Add2RawsList(TH1 * /*hist*/, const Int_t /*index*/, const Bool_t /*expert = kFALSE*/, const Bool_t /*saveForCorr = kFALSE*/, const Bool_t /*image = kFALSE*/)      
    { return -1 ; }  
 virtual Int_t Add2SDigitsList(TH1 * hist, const Int_t index, const Bool_t expert = kFALSE, const Bool_t image = kFALSE)   
    { return Add2List(hist, index, fSDigitsQAList, expert, image) ; }

  virtual void        Exec(AliQAv1::TASKINDEX_t task, TObject * data) ;
  virtual void        EndOfCycle() ;
  virtual void        EndOfCycle(AliQAv1::TASKINDEX_t task) ;
  virtual void        EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** ) {AliInfo("To be implemented by detectors");} 
  //
  virtual TObject*    GetDigitsData(const Int_t index)        { return GetData(fDigitsQAList, index); }
  virtual TObject*    GetESDsData(const Int_t /*index*/)      { return NULL; }
  virtual TObject*    GetHitsData(const Int_t index)          { return GetData(fHitsQAList, index); }
  virtual TObject*    GetRecPointsData(const Int_t /*index*/) { return NULL; }
  virtual TObject*    GetRawsData(const Int_t /*index*/)      { return NULL; } 
  virtual TObject*    GetSDigitsData(const Int_t index)       { return GetData(fSDigitsQAList, index); }
  //
  virtual TH1*        GetDigitsData(const Int_t index, int cloneID)  { return GetData(fDigitsQAList, index, cloneID); }
  virtual TH1*        GetESDsData(const Int_t /*index*/, int)        { return NULL; }
  virtual TH1*        GetHitsData(const Int_t index, int cloneID)    { return GetData(fHitsQAList, index, cloneID); }
  virtual TH1*        GetRecPointsData(const Int_t /*index*/, int)   { return NULL; }
  virtual TH1*        GetRawsData(const Int_t /*index*/, int)        { return NULL; } 
  virtual TH1*        GetSDigitsData(const Int_t index, int cloneID) { return GetData(fSDigitsQAList, index, cloneID); }
  //
  virtual TObjArray*  GetDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0)              {return GetDataOfTrigClass(fDigitsQAList,cloneID,dest);}
  virtual TObjArray*  GetSDigitsDataOfTrigClass(int cloneID, TObjArray *dest=0)             {return GetDataOfTrigClass(fSDigitsQAList,cloneID,dest);}
  virtual TObjArray*  GetESDsDataOfTrigClass(int /*cloneID*/, TObjArray */*dest*/=0)        {return NULL;}
  virtual TObjArray*  GetHitsDataOfTrigClass(int cloneID, TObjArray *dest=0)                {return GetDataOfTrigClass(fHitsQAList,cloneID,dest);}
  virtual TObjArray*  GetRecPointsDataOfTrigClass(int /*cloneID*/, TObjArray */*dest*/=0)   {return NULL;}
  virtual TObjArray*  GetRawsDataOfTrigClass(int /*cloneID*/, TObjArray */*dest*/=0)        {return NULL;}
  //
  virtual TObjArray** Init(AliQAv1::TASKINDEX_t task, Int_t cycles = -1) ;
  virtual void        Init(AliQAv1::TASKINDEX_t task, TObjArray ** list, Int_t run, Int_t cycles = -1) ;
  virtual void        InitRaws() {AliWarning("Call not valid") ; }
  virtual void        InitRecPoints()                  {AliWarning("Call not valid") ; } 
  virtual void        ResetDetector(AliQAv1::TASKINDEX_t task) ;
  virtual void        StartOfCycle(Int_t run = -1) ;
  virtual void        StartOfCycle(AliQAv1::TASKINDEX_t task, Int_t run, const Bool_t sameCycle = kFALSE) ;
  //
  virtual TH1*       GetMatchingHitsHisto(Int_t index, Int_t trigId)       {return GetMatchingHisto(fHitsQAList,index,trigId);}
  virtual TH1*       GetMatchingSDigitsHisto(Int_t index, Int_t trigId)    {return GetMatchingHisto(fSDigitsQAList,index,trigId);}
  virtual TH1*       GetMatchingDigitsHisto(Int_t index, Int_t trigId)     {return GetMatchingHisto(fDigitsQAList,index,trigId);}
  virtual TH1*       GetMatchingRawsHisto(Int_t, Int_t)                    {return 0;}
  virtual TH1*       GetMatchingRecPointsHisto(Int_t, Int_t)               {return 0;}
  virtual TH1*       GetMatchingESDsHisto(Int_t, Int_t)                    {return 0;}
  //
  virtual TObjArray* GetMatchingHitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId)    {return GetMatchingHistosSet(fHitsQAList,indexList,nHist,trigId);}
  virtual TObjArray* GetMatchingSDigitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId) {return GetMatchingHistosSet(fSDigitsQAList,indexList,nHist,trigId);}
  virtual TObjArray* GetMatchingDigitsHistosSet(const Int_t* indexList, Int_t nHist,Int_t trigId)  {return GetMatchingHistosSet(fDigitsQAList,indexList,nHist,trigId);}
  virtual TObjArray* GetMatchingRawsHistosSet(const Int_t*, Int_t,Int_t)                           {return 0;}
  virtual TObjArray* GetMatchingRecPointsHistosSet(const Int_t*,Int_t,Int_t)                       {return 0;}
  virtual TObjArray* GetMatchingESDsHistosSet(const Int_t*, Int_t,Int_t)                           {return 0;}
  //
  virtual TObjArray* GetMatchingHitsData(const Int_t index, TObjArray* optDest=0)    {return GetMatchingHistos(fHitsQAList,index,optDest);}
  virtual TObjArray* GetMatchingSDigitsData(const Int_t index, TObjArray* optDest=0) {return GetMatchingHistos(fSDigitsQAList,index,optDest);}
  virtual TObjArray* GetMatchingDigitsData(const Int_t index, TObjArray* optDest=0)  {return GetMatchingHistos(fDigitsQAList,index,optDest);}
  virtual TObjArray* GetMatchingRawsData(const Int_t, TObjArray*)                    {return 0;}
  virtual TObjArray* GetMatchingRecPointsData(const Int_t, TObjArray*)               {return 0;}
  virtual TObjArray* GetMatchingESDsData(const Int_t, TObjArray*)                    {return 0;}
  //
  virtual Int_t  FillHitsData(Int_t index, double x)                   {return FillData(fHitsQAList, index, x);}
  virtual Int_t  FillSDigitsData(Int_t index, double x)                {return FillData(fSDigitsQAList, index, x);}
  virtual Int_t  FillDigitsData(Int_t index, double x)                 {return FillData(fDigitsQAList, index, x);}
  virtual Int_t  FillRawsData(Int_t, double)                           {return -1;}
  virtual Int_t  FillRecPointsData(Int_t, double)                      {return -1;}
  virtual Int_t  FillESDsData(Int_t, double)                           {return -1;}
  //
  virtual Int_t  FillHitsData(Int_t index, double x, double y)         {return FillData(fHitsQAList, index, x, y);}
  virtual Int_t  FillSDigitsData(Int_t index, double x, double y)      {return FillData(fSDigitsQAList, index, x, y);}
  virtual Int_t  FillDigitsData(Int_t index, double x, double y)       {return FillData(fDigitsQAList, index, x, y);}
  virtual Int_t  FillRawsData(Int_t, double, double)                   {return -1;}
  virtual Int_t  FillRecPointsData(Int_t, double, double)              {return -1;}
  virtual Int_t  FillESDsData(Int_t, double, double)                   {return -1;}
  //
  virtual Int_t  FillHitsData(Int_t index, double x, double y, double z)         {return FillData(fHitsQAList, index, x,y,z);}
  virtual Int_t  FillSDigitsData(Int_t index, double x, double y, double z)      {return FillData(fSDigitsQAList, index, x,y,z);}
  virtual Int_t  FillDigitsData(Int_t index, double x, double y, double z)       {return FillData(fDigitsQAList, index, x,y,z);}
  virtual Int_t  FillRawsData(Int_t, double, double, double)                     {return -1;}
  virtual Int_t  FillRecPointsData(Int_t, double, double, double)                {return -1;}
  virtual Int_t  FillESDsData(Int_t, double, double, double)                     {return -1;}
  //
  virtual Int_t  SetHitsDataBinContent(Int_t index, int bin, double w)           {return SetDataBinContent(fHitsQAList, index,bin,w);}
  virtual Int_t  SetDigitsDataBinContent(Int_t index, int bin, double w)         {return SetDataBinContent(fDigitsQAList, index,bin,w);}
  virtual Int_t  SetSDigitsDataBinContent(Int_t index, int bin, double w)        {return SetDataBinContent(fSDigitsQAList, index,bin,w);}
  virtual Int_t  SetRawsDataBinContent(Int_t, int, double)                       {return -1;}
  virtual Int_t  SetRecPointsDataBinContent(Int_t, int, double)                  {return -1;}
  virtual Int_t  SetESDsDataBinContent(Int_t, int, double)                       {return -1;}
  //
  virtual Int_t  SetHitsDataBinContent(Int_t index, int binX, int binY, double w)      {return SetDataBinContent(fHitsQAList, index,binX,binY,w);}
  virtual Int_t  SetDigitsDataBinContent(Int_t index, int binX, int binY, double w)    {return SetDataBinContent(fDigitsQAList, index,binX,binY,w);}
  virtual Int_t  SetSDigitsDataBinContent(Int_t index, int binX, int binY, double w)   {return SetDataBinContent(fSDigitsQAList, index,binX,binY,w);}
  virtual Int_t  SetRawsDataBinContent(Int_t, int, int, double)                        {return -1;}
  virtual Int_t  SetRecPointsDataBinContent(Int_t, int, int, double)                   {return -1;}
  virtual Int_t  SetESDsDataBinContent(Int_t, int, int, double)                        {return -1;}
  //
  virtual Int_t  SetHitsDataBinError(Int_t index, int bin, double err)           {return SetDataBinError(fHitsQAList, index,bin,err);}
  virtual Int_t  SetDigitsDataBinError(Int_t index, int bin, double err)         {return SetDataBinError(fDigitsQAList, index,bin,err);}
  virtual Int_t  SetSDigitsDataBinError(Int_t index, int bin, double err)        {return SetDataBinError(fSDigitsQAList, index,bin,err);}
  virtual Int_t  SetRawsDataBinError(Int_t, int, double)                         {return -1;}
  virtual Int_t  SetRecPointsDataBinError(Int_t, int, double)                    {return -1;}
  virtual Int_t  SetESDsDataBinError(Int_t, int, double)                         {return -1;}
  //
  virtual Int_t  SetHitsDataBinError(Int_t index, int binX, int binY, double err)       {return SetDataBinError(fHitsQAList, index,binX,binY,err);}
  virtual Int_t  SetDigitsDataBinError(Int_t index, int binX, int binY, double err)     {return SetDataBinError(fDigitsQAList, index,binX,binY,err);}
  virtual Int_t  SetSDigitsDataBinError(Int_t index, int binX, int binY, double err)    {return SetDataBinError(fSDigitsQAList, index,binX,binY,err);}
  virtual Int_t  SetRawsDataBinError(Int_t, int, int, double)                           {return -1;}
  virtual Int_t  SetRecPointsDataBinError(Int_t, int, int, double)                      {return -1;}
  virtual Int_t  SetESDsDataBinError(Int_t, int, int, double)                           {return -1;}
  //
  virtual Int_t  ResetHitsData(Int_t index, Option_t* opt="")                    {return ResetData(fHitsQAList, index, opt);}
  virtual Int_t  ResetSDigitsData(Int_t index, Option_t* opt="")                 {return ResetData(fSDigitsQAList, index, opt);}
  virtual Int_t  ResetDigitsData(Int_t index, Option_t* opt="")                  {return ResetData(fDigitsQAList, index, opt);}
  virtual Int_t  ResetRawsData(Int_t, Option_t*)                                 {return -1;}
  virtual Int_t  ResetRecPointsData(Int_t, Option_t*)                            {return -1;}
  virtual Int_t  ResetESDsData(Int_t, Option_t*)                                 {return -1;}
  //
  virtual Int_t  ResetStatsHitsData(Int_t index)                      {return ResetStatsData(fHitsQAList, index);}
  virtual Int_t  ResetStatsSDigitsData(Int_t index)                   {return ResetStatsData(fSDigitsQAList, index);}
  virtual Int_t  ResetStatsDigitsData(Int_t index)                    {return ResetStatsData(fDigitsQAList, index);}
  virtual Int_t  ResetStatsRawsData(Int_t)                            {return -1;}
  virtual Int_t  ResetStatsRecPointsData(Int_t)                       {return -1;}
  virtual Int_t  ResetStatsESDsData(Int_t)                            {return -1;}
  //
  virtual void ClonePerTrigClass(AliQAv1::TASKINDEX_t task);  
  //
 protected: 
  //
  virtual void   InitDigits()                     {AliInfo("To be implemented by detectors");}
  virtual void   InitESDs()                       {AliWarning("Call not valid") ; } 
  virtual void   InitHits()                       {AliInfo("To be implemented by detectors");}
  virtual void   InitSDigits()                    {AliInfo("To be implemented by detectors");}
  virtual void   MakeESDs(AliESDEvent * )         {AliWarning("Call not valid") ; }
  virtual void   MakeHits()                       {AliInfo("To be implemented by detectors");} 
  virtual void   MakeHits(TTree * )               {AliInfo("To be implemented by detectors");} 
  virtual void   MakeDigits()                     {AliInfo("To be implemented by detectors");} 
  virtual void   MakeDigits(TTree * )             {AliInfo("To be implemented by detectors");} 
  virtual void   MakeRaws(AliRawReader *)         {AliWarning("Call not valid") ; } 
  virtual void   MakeRecPoints(TTree * )          {AliWarning("Call not valid") ; } 
  virtual void   MakeSDigits()                    {AliInfo("To be implemented by detectors");} 
  virtual void   MakeSDigits(TTree * )            {AliInfo("To be implemented by detectors");} 
  virtual void   StartOfDetectorCycle()           {AliInfo("To be implemented by detectors");} 
  
  TObjArray * *    fDigitsQAList ;     //! list of the digits QA data objects
  TObjArray * *    fHitsQAList ;       //! list of the hits QA data objects
  TObjArray * *    fSDigitsQAList ;    //! list of the sdigits QA data objects
  TClonesArray *   fHitsArray ;       //! array to hold the hits
  TClonesArray *   fSDigitsArray ;     //! array to hold the digits

	  
 ClassDef(AliQADataMakerSim,2)  // description 

};

#endif // AliQADataMakerSim_H

 AliQADataMakerSim.h:1
 AliQADataMakerSim.h:2
 AliQADataMakerSim.h:3
 AliQADataMakerSim.h:4
 AliQADataMakerSim.h:5
 AliQADataMakerSim.h:6
 AliQADataMakerSim.h:7
 AliQADataMakerSim.h:8
 AliQADataMakerSim.h:9
 AliQADataMakerSim.h:10
 AliQADataMakerSim.h:11
 AliQADataMakerSim.h:12
 AliQADataMakerSim.h:13
 AliQADataMakerSim.h:14
 AliQADataMakerSim.h:15
 AliQADataMakerSim.h:16
 AliQADataMakerSim.h:17
 AliQADataMakerSim.h:18
 AliQADataMakerSim.h:19
 AliQADataMakerSim.h:20
 AliQADataMakerSim.h:21
 AliQADataMakerSim.h:22
 AliQADataMakerSim.h:23
 AliQADataMakerSim.h:24
 AliQADataMakerSim.h:25
 AliQADataMakerSim.h:26
 AliQADataMakerSim.h:27
 AliQADataMakerSim.h:28
 AliQADataMakerSim.h:29
 AliQADataMakerSim.h:30
 AliQADataMakerSim.h:31
 AliQADataMakerSim.h:32
 AliQADataMakerSim.h:33
 AliQADataMakerSim.h:34
 AliQADataMakerSim.h:35
 AliQADataMakerSim.h:36
 AliQADataMakerSim.h:37
 AliQADataMakerSim.h:38
 AliQADataMakerSim.h:39
 AliQADataMakerSim.h:40
 AliQADataMakerSim.h:41
 AliQADataMakerSim.h:42
 AliQADataMakerSim.h:43
 AliQADataMakerSim.h:44
 AliQADataMakerSim.h:45
 AliQADataMakerSim.h:46
 AliQADataMakerSim.h:47
 AliQADataMakerSim.h:48
 AliQADataMakerSim.h:49
 AliQADataMakerSim.h:50
 AliQADataMakerSim.h:51
 AliQADataMakerSim.h:52
 AliQADataMakerSim.h:53
 AliQADataMakerSim.h:54
 AliQADataMakerSim.h:55
 AliQADataMakerSim.h:56
 AliQADataMakerSim.h:57
 AliQADataMakerSim.h:58
 AliQADataMakerSim.h:59
 AliQADataMakerSim.h:60
 AliQADataMakerSim.h:61
 AliQADataMakerSim.h:62
 AliQADataMakerSim.h:63
 AliQADataMakerSim.h:64
 AliQADataMakerSim.h:65
 AliQADataMakerSim.h:66
 AliQADataMakerSim.h:67
 AliQADataMakerSim.h:68
 AliQADataMakerSim.h:69
 AliQADataMakerSim.h:70
 AliQADataMakerSim.h:71
 AliQADataMakerSim.h:72
 AliQADataMakerSim.h:73
 AliQADataMakerSim.h:74
 AliQADataMakerSim.h:75
 AliQADataMakerSim.h:76
 AliQADataMakerSim.h:77
 AliQADataMakerSim.h:78
 AliQADataMakerSim.h:79
 AliQADataMakerSim.h:80
 AliQADataMakerSim.h:81
 AliQADataMakerSim.h:82
 AliQADataMakerSim.h:83
 AliQADataMakerSim.h:84
 AliQADataMakerSim.h:85
 AliQADataMakerSim.h:86
 AliQADataMakerSim.h:87
 AliQADataMakerSim.h:88
 AliQADataMakerSim.h:89
 AliQADataMakerSim.h:90
 AliQADataMakerSim.h:91
 AliQADataMakerSim.h:92
 AliQADataMakerSim.h:93
 AliQADataMakerSim.h:94
 AliQADataMakerSim.h:95
 AliQADataMakerSim.h:96
 AliQADataMakerSim.h:97
 AliQADataMakerSim.h:98
 AliQADataMakerSim.h:99
 AliQADataMakerSim.h:100
 AliQADataMakerSim.h:101
 AliQADataMakerSim.h:102
 AliQADataMakerSim.h:103
 AliQADataMakerSim.h:104
 AliQADataMakerSim.h:105
 AliQADataMakerSim.h:106
 AliQADataMakerSim.h:107
 AliQADataMakerSim.h:108
 AliQADataMakerSim.h:109
 AliQADataMakerSim.h:110
 AliQADataMakerSim.h:111
 AliQADataMakerSim.h:112
 AliQADataMakerSim.h:113
 AliQADataMakerSim.h:114
 AliQADataMakerSim.h:115
 AliQADataMakerSim.h:116
 AliQADataMakerSim.h:117
 AliQADataMakerSim.h:118
 AliQADataMakerSim.h:119
 AliQADataMakerSim.h:120
 AliQADataMakerSim.h:121
 AliQADataMakerSim.h:122
 AliQADataMakerSim.h:123
 AliQADataMakerSim.h:124
 AliQADataMakerSim.h:125
 AliQADataMakerSim.h:126
 AliQADataMakerSim.h:127
 AliQADataMakerSim.h:128
 AliQADataMakerSim.h:129
 AliQADataMakerSim.h:130
 AliQADataMakerSim.h:131
 AliQADataMakerSim.h:132
 AliQADataMakerSim.h:133
 AliQADataMakerSim.h:134
 AliQADataMakerSim.h:135
 AliQADataMakerSim.h:136
 AliQADataMakerSim.h:137
 AliQADataMakerSim.h:138
 AliQADataMakerSim.h:139
 AliQADataMakerSim.h:140
 AliQADataMakerSim.h:141
 AliQADataMakerSim.h:142
 AliQADataMakerSim.h:143
 AliQADataMakerSim.h:144
 AliQADataMakerSim.h:145
 AliQADataMakerSim.h:146
 AliQADataMakerSim.h:147
 AliQADataMakerSim.h:148
 AliQADataMakerSim.h:149
 AliQADataMakerSim.h:150
 AliQADataMakerSim.h:151
 AliQADataMakerSim.h:152
 AliQADataMakerSim.h:153
 AliQADataMakerSim.h:154
 AliQADataMakerSim.h:155
 AliQADataMakerSim.h:156
 AliQADataMakerSim.h:157
 AliQADataMakerSim.h:158
 AliQADataMakerSim.h:159
 AliQADataMakerSim.h:160
 AliQADataMakerSim.h:161
 AliQADataMakerSim.h:162
 AliQADataMakerSim.h:163
 AliQADataMakerSim.h:164
 AliQADataMakerSim.h:165
 AliQADataMakerSim.h:166
 AliQADataMakerSim.h:167
 AliQADataMakerSim.h:168
 AliQADataMakerSim.h:169
 AliQADataMakerSim.h:170
 AliQADataMakerSim.h:171
 AliQADataMakerSim.h:172
 AliQADataMakerSim.h:173
 AliQADataMakerSim.h:174
 AliQADataMakerSim.h:175
 AliQADataMakerSim.h:176
 AliQADataMakerSim.h:177
 AliQADataMakerSim.h:178
 AliQADataMakerSim.h:179
 AliQADataMakerSim.h:180
 AliQADataMakerSim.h:181
 AliQADataMakerSim.h:182
 AliQADataMakerSim.h:183
 AliQADataMakerSim.h:184
 AliQADataMakerSim.h:185
 AliQADataMakerSim.h:186
 AliQADataMakerSim.h:187
 AliQADataMakerSim.h:188
 AliQADataMakerSim.h:189
 AliQADataMakerSim.h:190
 AliQADataMakerSim.h:191
 AliQADataMakerSim.h:192
 AliQADataMakerSim.h:193