Revision of SSD ClusterFinder (S. Borysov)
[u/mrichter/AliRoot.git] / VZERO / AliVZEROQADataMakerRec.h
... / ...
CommitLineData
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 ---
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 AliVZEROCalibData;
25
26class AliVZEROQADataMakerRec: public AliQADataMakerRec {
27
28public:
29 // Histograms for Raw data control
30 enum HRawType_t {kPedestalInt0,kPedestalInt1,kPedestalCycleInt0,kPedestalCycleInt1,kPedestalTimeInt0,kPedestalTimeInt1
31 ,kChargeEoI,kChargeEoIInt0,kChargeEoIInt1,kChargeEoITimeInt0,kChargeEoITimeInt1,kChargeEoICycleInt0,kChargeEoICycleInt1
32 ,kChargeEoIBBInt0,kChargeEoIBBInt1,kChargeEoIBGInt0,kChargeEoIBGInt1,kChargeVsClockInt0,kChargeVsClockInt1
33 ,kChargeMBBB0BG0Int0,kChargeMBBB0BG1Int0,kChargeMBBB1BG0Int0,kChargeMBBB1BG1Int0
34 ,kChargeMBBB0BG0Int1,kChargeMBBB0BG1Int1,kChargeMBBB1BG0Int1,kChargeMBBB1BG1Int1
35 ,kWidth,kWidthBB,kWidthBG,kHPTDCTime,kHPTDCTimeBB,kHPTDCTimeBG,kBBFlagVsClock,kBGFlagVsClock
36 ,kMultiV0A,kMultiV0C,kChargeV0A,kChargeV0C,kChargeV0
37 ,kV0ATime,kV0CTime,kDiffTime
38 ,kRawMIPV0A,kRawMIPV0C,kRawMIPV0,kRawMIPChannel
39 ,kRawMeanChargePerRing,kRawMeanFlagPerRing,kRawDQMCharge,kRawDQMFlag
40 ,kBBFlagsPerChannel} ;
41
42 enum HESDType_t {kCellMultiV0A,kCellMultiV0C,kMIPMultiV0A,kMIPMultiV0C,kMIPMultiChannel
43 ,kBBFlag,kBGFlag,kChargeChannel,kTimeChannel
44 ,kESDV0ATime,kESDV0CTime,kESDDiffTime};
45
46public:
47 AliVZEROQADataMakerRec() ; // constructor
48 AliVZEROQADataMakerRec(const AliVZEROQADataMakerRec& qadm) ;
49 AliVZEROQADataMakerRec& operator = (const AliVZEROQADataMakerRec& qadm) ;
50 virtual ~AliVZEROQADataMakerRec() {;} // destructor
51 AliVZEROCalibData *GetCalibData() const;
52 virtual void InitRaws() ;
53 void SetTrendingUpdateTime(size_t time) {fTrendingUpdateTime = time;};
54
55protected:
56 AliVZEROCalibData *fCalibData; //! calibration data
57
58private:
59 virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
60 virtual void InitESDs() ;
61 virtual void InitDigits();
62 virtual void MakeESDs(AliESDEvent * esd) ;
63 virtual void MakeRaws(AliRawReader* rawReader) ;
64 virtual void MakeDigits() ;
65 virtual void MakeDigits(TTree* digitTree) ;
66 virtual void StartOfDetectorCycle() ;
67 void AddTrendingEntry();
68
69 Int_t fEvent; // event index
70 Int_t fEven[64]; // even charge integrators
71 Int_t fOdd[64]; // odd charge intergators
72 Float_t fADCmean[128]; // mean adc per integrator
73 size_t fNTotEvents; // total number of events
74 size_t fNSubEvents; // number of events used in trending histos
75 size_t fTrendingUpdateEvent; // event index of last update of the trending histos
76 size_t fNTrendingUpdates; // number of updates in trending histos
77 size_t fTrendingUpdateTime; // trending histos update time
78 UInt_t fCycleStartTime; // timestamp of QA start-of-cycle
79 UInt_t fCycleStopTime; // timestamp of QA end-of-cycle
80 Double_t fMonitorRate; // monitoring rate
81 Double_t fChargePerRing[8]; // charge per ring
82 Double_t fFlagPerRing[8]; // flag per ring
83 Double_t fChargePerChannel[64]; // charge per channel
84 Double_t fFlagPerChannel[64]; // flag per channel
85 Double_t fMeanChargePerChannel[64]; // mean charge per channel
86 Double_t fMeanFlagPerChannel[64]; // mean flag per channel
87
88 ClassDef(AliVZEROQADataMakerRec,2) // description
89
90};
91
92#endif // AliVZEROQADATAMAKERREC_H