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


//  Produces the data needed to calculate the quality assurance  
//  All data must be mergeable objects
//  Handles ESDs and RAWs
//  Histos will be used for Raw Data control and monitoring

// --- ROOT system ---
class TH1F; 
class TH1I; 
class TObjArray; 

// --- Standard library ---

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

class AliCDBManager;
class AliCDBStorage;
class AliVZEROCalibData;
class AliVZEROTriggerData;

class AliVZEROQADataMakerRec: public AliQADataMakerRec {

public:
  // Histograms for Raw data control
  enum HRawType_t {kPedestalInt0,kPedestalInt1
  		  ,kChargeEoI,kChargeEoIInt0,kChargeEoIInt1
		  ,kChargeEoIBBInt0,kChargeEoIBBInt1,kChargeEoIBGInt0,kChargeEoIBGInt1,kChargeVsClockInt0,kChargeVsClockInt1
		  ,kChargeMBBB0BG0Int0,kChargeMBBB0BG1Int0,kChargeMBBB1BG0Int0,kChargeMBBB1BG1Int0
		  ,kChargeMBBB0BG0Int1,kChargeMBBB0BG1Int1,kChargeMBBB1BG0Int1,kChargeMBBB1BG1Int1
		  ,kWidth,kWidthBB,kWidthBG,kHPTDCTime,kHPTDCTimeBB,kHPTDCTimeBG,kBBFlagVsClock,kBGFlagVsClock
		  ,kMultiV0A,kMultiV0C,kChargeV0A,kChargeV0C,kChargeV0 
		  ,kV0ATime,kV0CTime,kDiffTime
		  ,kRawMIPV0A,kRawMIPV0C,kRawMIPV0,kRawMIPChannel
		  ,kBBFlagsPerChannel, kTriggers,kTriggers2,kTimeV0AV0C
		  ,kCentrChargeV0AV0C};
	
 enum HESDType_t {kCellMultiV0A,kCellMultiV0C,kMIPMultiV0A,kMIPMultiV0C,kMIPMultiChannel
		  ,kBBFlag,kBGFlag,kChargeChannel,kTimeChannel
		  ,kESDV0ATime,kESDV0CTime,kESDDiffTime};

public:
  AliVZEROQADataMakerRec() ;            // constructor
  AliVZEROQADataMakerRec(const AliVZEROQADataMakerRec& qadm) ;   
  AliVZEROQADataMakerRec& operator = (const AliVZEROQADataMakerRec& qadm) ;
  virtual ~AliVZEROQADataMakerRec() {;} // destructor
  AliVZEROCalibData *GetCalibData() const;
  virtual void   InitRaws() ; 
  
protected: 
  AliVZEROCalibData *fCalibData;        //! calibration data
  AliVZEROTriggerData *fTriggerData;    //! trigger config data
   
private:
  virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
  virtual void   InitESDs() ; 
  virtual void   InitDigits();  
  virtual void   MakeESDs(AliESDEvent * esd) ;
  virtual void   MakeRaws(AliRawReader* rawReader) ;
  virtual void   MakeDigits() ; 
  virtual void   MakeDigits(TTree* digitTree) ; 
  virtual void   StartOfDetectorCycle() ; 
  Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
  
 
  //  Int_t   fEvent;                     // event index
  Int_t   fEven[64];                  // even charge integrators
  Int_t   fOdd[64];                   // odd charge intergators
  Float_t fADCmean[128];              // mean adc per integrator
  //  size_t fNTotEvents;                 // total number of events
  //  size_t fNSubEvents;                 // number of events used in trending histos
  //  size_t fTrendingUpdateEvent;        // event index of last update of the trending histos
  //  size_t fNTrendingUpdates;           // number of updates in trending histos
  size_t fTrendingUpdateTime;         // trending histos update time
  UInt_t fCycleStartTime;             // timestamp of QA start-of-cycle
  UInt_t fCycleStopTime;              // timestamp of QA end-of-cycle
  Float_t            fTimeOffset[64]; //! HPTDC time offsets channel by channel
  TF1*               fTimeSlewing;    //! Function for time slewing correction

  ClassDef(AliVZEROQADataMakerRec,4)  // description 

};

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