]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/TPCbase/AliTPCPointCorrection.h
doxy: TPC/TPCbase converted
[u/mrichter/AliRoot.git] / TPC / TPCbase / AliTPCPointCorrection.h
1 /// \class AliTPCPointCorrection
2
3 #ifndef ALITPCPOINTCORRECTION_H
4 #define ALITPCPOINTCORRECTION_H
5
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 #include "TNamed.h"
10 #include "TArrayD.h"
11 #include "TObjArray.h"
12 #include "TVectorD.h"
13
14
15 class AliTPCPointCorrection:public TNamed {
16 public:
17   AliTPCPointCorrection();
18   AliTPCPointCorrection(const Text_t *name, const Text_t *title);
19   virtual ~AliTPCPointCorrection();
20   //
21   TVectorD * GetParamOutR(Int_t sector) {return (TVectorD*)fParamsOutR.At(sector);}
22   TVectorD * GetParamOutZ(Int_t sector) {return (TVectorD*)fParamsOutZ.At(sector);}
23   //
24   Double_t      GetDrOut(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
25   Double_t      GetDzOut(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
26
27   static Double_t      SGetDrOut(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
28   static Double_t      SGetDzOut(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
29
30   static AliTPCPointCorrection* Instance();
31   void SetInstance(AliTPCPointCorrection*param){fgInstance = param;}
32   //
33   Double_t CorrectionOutR0(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
34   Double_t CorrectionOutZ0(Bool_t isGlobal, Bool_t type, Double_t cx, Double_t cy, Double_t cz, Int_t sector);
35
36   Double_t RPhiCOGCorrection(Int_t sector, Int_t padrow, Float_t pad, Float_t cy, Float_t y, Float_t z, Float_t ky, Float_t qMax, Float_t threhsold);
37   Double_t SRPhiCOGCorrection(Int_t sector, Int_t padrow, Float_t pad, Float_t cy, Float_t y, Float_t z, Float_t ky,  Float_t qMax, Float_t threhsold);
38   //
39   Double_t GetEdgeQ0(Int_t sector, Int_t padrow, Float_t y);
40   static   Double_t SGetEdgeQ0(Int_t sector, Int_t padrow, Float_t y);
41   //
42   // IROC -OROC+Quadrant alignment
43   //
44   void     AddCorrectionSector(TObjArray & sideAPar, TObjArray &sideCPar, TObjArray & sideACov, TObjArray &sideCCov, Bool_t reset);
45   Double_t GetCorrectionSector(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz, Int_t quadrant =-1);
46   static Double_t SGetCorrectionSector(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz, Int_t quadrant=-1);
47   //
48   // Global alignment
49   //
50   Double_t GetCorrection(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz);
51   static Double_t SGetCorrection(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz);
52 public:
53   //
54   // Correction out
55   //
56   TObjArray   fParamsOutR;       ///< Parameters  for radial distortion  - outer field cage
57   TObjArray   fParamsOutZ;       ///< Parameters  for z      distortion  - outer field cage
58   Int_t       fParamOutRVersion;  ///< version of the parameterization
59   TObjArray   fErrorsOutR;       ///< Parameters  for radial distortion  - outer field cage
60   TObjArray   fErrorsOutZ;       ///< Parameters  for z      distortion  - outer field cage
61   Int_t       fParamOutZVersion;  ///< version of the parameterization
62   //
63   //  Edge rfi
64   //
65   //
66   // Alignment part
67   //
68   Double_t fXIO;               ///< OROC-IROC boundary
69   Double_t fXmiddle;           ///< center of the TPC sector local X
70   Double_t fXquadrant;         ///< x quadrant
71   //
72   // IROC OROC alignment
73   //
74   TObjArray fArraySectorIntParam; ///< array of sector alignment parameters
75   TObjArray fArraySectorIntCovar; ///< array of sector alignment covariances
76   //
77   // Kalman filter for global alignment
78   //
79   TMatrixD  *fSectorParam;     ///< Kalman parameter
80   TMatrixD  *fSectorCovar;     ///< Kalman covariance
81   //
82   //
83   //
84 private:
85
86   AliTPCPointCorrection(const AliTPCPointCorrection&);
87   AliTPCPointCorrection& operator=(const AliTPCPointCorrection&);
88   static AliTPCPointCorrection*   fgInstance; //!< Instance of this class (singleton implementation)
89   /// \cond CLASSIMP
90   ClassDef(AliTPCPointCorrection, 3);
91   /// \endcond
92 };
93
94 #endif
95
96