Double_t dr = fC0 * erez + fC1 * erphiez;
Double_t drphi = -fC1 * erez + fC0 * erphiez;
- //
- dx[0]= TMath::Cos(phi)*dr-TMath::Sin(phi)*drphi;
- dx[1]= TMath::Sin(phi)*dr+TMath::Cos(phi)*drphi;
- dx[2]= 0;
+
+ // Calculate distorted position
+ if ( r > 0.0 ) {
+ r = r + dr;
+ phi = phi + drphi/r;
+ }
+ // Calculate correction in cartesian coordinates
+ dx[0] = r * TMath::Cos(phi) - x[0];
+ dx[1] = r * TMath::Sin(phi) - x[1];
+ dx[2] = 0.; // z distortion not implemented (1st order distortions)
}
Double_t AliTPCExBEffective::GetSum(const TMatrixD& mpol, const TMatrixD&mcoef, Double_t r, Double_t drift, Double_t phi, Int_t coord) const {
//
- //
+ // Summation of the polynomials
//
Int_t npols=mpol.GetNrows();
Double_t sum=0;
-#ifndef ALITPCEXBEFECTIVE_H
-#define ALITPCEXBEFECTIVE_H
+#ifndef ALITPCEXBEFFECTIVE_H
+#define ALITPCEXBEFFECTIVE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
public:
virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
- Double_t fC0; // wt - matrix elements
- Double_t fC1; //
+
+private:
+ Double_t fC0; // coefficient C0 (compare Jim Thomas's notes for definitions)
+ Double_t fC1; // coefficient C1 (compare Jim Thomas's notes for definitions)
TMatrixD *fPolynomA; // correction polynoms A
TMatrixD *fPolynomC; // correction polynoms C
TMatrixD *fPolynomValA; // correction polynoms coefficient A
TMatrixD *fPolynomValC; // correction polynoms coefficient C
-private:
+
AliTPCExBEffective(const AliTPCExBEffective&);
AliTPCExBEffective &operator=(const AliTPCExBEffective&);
ClassDef(AliTPCExBEffective,1);