Usage of RecoParam in QADataMaker and macro for Time slewing
[u/mrichter/AliRoot.git] / AD / ADrec / AliADQADataMakerRec.h
CommitLineData
a6f3cc02 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 ---
13class TH1F;
14class TH1I;
15class TObjArray;
16
17// --- Standard library ---
18
19// --- AliRoot header files ---
20#include "AliQADataMakerRec.h"
21
22class AliCDBManager;
23class AliCDBStorage;
24class AliADCalibData;
e15d4621 25class AliADRecoParam;
a6f3cc02 26
27class AliADQADataMakerRec: public AliQADataMakerRec {
28
29public:
30 // Histograms for Raw data control
31 enum HRawType_t {kPedestalInt0,kPedestalInt1,
32 kChargeEoI,kChargeEoIInt0,kChargeEoIInt1,
cf283524 33 kWidth,kHPTDCTime,kWidthBB,kWidthBG,kHPTDCTimeBB,kHPTDCTimeBG,
95930403 34 kChargeVsClockInt0,kChargeVsClockInt1,kBBFlagVsClock,kBGFlagVsClock,kBBFlagsPerChannel,kBGFlagsPerChannel,
e106c740 35 kFlagNoTime,kTimeNoFlag,
36 kTimeSlewingOff,kTimeSlewingOn,kWidthSlewing,
37 kPedestalDiffInt0,kPedestalDiffInt1,
a6f3cc02 38 kMultiADA,kMultiADC,kChargeADA,kChargeADC,kChargeAD,
69e96215 39 kADATime,kADCTime,kDiffTime,kTimeADAADC,
e106c740 40 kNCoincADA,kNCoincADC,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
734ca89d 48
49 enum HESDType_t {kCellMultiADA,kCellMultiADC,
50 kBBFlag,kBGFlag,kChargeChannel,kTimeChannel,
51 kESDADATime,kESDADCTime,kESDDiffTime};
a6f3cc02 52
53public:
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
61protected:
62 AliADCalibData *fCalibData; //! calibration data
e15d4621 63 AliADRecoParam *fRecoParam;
a6f3cc02 64
65private:
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
69e96215 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
a6f3cc02 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
69e96215 82 Float_t fTimeOffset[16]; //! HPTDC time offsets channel by channel
a6f3cc02 83 TF1* fTimeSlewing; //! Function for time slewing correction
84
b924d21d 85 ClassDef(AliADQADataMakerRec,1) // description
a6f3cc02 86
87};
88
89#endif // AliADQADATAMAKERREC_H