Line data Source code
1 : #ifndef ALITRDCALPAD_H
2 : #define ALITRDCALPAD_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 parameters which are saved per pad //
11 : // //
12 : ///////////////////////////////////////////////////////////////////////////////
13 :
14 : #include "TNamed.h"
15 :
16 : class AliTRDCalROC;
17 : class AliTRDCalDet;
18 : class TH2F;
19 : class TH1F;
20 :
21 : class AliTRDCalPad : public TNamed
22 : {
23 :
24 : public:
25 :
26 : enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
27 :
28 : AliTRDCalPad();
29 : AliTRDCalPad(const Text_t* name, const Text_t* title);
30 : AliTRDCalPad(const AliTRDCalPad &c);
31 : virtual ~AliTRDCalPad();
32 : AliTRDCalPad &operator=(const AliTRDCalPad &c);
33 :
34 : virtual void Copy(TObject &c) const;
35 :
36 0 : static Int_t GetDet(Int_t p, Int_t c, Int_t s) { return p+c*kNplan+s*kNplan*kNcham; };
37 :
38 195174 : AliTRDCalROC *GetCalROC(Int_t d) const { return fROC[d]; };
39 : AliTRDCalROC *GetCalROC(Int_t p, Int_t c, Int_t s) const
40 0 : { return fROC[GetDet(p,c,s)]; };
41 :
42 : Bool_t ScaleROCs(const AliTRDCalDet* values);
43 :
44 : void SetCalROC(Int_t det, AliTRDCalROC *calroc);
45 :
46 : // Statistic
47 : Double_t GetMeanRMS(Double_t &rms, const AliTRDCalDet *calDet = 0, Int_t type = 0);
48 : Double_t GetMean(const AliTRDCalDet *calDet = 0, Int_t type = 0, AliTRDCalPad* const outlierPad = 0);
49 : Double_t GetRMS(const AliTRDCalDet *calDet = 0, Int_t type = 0, AliTRDCalPad* const outlierPad = 0);
50 : Double_t GetMedian(const AliTRDCalDet *calDet = 0, Int_t type = 0, AliTRDCalPad* const outlierPad = 0);
51 : Double_t GetLTM(Double_t *sigma=0, Double_t fraction=0.9
52 : , const AliTRDCalDet *calDet = 0, Int_t type = 0, AliTRDCalPad* const outlierPad = 0);
53 :
54 : // Plot functions
55 : TH1F *MakeHisto1D(const AliTRDCalDet *calDet = 0, Int_t typedet=0, Float_t min=4, Float_t max=-4,Int_t type=0);
56 : TH2F *MakeHisto2DSmPl(Int_t sm, Int_t pl, const AliTRDCalDet *calDet = 0, Int_t typedet=0, Float_t min=4, Float_t max=-4,Int_t type=0);
57 : TH2F *MakeHisto2DCh(Int_t ch, const AliTRDCalDet *calDet = 0, Int_t typedet=0, Float_t min=4, Float_t max=-4,Int_t type=0);
58 :
59 : // Algebra functions
60 : Bool_t Add(Float_t c1);
61 : Bool_t Multiply(Float_t c1);
62 : Bool_t Add(const AliTRDCalPad * pad, Double_t c1 = 1, const AliTRDCalDet * calDet1 = 0, const AliTRDCalDet *calDet2 = 0, Int_t type = 0);
63 : Bool_t Multiply(const AliTRDCalPad * pad, const AliTRDCalDet * calDet1 = 0, const AliTRDCalDet *calDet2 = 0, Int_t type = 0);
64 : Bool_t Divide(const AliTRDCalPad * pad, const AliTRDCalDet * calDet1 = 0, const AliTRDCalDet *calDet2 = 0, Int_t type = 0);
65 :
66 : protected:
67 :
68 : AliTRDCalROC *fROC[kNdet]; // Array of ROC objects which contain the values per pad
69 :
70 132 : ClassDef(AliTRDCalPad,1) // TRD calibration class for parameters which are saved per pad
71 :
72 : };
73 :
74 : #endif
|