]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITRDCALROC_H | |
2 | #define ALITRDCALROC_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 base class for one ROC // | |
11 | // // | |
12 | ////////////////////////////////////////////////// | |
13 | ||
14 | #include <TObject.h> | |
15 | ||
16 | class TArrayI; | |
17 | class TArrayF; | |
18 | class TH2F; | |
19 | class TH1F; | |
20 | class TGraph2D; | |
21 | class TH2D; | |
22 | ||
23 | //_____________________________________________________________________________ | |
24 | class AliTRDCalROC : public TObject | |
25 | { | |
26 | ||
27 | public: | |
28 | ||
29 | AliTRDCalROC(); | |
30 | AliTRDCalROC(Int_t p, Int_t c); | |
31 | AliTRDCalROC(const AliTRDCalROC &c); | |
32 | virtual ~AliTRDCalROC(); | |
33 | AliTRDCalROC &operator=(const AliTRDCalROC &c); | |
34 | virtual void Copy(TObject &c) const; | |
35 | ||
36 | Int_t GetNrows() const { return fNrows; }; | |
37 | Int_t GetNcols() const { return fNcols; }; | |
38 | ||
39 | Int_t GetChannel(Int_t c, Int_t r) const { return r+c*fNrows; }; | |
40 | Int_t GetNchannels() const { return fNchannels; }; | |
41 | ||
42 | Float_t GetValue(Int_t ich) const { return (Float_t) fData[ich] / 10000; }; | |
43 | Float_t GetValue(Int_t col, Int_t row) { return GetValue(GetChannel(col,row)); }; | |
44 | ||
45 | void SetValue(Int_t ich, Float_t value) { fData[ich] = (UShort_t) (value * 10000); }; | |
46 | void SetValue(Int_t col, Int_t row, Float_t value) | |
47 | { SetValue(GetChannel(col,row), value); }; | |
48 | ||
49 | // statistic | |
50 | // | |
51 | Double_t GetMean(AliTRDCalROC * const outlierROC=0) const; | |
52 | Double_t GetRMS(AliTRDCalROC * const outlierROC=0) const; | |
53 | Double_t GetMedian(AliTRDCalROC * const outlierROC=0) const; | |
54 | Double_t GetLTM(Double_t *sigma=0, Double_t fraction=0.9, AliTRDCalROC * const outlierROC=0); | |
55 | ||
56 | // algebra | |
57 | Bool_t Add(Float_t c1); | |
58 | Bool_t Multiply(Float_t c1); | |
59 | Bool_t Add(const AliTRDCalROC * roc, Double_t c1 = 1); | |
60 | Bool_t Multiply(const AliTRDCalROC * roc); | |
61 | Bool_t Divide(const AliTRDCalROC * roc); | |
62 | ||
63 | // noise | |
64 | Bool_t Unfold(); | |
65 | ||
66 | //Plots | |
67 | TH2F * MakeHisto2D(Float_t min, Float_t max,Int_t type, Float_t mu = 1.0); | |
68 | TH1F * MakeHisto1D(Float_t min, Float_t max,Int_t type, Float_t mu = 1.0); | |
69 | ||
70 | protected: | |
71 | ||
72 | Int_t fPla; // Plane number | |
73 | Int_t fCha; // Chamber number | |
74 | ||
75 | Int_t fNrows; // Number of rows | |
76 | Int_t fNcols; // Number of columns | |
77 | ||
78 | Int_t fNchannels; // Number of channels | |
79 | UShort_t *fData; //[fNchannels] Data | |
80 | ||
81 | ClassDef(AliTRDCalROC, 2) // TRD ROC calibration class | |
82 | ||
83 | }; | |
84 | ||
85 | #endif |