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


/* $Id$ */


//
//  Checks the quality assurance. 
//  By comparing with reference data
//  contained in a DB
//
//
//  W. Ferrarese + P. Cerello Feb 2008
//
//  ESD QA (Tracking and primary vertex)
//  A. Dainese Jun 2008 

#include "AliQADataMakerRec.h"

class AliDetectorRecoParam;
class AliReconstructor;
//#include "AliITSDDLModuleMapSDD.h"

class AliQAManager;
class AliITSQASPDDataMakerRec;
class AliITSQASDDDataMakerRec;
class AliITSQASSDDataMakerRec;
class AliITSRecPoint;
class AliRawReader;
class TH2F;
class AliITSDDLModuleMapSDD;

class AliITSQADataMakerRec: public AliQADataMakerRec {

  friend class AliITSQASPDDataMakerRec; //friend class of SPD QA
  friend class AliITSQASDDDataMakerRec; //friend class of SDD QA
  friend class AliITSQASSDDataMakerRec; //friend class of SSD QA

public:
  AliITSQADataMakerRec(Bool_t kMode = kFALSE, Short_t subDet = 0, Short_t ldc = 0); // kMode = kFALSE (offline), kTRUE (online); subDet = 0 (ALL), 1 (SPD), 2 (SDD), 3 (SSD)
  AliITSQADataMakerRec(const AliITSQADataMakerRec& qadm);
  AliITSQADataMakerRec& operator = (const AliITSQADataMakerRec& qac);
  virtual Int_t GetEventSpecie() const { return AliRecoParam::AConvert(fEventSpecie); }
  virtual void StartOfDetectorCycle();
  virtual void StartOfCycle(AliQAv1::TASKINDEX_t task, Int_t run, const Bool_t sameCycle = kFALSE) ;
  virtual void StartOfCycle(Int_t run){AliQADataMakerRec::StartOfCycle(run);}
  virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list);
  //  virtual void EndOfDetectorCycle(const char *fgDataName);
  virtual void InitRaws();
  virtual void InitDigits();
  virtual void InitRecPoints();
  virtual void InitESDs();
  virtual void MakeRaws(AliRawReader *rawReader);
  virtual void MakeDigits(){AliWarning("Signature not implemented. A TTree* of digits should be passed as input argument");} 
  virtual void MakeDigits(TTree *digitsTree);
  virtual void MakeRecPoints(TTree *clustersTree);
  virtual void MakeESDs(AliESDEvent *esd);
  virtual void FillRecPoint(AliITSRecPoint rcp);
  virtual Bool_t ListExists(AliQAv1::TASKINDEX_t task) const;
  AliQAv1::TASKINDEX_t GetTaskIndexSelected() const {return fSelectedTaskIndex;}

  virtual void ResetDetector(AliQAv1::TASKINDEX_t task);

  virtual ~AliITSQADataMakerRec(); // dtor
  Short_t GetSubDet()const {return fSubDetector;};
  Int_t GetDetTaskOffset(Int_t subdet,AliQAv1::TASKINDEX_t task,Int_t specie=0);
  Int_t GetDetTaskHisto(Int_t subdet,AliQAv1::TASKINDEX_t task);
  TH2F *GetITSGlobalHisto(Int_t layer);
  static Bool_t AreEqual(Double_t a1, Double_t a2);
  
  virtual void SetRunNumber(Int_t runnumber){fRunNumber=runnumber;};
  Int_t GetRunNumber()const {return fRunNumber;};
  
  virtual void SetEventNumber(Int_t eventnumber){fEventNumber=eventnumber;};
  Int_t GetEventNumber() const {return fEventNumber;};
  AliITSDDLModuleMapSDD *GetDDLSDDModuleMap();
  
 private:
  
  Bool_t  fkOnline;                        //online (1) or offline (0) use
  Short_t fSubDetector;                    // subDetector: 0 (ALL), 1 (SPD), 2 (SDD), 3 (SSD)
  Short_t fLDC;				   // number of LDC: 0 (one LDC for the whole subdetector)
  Int_t fRunNumber;                        //run number
  Int_t fEventNumber;                      //Event number (online mode)
  AliQAv1::TASKINDEX_t fSelectedTaskIndex; //Current TaskIndex

  AliITSQASPDDataMakerRec *fSPDDataMaker;  // SPD Data Maker 
  AliITSQASDDDataMakerRec *fSDDDataMaker;  // SDD Data Maker 
  AliITSQASSDDataMakerRec *fSSDDataMaker;  // SSD Data Maker 

  ClassDef(AliITSQADataMakerRec,8)         // description 

};

