Adding QA makers for digits (Marian)
[u/mrichter/AliRoot.git] / TPC / AliTPCdataQA.h
1 #ifndef ALITPCDATAQA_H
2 #define ALITPCDATAQA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7
8 #include <TObject.h>
9 #include <TObjArray.h>
10
11 class TArrayF;
12 class TH2F;
13 class TTreeSRedirector;
14 class AliTPCROC;
15 class AliTPCCalROC;
16 class AliTPCRawStream;
17 class AliTPCRawStreamFast;
18 class AliRawReader;
19 class AliTPCAltroMapping;
20 class AliTPCCalPad; 
21 struct eventHeaderStruct;
22
23 class AliTPCdataQA : public TObject {
24
25 public:
26   AliTPCdataQA();
27   AliTPCdataQA(const AliTPCdataQA &ped);
28   virtual ~AliTPCdataQA();
29
30   AliTPCdataQA& operator = (const  AliTPCdataQA &source);
31  void  DumpToFile(const Char_t *filename, const Char_t *dir="", const Bool_t append=kFALSE);
32   //
33   Bool_t ProcessEventFast(AliTPCRawStreamFast *rawStreamFast);
34   Bool_t ProcessEventFast(AliRawReader        *rawReader);
35   Bool_t ProcessEvent(AliTPCRawStream *rawStream);
36   Bool_t ProcessEvent(AliRawReader    *rawReader);
37   Bool_t ProcessEvent(eventHeaderStruct   *event);
38
39   Int_t  Update(const Int_t isector, const Int_t iRow, const Int_t iPad,
40                 const Int_t iTimeBin, const Float_t signal);
41   void   Analyse();
42   //
43   //
44   AliTPCCalPad *GetMaxCharge(){ return fMaxCharge;}
45   AliTPCCalPad *GetOverThreshold0(){ return fOverThreshold0;}
46   AliTPCCalPad *GetOverThreshold5(){ return fOverThreshold5;}
47   AliTPCCalPad *GetOverThreshold10(){ return fOverThreshold10;}
48   AliTPCCalPad *GetOverThreshold20(){ return fOverThreshold20;}
49   AliTPCCalPad *GetOverThreshold30(){ return fOverThreshold30;}
50
51   //
52   AliTPCAltroMapping **GetAltroMapping() { return fMapping; };
53   void  SetAltroMapping(AliTPCAltroMapping **mapp) { fMapping = mapp; };
54   //
55   //
56   Int_t GetFirstTimeBin() const { return fFirstTimeBin; }
57   Int_t GetLastTimeBin()  const { return fLastTimeBin;  }
58   Int_t GetAdcMin()       const { return fAdcMin;       }
59   Int_t GetAdcMax()       const { return fAdcMax;       }
60   void  SetRangeTime(Int_t tMin, Int_t tMax){ fFirstTimeBin=tMin; fLastTimeBin=tMax; }  // Set time bin range that is used for the pedestal calibration
61   void  SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; }  // Set adc range for the pedestal calibration
62
63   void  SetOldRCUformat(Bool_t format=kTRUE) { fOldRCUformat = format; }
64   
65
66 private:
67
68   Int_t fFirstTimeBin;              //  First Time bin needed for analysis
69   Int_t fLastTimeBin;               //  Last Time bin needed for analysis
70   Int_t fAdcMin;                    //  min adc channel of pedestal value
71   Int_t fAdcMax;                    //  max adc channel of pedestal value
72   Bool_t  fOldRCUformat;            //! Should we use the old RCU format for data reading
73
74   AliTPCROC *fROC;                  //! ROC information
75   AliTPCAltroMapping **fMapping;    //! Altro Mapping object
76   //
77   //
78   AliTPCCalPad * fMaxCharge;       // max charge
79   AliTPCCalPad * fOverThreshold0;   // number of digits over threshold
80   AliTPCCalPad * fOverThreshold5;   // number of digits over threshold
81   AliTPCCalPad * fOverThreshold10;   // number of digits over threshold
82   AliTPCCalPad * fOverThreshold20;   // number of digits over threshold
83   AliTPCCalPad * fOverThreshold30;   // number of digits over threshold
84   Int_t          fEventCounter;      // event Counter
85
86 public:
87   ClassDef(AliTPCdataQA, 1)  // Implementation of the TPC pedestal and noise calibration
88 };
89
90
91
92 #endif
93