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 parameters which are saved per detector //
12 ///////////////////////////////////////////////////////////////////////////////
16 #include "../AliTRDgeometry.h"
21 class AliTRDCalDet : public TNamed {
25 enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
28 AliTRDCalDet(const Text_t* name, const Text_t* title);
29 AliTRDCalDet(const AliTRDCalDet &c);
30 virtual ~AliTRDCalDet();
31 AliTRDCalDet &operator=(const AliTRDCalDet &c);
33 virtual void Copy(TObject &c) const;
35 Float_t GetValue(Int_t d) const { return fData[d]; };
36 Float_t GetValue(Int_t p, Int_t c, Int_t s) const
37 { return fData[AliTRDgeometry::GetDetector(p,c,s)]; };
39 void SetValue(Int_t d, Float_t value) { fData[d] = value; };
40 void SetValue(Int_t p, Int_t c, Int_t s, Float_t value)
41 { fData[AliTRDgeometry::GetDetector(p,c,s)] = value; };
44 Double_t GetMean(AliTRDCalDet * const outlierDet=0) const;
45 Double_t GetRMS(AliTRDCalDet * const outlierDet=0) const;
46 Double_t GetRMSRobust(Double_t robust=0.92) const;
47 Double_t GetMedian(AliTRDCalDet * const outlierDet=0) const;
48 Double_t GetLTM(Double_t * sigma=0, Double_t fraction=0.9, AliTRDCalDet * const outlierDet=0);
49 Double_t CalcMean(Bool_t wghtPads=kFALSE);
50 Double_t CalcMean(Bool_t wghtPads, Int_t &calib);
51 Double_t CalcRMS(Bool_t wghtPads=kFALSE);
52 Double_t CalcRMS(Bool_t wghtPads, Int_t &calib);
53 Double_t GetMeanSM(Bool_t wghtPads, Int_t sector) const;
56 TH1F * MakeHisto1Distribution(Float_t min=4, Float_t max=-4, Int_t type=0);
57 TH1F * MakeHisto1DAsFunctionOfDet(Float_t min=4, Float_t max=-4, Int_t type=0);
58 TH2F * MakeHisto2DCh(Int_t ch, Float_t min=4, Float_t max=-4, Int_t type=0);
59 TH2F * MakeHisto2DSmPl(Int_t sm, Int_t pl, Float_t min=4, Float_t max=-4, Int_t type=0);
63 void Multiply(Float_t c1);
64 void Add(const AliTRDCalDet * calDet, Double_t c1 = 1);
65 void Multiply(const AliTRDCalDet * calDet);
66 void Divide(const AliTRDCalDet * calDet);
70 Float_t fData[kNdet]; //[kNdet] Data
72 ClassDef(AliTRDCalDet,1) // TRD calibration class for parameters which are saved per detector