#endif

 AliITSQADataMakerRec.h:1
 AliITSQADataMakerRec.h:2
 AliITSQADataMakerRec.h:3
 AliITSQADataMakerRec.h:4
 AliITSQADataMakerRec.h:5
 AliITSQADataMakerRec.h:6
 AliITSQADataMakerRec.h:7
 AliITSQADataMakerRec.h:8
 AliITSQADataMakerRec.h:9
 AliITSQADataMakerRec.h:10
 AliITSQADataMakerRec.h:11
 AliITSQADataMakerRec.h:12
 AliITSQADataMakerRec.h:13
 AliITSQADataMakerRec.h:14
 AliITSQADataMakerRec.h:15
 AliITSQADataMakerRec.h:16
 AliITSQADataMakerRec.h:17
 AliITSQADataMakerRec.h:18
 AliITSQADataMakerRec.h:19
 AliITSQADataMakerRec.h:20
 AliITSQADataMakerRec.h:21
 AliITSQADataMakerRec.h:22
 AliITSQADataMakerRec.h:23
 AliITSQADataMakerRec.h:24
 AliITSQADataMakerRec.h:25
 AliITSQADataMakerRec.h:26
 AliITSQADataMakerRec.h:27
 AliITSQADataMakerRec.h:28
 AliITSQADataMakerRec.h:29
 AliITSQADataMakerRec.h:30
 AliITSQADataMakerRec.h:31
 AliITSQADataMakerRec.h:32
 AliITSQADataMakerRec.h:33
 AliITSQADataMakerRec.h:34
 AliITSQADataMakerRec.h:35
 AliITSQADataMakerRec.h:36
 AliITSQADataMakerRec.h:37
 AliITSQADataMakerRec.h:38
 AliITSQADataMakerRec.h:39
 AliITSQADataMakerRec.h:40
 AliITSQADataMakerRec.h:41
 AliITSQADataMakerRec.h:42
 AliITSQADataMakerRec.h:43
 AliITSQADataMakerRec.h:44
 AliITSQADataMakerRec.h:45
 AliITSQADataMakerRec.h:46
 AliITSQADataMakerRec.h:47
 AliITSQADataMakerRec.h:48
 AliITSQADataMakerRec.h:49
 AliITSQADataMakerRec.h:50
 AliITSQADataMakerRec.h:51
 AliITSQADataMakerRec.h:52
 AliITSQADataMakerRec.h:53
 AliITSQADataMakerRec.h:54
 AliITSQADataMakerRec.h:55
 AliITSQADataMakerRec.h:56
 AliITSQADataMakerRec.h:57
 AliITSQADataMakerRec.h:58
 AliITSQADataMakerRec.h:59
 AliITSQADataMakerRec.h:60
 AliITSQADataMakerRec.h:61
 AliITSQADataMakerRec.h:62
 AliITSQADataMakerRec.h:63
 AliITSQADataMakerRec.h:64
 AliITSQADataMakerRec.h:65
 AliITSQADataMakerRec.h:66
 AliITSQADataMakerRec.h:67
 AliITSQADataMakerRec.h:68
 AliITSQADataMakerRec.h:69
 AliITSQADataMakerRec.h:70
 AliITSQADataMakerRec.h:71
 AliITSQADataMakerRec.h:72
 AliITSQADataMakerRec.h:73
 AliITSQADataMakerRec.h:74
 AliITSQADataMakerRec.h:75
 AliITSQADataMakerRec.h:76
 AliITSQADataMakerRec.h:77
 AliITSQADataMakerRec.h:78
 AliITSQADataMakerRec.h:79
 AliITSQADataMakerRec.h:80
 AliITSQADataMakerRec.h:81
 AliITSQADataMakerRec.h:82
 AliITSQADataMakerRec.h:83
 AliITSQADataMakerRec.h:84
 AliITSQADataMakerRec.h:85
 AliITSQADataMakerRec.h:86
 AliITSQADataMakerRec.h:87
 AliITSQADataMakerRec.h:88
 AliITSQADataMakerRec.h:89
 AliITSQADataMakerRec.h:90
 AliITSQADataMakerRec.h:91
 AliITSQADataMakerRec.h:92
 AliITSQADataMakerRec.h:93
 AliITSQADataMakerRec.h:94
 AliITSQADataMakerRec.h:95
 AliITSQADataMakerRec.h:96
 AliITSQADataMakerRec.h:97
 AliITSQADataMakerRec.h:98
 AliITSQADataMakerRec.h:99