1 #ifndef ALITRDCALIBPADSTATUS_H
2 #define ALITRDCALIBPADSTATUS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ///////////////////////////////////////////////////////////////////////////////
10 // TRD calibration class for online calibration //
12 ///////////////////////////////////////////////////////////////////////////////
16 class TTreeSRedirector;
21 class AliTRDCalPadStatus;
22 class AliTRDRawStream;
26 struct eventHeaderStruct;
28 class AliTRDCalibPadStatus : public TObject {
32 AliTRDCalibPadStatus();
33 AliTRDCalibPadStatus(const AliTRDCalibPadStatus &ped);
34 virtual ~AliTRDCalibPadStatus();
36 AliTRDCalibPadStatus& operator = (const AliTRDCalibPadStatus &source);
38 Bool_t ProcessEvent(AliTRDRawStream *rawStream, Bool_t nocheck = kFALSE);
39 Bool_t ProcessEvent(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
40 Bool_t ProcessEvent(eventHeaderStruct *event, Bool_t nocheck = kFALSE);
42 Int_t Update(const Int_t idet, const Int_t iRow, const Int_t iCol,
43 const Int_t signal, const Int_t rowMax);
44 Int_t UpdateHisto(const Int_t idet, const Int_t iRow, const Int_t iCol,
45 const Int_t signal, const Int_t crowMax);
48 AliTRDCalPadStatus *CreateCalPadStatus();
50 AliTRDarrayF* GetCalEntries(Int_t det, Bool_t force=kFALSE); // get calibration object
51 AliTRDarrayF* GetCalMean(Int_t det, Bool_t force=kFALSE); // get calibration object
52 AliTRDarrayF* GetCalSquares(Int_t det, Bool_t force=kFALSE); // get calibration object
53 AliTRDCalROC* GetCalRocMean(Int_t det, Bool_t force=kFALSE); // get calibration object
54 AliTRDCalROC* GetCalRocRMS(Int_t det, Bool_t force=kFALSE); // get calibration object
56 TH2F* GetHisto (Int_t det, Bool_t force=kFALSE); // get refernce histogram
58 void DumpToFile(const Char_t *filename, const Char_t *dir="", const Bool_t append=kFALSE);
60 Int_t GetAdcMin() const { return fAdcMin; }
61 Int_t GetAdcMax() const { return fAdcMax; }
63 void SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; } // Set adc range
66 Bool_t TestEvent(Int_t nevent); //test the fast approach to fill array - used for test purposes
67 Bool_t TestEventHisto(Int_t nevent); //test the fast approach to fill histograms
72 AliTRDgeometry *fGeo; //! The TRD geometry
74 Int_t fAdcMin; // min adc channel of pedestal value
75 Int_t fAdcMax; // max adc channel of pedestal value
76 Int_t fDetector; // Current detector
77 Int_t fNumberOfTimeBins; // Current number of time bins
79 TObjArray fCalArrayEntries; // Array of AliTRDarrayF class calibration
80 TObjArray fCalArrayMean; // Array of AliTRDarrayF class calibration
81 TObjArray fCalArraySquares; // Array of AliTRDarrayF class calibration
82 TObjArray fCalRocArrayMean; // Array of AliTRDCalROC class for signal width calibration
83 TObjArray fCalRocArrayRMS; // Array of AliTRDCalROC class for mean width calibration
85 TObjArray fHistoArray; // Array of histos for mean width calibration
87 AliTRDarrayF *fCalEntries; // Current AliTRDArrayF entries
88 AliTRDarrayF *fCalMean; // Current AliTRDArrayF Mean
89 AliTRDarrayF *fCalSquares; // Current AliTRDArrayF Squares
91 AliTRDarrayF* GetCal(Int_t det, TObjArray* arr, Bool_t force);
92 AliTRDCalROC* GetCalRoc(Int_t det, TObjArray* arr, Bool_t force);
94 TH2F* GetHisto(Int_t det, TObjArray *arr,
95 Int_t nbinsY, Float_t ymin, Float_t ymax,
96 Char_t *type, Bool_t force);
98 // Some basic geometry function
99 virtual Int_t GetPlane(Int_t d) const;
100 virtual Int_t GetChamber(Int_t d) const;
101 virtual Int_t GetSector(Int_t d) const;
103 ClassDef(AliTRDCalibPadStatus,2)