]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/Attic/AliTPCTransformation.h
doxy: all TPC/Attic converted
[u/mrichter/AliRoot.git] / TPC / Attic / AliTPCTransformation.h
CommitLineData
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"
15class TTreeSRedirector;
16class AliTrackPointArray;
17class AliTrackPoint;
18class TFormula;
19class TBits;
20class TString;
21
22class AliTPCTransformation: public TNamed{
23public:
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