Line data Source code
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 0 : 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 48 : ClassDef(AliVZEROQADataMakerRec,4) // description
86 :
87 : };
88 :
89 : #endif // AliVZEROQADATAMAKERREC_H
|