42 #include "AliTPCcalibV0.h"
43 #include "AliExternalTrackParam.h"
57 TCut
cutN(
"cutN",
"min(Orig0.fTPCncls,Orig1.fTPCncls)>80");
58 TCut
cutN120(
"cutN120",
"min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*10)>120");
59 TCut
cutN130(
"cutN120",
"min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*20)>130");
60 TCut
cutS(
"cutS",
"!crossI&&!crossO");
77 Float_t
range[5] = {5,3,10,3,0.05};
79 Float_t
scale[5] = {10,10,1000,1000,1};
106 cutDiff[0]=
"abs(Tr0.fP[0]+Tr1.fP[0])<3";
107 cutDiff[1]=
"abs(Tr0.fP[1]-Tr1.fP[1])<15";
108 cutDiff[2]=
"abs(Tr1.fAlpha-Tr0.fAlpha+pi)<0.1";
109 cutDiff[3]=
"abs(Tr0.fP[3]+Tr1.fP[3])<0.1";
110 cutDiff[4]=
"abs(Tr0.fP[4]+Tr1.fP[4])<0.5";
113 cutPull[0]=
"abs(Tr0.fP[0]+Tr1.fP[0])/sqrt(Tr0.fC[0]+Tr1.fC[0])<10";
115 cutPull[2]=
"((Tr1.fAlpha-Tr0.fAlpha+pi))/sqrt(Tr0.fC[5]+Tr1.fC[5])<10";
117 cutPull[4]=
"abs(Tr0.fP[4]+Tr1.fP[4])/sqrt(Tr0.fC[14]+Tr1.fC[14])<10";
124 TCut cutOx(
"Op1.fX>240&&Op0.fX>240");
125 TCut cutOz(
"abs(Op1.fP[1])<240&&abs(Op0.fP[1])<240");
126 TCut cutIz(
"abs(Ip1.fP[1])<240&&abs(Ip0.fP[1])<240");
127 TCut cutX00(
"abs(x00)<70");
128 TCut cutX10(
"abs(x10)<70");
129 TCut cutT1P2(
"abs(Ip1.fP[2])<0.8");
130 TCut cutT0P2(
"abs(Ip0.fP[2])<0.8");
131 cutGeomTPC = cutOx+cutOz+cutIz+cutX00+cutX10+cutT1P2+cutT0P2;
143 AliExternalTrackParam p;
144 dP[0]=
"(Tr0.fP[0]+Tr1.fP[0])";
145 dP[1]=
"(Tr0.fP[1]-Tr1.fP[1])";
146 dP[2]=
"(Tr1.fAlpha-Tr0.fAlpha+pi)";
147 dP[3]=
"(Tr0.fP[3]+Tr1.fP[3])";
148 dP[4]=
"(Tr0.fP[4]+Tr1.fP[4])";
149 for (Int_t i=0;i<5;i++){
150 sP[i]=Form(
"%f*sqrt(Tr0.fC[%d]+Tr1.fC[%d])",
scale[i],p.GetIndex(i,i),p.GetIndex(i,i));
151 pP[i]=Form(
"%s/sqrt(Tr0.fC[%d]+Tr1.fC[%d])",
dP[i].Data(),
scale[i],p.GetIndex(i,i),p.GetIndex(i,i));
155 axisYDP[0]=
"#sigma_{r#phi} (mm)";
157 axisYDP[2]=
"#sigma_{#phi} (mrad)";
158 axisYDP[3]=
"#sigma_{#theta} (mrad)";
159 axisYDP[4]=
"#sigma_{1/pt} (1/GeV))";
161 axisYPP[0]=
"#sigma_{r#phi} (Unit)";
162 axisYPP[1]=
"#sigma_{z} (Unit)";
163 axisYPP[2]=
"#sigma_{#phi} (Unit)";
164 axisYPP[3]=
"#sigma_{#theta} (Unit)";
165 axisYPP[4]=
"#sigma_{1/pt} (Unit))";
170 axisYDPm[3]=
"#Delta_{#theta} (mrad)";
171 axisYDPm[4]=
"#Delta_{1/pt} (1/GeV))";
173 axisYPPm[0]=
"#Delta_{r#phi} (Unit)";
176 axisYPPm[3]=
"#Delta_{#theta} (Unit)";
177 axisYPPm[4]=
"#Delta_{1/pt} (Unit))";
182 for (Int_t i=0;i<5;i++){
184 sprintf(hname,
"dP%ivZ",i);
188 sprintf(hname,
"sP%ivZ",i);
189 histoSPZ[i]=
new TH2F(hname, hname,10,-240,240,100,0,
range[i]/3);
190 sprintf(hname,
"pP%ivZ",i);
191 histoPPZ[i]=
new TH2F(hname, hname,10,-240,240,100,-6,6);
207 for (Int_t i=0;i<5;i++){
208 histoDPZ[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
209 hmDPZ[i] = (TH1F*)((array.At(1))->Clone());
210 hsDPZ[i] = (TH1F*)((array.At(2))->Clone());
211 histoSPZ[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
212 hmSPZ[i] = (TH1F*)((array.At(1))->Clone());
213 hsSPZ[i] = (TH1F*)((array.At(2))->Clone());
214 histoPPZ[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
215 hmPPZ[i] = (TH1F*)((array.At(1))->Clone());
216 hsPPZ[i] = (TH1F*)((array.At(2))->Clone());
221 hsDPZ[i]->SetMinimum(0);
240 for (Int_t i=0;i<5;i++){
242 sprintf(hname,
"dP%iv1Pt",i);
246 sprintf(hname,
"sP%ivZ",i);
248 sprintf(hname,
"pP%ivZ",i);
249 histoPP1Pt[i]=
new TH2F(hname, hname,6,0.02,0.75,100,-6,6);
252 histoDP1Pt[i]->SetXTitle(
"#sqrt{1/p_{t} (GeV)}");
253 histoSP1Pt[i]->SetXTitle(
"#sqrt{1/p_{t} (GeV)}");
254 histoPP1Pt[i]->SetXTitle(
"#sqrt{1/p_{t} (GeV)}");
265 for (Int_t i=0;i<5;i++){
266 histoDP1Pt[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
267 hmDP1Pt[i] = (TH1F*)((array.At(1))->Clone());
268 hsDP1Pt[i] = (TH1F*)((array.At(2))->Clone());
269 histoSP1Pt[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
270 hmSP1Pt[i] = (TH1F*)((array.At(1))->Clone());
271 hsSP1Pt[i] = (TH1F*)((array.At(2))->Clone());
272 histoPP1Pt[i]->FitSlicesY(0,0,-1,0,
"QNR",&array);
273 hmPP1Pt[i] = (TH1F*)((array.At(1))->Clone());
274 hsPP1Pt[i] = (TH1F*)((array.At(2))->Clone());
298 TCanvas *czd =
new TCanvas(
"Z depend (abs)",
"Z depend (abs)",700,900);
300 for (Int_t i=0;i<5;i++){
306 czd->SaveAs(
"picResol/deltaPxZ.eps");
307 czd->SaveAs(
"picResol/deltaPxZ.gif");
308 czd->SaveAs(
"picResol/deltaPxZ.root");
312 TCanvas *czp =
new TCanvas(
"Z depend (Pull)",
"Z depend (Pull)",700,900);
314 for (Int_t i=0;i<5;i++){
320 czp->SaveAs(
"picResol/pullPxZ.eps");
321 czp->SaveAs(
"picResol/pullPxZ.gif");
322 czp->SaveAs(
"picResol/pullPxZ.root");
328 TCanvas *cpd =
new TCanvas(
"1/Pt depend",
"1/Pt depend",700,900);
330 for (Int_t i=0;i<5;i++){
336 cpd->SaveAs(
"picResol/deltaPx1Pt.eps");
337 cpd->SaveAs(
"picResol/deltaPx1Pt.gif");
338 cpd->SaveAs(
"picResol/deltaPx1Pt.root");
341 TCanvas *cpp =
new TCanvas(
"Pull 1/Pt",
"Pull 1/Pt",700,900);
343 for (Int_t i=0;i<5;i++){
349 cpp->SaveAs(
"picResol/pullPx1Pt.eps");
350 cpp->SaveAs(
"picResol/pullPx1Pt.gif");
351 cpp->SaveAs(
"picResol/pullPx1Pt.root");