]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/STEERBase/AliTPCdEdxInfo.h
Merge branch master into TRDdev
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliTPCdEdxInfo.h
1 #ifndef AliTPCdEdxInfo_H
2 #define AliTPCdEdxInfo_H
3
4 class TGraphErrors;
5 class TObjArray;
6 class AliExternalTrackParam;
7 #include <TObject.h>
8
9 class AliTPCdEdxInfo : public TObject 
10 {
11 public:
12   AliTPCdEdxInfo();
13   AliTPCdEdxInfo(const AliTPCdEdxInfo& source);
14   AliTPCdEdxInfo& operator=(const AliTPCdEdxInfo& source);
15   Double_t GetWeightedMean(Int_t qType, Int_t wType, Double_t w0, Double_t w1, Double_t w2); 
16   Double_t GetFractionOfClusters(Int_t iregion){ return fTPCsignalNRowRegion[iregion]>0 ? Double_t(fTPCsignalNRegion[iregion])/Double_t(fTPCsignalNRowRegion[iregion]):0;}
17   //
18   // qTot info
19   void     GetTPCSignalRegionInfo(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]) const;
20   void     GetTPCSignals(Double_t signal[4]) const;
21
22   void     SetTPCSignalRegionInfo(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]);
23   void     SetTPCSignals(Double_t signal[4]);
24   
25   
26   // qMax info
27   void     GetTPCSignalRegionInfoQmax(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]) const;
28   void     GetTPCSignalsQmax(Double_t signal[4]) const;
29
30   void     SetTPCSignalRegionInfoQmax(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]);
31   void     SetTPCSignalsQmax(Double_t signal[4]);
32   
33   Double_t GetSignalTot(Int_t index){ return fTPCsignalRegion[index];}
34   Double_t GetSignalMax(Int_t index){ return fTPCsignalRegionQmax[index];}
35   Double_t GetNumberOfClusters(Int_t index) {return fTPCsignalNRegion[index%3];}
36   Double_t GetNumberOfCrossedRows(Int_t index) {return fTPCsignalNRowRegion[index%3];}
37   //
38   Double_t GetTPCsignalShortPad()      const {return fTPCsignalRegion[0];}
39   Double_t GetTPCsignalMediumPad()     const {return fTPCsignalRegion[1];}
40   Double_t GetTPCsignalLongPad()       const {return fTPCsignalRegion[2];}
41   Double_t GetTPCsignalOROC()          const {return fTPCsignalRegion[3];}
42   
43   Double_t GetTPCsignalShortPadQmax()  const {return fTPCsignalRegionQmax[0];}
44   Double_t GetTPCsignalMediumPadQmax() const {return fTPCsignalRegionQmax[1];}
45   Double_t GetTPCsignalLongPadQmax()   const {return fTPCsignalRegionQmax[2];}
46   Double_t GetTPCsignalOROCQmax()      const {return fTPCsignalRegionQmax[3];}
47   static void     RegisterSectorCalibration(TGraphErrors* gainSector, Int_t regionID, Int_t calibID);
48   Double_t  GetdEdxInfo(AliExternalTrackParam *param, Int_t regionID, Int_t calibID, Int_t qID, Int_t valueID);
49 private: 
50
51   Double32_t  fTPCsignalRegion[4]; //[0.,0.,10] TPC dEdx signal in 4 different regions - 0 - IROC, 1- OROC medium, 2 - OROC long, 3- OROC all, (default truncation used)  - for qTot
52   Double32_t  fTPCsignalRegionQmax[4]; //[0.,0.,10] TPC dEdx signal in 4 different regions - 0 - IROC, 1- OROC medium, 2 - OROC long, 3- OROC all, (default truncation used) - for qMax
53   Char_t      fTPCsignalNRegion[3]; // number of clusters above threshold used in the dEdx calculation
54   Char_t      fTPCsignalNRowRegion[3]; // number of crosed rows used in the dEdx calculation - signal below threshold included
55   //
56   static TObjArray *fArraySectorCalibration;
57   
58   ClassDef(AliTPCdEdxInfo,3)
59 };
60
61 #endif