]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Base/AliTPCCorrectionLookupTable.h
o update correction/distortion integration
[u/mrichter/AliRoot.git] / TPC / Base / AliTPCCorrectionLookupTable.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 ////////////////////////////////////////////////////////////////////////////
5 // AliTPCCorrectionLookupTable class                                              //
6 // Authors: Jens Wiechula                                            //
7 ////////////////////////////////////////////////////////////////////////////
8
9 #include "AliTPCCorrection.h"
10 #include <TVectorD.h>
11 #include <TMatrixFfwd.h>
12
13 class AliTPCCorrectionLookupTable : public AliTPCCorrection {
14
15 public:
16   AliTPCCorrectionLookupTable();
17   virtual ~AliTPCCorrectionLookupTable();
18
19   virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
20   virtual void GetDistortion(const Float_t x[],const Short_t roc,Float_t dx[]);
21
22   void CreateLookupTable(AliTPCCorrection &tpcCorr, Float_t stepSize=5.);
23
24
25 private:
26
27   // sizes of lookup tables
28   Int_t     fNR;                   // number of rows (r) used for lookup table
29   Int_t     fNPhi;                 // number of phi slices used for lookup table
30   Int_t     fNZ;                   // number of columns (z) used for lookup table
31   //
32   TVectorD  fLimitsRows;           // bin limits in row direction
33   TVectorD  fLimitsPhiSlices;      // bin limits in phi direction
34   TVectorD  fLimitsColumns;        // bin limits in z direction
35   // for distortion
36   TMatrixF **fLookUpDxDist;        //[fNPhi] Array to store electric field integral (int Er/Ez)
37   TMatrixF **fLookUpDyDist;        //[fNPhi] Array to store electric field integral (int Er/Ez)
38   TMatrixF **fLookUpDzDist;        //[fNPhi] Array to store electric field integral (int Er/Ez)
39
40   // for correction
41   TMatrixF **fLookUpDxCorr;        //[fNPhi] Array to store electric field integral (int Er/Ez)
42   TMatrixF **fLookUpDyCorr;        //[fNPhi] Array to store electric field integral (int Er/Ez)
43   TMatrixF **fLookUpDzCorr;        //[fNPhi] Array to store electric field integral (int Er/Ez)
44
45   void InitTables();
46   void ResetTables();
47   void SetupDefaultLimits();
48
49   void GetInterpolation(const Float_t x[],const Short_t roc,Float_t dx[],
50                         TMatrixF **mR, TMatrixF **mPhi, TMatrixF **mZ);
51
52   AliTPCCorrectionLookupTable(const AliTPCCorrectionLookupTable &corr);
53   AliTPCCorrectionLookupTable& operator= (const AliTPCCorrectionLookupTable &corr);
54   ClassDef(AliTPCCorrectionLookupTable,1);  // TPC corrections dumped into a lookup table
55 };
56
57