1 /// \class AliTPCPointCorrection
3 #ifndef ALITPCPOINTCORRECTION_H
4 #define ALITPCPOINTCORRECTION_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
11 #include "TObjArray.h"
15 class AliTPCPointCorrection:public TNamed {
17 AliTPCPointCorrection();
18 AliTPCPointCorrection(const Text_t *name, const Text_t *title);
19 virtual ~AliTPCPointCorrection();
21 TVectorD * GetParamOutR(Int_t sector) {return (TVectorD*)fParamsOutR.At(sector);}
22 TVectorD * GetParamOutZ(Int_t sector) {return (TVectorD*)fParamsOutZ.At(sector);}
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);
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);
30 static AliTPCPointCorrection* Instance();
31 void SetInstance(AliTPCPointCorrection*param){fgInstance = param;}
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);
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);
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);
42 // IROC -OROC+Quadrant alignment
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);
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);
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
68 Double_t fXIO; ///< OROC-IROC boundary
69 Double_t fXmiddle; ///< center of the TPC sector local X
70 Double_t fXquadrant; ///< x quadrant
72 // IROC OROC alignment
74 TObjArray fArraySectorIntParam; ///< array of sector alignment parameters
75 TObjArray fArraySectorIntCovar; ///< array of sector alignment covariances
77 // Kalman filter for global alignment
79 TMatrixD *fSectorParam; ///< Kalman parameter
80 TMatrixD *fSectorCovar; ///< Kalman covariance
86 AliTPCPointCorrection(const AliTPCPointCorrection&);
87 AliTPCPointCorrection& operator=(const AliTPCPointCorrection&);
88 static AliTPCPointCorrection* fgInstance; //!< Instance of this class (singleton implementation)
90 ClassDef(AliTPCPointCorrection, 3);