TRD DAs
[u/mrichter/AliRoot.git] / VZERO / VZERObase / AliVZEROQADataMakerRec.h
1 #ifndef ALIVZEROQADATAMAKERREC_H
2 #define ALIVZEROQADATAMAKERREC_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 //  Produces the data needed to calculate the quality assurance  
8 //  All data must be mergeable objects
9 //  Handles ESDs and RAWs
10 //  Histos will be used for Raw Data control and monitoring
11
12 // --- ROOT system ---
13 class TH1F; 
14 class TH1I; 
15 class TObjArray; 
16
17 // --- Standard library ---
18
19 // --- AliRoot header files ---
20 #include "AliQADataMakerRec.h"
21
22 class AliCDBManager;
23 class AliCDBStorage;
24 class AliVZEROCalibData;
25 class AliVZEROTriggerData;
26
27 class AliVZEROQADataMakerRec: public AliQADataMakerRec {
28
29 public:
30   // Histograms for Raw data control
31   enum HRawType_t {kPedestalInt0,kPedestalInt1
32                   ,kChargeEoI,kChargeEoIInt0,kChargeEoIInt1
33                   ,kChargeEoIBBInt0,kChargeEoIBBInt1,kChargeEoIBGInt0,kChargeEoIBGInt1,kChargeVsClockInt0,kChargeVsClockInt1
34                   ,kChargeMBBB0BG0Int0,kChargeMBBB0BG1Int0,kChargeMBBB1BG0Int0,kChargeMBBB1BG1Int0
35                   ,kChargeMBBB0BG0Int1,kChargeMBBB0BG1Int1,kChargeMBBB1BG0Int1,kChargeMBBB1BG1Int1
36                   ,kWidth,kWidthBB,kWidthBG,kHPTDCTime,kHPTDCTimeBB,kHPTDCTimeBG,kBBFlagVsClock,kBGFlagVsClock
37                   ,kMultiV0A,kMultiV0C,kChargeV0A,kChargeV0C,kChargeV0 
38                   ,kV0ATime,kV0CTime,kDiffTime
39                   ,kRawMIPV0A,kRawMIPV0C,kRawMIPV0,kRawMIPChannel
40                   ,kBBFlagsPerChannel, kTriggers,kTriggers2,kTimeV0AV0C
41                   ,kCentrChargeV0AV0C};
42         
43  enum HESDType_t {kCellMultiV0A,kCellMultiV0C,kMIPMultiV0A,kMIPMultiV0C,kMIPMultiChannel
44                   ,kBBFlag,kBGFlag,kChargeChannel,kTimeChannel
45                   ,kESDV0ATime,kESDV0CTime,kESDDiffTime};
46
47 public:
48   AliVZEROQADataMakerRec() ;            // constructor
49   AliVZEROQADataMakerRec(const AliVZEROQADataMakerRec& qadm) ;   
50   AliVZEROQADataMakerRec& operator = (const AliVZEROQADataMakerRec& qadm) ;
51   virtual ~AliVZEROQADataMakerRec() {;} // destructor
52   AliVZEROCalibData *GetCalibData() const;
53   virtual void   InitRaws() ; 
54   
55 protected: 
56   AliVZEROCalibData *fCalibData;        //! calibration data
57   AliVZEROTriggerData *fTriggerData;    //! trigger config data
58    
59 private:
60   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
61   virtual void   InitESDs() ; 
62   virtual void   InitDigits();  
63   virtual void   MakeESDs(AliESDEvent * esd) ;
64   virtual void   MakeRaws(AliRawReader* rawReader) ;
65   virtual void   MakeDigits() ; 
66   virtual void   MakeDigits(TTree* digitTree) ; 
67   virtual void   StartOfDetectorCycle() ; 
68   Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
69   
70  
71   //  Int_t   fEvent;                     // event index
72   Int_t   fEven[64];                  // even charge integrators
73   Int_t   fOdd[64];                   // odd charge intergators
74   Float_t fADCmean[128];              // mean adc per integrator
75   //  size_t fNTotEvents;                 // total number of events
76   //  size_t fNSubEvents;                 // number of events used in trending histos
77   //  size_t fTrendingUpdateEvent;        // event index of last update of the trending histos
78   //  size_t fNTrendingUpdates;           // number of updates in trending histos
79   size_t fTrendingUpdateTime;         // trending histos update time
80   UInt_t fCycleStartTime;             // timestamp of QA start-of-cycle
81   UInt_t fCycleStopTime;              // timestamp of QA end-of-cycle
82   Float_t            fTimeOffset[64]; //! HPTDC time offsets channel by channel
83   TF1*               fTimeSlewing;    //! Function for time slewing correction
84
85   ClassDef(AliVZEROQADataMakerRec,4)  // description 
86
87 };
88
89 #endif // AliVZEROQADATAMAKERREC_H