]>
Commit | Line | Data |
---|---|---|
94685752 | 1 | #ifndef ALITPCTRANSFORMATION_H |
2 | #define ALITPCTRANSFORMATION_H | |
3 | ||
71531a24 | 4 | /// \class AliTPCTransformation |
5 | /// \brief TPC transformations | |
6 | /// | |
7 | /// \deprecated Code is not used anymore for the TPC corrections. Obsolete - will be removed soon | |
8 | /// | |
9 | /// \author Marian Ivanov <marian.ivanov@cern.ch> | |
5a225cbb | 10 | |
94685752 | 11 | #include "TNamed.h" |
12 | #include "TMatrixD.h" | |
13 | #include "TVectorD.h" | |
14 | #include "TObjArray.h" | |
15 | class TTreeSRedirector; | |
16 | class AliTrackPointArray; | |
17 | class AliTrackPoint; | |
18 | class TFormula; | |
19 | class TBits; | |
20 | class TString; | |
21 | ||
22 | class AliTPCTransformation: public TNamed{ | |
23 | public: | |
24 | typedef Double_t (*GenFuncG)(const Double_t*,const Double_t*); | |
25 | AliTPCTransformation(); | |
6d438146 | 26 | AliTPCTransformation(const char *name,TBits *mask, const char *fx, const char *fy, const char *fz, Int_t coord); |
27 | AliTPCTransformation(const AliTPCTransformation&trafo); | |
28 | ~AliTPCTransformation(); | |
29 | // | |
e55e5512 | 30 | virtual Double_t GetDeltaXYZ(Int_t coord, Int_t volID, Double_t param, Double_t x, Double_t y, Double_t z); |
98a4cc77 | 31 | void SetParams(Double_t param, Double_t sigma, Double_t sigma2Time, const TVectorD *const fixedParams); |
94685752 | 32 | Bool_t Init(); |
0e9efcbe | 33 | void SetActive(Bool_t flag){ fIsActive = flag;} |
98a4cc77 | 34 | Bool_t IsActive() const {return fIsActive;} |
94685752 | 35 | // |
98a4cc77 | 36 | Double_t GetParam() const {return fParam;} |
37 | void SetParam(Double_t param) {fParam=param;} | |
38 | Double_t GetSigma() const {return fSigma;} | |
39 | Double_t GetSigmaMax() const {return fSigmaMax;} | |
40 | Double_t GetSigma2Time() const {return fSigma2Time;} | |
6d438146 | 41 | // |
94685752 | 42 | static TBits * BitsSide(Bool_t aside); |
43 | static TBits * BitsAll(); | |
94685752 | 44 | static void RegisterFormula(const char * name, GenFuncG formula); |
45 | static AliTPCTransformation::GenFuncG FindFormula(const char * name); | |
46 | static Double_t Eval(const char * name, const Double_t*x,const Double_t*par); | |
98a4cc77 | 47 | |
48 | private: | |
94685752 | 49 | // |
71531a24 | 50 | TString * fNameX; ///< x formula |
51 | TString * fNameY; ///< y formula | |
52 | TString * fNameZ; ///< z formula | |
94685752 | 53 | // |
71531a24 | 54 | TBits * fBitMask; ///< bitmaps - transformation only for specified volID |
55 | Int_t fCoordSystem; ///< coord system of output deltas | |
56 | Double_t fParam; ///< free parameter of transformation | |
57 | Double_t fSigma; ///< error of the parameter | |
58 | Double_t fSigmaMax; ///< maximal sigma (Not allowed to increase in propagate time by bigger factor) | |
59 | Double_t fSigma2Time; ///< change of the error in time (per hour) - (For kalman filter) | |
60 | TVectorD *fFixedParam; ///< fixed parameters of tranformation | |
61 | Bool_t fIsActive; ///< switch - is transformation active | |
94685752 | 62 | // |
63 | // predefined formulas | |
64 | // | |
65 | static Int_t BuildBasicFormulas(); //build list of basic formulas | |
5a225cbb | 66 | static Double_t TPCscalingRPol(Double_t *xyz, const Double_t * const param); |
67 | static Double_t TPCscalingZDrift(Double_t *xyz, const Double_t * const param); | |
68 | static Double_t TPCscalingZDriftGy(Double_t *xyz, const Double_t * const param); | |
69 | static Double_t TPCscalingZDriftT0(Double_t *xyz, const Double_t * const param); | |
70 | static Double_t TPCscalingPhiLocal(Double_t *xyz, const Double_t * const param); | |
98a4cc77 | 71 | static Double_t TPClocalRPhiEdge(Double_t *xyz, const Double_t *const param); |
0e9efcbe | 72 | // |
73 | // TPC Field cage + ROC misalingment induced distortion | |
74 | // | |
5a225cbb | 75 | static Double_t TPCscalingRIFC(Double_t *xyz, const Double_t * const param); // inner field cage r distorion |
76 | static Double_t TPCscalingROFC(Double_t *xyz, const Double_t * const param); // outer field cage r distorion | |
87224220 | 77 | // |
78 | // TPC field cage + ROC misalignemnt induced distortion | |
79 | // | |
98a4cc77 | 80 | static Double_t TPCdeltaFCROC(Double_t *xyz, const Double_t *const param); |
81 | static Double_t TPCdeltaFCCE(Double_t *xyz, const Double_t *const param); | |
87224220 | 82 | |
94685752 | 83 | // |
0e9efcbe | 84 | // TPC local misalignment |
85 | // | |
98a4cc77 | 86 | static Double_t TPClocaldLxdGX(Double_t *xyz, const Double_t *const param); |
87 | static Double_t TPClocaldLxdGY(Double_t *xyz, const Double_t *const param); | |
88 | static Double_t TPClocaldLydGX(Double_t *xyz, const Double_t *const param); | |
89 | static Double_t TPClocaldLydGY(Double_t *xyz, const Double_t *const param); | |
90 | static Double_t TPClocaldRzdGX(Double_t *xyz, const Double_t *const param); | |
91 | static Double_t TPClocaldRzdGY(Double_t *xyz, const Double_t *const param); | |
3649eec1 | 92 | |
0e9efcbe | 93 | // |
94 | // TPC quadrant misalignment | |
95 | // | |
96 | // static Double_t TPCQuadrantDr(Double_t *xyz, Double_t * param){return 0;} | |
97 | //static Double_t TPCQuadrantDrphi(Double_t *xyz, Double_t * param){return 0;} | |
98 | // | |
99 | // Z shift - | |
100 | // | |
98a4cc77 | 101 | static Double_t TPCDeltaZ(Double_t *xyz, const Double_t *const param); |
0e9efcbe | 102 | static Double_t TPCDeltaZMediumLong(Double_t *xyz, Double_t * param); |
98a4cc77 | 103 | static Double_t TPCTiltingZ(Double_t *xyz, const Double_t *const param); |
0e9efcbe | 104 | // |
71531a24 | 105 | Bool_t fInit; ///< initialization flag |
106 | GenFuncG fFormulaX; //!< x formula | |
107 | GenFuncG fFormulaY; //!< y formula | |
108 | GenFuncG fFormulaZ; //!< z formula | |
109 | static GenFuncG fgFormulas[10000]; //!< array of pointers to formula | |
110 | static TObjArray* fgFormulasName; //!< array of formalas name | |
98a4cc77 | 111 | |
e55e5512 | 112 | AliTPCTransformation &operator=(const AliTPCTransformation&); // not implemented |
94685752 | 113 | |
90a856f9 | 114 | ClassDef(AliTPCTransformation,2); |
94685752 | 115 | }; |
116 | ||
117 | #endif | |
118 |