3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
13 class TTreeSRedirector;
16 class AliTPCRawStream;
17 class AliTPCRawStreamFast;
19 class AliTPCAltroMapping;
21 struct eventHeaderStruct;
23 class AliTPCdataQA : public TObject {
27 AliTPCdataQA(const AliTPCdataQA &ped);
28 virtual ~AliTPCdataQA();
30 AliTPCdataQA& operator = (const AliTPCdataQA &source);
31 void DumpToFile(const Char_t *filename, const Char_t *dir="", const Bool_t append=kFALSE);
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);
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);
44 void SetPedestal(AliTPCCalPad *pedestalCal){ fPedestal = pedestalCal;}
45 void SetNoise(AliTPCCalPad *noiseCal){ fNoise = noiseCal;}
47 AliTPCCalPad *GetMaxCharge(){ return fMaxCharge;}
48 AliTPCCalPad *GetMeanCharge(){ return fMeanCharge;}
49 AliTPCCalPad *GetNoThreshold(){ return fNoThreshold;}
50 AliTPCCalPad *GetOverThreshold0(){ return fOverThreshold0;}
51 AliTPCCalPad *GetOverThreshold5(){ return fOverThreshold5;}
52 AliTPCCalPad *GetOverThreshold10(){ return fOverThreshold10;}
53 AliTPCCalPad *GetOverThreshold20(){ return fOverThreshold20;}
54 AliTPCCalPad *GetOverThreshold30(){ return fOverThreshold30;}
57 AliTPCAltroMapping **GetAltroMapping() { return fMapping; };
58 void SetAltroMapping(AliTPCAltroMapping **mapp) { fMapping = mapp; };
61 Int_t GetFirstTimeBin() const { return fFirstTimeBin; }
62 Int_t GetLastTimeBin() const { return fLastTimeBin; }
63 Int_t GetAdcMin() const { return fAdcMin; }
64 Int_t GetAdcMax() const { return fAdcMax; }
65 void SetRangeTime(Int_t tMin, Int_t tMax){ fFirstTimeBin=tMin; fLastTimeBin=tMax; } // Set time bin range that is used for the pedestal calibration
66 void SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; } // Set adc range for the pedestal calibration
68 void SetOldRCUformat(Bool_t format=kTRUE) { fOldRCUformat = format; }
71 void UpdateSignalHistograms(const Int_t icsector, const Int_t icRow,
72 const Int_t icPad, const Int_t icTimeBin,
73 const Float_t signal);
75 Int_t fFirstTimeBin; // First Time bin needed for analysis
76 Int_t fLastTimeBin; // Last Time bin needed for analysis
77 Int_t fAdcMin; // min adc channel of pedestal value
78 Int_t fAdcMax; // max adc channel of pedestal value
79 Bool_t fOldRCUformat; //! Should we use the old RCU format for data reading
82 AliTPCROC *fROC; //! ROC information
83 AliTPCAltroMapping **fMapping; //! Altro Mapping object
86 AliTPCCalPad * fPedestal; // option to set pedestal cal object
87 AliTPCCalPad * fNoise; // option to set noise cal object
88 AliTPCCalPad * fMaxCharge; // max charge
89 AliTPCCalPad * fMeanCharge; // mean charge
90 AliTPCCalPad * fNoThreshold; // number of digits
91 AliTPCCalPad * fOverThreshold0; // number of digits over threshold
92 AliTPCCalPad * fOverThreshold5; // number of digits over threshold
93 AliTPCCalPad * fOverThreshold10; // number of digits over threshold
94 AliTPCCalPad * fOverThreshold20; // number of digits over threshold
95 AliTPCCalPad * fOverThreshold30; // number of digits over threshold
97 Int_t fEventCounter; // event Counter
98 Int_t fSectorLast; //! last sector with signal
99 Int_t fRowLast; //! last row with signal
100 Int_t fPadLast; //! last pad with signal
101 Int_t fTimeBinLast; //! last time bin with signal
102 Float_t fSignalLast; //! last signal value
103 Int_t fNAboveThreshold; //! number of signals above threshold
106 ClassDef(AliTPCdataQA, 1) // Implementation of the TPC pedestal and noise calibration