49 #include "AliTPCDistortions.h" 53 Double_t
GetIFCDistortion(Double_t lx, Double_t ly, Double_t lz, Int_t icoord, Double_t shift=1.){
56 static AliTPCDistortions transform;
57 static Bool_t doInit=kTRUE;
59 transform.SetIFCShift(1);
60 transform.InitIFCShiftDistortion();
64 Double_t xyzIn[3]={lx, ly, lz};
65 Double_t xyzOut[3]={lx, ly, lz};
67 if (lz<0) { dummyROC=36;}
68 transform.UndoIFCShiftDistortion(xyzIn,xyzOut,dummyROC);
70 if (icoord<3) result=xyzOut[icoord]-xyzIn[icoord];
76 Double_t
GetGGDistortion(Double_t lx, Double_t ly, Double_t lz, Int_t icoord, Double_t deltaVGGA=1., Double_t deltaVGGC=1.){
79 static AliTPCDistortions transform;
80 static Bool_t doInit=kTRUE;
82 transform.SetDeltaVGGA(1.);
83 transform.SetDeltaVGGC(1.);
84 transform.InitGGVoltErrorDistortion();
87 Double_t xyzIn[3]={lx, ly, lz};
88 Double_t xyzOut[3]={lx, ly, lz};
90 if (lz<0) { dummyROC=36;}
91 transform.UndoGGVoltErrorDistortion(xyzIn,xyzOut,dummyROC);
93 if (icoord<3) result=xyzOut[icoord]-xyzIn[icoord];
94 if (lz<0) result*=deltaVGGA;
95 if (lz>0) result*=deltaVGGC;
103 TCanvas *canvasIFC1D=
new TCanvas(
"IFC radial shift",
"IFC radial shift");
104 TLegend *legend =
new TLegend(0.1,0.60,0.5,0.9,
"Radial distortion due IFC shift 1 mm ");
106 for (Int_t iradius=0; iradius<=10; iradius++){
107 Double_t radius=85+iradius*(245-85)/10.;
108 TF1 *f1=
new TF1(Form(
"fIFC_ZX%f",radius),Form(
"0.1*GetIFCDistortion(%f,0,x,0)*sign(x)",radius),-250,250);
109 f1->SetMaximum( 0.6);
110 f1->SetMinimum(-0.6);
112 f1->SetLineColor(1+((20+iradius)%20));
114 if (iradius==0) f1->Draw(
"p");
116 legend->AddEntry(f1,Form(
"R=%f",radius));
124 TCanvas *canvasIFC1D=
new TCanvas(
"IFC radial shift - angle",
"IFC radial shift angle");
125 TLegend *legend =
new TLegend(0.1,0.60,0.9,0.9,
"Radial distortion due IFC shift 1 mm ");
127 for (Int_t iradius=0; iradius<=10; iradius++){
128 Double_t radius=85+iradius*(245-85)/10.;
129 TF1 *f1=
new TF1(Form(
"fIFC_ZX%f",radius),Form(
"0.1*1000*(GetIFCDistortion(%f,0,x,0)-GetIFCDistortion(%f,0,x+1,0))",radius,radius),-250,250);
133 f1->SetLineColor(1+(iradius%10));
136 if (iradius==0) f1->Draw(
"");
138 legend->AddEntry(f1,Form(
"R=%f",radius));
Double_t GetGGDistortion(Double_t lx, Double_t ly, Double_t lz, Int_t icoord, Double_t deltaVGGA=1., Double_t deltaVGGC=1.)
Double_t GetIFCDistortion(Double_t lx, Double_t ly, Double_t lz, Int_t icoord, Double_t shift=1.)