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