Fine tuning of QA
[u/mrichter/AliRoot.git] / AD / ADrec / AliADQADataMakerRec.h
1 #ifndef ALIADQADATAMAKERREC_H
2 #define ALIADQADATAMAKERREC_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 AliADCalibData;
25 class AliADRecoParam;
26
27 class AliADQADataMakerRec: public AliQADataMakerRec {
28
29 public:
30   // Histograms for Raw data control
31   enum HRawType_t {kPedestalInt0,kPedestalInt1,
32                    kChargeEoI,kChargeEoIInt0,kChargeEoIInt1,
33                    kWidth,kHPTDCTime,kWidthBB,kWidthBG,kHPTDCTimeBB,kHPTDCTimeBG,
34                    kChargeVsClockInt0,kChargeVsClockInt1,kBBFlagVsClock,kBGFlagVsClock,kBBFlagsPerChannel,kBGFlagsPerChannel,
35                    kFlagNoTime,kTimeNoFlag,
36                    kTimeSlewingOff,kTimeSlewingOn,kWidthSlewing,
37                    kPedestalDiffInt0,kPedestalDiffInt1,
38                    kMultiADA,kMultiADC,kChargeADA,kChargeADC,kChargeAD, 
39                    kADATime,kADCTime,kDiffTime,kTimeADAADC,
40                    kNBBCoincADA,kNBBCoincADC,kNBGCoincADA,kNBGCoincADC,kPairTimeDiffMean,kPairTimeDiffRMS,
41                    kNChargeCorrADA,
42                    kNChargeCorrADC = kNChargeCorrADA + 28,
43                    kNTimeCorrADA = kNChargeCorrADC + 28,
44                    kNTimeCorrADC = kNTimeCorrADA + 28,
45                    kNTimeDiffADA = kNTimeCorrADC + 28,
46                    kNTimeDiffADC = kNTimeDiffADA + 28};
47                    
48                    
49   enum HESDType_t {kCellMultiADA,kCellMultiADC,
50                    kBBFlag,kBGFlag,kChargeChannel,kTimeChannel,
51                    kESDADATime,kESDADCTime,kESDDiffTime};
52         
53 public:
54   AliADQADataMakerRec() ;            // constructor
55   AliADQADataMakerRec(const AliADQADataMakerRec& qadm) ;   
56   AliADQADataMakerRec& operator = (const AliADQADataMakerRec& qadm) ;
57   virtual ~AliADQADataMakerRec() {;} // destructor
58   AliADCalibData *GetCalibData() const;
59   virtual void   InitRaws() ; 
60   
61 protected: 
62   AliADCalibData *fCalibData;        //! calibration data
63   AliADRecoParam *fRecoParam;
64    
65 private:
66   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
67   virtual void   InitESDs() ; 
68   virtual void   InitDigits();  
69   virtual void   MakeESDs(AliESDEvent * esd) ;
70   virtual void   MakeRaws(AliRawReader* rawReader) ;
71   virtual void   MakeDigits() ; 
72   virtual void   MakeDigits(TTree* digitTree) ; 
73   virtual void   StartOfDetectorCycle() ; 
74   Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
75   
76   Int_t   fEven[16];                  // even charge integrators
77   Int_t   fOdd[16];                   // odd charge intergators
78   Float_t fADCmean[32];              // mean adc per integrator
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[16]; //! HPTDC time offsets channel by channel
83   TF1*               fTimeSlewing;    //! Function for time slewing correction
84
85   ClassDef(AliADQADataMakerRec,1)  // description 
86
87 };
88
89 #endif // AliADQADATAMAKERREC_H