Line data Source code
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 0 : TVectorD * GetParamOutR(Int_t sector) {return (TVectorD*)fParamsOutR.At(sector);}
22 0 : 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 0 : 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 24 : ClassDef(AliTPCPointCorrection, 3);
91 : /// \endcond
92 : };
93 :
94 : #endif
95 :
96 :
|