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

//
//  Checks the quality assurance. 
//  By comparing with reference data
//  contained in a DB
//
//
//  W. Ferrarese + P. Cerello Feb 2008

/* $Id$ */

#include "AliQAv1.h"

class AliITSQADataMakerRec;
class AliITSCalibrationSDD;
class TObjArray;
class AliITSDDLModuleMapSDD;
class AliRawReader;

class AliITSQASDDDataMakerRec: public TObject {

public:
  AliITSQASDDDataMakerRec(AliITSQADataMakerRec *aliITSQADataMakerRec, Bool_t kMode = kFALSE, Short_t ldc = 0);
  AliITSQASDDDataMakerRec(const AliITSQASDDDataMakerRec& qadm);
  AliITSQASDDDataMakerRec& operator = (const AliITSQASDDDataMakerRec& qac);
  virtual Int_t InitRaws();
  virtual Int_t InitDigits();
  virtual Int_t InitRecPoints();
  virtual Int_t MakeRaws(AliRawReader *rawReader);
  virtual Int_t MakeDigits()  {return 0;}
  virtual Int_t MakeDigits(TTree *clustersTree);
  virtual Int_t MakeRecPoints(TTree *clustersTree);
  virtual void StartOfDetectorCycle();
  virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list);
  virtual void CreateTheMap();
  virtual void CreateTheCalibration();
  virtual void InitCalibrationArray();

  virtual ~AliITSQASDDDataMakerRec(); // dtor
  Int_t GetOffset(AliQAv1::TASKINDEX_t task,Int_t specie=0)const;
  void  SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset, Int_t specie = 0);
  Int_t GetTaskHisto(AliQAv1::TASKINDEX_t task);
  Int_t GetNumberOfEvents(AliQAv1::TASKINDEX_t task, Int_t trigCl=-1);
  virtual void ResetDetector(AliQAv1::TASKINDEX_t task);
  AliITSDDLModuleMapSDD* GetDDLSDDModuleMap()const{return fDDLModuleMap; };

private:

  static const Int_t fgknSDDmodules = 260; // number of SDD modules
  static const Int_t fgkmodoffset = 240;   // number of SPD modules
  static const Int_t fgknAnode = 256;      // anode per half-module
  static const Int_t fgknSide =2;          // side per module
  //static const Int_t fgkDDLIDshift = 0;    // necessary option until RawStream Table is complete
  static const Int_t fgkLADDonLAY3 = 14;   // number of ladder on layer 3
  static const Int_t fgkLADDonLAY4 = 22;   // number of ladder on layer 4
  static const Int_t fgkTotalNumberSDDAnodes = 512; //total number of the anodes of a SDD modules
  static const Int_t fgkNumberOfSDDAnodesperSide =256; //number of the anodes of an half SDD modules

  AliITSQADataMakerRec *fAliITSQADataMakerRec; // pointer to the main ctor
  Bool_t  fkOnline;                            // online (1) or offline (0) use
  Int_t   fLDC;                                // LDC number (0 for offline, 1 to 4 for online) 
  Int_t   fSDDhRawsTask;                       // number of histo booked for each the Raws Task SDD
  Int_t   fSDDhDigitsTask;                     // number of histo booked for each the RecPoints Task SDD
  Int_t   fSDDhRecPointsTask;                  // number of histo booked for each the RecPoints Task SDD
  Int_t   fOnlineOffsetRaws;					// index for starting online histograms for Raws
  Int_t   fOnlineOffsetRecPoints;					// index for starting online histograms for RecPoints
  Int_t   *fGenRawsOffset;                     // QAchecking Raws offset       
  Int_t   *fGenDigitsOffset;                   // QAchecking RecPoints offset       
  Int_t   *fGenRecPointsOffset;                // QAchecking RecPoints offset       
  Int_t   fTimeBinSize;			       // time bin width in number of clocks
  AliITSDDLModuleMapSDD  *fDDLModuleMap;       // SDD Detector configuration for the decoding
  TObjArray *fCalibration;                     //Array of Calibration Object
  TObjArray *fHistoCalibration;                //Array of the Calibration histograms for the normalization

  ClassDef(AliITSQASDDDataMakerRec,13)         // description 

};

#endif

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