]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDCalibPadStatus.h
do not use class AliTRDrawStreamBase in preparation for modifications in the TRD...
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibPadStatus.h
CommitLineData
cf46274d 1#ifndef ALITRDCALIBPADSTATUS_H
170c35f1 2#define ALITRDCALIBPADSTATUS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8///////////////////////////////////////////////////////////////////////////////
9// //
10// TRD calibration class for online calibration //
11// //
12///////////////////////////////////////////////////////////////////////////////
13
14class TObjArray;
15class TH2F;
f162af62 16
17class AliRawReader;
18
289cc637 19class AliTRDCalDet;
20class AliTRDCalPad;
170c35f1 21class AliTRDCalROC;
22class AliTRDCalPadStatus;
5e64ce0d 23class AliTRDrawStreamBase;
f162af62 24class AliTRDgeometry;
25
1785640c 26class AliTRDdigitsManager;
27class AliTRDSignalIndex;
28
170c35f1 29struct eventHeaderStruct;
30
31class AliTRDCalibPadStatus : public TObject {
32
33public:
34
35 AliTRDCalibPadStatus();
36 AliTRDCalibPadStatus(const AliTRDCalibPadStatus &ped);
37 virtual ~AliTRDCalibPadStatus();
38
39 AliTRDCalibPadStatus& operator = (const AliTRDCalibPadStatus &source);
40
5e64ce0d 41 Int_t ProcessEvent(AliTRDrawStreamBase *rawStream, Bool_t nocheck = kFALSE);
3a0f6479 42 Int_t ProcessEvent(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
6bbdc11a 43 Int_t ProcessEvent(const eventHeaderStruct *event, Bool_t nocheck = kFALSE);
1785640c 44 Int_t ProcessEvent2(AliRawReader *rawReader);
45
8799e123 46 void Destroy();
170c35f1 47 Int_t UpdateHisto(const Int_t idet, const Int_t iRow, const Int_t iCol,
e4db522f 48 const Int_t signal, const Int_t crowMax, const Int_t ccold, const Int_t icMcm);
6ace5fe2 49
1785640c 50 Int_t UpdateHisto2(const Int_t idet, const Int_t iRow, const Int_t iCol,
51 const Int_t signal, const Int_t crowMax, const Int_t ccold, const Int_t icMcm, const Int_t icRob);
52
170c35f1 53 void AnalyseHisto();
54 AliTRDCalPadStatus *CreateCalPadStatus();
289cc637 55 AliTRDCalPad *CreateCalPad();
0bc7827a 56 AliTRDCalDet *CreateCalDet() const;
3a0f6479 57
6ace5fe2 58 void SetCalRocMean(AliTRDCalROC *mean, Int_t det);
59 void SetCalRocRMS(AliTRDCalROC *rms, Int_t det);
60
e4db522f 61 void SetCalRocMeand(AliTRDCalROC *mean, Int_t det);
62 void SetCalRocRMSd(AliTRDCalROC *rms, Int_t det);
63
170c35f1 64 //
170c35f1 65 AliTRDCalROC* GetCalRocMean(Int_t det, Bool_t force=kFALSE); // get calibration object
66 AliTRDCalROC* GetCalRocRMS(Int_t det, Bool_t force=kFALSE); // get calibration object
67
e4db522f 68 AliTRDCalROC* GetCalRocMeand(Int_t det, Bool_t force=kFALSE); // get calibration object
69 AliTRDCalROC* GetCalRocRMSd(Int_t det, Bool_t force=kFALSE); // get calibration object
70
170c35f1 71 TH2F* GetHisto (Int_t det, Bool_t force=kFALSE); // get refernce histogram
72
8368e0ee 73 void DumpToFile(const Char_t *filename, const Char_t *dir="", Bool_t append=kFALSE);
170c35f1 74 //
75 Int_t GetAdcMin() const { return fAdcMin; }
76 Int_t GetAdcMax() const { return fAdcMax; }
77
78 void SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; } // Set adc range
79
80
d95484e4 81 Bool_t TestEventHisto(Int_t nevent, Int_t sm, Int_t ch); //test the fast approach to fill histograms
170c35f1 82
e4db522f 83 private:
170c35f1 84
f162af62 85 // Geometry
86 AliTRDgeometry *fGeo; //! The TRD geometry
87
170c35f1 88 Int_t fAdcMin; // min adc channel of pedestal value
89 Int_t fAdcMax; // max adc channel of pedestal value
90 Int_t fDetector; // Current detector
cf46274d 91 Int_t fNumberOfTimeBins; // Current number of time bins
170c35f1 92
170c35f1 93 TObjArray fCalRocArrayMean; // Array of AliTRDCalROC class for signal width calibration
94 TObjArray fCalRocArrayRMS; // Array of AliTRDCalROC class for mean width calibration
95
e4db522f 96 TObjArray fCalRocArrayMeand; // Array of AliTRDCalROC class for signal width calibration doubled
97 TObjArray fCalRocArrayRMSd; // Array of AliTRDCalROC class for mean width calibration doubled
98
170c35f1 99 TObjArray fHistoArray; // Array of histos for mean width calibration
100
e4db522f 101
cf46274d 102 AliTRDCalROC* GetCalRoc(Int_t det, TObjArray* arr, Bool_t force);
103
170c35f1 104 TH2F* GetHisto(Int_t det, TObjArray *arr,
105 Int_t nbinsY, Float_t ymin, Float_t ymax,
a6e0ebfe 106 const Char_t *type, Bool_t force);
170c35f1 107
108 // Some basic geometry function
053767a4 109 virtual Int_t GetLayer(Int_t d) const;
110 virtual Int_t GetStack(Int_t d) const;
170c35f1 111 virtual Int_t GetSector(Int_t d) const;
112
3a0f6479 113 ClassDef(AliTRDCalibPadStatus,1)
170c35f1 114
3a0f6479 115};
170c35f1 116#endif
068b874f 117
118