]>
Commit | Line | Data |
---|---|---|
cb6d91a8 | 1 | /* |
85e0023b | 2 | |
cb6d91a8 | 3 | .x ~/UliStyle.C |
85e0023b | 4 | .x ~/NimStyle.C |
cb6d91a8 | 5 | .x ~/rootlogon.C |
85e0023b | 6 | TProof::Open(""); |
cb6d91a8 | 7 | gSystem->Load("libSTAT.so"); |
8 | gSystem->Load("libANALYSIS"); | |
9 | gSystem->Load("libTPCcalib"); | |
10 | gSystem->Load("libSTAT.so"); | |
11 | ||
12 | gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros"); | |
13 | gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+"); | |
14 | AliXRDPROOFtoolkit tool; | |
85e0023b | 15 | TChain * chain = tool.MakeChain("cosmic.txt","Track0",0,1000000); |
16 | chain->Lookup(); | |
17 | chain->SetProof(kTRUE); | |
18 | ||
19 | .L $ALICE_ROOT/TPC/CalibMacros/CosmicPerformance.C+ | |
20 | chainCosmic=chain; | |
21 | MakeCuts() | |
22 | MakeAlias(); | |
23 | Make1PtPlot(); | |
24 | Draw1Pt(); | |
25 | Draw1PtPull(); | |
26 | ||
27 | MakeZPlot(); | |
28 | DrawZ(); | |
29 | DrawZPull(); | |
30 | ||
31 | // | |
32 | PtResolPt(); | |
33 | ||
34 | ||
cb6d91a8 | 35 | */ |
36 | ||
85e0023b | 37 | #include "TTree.h" |
38 | #include "TChain.h" | |
39 | #include "TPad.h" | |
40 | #include "TCanvas.h" | |
41 | #include "TCut.h" | |
42 | #include "TH1.h" | |
43 | #include "TH2F.h" | |
44 | #include "AliTPCcalibV0.h" | |
45 | #include "AliExternalTrackParam.h" | |
46 | ||
47 | TChain * chainCosmic=0; | |
48 | Int_t kmicolors[10]={1,2,3,4,6,7,8,9,10,11}; | |
49 | Int_t kmimarkers[10]={21,22,23,24,25,26,27,28,29,30}; | |
50 | ||
51 | AliTPCcalibV0 v0; | |
52 | Bool_t bUseCorrection =kFALSE; | |
53 | // | |
54 | // Global cuts | |
55 | // | |
56 | TCut cutDiff[6]; // parameter diff cuts - 5 all | |
57 | TCut cutPull[6]; // pull diff cuts - 5 all | |
58 | TCut cutGeomTPC; // TPC geometrical cuts | |
59 | TCut cutN("cutN","min(Orig0.fTPCncls,Orig1.fTPCncls)>80"); | |
60 | TCut cutN120("cutN120","min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*10)>120"); | |
61 | TCut cutN130("cutN120","min(Orig0.fTPCncls,Orig1.fTPCncls)+abs(Tr1.fP[4]*20)>130"); | |
62 | TCut cutS("cutS","!crossI&&!crossO"); | |
63 | TCut cutRun("run<620600"); | |
64 | TCut cutAll; | |
65 | TCut cutCustom=cutN130+cutS+cutRun; | |
66 | TCut cut1Pt = "Tr0.fP[1]>0"; // Use only A side for Pt study | |
67 | // | |
68 | // Aliases | |
69 | // | |
70 | TString dP[5]; // delta of parameters | |
71 | TString sP[5]; // sigma of parameters | |
72 | TString pP[5]; // pull of parameters | |
73 | TString axisYDP[5]; // axis title | |
74 | TString axisYPP[5]; // axis title | |
75 | TString axisYDPm[5]; // axis title | |
76 | TString axisYPPm[5]; // axis title | |
77 | // | |
78 | // | |
79 | Float_t range[5] = {5,3,10,3,0.05}; // ranges for diff histogram | |
80 | ||
81 | Float_t scale[5] = {10,10,1000,1000,1}; // scaling factor | |
82 | // | |
83 | // Z depend | |
84 | TH2F * histoDPZ[5]={0,0,0,0,0}; | |
85 | TH2F * histoSPZ[5]={0,0,0,0,0}; | |
86 | TH2F * histoPPZ[5]={0,0,0,0,0}; | |
87 | TH1F * hmDPZ[5]; | |
88 | TH1F * hmSPZ[5]; | |
89 | TH1F * hmPPZ[5]; | |
90 | TH1F * hsDPZ[5]; | |
91 | TH1F * hsSPZ[5]; | |
92 | TH1F * hsPPZ[5]; | |
93 | // | |
94 | // Pt depend | |
95 | TH2F * histoDP1Pt[5]={0,0,0,0,0}; | |
96 | TH2F * histoSP1Pt[5]={0,0,0,0,0}; | |
97 | TH2F * histoPP1Pt[5]={0,0,0,0,0}; | |
98 | TH1F * hmDP1Pt[5]; | |
99 | TH1F * hmSP1Pt[5]; | |
100 | TH1F * hmPP1Pt[5]; | |
101 | TH1F * hsDP1Pt[5]; | |
102 | TH1F * hsSP1Pt[5]; | |
103 | TH1F * hsPP1Pt[5]; | |
104 | ||
105 | void MakeCutsParam(){ | |
106 | // | |
107 | // Default selection criteria | |
108 | // | |
109 | cutDiff[0]="abs(Tr0.fP[0]+Tr1.fP[0])<3"; | |
110 | cutDiff[1]="abs(Tr0.fP[1]-Tr1.fP[1])<15"; | |
111 | cutDiff[2]="abs(Tr1.fAlpha-Tr0.fAlpha+pi)<0.1"; | |
112 | cutDiff[3]="abs(Tr0.fP[3]+Tr1.fP[3])<0.1"; | |
113 | cutDiff[4]="abs(Tr0.fP[4]+Tr1.fP[4])<0.5"; | |
114 | for (Int_t i=0;i<5;i++) cutDiff[5]+=cutDiff[i]; | |
115 | // | |
116 | cutPull[0]="abs(Tr0.fP[0]+Tr1.fP[0])/sqrt(Tr0.fC[0]+Tr1.fC[0])<10"; | |
117 | cutPull[1]="1"; | |
118 | cutPull[2]="((Tr1.fAlpha-Tr0.fAlpha+pi))/sqrt(Tr0.fC[5]+Tr1.fC[5])<10"; | |
119 | cutPull[3]="1"; | |
120 | cutPull[4]="abs(Tr0.fP[4]+Tr1.fP[4])/sqrt(Tr0.fC[14]+Tr1.fC[14])<10"; | |
121 | for (Int_t i=0;i<5;i++) cutPull[5]+=cutPull[i]; | |
122 | } | |
cb6d91a8 | 123 | |
85e0023b | 124 | void MakeGeomCuts(){ |
125 | // | |
126 | // Geometrical cut | |
127 | // | |
cb6d91a8 | 128 | TCut cutOx("Op1.fX>240&&Op0.fX>240"); |
129 | TCut cutOz("abs(Op1.fP[1])<240&&abs(Op0.fP[1])<240"); | |
cb6d91a8 | 130 | TCut cutIz("abs(Ip1.fP[1])<240&&abs(Ip0.fP[1])<240"); |
131 | TCut cutX00("abs(x00)<70"); | |
132 | TCut cutX10("abs(x10)<70"); | |
85e0023b | 133 | TCut cutT1P2("abs(Ip1.fP[2])<0.8"); |
134 | TCut cutT0P2("abs(Ip0.fP[2])<0.8"); | |
135 | cutGeomTPC = cutOx+cutOz+cutIz+cutX00+cutX10+cutT1P2+cutT0P2; | |
136 | } | |
137 | ||
138 | void MakeCuts(){ | |
139 | // make cuts all | |
140 | MakeGeomCuts(); | |
141 | MakeCutsParam(); | |
142 | cutAll = cutDiff[5]+cutPull[5]+cutGeomTPC; | |
143 | } | |
144 | ||
145 | void MakeAlias(){ | |
146 | AliExternalTrackParam p; | |
147 | dP[0]="(Tr0.fP[0]+Tr1.fP[0])"; | |
148 | dP[1]="(Tr0.fP[1]-Tr1.fP[1])"; | |
149 | dP[2]="(Tr1.fAlpha-Tr0.fAlpha+pi)"; | |
150 | dP[3]="(Tr0.fP[3]+Tr1.fP[3])"; | |
151 | dP[4]="(Tr0.fP[4]+Tr1.fP[4])"; | |
152 | for (Int_t i=0;i<5;i++){ | |
153 | sP[i]=Form("%f*sqrt(Tr0.fC[%d]+Tr1.fC[%d])",scale[i],p.GetIndex(i,i),p.GetIndex(i,i)); | |
154 | 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 | dP[i]+=Form("*%f",scale[i]); | |
156 | } | |
157 | ||
158 | axisYDP[0]="#sigma_{r#phi} (mm)"; | |
159 | axisYDP[1]="#sigma_{z} (mm)"; | |
160 | axisYDP[2]="#sigma_{#phi} (mrad)"; | |
161 | axisYDP[3]="#sigma_{#theta} (mrad)"; | |
162 | axisYDP[4]="#sigma_{1/pt} (1/GeV))"; | |
163 | // | |
164 | axisYPP[0]="#sigma_{r#phi} (Unit)"; | |
165 | axisYPP[1]="#sigma_{z} (Unit)"; | |
166 | axisYPP[2]="#sigma_{#phi} (Unit)"; | |
167 | axisYPP[3]="#sigma_{#theta} (Unit)"; | |
168 | axisYPP[4]="#sigma_{1/pt} (Unit))"; | |
169 | // | |
170 | axisYDPm[0]="#Delta_{r#phi} (mm)"; | |
171 | axisYDPm[1]="#Delta_{z} (mm)"; | |
172 | axisYDPm[2]="#Delta_{#phi} (mrad)"; | |
173 | axisYDPm[3]="#Delta_{#theta} (mrad)"; | |
174 | axisYDPm[4]="#Delta_{1/pt} (1/GeV))"; | |
175 | // | |
176 | axisYPPm[0]="#Delta_{r#phi} (Unit)"; | |
177 | axisYPPm[1]="#Delta_{z} (Unit)"; | |
178 | axisYPPm[2]="#Delta_{#phi} (Unit)"; | |
179 | axisYPPm[3]="#Delta_{#theta} (Unit)"; | |
180 | axisYPPm[4]="#Delta_{1/pt} (Unit))"; | |
181 | } | |
182 | ||
183 | void MakeZPlot(){ | |
184 | ||
185 | for (Int_t i=0;i<5;i++){ | |
186 | char hname[100]; | |
187 | sprintf(hname,"dP%ivZ",i); | |
188 | // | |
189 | if ( histoDPZ[i]==0){ | |
190 | histoDPZ[i]= new TH2F(hname, hname,10,-240,240,100,-range[i],range[i]); | |
191 | sprintf(hname,"sP%ivZ",i); | |
192 | histoSPZ[i]= new TH2F(hname, hname,10,-240,240,100,0,range[i]/3); | |
193 | sprintf(hname,"pP%ivZ",i); | |
194 | histoPPZ[i]= new TH2F(hname, hname,10,-240,240,100,-6,6); | |
195 | } | |
196 | // | |
197 | histoDPZ[i]->SetXTitle("z (cm)"); | |
198 | histoSPZ[i]->SetXTitle("z (cm)"); | |
199 | histoPPZ[i]->SetXTitle("z (cm)"); | |
200 | histoDPZ[i]->SetYTitle(axisYDP[i]); | |
201 | histoSPZ[i]->SetYTitle(axisYDP[i]); | |
202 | histoPPZ[i]->SetYTitle(axisYPP[i]); | |
203 | chainCosmic->Draw((dP[i]+"/sqrt(2.):Tr0.fP[1]>>"+histoDPZ[i]->GetName()),cutAll+cutCustom+cutS); | |
204 | chainCosmic->Draw((sP[i]+"/sqrt(2.):Tr0.fP[1]>>"+histoSPZ[i]->GetName()),cutAll+cutCustom+cutS); | |
205 | chainCosmic->Draw((pP[i]+":Tr0.fP[1]>>"+histoPPZ[i]->GetName()),cutAll+cutCustom+cutS); | |
206 | } | |
207 | ||
208 | TObjArray array(3); | |
209 | { | |
210 | for (Int_t i=0;i<5;i++){ | |
211 | histoDPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
212 | hmDPZ[i] = (TH1F*)((array.At(1))->Clone()); | |
213 | hsDPZ[i] = (TH1F*)((array.At(2))->Clone()); | |
214 | histoSPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
215 | hmSPZ[i] = (TH1F*)((array.At(1))->Clone()); | |
216 | hsSPZ[i] = (TH1F*)((array.At(2))->Clone()); | |
217 | histoPPZ[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
218 | hmPPZ[i] = (TH1F*)((array.At(1))->Clone()); | |
219 | hsPPZ[i] = (TH1F*)((array.At(2))->Clone()); | |
220 | // | |
221 | hmDPZ[i]->SetYTitle(axisYDPm[i]); | |
222 | hmSPZ[i]->SetYTitle(axisYDPm[i]); | |
223 | hmPPZ[i]->SetYTitle(axisYPPm[i]); | |
224 | hsDPZ[i]->SetMinimum(0); | |
225 | hsDPZ[i]->SetYTitle(axisYDP[i]); | |
226 | hsSPZ[i]->SetYTitle(axisYDP[i]); | |
227 | hsPPZ[i]->SetYTitle(axisYPP[i]); | |
228 | // | |
229 | hmDPZ[i]->SetMarkerColor(kmicolors[1]); | |
230 | hmDPZ[i]->SetMarkerStyle(kmimarkers[1]); | |
231 | hsDPZ[i]->SetMarkerColor(kmicolors[2]); | |
232 | hsDPZ[i]->SetMarkerStyle(kmimarkers[2]); | |
233 | hmPPZ[i]->SetMarkerColor(kmicolors[1]); | |
234 | hmPPZ[i]->SetMarkerStyle(kmimarkers[1]); | |
235 | hsPPZ[i]->SetMarkerColor(kmicolors[2]); | |
236 | hsPPZ[i]->SetMarkerStyle(kmimarkers[2]); | |
237 | } | |
238 | } | |
239 | } | |
240 | ||
241 | void Make1PtPlot(){ | |
242 | ||
243 | for (Int_t i=0;i<5;i++){ | |
244 | char hname[100]; | |
245 | sprintf(hname,"dP%iv1Pt",i); | |
246 | // | |
247 | if ( histoDP1Pt[i]==0){ | |
248 | histoDP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,-range[i],range[i]); | |
249 | sprintf(hname,"sP%ivZ",i); | |
250 | histoSP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,0,range[i]/3); | |
251 | sprintf(hname,"pP%ivZ",i); | |
252 | histoPP1Pt[i]= new TH2F(hname, hname,6,0.02,0.75,100,-6,6); | |
253 | } | |
254 | // | |
255 | histoDP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}"); | |
256 | histoSP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}"); | |
257 | histoPP1Pt[i]->SetXTitle("#sqrt{1/p_{t} (GeV)}"); | |
258 | histoDP1Pt[i]->SetYTitle(axisYDP[i]); | |
259 | histoSP1Pt[i]->SetYTitle(axisYDP[i]); | |
260 | histoPP1Pt[i]->SetYTitle(axisYPP[i]); | |
261 | chainCosmic->Draw((dP[i]+"/sqrt(2.):sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoDP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt); | |
262 | chainCosmic->Draw((sP[i]+"/sqrt(2.):sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoSP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt); | |
263 | chainCosmic->Draw((pP[i]+":sqrt(0.5*abs(Tr0.fP[4]-Tr1.fP[4]))>>"+histoPP1Pt[i]->GetName()),cutAll+cutCustom+cutS+cut1Pt); | |
264 | } | |
265 | ||
266 | TObjArray array(3); | |
267 | { | |
268 | for (Int_t i=0;i<5;i++){ | |
269 | histoDP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
270 | hmDP1Pt[i] = (TH1F*)((array.At(1))->Clone()); | |
271 | hsDP1Pt[i] = (TH1F*)((array.At(2))->Clone()); | |
272 | histoSP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
273 | hmSP1Pt[i] = (TH1F*)((array.At(1))->Clone()); | |
274 | hsSP1Pt[i] = (TH1F*)((array.At(2))->Clone()); | |
275 | histoPP1Pt[i]->FitSlicesY(0,0,-1,0,"QNR",&array); | |
276 | hmPP1Pt[i] = (TH1F*)((array.At(1))->Clone()); | |
277 | hsPP1Pt[i] = (TH1F*)((array.At(2))->Clone()); | |
278 | hmDP1Pt[i]->SetYTitle(axisYDPm[i]); | |
279 | hmSP1Pt[i]->SetYTitle(axisYDPm[i]); | |
280 | hmPP1Pt[i]->SetYTitle(axisYPPm[i]); | |
281 | hsDP1Pt[i]->SetMinimum(0); | |
282 | hsDP1Pt[i]->SetYTitle(axisYDP[i]); | |
283 | hsSP1Pt[i]->SetYTitle(axisYDP[i]); | |
284 | hsPP1Pt[i]->SetYTitle(axisYPP[i]); | |
285 | // | |
286 | hmDP1Pt[i]->SetMarkerColor(kmicolors[1]); | |
287 | hmDP1Pt[i]->SetMarkerStyle(kmimarkers[1]); | |
288 | hsDP1Pt[i]->SetMarkerColor(kmicolors[2]); | |
289 | hsDP1Pt[i]->SetMarkerStyle(kmimarkers[2]); | |
290 | hmPP1Pt[i]->SetMarkerColor(kmicolors[1]); | |
291 | hmPP1Pt[i]->SetMarkerStyle(kmimarkers[1]); | |
292 | hsPP1Pt[i]->SetMarkerColor(kmicolors[2]); | |
293 | hsPP1Pt[i]->SetMarkerStyle(kmimarkers[2]); | |
294 | ||
295 | ||
296 | } | |
297 | } | |
298 | } | |
299 | ||
300 | void DrawZ(){ | |
301 | TCanvas *czd = new TCanvas("Z depend (abs)","Z depend (abs)",700,900); | |
302 | czd->Divide(2,5); | |
303 | for (Int_t i=0;i<5;i++){ | |
304 | czd->cd(2*i+1); | |
305 | hmDPZ[i]->Draw(""); | |
306 | czd->cd(2*i+2); | |
307 | hsDPZ[i]->Draw(""); | |
308 | } | |
309 | czd->SaveAs("picResol/deltaPxZ.eps"); | |
310 | czd->SaveAs("picResol/deltaPxZ.gif"); | |
311 | czd->SaveAs("picResol/deltaPxZ.root"); | |
312 | } | |
313 | ||
314 | void DrawZPull(){ | |
315 | TCanvas *czp = new TCanvas("Z depend (Pull)","Z depend (Pull)",700,900); | |
316 | czp->Divide(2,5); | |
317 | for (Int_t i=0;i<5;i++){ | |
318 | czp->cd(2*i+1); | |
319 | hmPPZ[i]->Draw(""); | |
320 | czp->cd(2*i+2); | |
321 | hsPPZ[i]->Draw(""); | |
322 | } | |
323 | czp->SaveAs("picResol/pullPxZ.eps"); | |
324 | czp->SaveAs("picResol/pullPxZ.gif"); | |
325 | czp->SaveAs("picResol/pullPxZ.root"); | |
326 | ||
327 | } | |
328 | ||
329 | ||
330 | void Draw1Pt(){ | |
331 | TCanvas *cpd = new TCanvas("1/Pt depend","1/Pt depend",700,900); | |
332 | cpd->Divide(2,5); | |
333 | for (Int_t i=0;i<5;i++){ | |
334 | cpd->cd(2*i+1); | |
335 | hmDP1Pt[i]->Draw(""); | |
336 | cpd->cd(2*i+2); | |
337 | hsDP1Pt[i]->Draw(""); | |
338 | } | |
339 | cpd->SaveAs("picResol/deltaPx1Pt.eps"); | |
340 | cpd->SaveAs("picResol/deltaPx1Pt.gif"); | |
341 | cpd->SaveAs("picResol/deltaPx1Pt.root"); | |
342 | } | |
343 | void Draw1PtPull(){ | |
344 | TCanvas *cpp = new TCanvas("Pull 1/Pt","Pull 1/Pt",700,900); | |
345 | cpp->Divide(2,5); | |
346 | for (Int_t i=0;i<5;i++){ | |
347 | cpp->cd(2*i+1); | |
348 | hmPP1Pt[i]->Draw(""); | |
349 | cpp->cd(2*i+2); | |
350 | hsPP1Pt[i]->Draw(""); | |
351 | } | |
352 | cpp->SaveAs("picResol/pullPx1Pt.eps"); | |
353 | cpp->SaveAs("picResol/pullPx1Pt.gif"); | |
354 | cpp->SaveAs("picResol/pullPx1Pt.root"); | |
355 | } | |
356 | ||
357 | ||
358 | /* | |
359 | // | |
360 | // | |
361 | // | |
362 | ||
363 | ||
364 | void DrawPtSpectra(){ | |
365 | TH1F * hisPt0 = new TH1F("hisPt0","hisPt0",50,0,100); | |
366 | TH1F * hisPtC = new TH1F("hisPtC","hisPtC",50,0,100); | |
367 | chainCosmic->Draw("Tr0.Pt()>>hisPt0",cutAll+cutCustom); | |
368 | chainCosmic->Draw("Tr0.Pt()>>hisPtC","abs(Tr0.fP[4])>3*sqrt(Tr0.fC[14])"+cutAll+cutCustom); | |
369 | // | |
370 | hisPt0->SetXTitle("p_{t} (GeV)"); | |
371 | hisPt0->SetLineColor(kmicolors[1]); | |
372 | hisPtC->SetLineColor(kmicolors[2]); | |
373 | // | |
374 | hisPtC->Fit("exp"); | |
375 | hisPt0->Draw(""); | |
376 | hisPtC->Draw("same"); | |
377 | TLegend * legend = new TLegend(.4,.7, .99, .99,"Cosmic p_{t} spectra"); | |
378 | legend->AddEntry(hisPt0,"Raw spectra"); | |
379 | legend->AddEntry(hisPtC,"Selection abs(p_{t})<3#sigma_{p_{t}}"); | |
380 | legend->Draw(); | |
381 | gPad->SaveAs("picSpectra/ptSpectra.eps"); | |
382 | gPad->SaveAs("picSpectra/ptSpectra.gif"); | |
383 | gPad->SaveAs("picSpectra/ptSpectra.root"); | |
384 | } | |
385 | ||
386 | ||
387 | ||
388 | void InitCuts(){ | |
cb6d91a8 | 389 | // |
85e0023b | 390 | // Init cuts |
cb6d91a8 | 391 | // |
392 | chainCosmic->Draw(">>listELP",cutAll,"entryList"); | |
393 | TEntryList *elist = (TEntryList*)gDirectory->Get("listELP"); | |
394 | chainCosmic->SetEntryList(elist); | |
395 | // | |
396 | chainCosmic->Draw(">>listELFit",cutAll+cuthpt+cutS+cutRun,"entryList"); | |
397 | TEntryList *elistFit = (TEntryList*)gDirectory->Get("listELFit"); | |
398 | chainCosmic->SetEntryList(elistFit); | |
cb6d91a8 | 399 | } |
400 | ||
401 | void SetAlias(){ | |
85e0023b | 402 | // |
403 | // Set aliases | |
404 | // | |
cb6d91a8 | 405 | chainCosmic->SetAlias("dP0","(Tr0.fP[0]+Tr1.fP[0])"); |
406 | chainCosmic->SetAlias("dP1","(Tr0.fP[1]-Tr1.fP[1])"); | |
407 | chainCosmic->SetAlias("dP2","(Tr1.fAlpha-Tr0.fAlpha+pi)"); | |
408 | chainCosmic->SetAlias("dP3","(Tr0.fP[3]+Tr1.fP[3])"); | |
409 | chainCosmic->SetAlias("dP4","(Tr0.fP[4]+Tr1.fP[4])"); | |
410 | // | |
411 | chainCosmic->SetAlias("sP0","sqrt(Tr0.fC[0]+Tr1.fC[0])"); | |
412 | chainCosmic->SetAlias("sP1","sqrt(Tr0.fC[2]+Tr1.fC[2])"); | |
413 | chainCosmic->SetAlias("sP2","sqrt(Tr0.fC[5]+Tr0.fC[5])"); | |
414 | chainCosmic->SetAlias("sP3","sqrt(Tr0.fC[9]+Tr1.fC[9])"); | |
415 | chainCosmic->SetAlias("sP4","sqrt(Tr0.fC[14]+Tr1.fC[14])"); | |
416 | // | |
85e0023b | 417 | chainCosmic->SetAlias("corrP0","0"); |
418 | chainCosmic->SetAlias("corrP1","0"); | |
419 | chainCosmic->SetAlias("corrP2","0"); | |
420 | chainCosmic->SetAlias("corrP3","0"); | |
421 | chainCosmic->SetAlias("corrP4","0"); | |
422 | // | |
cb6d91a8 | 423 | chainCosmic->SetAlias("dR","(1-abs(Tr0.fP[1]/250))"); |
424 | chainCosmic->SetAlias("side","(-1+(Tr0.fP[1]>0)*2)"); | |
425 | chainCosmic->SetAlias("meanPt","((Tr0.Pt()+Tr1.Pt())/2.)"); | |
426 | ||
427 | } | |
428 | ||
429 | void Correction(){ | |
85e0023b | 430 | // |
431 | // Fit corrections | |
432 | // | |
cb6d91a8 | 433 | TStatToolkit toolkit; |
434 | Double_t chi2=0; | |
435 | Int_t npoints=0; | |
436 | TVectorD fitParam; | |
437 | TMatrixD covMatrix; | |
438 | // | |
439 | TString fstring=""; | |
440 | fstring+="side++"; | |
441 | // | |
442 | fstring+="dR++"; | |
443 | fstring+="dR*dR++"; | |
444 | fstring+="Tr0.fP[3]++"; | |
445 | // | |
446 | fstring+="dR*side++"; | |
447 | fstring+="dR*dR*side++"; | |
448 | fstring+="Tr0.fP[3]*side++"; | |
449 | // | |
450 | TString * strP0 = TStatToolkit::FitPlane(chainCosmic,"dP0", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix); | |
451 | chainCosmic->SetAlias("corrP0",strP0->Data()); | |
452 | ||
453 | TString * strP1 = TStatToolkit::FitPlane(chainCosmic,"dP1", fstring.Data(),"!crossI&&!crossO", chi2,npoints,fitParam,covMatrix); | |
454 | chainCosmic->SetAlias("corrP1",strP1->Data()); | |
455 | ||
456 | TString * strP2 = TStatToolkit::FitPlane(chainCosmic,"dP2", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix); | |
457 | chainCosmic->SetAlias("corrP2",strP2->Data()); | |
458 | ||
459 | TString * strP3 = TStatToolkit::FitPlane(chainCosmic,"dP3", fstring.Data(),"!crossI&&!crossO", chi2,npoints,fitParam,covMatrix); | |
460 | chainCosmic->SetAlias("corrP3",strP3->Data()); | |
461 | ||
462 | TString * strP4 = TStatToolkit::FitPlane(chainCosmic,"dP4", fstring.Data(),"1", chi2,npoints,fitParam,covMatrix); | |
463 | chainCosmic->SetAlias("corrP4",strP4->Data()); | |
85e0023b | 464 | bUseCorrection = kTRUE; |
cb6d91a8 | 465 | } |
466 | ||
467 | ||
468 | ||
469 | void DrawNClusterGeom(){ | |
470 | // | |
471 | // | |
472 | // | |
473 | TH2F * hNd("hNd","hNd",50,0,190,100,10,160); | |
474 | chainCosmic->Draw("Orig0.fTPCncls:sqrt(x00^2+x01^2)>>hNd",cutOx+cutOz+cutIx+cutIz); | |
475 | hNd->FitSlicesY(); | |
476 | hNd_1->SetXTitle("DCA_{r} (cm)"); | |
477 | hNd_1->SetYTitle("Mean number of clusters"); | |
478 | gPad->SaveAs("pic/NCl_Radius.eps"); | |
479 | gPad->SaveAs("pic/NCl_Radius.gif"); | |
85e0023b | 480 | gPad->SaveAs("pic/NCl_Radius.root"); |
cb6d91a8 | 481 | |
482 | ||
483 | } | |
484 | ||
485 | ||
486 | void PtResolPt(){ | |
487 | ||
85e0023b | 488 | TH2F * hdPtPt = new TH2F("hdPtPt","hdPtPt",20,0.5,30,100,-60,60); |
489 | TH2F * hsPtPt = new TH2F("hsPtPt","hsPtPt",20,0.5,30,200,-0,30); | |
490 | TH2F * hdPtPtNoCor = new TH2F("hdPtPtNoCor","hdPtPtNoCor",20,0.5,30,100,-60,60); | |
491 | TH2F * hdPtPtCor = new TH2F("hdPtPtCor","hdPtPtCor",20,0.5,30,200,-60,60); | |
cb6d91a8 | 492 | // |
85e0023b | 493 | v0.BinLogX(hdPtPt); |
494 | v0.BinLogX(hsPtPt); | |
495 | v0.BinLogX(hdPtPtNoCor); | |
496 | v0.BinLogX(hdPtPtCor); | |
cb6d91a8 | 497 | |
85e0023b | 498 | chainCosmic->Draw("100*((Tr0.Pt()-Tr1.Pt())/meanPt)/sqrt(2.):meanPt>>hdPtPt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
499 | chainCosmic->Draw("100*(sP4*meanPt)/sqrt(2.):meanPt>>hsPtPt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
500 | if (bUseCorrection) chainCosmic->Draw("100*((dP4-corrP4)*meanPt)/sqrt(2.):meanPt>>hdPtPtCorr","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
501 | if (bUseCorrection) chainCosmic->Draw("100*(dP4*meanPt)/sqrt(2.):meanPt>>hdPtPtNoCorr","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 502 | hdPtPt->FitSlicesY(); |
85e0023b | 503 | hsPtPt->FitSlicesY(); |
504 | hdPtPt_2->Fit("pol1"); | |
505 | {if (bUseCorrection){ | |
506 | hdPtPtNoCor->FitSlicesY(); | |
507 | hdPtPtCor->FitSlicesY(); | |
508 | }} | |
509 | ||
cb6d91a8 | 510 | hdPtPt_2->SetXTitle("p_{t} (GeV)"); |
85e0023b | 511 | hdPtPt_2->SetYTitle("#sigma_{p_{t}}/p_{t} (%)"); |
512 | hdPtPt_2->SetMinimum(0.5); | |
513 | hsPtPt_1->SetMinimum(0.5); | |
514 | hdPtPt_2->SetLineColor(kmicolors[1]); | |
515 | hdPtPt_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 516 | |
85e0023b | 517 | hdPtPt_2->Draw(); |
518 | {if (bUseCorrection){ | |
519 | hdPtPtNoCor_2->Draw("same"); | |
520 | hdPtPtCor_2->Draw("same"); | |
521 | }} | |
522 | gPad->SaveAs("picPerformance/SigmaPt_pt.gif"); | |
523 | gPad->SaveAs("picPerformance/SigmaPt_pt.eps"); | |
524 | gPad->SaveAs("picPerformance/SigmaPt_pt.root"); | |
525 | hsPtPt_1->SetLineColor(kmicolors[2]); | |
526 | hsPtPt_1->SetMarkerStyle(kmimarkers[2]); | |
527 | hsPtPt_1->Draw("same"); | |
528 | gPad->SaveAs("picPerformance/SigmaPt_ptLimit.gif"); | |
529 | gPad->SaveAs("picPerformance/SigmaPt_ptLimit.eps"); | |
530 | gPad->SaveAs("picPerformance/SigmaPt_ptLimit.root"); | |
cb6d91a8 | 531 | |
cb6d91a8 | 532 | } |
533 | ||
534 | ||
535 | ||
85e0023b | 536 | |
537 | ||
538 | void PtResolN(){ | |
cb6d91a8 | 539 | // |
540 | // | |
541 | // | |
85e0023b | 542 | TH2F * hdP4Ncl= new TH2F("hdp4Ncl","hdp4Ncl",5,80,160,100,-0.1,0.1); |
543 | chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):min(Orig0.fTPCncls,Orig1.fTPCncls)>>hdp4Ncl","side>0"+cuthpt+cutRun+cutS,""); | |
544 | hdp4Ncl->FitSlicesY(); | |
545 | hdp4Ncl_2->SetXTitle("Number of clusters"); | |
546 | hdp4Ncl_2->SetYTitle("#sigma 1/p_{t} (1/GeV)"); | |
547 | hdp4Ncl_2->Draw(); | |
548 | gPad->SaveAs("pic/SigmaP4_N.gif"); | |
549 | gPad->SaveAs("pic/SigmaP4_N.eps"); | |
550 | gPad->SaveAs("pic/SigmaP4_N.root"); | |
551 | ||
cb6d91a8 | 552 | // |
85e0023b | 553 | // |
554 | TH2F * hdP4PullNcl = new TH2F("hdP4PullNcl","hdP4PullNcl",5,80,160,100,-6.1,6.1); | |
555 | chainCosmic->Draw("(Tr1.fP[4]+Tr0.fP[4])/sqrt(Tr1.fC[14]+Tr0.fC[14]):min(Orig0.fTPCncls,Orig1.fTPCncls)>>hdP4PullNcl","side>0"+cuthpt+cutRun+cutS,""); | |
556 | hdP4PullNcl->FitSlicesY(); | |
557 | hdP4PullNcl_2->SetXTitle("Number of clusters"); | |
558 | hdP4PullNcl_2->SetYTitle("#sigma 1/p_{t} (Unit)"); | |
559 | hdP4PullNcl_2->Draw(); | |
560 | gPad->SaveAs("pic/PullP4_N.gif"); | |
561 | gPad->SaveAs("pic/PullP4_N.eps"); | |
562 | gPad->SaveAs("pic/PullP4_N.root"); | |
563 | ||
564 | } | |
565 | ||
cb6d91a8 | 566 | |
85e0023b | 567 | |
568 | void dEdxRatio(){ | |
569 | TH2F hratioPt("hratioPt","hratioPt",10,0,10,100,0.6,1.4); | |
570 | chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)/(0.3091*Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)):sqrt(Tr0.P())>>hratioPt","min(Orig0.fTPCncls,Orig1.fTPCncls)>60&&abs(mag)>0.1&&abs(Tr0.fP[3])>0.03","",10000000); | |
571 | // | |
572 | // | |
573 | // | |
574 | hratioPt->FitSlicesY(); | |
575 | TH2F hratioP3("hratioP3","hratioP3",10,0.0,0.6,100,0.6,1.4); | |
576 | chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)/(0.3091*Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)):abs(Tr0.fP[3])>>hratioP3","min(Orig0.fTPCncls,Orig1.fTPCncls)>60&&abs(mag)>0.1&&abs(Tr0.fP[3])>0.03","",10000000); | |
cb6d91a8 | 577 | } |
578 | ||
579 | ||
85e0023b | 580 | |
581 | ||
582 | /////////////////////////////////////////////////////////////////////////// | |
583 | // | |
584 | // | |
585 | // | |
586 | // RESOLUTION as function of 1/pt | |
587 | // | |
588 | // | |
589 | // | |
590 | /////////////////////////////////////////////////////////////////////////// | |
591 | ||
cb6d91a8 | 592 | void P0resol1Pt(){ |
593 | // | |
594 | // P0 - Y -DCA resolution as function of the 1/pt | |
595 | // | |
596 | TH2F * hdP01Pt = new TH2F("hdP01Pt","hdP01Pt",6,0,1.0,100,-1.05,1.05); | |
597 | TH2F * hdP01PtNoCor = new TH2F("hdP01PtNoCor","hdP01PtNoCor",6,0,1.0,100,-1.05,1.05); | |
85e0023b | 598 | chainCosmic->Draw("(dP0-corrP0)/sqrt(2.):sqrt(1/meanPt)>>hdP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
599 | chainCosmic->Draw("(dP0-0)/sqrt(2.):sqrt(1/meanPt)>>hdP01PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 600 | hdP01Pt->FitSlicesY(); |
601 | hdP01PtNoCor->FitSlicesY(); | |
85e0023b | 602 | TH2F * hsP01Pt = new TH2F("hsP01Pt","hsP01Pt",6,0,1.0,100,-0.05,0.5); |
603 | chainCosmic->Draw("(sP0)/sqrt(2.):sqrt(1/meanPt)>>hsP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
604 | TH1 *hsP01Pt_2 = hsP01Pt->ProfileX(); | |
605 | ||
cb6d91a8 | 606 | hdP01Pt_2->SetMinimum(0); |
607 | hdP01Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
608 | hdP01Pt_2->SetYTitle("#sigma_{y} (cm)"); | |
85e0023b | 609 | hdP01Pt_2->SetMarkerStyle(kmimarkers[0]); |
610 | hsP01Pt_2->SetMarkerStyle(kmimarkers[2]); | |
611 | hdP01PtNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 612 | hdP01Pt_2->Draw(); |
85e0023b | 613 | hsP01Pt_2->Draw("same"); |
cb6d91a8 | 614 | hdP01PtNoCor_2->Draw("same"); |
cb6d91a8 | 615 | |
85e0023b | 616 | gPad->SaveAs("picPerformance/SigmaP0_1pt.gif"); |
617 | gPad->SaveAs("picPerformance/SigmaP0_1pt.eps"); | |
618 | gPad->SaveAs("picPerformance/SigmaP0_1pt.root"); | |
cb6d91a8 | 619 | // |
620 | TH2F * hPullP01Pt = new TH2F("hhPullP01Pt","hhPullP01Pt",6,0,1,50,-5.05,5.05); | |
621 | TH2F * hncPullP01Pt = new TH2F("hhncPullP01Pt","hhncPullP01Pt",6,0,1,50,-5.05,5.05); | |
85e0023b | 622 | chainCosmic->Draw("(dP0-corrP0)/sP0:sqrt(1/meanPt)>>hhPullP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
623 | chainCosmic->Draw("(dP0-0)/sP0:sqrt(1/meanPt)>>hhncPullP01Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 624 | hPullP01Pt->FitSlicesY(); |
625 | hncPullP01Pt->FitSlicesY(); | |
85e0023b | 626 | hhPullP01Pt_2->SetMarkerStyle(kmimarkers[0]); |
627 | hhncPullP01Pt_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 628 | hhPullP01Pt_2->SetMinimum(0); |
629 | hhPullP01Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
85e0023b | 630 | hhPullP01Pt_2->SetYTitle("#sigma_{y}(Unit) "); |
cb6d91a8 | 631 | hhPullP01Pt_2->Draw(); |
85e0023b | 632 | //hhncPullP01Pt_2->Draw("same"); |
633 | gPad->SaveAs("picPerformance/PullP0_1pt.gif"); | |
634 | gPad->SaveAs("picPerformance/PullP0_1pt.eps"); | |
635 | gPad->SaveAs("picPerformance/PullP0_1pt.root"); | |
cb6d91a8 | 636 | } |
637 | ||
638 | ||
cb6d91a8 | 639 | |
640 | void P1resol1Pt(){ | |
641 | // | |
85e0023b | 642 | // P1 - Z -DCA resolution as function of the 1/pt |
cb6d91a8 | 643 | // |
644 | TH2F * hdP11Pt = new TH2F("hdP11Pt","hdP11Pt",6,0,1.0,100,-1.05,1.05); | |
645 | TH2F * hdP11PtNoCor = new TH2F("hdP11PtNoCor","hdP11PtNoCor",6,0,1.0,100,-1.05,1.05); | |
85e0023b | 646 | chainCosmic->Draw("(dP1-corrP1)/sqrt(2.):sqrt(1/meanPt)>>hdP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
647 | chainCosmic->Draw("(dP1-0)/sqrt(2.):sqrt(1/meanPt)>>hdP11PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 648 | hdP11Pt->FitSlicesY(); |
649 | hdP11PtNoCor->FitSlicesY(); | |
650 | hdP11Pt_2->SetMinimum(0); | |
651 | hdP11Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
652 | hdP11Pt_2->SetYTitle("#sigma_{z} (cm)"); | |
85e0023b | 653 | hdP11Pt_2->SetMarkerStyle(kmimarkers[0]); |
654 | hdP11PtNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
655 | hdP11Pt_2NoCor->Draw(); | |
656 | // hdP11PtNoCor_2->Draw("same"); | |
657 | gPad->SaveAs("picPerformance/SigmaP1_1pt.gif"); | |
658 | gPad->SaveAs("picPerformance/SigmaP1_1pt.eps"); | |
659 | gPad->SaveAs("picPerformance/SigmaP1_1pt.root"); | |
cb6d91a8 | 660 | |
661 | // | |
662 | TH2F * hPullP11Pt = new TH2F("hhPullP11Pt","hhPullP11Pt",6,0,1,50,-5.05,5.05); | |
663 | TH2F * hncPullP11Pt = new TH2F("hhncPullP11Pt","hhncPullP11Pt",6,0,1,50,-5.05,5.05); | |
85e0023b | 664 | chainCosmic->Draw("(dP1-corrP1)/sP1:sqrt(1/meanPt)>>hhPullP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
665 | chainCosmic->Draw("(dP1-0)/sP1:sqrt(1/meanPt)>>hhncPullP11Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 666 | hPullP11Pt->FitSlicesY(); |
667 | hncPullP11Pt->FitSlicesY(); | |
85e0023b | 668 | hhPullP11Pt_2->SetMarkerStyle(kmimarkers[0]); |
669 | hhncPullP11Pt_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 670 | hhPullP11Pt_2->SetMinimum(0); |
671 | hhPullP11Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
85e0023b | 672 | hhPullP11Pt_2->SetYTitle("#sigma_{z}(Unit) "); |
673 | hhPullP11Pt_2NoCor->Draw(); | |
674 | //hhncPullP11Pt_2->Draw("same"); | |
675 | gPad->SaveAs("picPerformance/PullP1_1pt.gif"); | |
676 | gPad->SaveAs("picPerformance/PullP1_1pt.eps"); | |
677 | gPad->SaveAs("picPerformance/PullP1_1pt.root"); | |
cb6d91a8 | 678 | } |
679 | ||
85e0023b | 680 | void P2resol1Pt(){ |
681 | // | |
682 | // P2 - Z -DCA resolution as function of the 1/pt | |
683 | // | |
684 | TH2F * hdP21Pt = new TH2F("hdP21Pt","hdP21Pt",6,0,1.0,100,-20.05,20.05); | |
685 | TH2F * hdP21PtNoCor = new TH2F("hdP21PtNoCor","hdP21PtNoCor",6,0,1.0,100,-20.05,20.05); | |
686 | chainCosmic->Draw("1000*(dP2-corrP2)/sqrt(2.):sqrt(1/meanPt)>>hdP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
687 | chainCosmic->Draw("1000*(dP2-0)/sqrt(2.):sqrt(1/meanPt)>>hdP21PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
688 | hdP21Pt->FitSlicesY(); | |
689 | hdP21PtNoCor->FitSlicesY(); | |
690 | hdP21Pt_2->SetMinimum(0); | |
691 | hdP21Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
692 | hdP21Pt_2->SetYTitle("#sigma_{#Phi} (mrad)"); | |
693 | hdP21Pt_2->SetMarkerStyle(kmimarkers[0]); | |
694 | hdP21PtNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
695 | hdP21Pt_2NoCor->Draw(); | |
696 | // hdP21PtNoCor_2->Draw("same"); | |
697 | gPad->SaveAs("picPerformance/SigmaP2_1pt.gif"); | |
698 | gPad->SaveAs("picPerformance/SigmaP2_1pt.eps"); | |
699 | gPad->SaveAs("picPerformance/SigmaP2_1pt.root"); | |
700 | ||
701 | // | |
702 | TH2F * hPullP21Pt = new TH2F("hhPullP21Pt","hhPullP21Pt",6,0,1,50,-5.05,5.05); | |
703 | TH2F * hncPullP21Pt = new TH2F("hhncPullP21Pt","hhncPullP21Pt",6,0,1,50,-5.05,5.05); | |
704 | chainCosmic->Draw("(dP2-corrP2)/sP2:sqrt(1/meanPt)>>hhPullP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
705 | chainCosmic->Draw("(dP2-0)/sP2:sqrt(1/meanPt)>>hhncPullP21Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
706 | hPullP21Pt->FitSlicesY(); | |
707 | hncPullP21Pt->FitSlicesY(); | |
708 | hhPullP21Pt_2->SetMarkerStyle(kmimarkers[0]); | |
709 | hhncPullP21Pt_2->SetMarkerStyle(kmimarkers[1]); | |
710 | hhPullP21Pt_2->SetMinimum(0); | |
711 | hhPullP21Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
712 | hhPullP21Pt_2->SetYTitle("#sigma_{#Phi}(Unit) "); | |
713 | hhPullP21Pt_2NoCor->Draw(); | |
714 | //hhncPullP21Pt_2->Draw("same"); | |
715 | gPad->SaveAs("picPerformance/PullP2_1pt.gif"); | |
716 | gPad->SaveAs("picPerformance/PullP2_1pt.eps"); | |
717 | gPad->SaveAs("picPerformance/PullP2_1pt.root"); | |
718 | } | |
719 | ||
720 | void P3resol1Pt(){ | |
721 | // | |
722 | // P3 - Z -DCA resolution as function of the 1/pt | |
723 | // | |
724 | TH2F * hdP31Pt = new TH2F("hdP31Pt","hdP31Pt",6,0,1.0,100,-5.05,5.05); | |
725 | TH2F * hdP31PtNoCor = new TH2F("hdP31PtNoCor","hdP31PtNoCor",6,0,1.0,100,-5.05,5.05); | |
726 | chainCosmic->Draw("1000*(dP3-corrP3)/sqrt(2.):sqrt(1/meanPt)>>hdP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
727 | chainCosmic->Draw("1000*(dP3-0)/sqrt(2.):sqrt(1/meanPt)>>hdP31PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
728 | hdP31Pt->FitSlicesY(); | |
729 | hdP31PtNoCor->FitSlicesY(); | |
730 | hdP31Pt_2->SetMinimum(0); | |
731 | hdP31Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
732 | hdP31Pt_2->SetYTitle("#sigma_{#Theta} (mrad)"); | |
733 | hdP31Pt_2->SetMarkerStyle(kmimarkers[0]); | |
734 | hdP31PtNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
735 | hdP31Pt_2NoCor->Draw(); | |
736 | // hdP31PtNoCor_2->Draw("same"); | |
737 | gPad->SaveAs("picPerformance/SigmaP3_1pt.gif"); | |
738 | gPad->SaveAs("picPerformance/SigmaP3_1pt.eps"); | |
739 | gPad->SaveAs("picPerformance/SigmaP3_1pt.root"); | |
740 | ||
741 | // | |
742 | TH2F * hPullP31Pt = new TH2F("hhPullP31Pt","hhPullP31Pt",6,0,1,50,-5.05,5.05); | |
743 | TH2F * hncPullP31Pt = new TH2F("hhncPullP31Pt","hhncPullP31Pt",6,0,1,50,-5.05,5.05); | |
744 | chainCosmic->Draw("(dP3-corrP3)/sP3:sqrt(1/meanPt)>>hhPullP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
745 | chainCosmic->Draw("(dP3-0)/sP3:sqrt(1/meanPt)>>hhncPullP31Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
746 | hPullP31Pt->FitSlicesY(); | |
747 | hncPullP31Pt->FitSlicesY(); | |
748 | hhPullP31Pt_2->SetMarkerStyle(kmimarkers[0]); | |
749 | hhncPullP31Pt_2->SetMarkerStyle(kmimarkers[1]); | |
750 | hhPullP31Pt_2->SetMinimum(0); | |
751 | hhPullP31Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
752 | hhPullP31Pt_2->SetYTitle("#sigma_{#Theta}(Unit) "); | |
753 | hhPullP31Pt_2NoCor->Draw(); | |
754 | //hhncPullP31Pt_2->Draw("same"); | |
755 | gPad->SaveAs("picPerformance/PullP3_1pt.gif"); | |
756 | gPad->SaveAs("picPerformance/PullP3_1pt.eps"); | |
757 | gPad->SaveAs("picPerformance/PullP3_1pt.root"); | |
758 | } | |
cb6d91a8 | 759 | |
760 | ||
761 | ||
cb6d91a8 | 762 | |
cb6d91a8 | 763 | |
764 | ||
765 | void P4resol1Pt(){ | |
766 | // | |
767 | // P4 - 1/Pt resolution as function of the 1/pt | |
768 | // | |
769 | TH2F * hdP41Pt = new TH2F("hdP41Pt","hdP41Pt",6,0,1.0,100,-0.05,0.05); | |
770 | TH2F * hdP41PtNoCor = new TH2F("hdP41PtNoCor","hdP41PtNoCor",6,0,1.0,100,-0.05,0.05); | |
85e0023b | 771 | chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):sqrt(1/meanPt)>>hdP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
772 | chainCosmic->Draw("(dP4-0)/sqrt(2.):sqrt(1/meanPt)>>hdP41PtNoCor","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 773 | hdP41Pt->FitSlicesY(); |
774 | hdP41PtNoCor->FitSlicesY(); | |
775 | hdP41Pt_2->SetMinimum(0); | |
776 | hdP41Pt_2->SetXTitle("#sqrt{1/p_{t} (1/GeV)}"); | |
777 | hdP41Pt_2->SetYTitle("#sigma_{1/pt} (1/GeV)"); | |
85e0023b | 778 | hdP41Pt_2->SetMarkerStyle(kmimarkers[0]); |
779 | hdP41PtNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
780 | hdP41Pt_2NoCor->Draw(); | |
781 | //hdP41PtNoCor_2->Draw("same"); | |
782 | gPad->SaveAs("picPerformance/SigmaP4_1pt.gif"); | |
783 | gPad->SaveAs("picPerformance/SigmaP4_1pt.eps"); | |
784 | gPad->SaveAs("picPerformance/SigmaP4_1pt.root"); | |
cb6d91a8 | 785 | |
786 | // | |
787 | TH2F * hPullP41Pt = new TH2F("hhPullP41Pt","hhPullP41Pt",6,0,1,50,-5.05,5.05); | |
788 | TH2F * hncPullP41Pt = new TH2F("hhncPullP41Pt","hhncPullP41Pt",6,0,1,50,-5.05,5.05); | |
85e0023b | 789 | chainCosmic->Draw("(dP4-corrP4)/sP4:sqrt(1/meanPt)>>hhPullP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); |
790 | chainCosmic->Draw("(dP4-0)/sP4:sqrt(1/meanPt)>>hhncPullP41Pt","side>0"+cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 791 | hPullP41Pt->FitSlicesY(); |
792 | hncPullP41Pt->FitSlicesY(); | |
85e0023b | 793 | hhPullP41Pt_2->SetMarkerStyle(kmimarkers[0]); |
794 | hhncPullP41Pt_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 795 | hhPullP41Pt_2->SetMinimum(0); |
796 | hhPullP41Pt_2->SetXTitle("#sqrt{1/p_{t}} (1/GeV)}"); | |
797 | hhPullP41Pt_2->SetYTitle("#sigma_{1/pt} (Unit) "); | |
85e0023b | 798 | hhPullP41Pt_2NoCor->Draw(); |
799 | //hhncPullP41Pt_2->Draw("same"); | |
800 | gPad->SaveAs("picPerformance/PullP4_1pt.gif"); | |
801 | gPad->SaveAs("picPerformance/PullP4_1pt.eps"); | |
802 | gPad->SaveAs("picPerformance/PullP4_1pt.root"); | |
cb6d91a8 | 803 | } |
804 | ||
85e0023b | 805 | ////////////////////////////////////////////////////// |
806 | // | |
807 | // | |
808 | // RESOLUTION as function of Z | |
809 | // | |
810 | // | |
811 | ////////////////////////////////////////////////////// | |
cb6d91a8 | 812 | |
85e0023b | 813 | void P0resolZ(){ |
814 | // | |
815 | // | |
816 | // | |
817 | TH2F * hdP0Z = new TH2F("hdP0Z","hdP0Z",10,-250,250,100,-3.05,3.05); | |
818 | TH2F * hdP0ZNoCor = new TH2F("hdP0ZNoCor","hdP0ZNoCor",10,-250,250,100,-3.05,3.05); | |
819 | chainCosmic->Draw("(dP0-corrP0)/sqrt(2.):x02>>hdP0Z",cutAll+cutRun+cutS+cutN120,""); | |
820 | chainCosmic->Draw("(dP0-0)/sqrt(2.):x02>>hdP0ZNoCor",cutAll+cutRun+cutS+cutN120,""); | |
821 | hdP0Z->FitSlicesY(); | |
822 | hdP0ZNoCor->FitSlicesY(); | |
823 | // | |
824 | TH2F * hsP0Z = new TH2F("hsP0Z","hsP0Z",10,-250,250,200,0.0,2); | |
825 | chainCosmic->Draw("(sP0)/sqrt(2.):x02>>hsP0Z",cutAll+cutRun+cutS+cutN120,""); | |
826 | TH1 * hsP0Z_2 = hsP0Z->ProfileX(); | |
cb6d91a8 | 827 | |
85e0023b | 828 | // |
829 | hdP0Z_2->SetMinimum(0); | |
830 | hdP0Z_2->SetXTitle("Z position (cm)"); | |
831 | hdP0Z_2->SetYTitle("#sigma_{y} (cm)"); | |
832 | hdP0Z_2->SetMarkerStyle(kmimarkers[0]); | |
833 | hdP0ZNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
834 | hdP0Z_2->Draw(); | |
835 | hsP0Z_2->Draw("same"); | |
836 | hdP0ZNoCor_2->Draw("same"); | |
cb6d91a8 | 837 | |
85e0023b | 838 | gPad->SaveAs("picPerformance/SigmaP0_z.gif"); |
839 | gPad->SaveAs("picPerformance/SigmaP0_z.eps"); | |
840 | gPad->SaveAs("picPerformance/SigmaP0_z.root"); | |
841 | // | |
842 | TH2F * hdPP0Z = new TH2F("hdPP0Z","hdPP0Z",8,-200,200,50,-5.05,5.05); | |
843 | TH2F * hncdPP0Z = new TH2F("hncdPP0Z","hncdPP0Z",8,-200,200,50,-5.05,5.05); | |
844 | chainCosmic->Draw("(dP0-corrP0)/sP0:x02>>hdPP0Z",cutAll+cutRun+cutS+cutN120,""); | |
845 | chainCosmic->Draw("(dP0-0)/sP0:x02>>hncdPP0Z",cutAll+cutRun+cutS+cutN120,""); | |
846 | hdPP0Z->FitSlicesY(); | |
847 | hncdPP0Z->FitSlicesY(); | |
848 | hdPP0Z_2->SetMarkerStyle(kmimarkers[0]); | |
849 | hncdPP0Z_2->SetMarkerStyle(kmimarkers[1]); | |
850 | hdPP0Z_2->SetMinimum(0); | |
851 | hdPP0Z_2->SetXTitle("Z position (cm)"); | |
852 | hdPP0Z_2->SetYTitle("#sigma_{y}(Unit) "); | |
853 | hdPP0Z_2->Draw(); | |
854 | hncdPP0Z_2->Draw("same"); | |
855 | gPad->SaveAs("picPerformance/PullP0_z.gif"); | |
856 | gPad->SaveAs("picPerformance/PullP0_z.eps"); | |
857 | gPad->SaveAs("picPerformance/PullP0_z.root"); | |
858 | } | |
cb6d91a8 | 859 | |
85e0023b | 860 | void P1resolZ(){ |
861 | // | |
862 | // | |
863 | // | |
864 | TH2F *hdP1Z = new TH2F("hdP1Z","hdP1Z",10,-250,250,100,-1.05,1.05); | |
865 | TH2F *hdP1ZNoCor=new TH2F("hdP1ZNoCor","hdP1ZNoCor",10,-250,250,100,-1.05,1.05); | |
866 | chainCosmic->Draw("(dP1-corrP1)/sqrt(2.):x02>>hdP1Z",cutAll+cutRun+cutS+cutN120,""); | |
867 | chainCosmic->Draw("(dP1-0)/sqrt(2.):x02>>hdP1ZNoCor",cutAll+cutRun+cutS+cutN120,""); | |
868 | TH2F * hsP1Z = new TH2F("hsP1Z","hsP1Z",10,-250,250,200,0.0,1); | |
869 | chainCosmic->Draw("(sP1)/sqrt(2.):x02>>hsP1Z",cutAll+cutRun+cutS+cutN120,""); | |
870 | TH1 * hsP1Z_2 = hsP1Z->ProfileX(); | |
cb6d91a8 | 871 | |
85e0023b | 872 | hdP1Z->FitSlicesY(); |
873 | hdP1ZNoCor->FitSlicesY(); | |
874 | hdP1Z_2->SetMinimum(0); | |
875 | hdP1Z_2->SetXTitle("Z position (cm)"); | |
876 | hdP1Z_2->SetYTitle("#sigma_{z} (cm)"); | |
877 | hdP1Z_2->SetMarkerStyle(kmimarkers[0]); | |
878 | hsP1Z_2->SetMarkerStyle(kmimarkers[2]); | |
879 | hdP1ZNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
cb6d91a8 | 880 | |
85e0023b | 881 | hdP1ZNoCor_2->SetMinimum(0); |
882 | hdP1Z_2->Draw(""); | |
883 | hdP1ZNoCor_2->Draw("same"); | |
884 | hsP1Z_2->Draw("same"); | |
cb6d91a8 | 885 | |
85e0023b | 886 | gPad->SaveAs("picPerformance/SigmaP1_z.gif"); |
887 | gPad->SaveAs("picPerformance/SigmaP1_z.eps"); | |
888 | gPad->SaveAs("picPerformance/SigmaP1_z.root"); | |
889 | // | |
890 | TH2F * hdPP1Z = new TH2F("hdPP1Z","hdPP1Z",8,-200,200,50,-5.05,5.05); | |
891 | TH2F * hncdPP1Z = new TH2F("hncdPP1Z","hncdPP1Z",8,-200,200,50,-5.05,5.05); | |
892 | chainCosmic->Draw("(dP1-corrP1)/sP1:x02>>hdPP1Z",cutAll+cutRun+cutS+cutN120,""); | |
893 | chainCosmic->Draw("(dP1-0)/sP1:x02>>hncdPP1Z",cutAll+cutRun+cutS+cutN120,""); | |
894 | hdPP1Z->FitSlicesY(); | |
895 | hncdPP1Z->FitSlicesY(); | |
896 | hdPP1Z_2->SetMarkerStyle(kmimarkers[0]); | |
897 | hncdPP1Z_2->SetMarkerStyle(kmimarkers[1]); | |
898 | hdPP1Z_2->SetMinimum(0); | |
899 | hncdPP1Z_2->SetMinimum(0); | |
900 | hncdPP1Z_2->SetXTitle("Z position (cm)"); | |
901 | hncdPP1Z_2->SetYTitle("#sigma_{z} (Unit) "); | |
902 | hncdPP1Z_2->Draw(""); | |
903 | hdPP1Z_2->Draw(); | |
904 | gPad->SaveAs("picPerformance/PullP1_z.gif"); | |
905 | gPad->SaveAs("picPerformance/PullP1_z.eps"); | |
906 | gPad->SaveAs("picPerformance/PullP1_z.root"); | |
907 | } | |
cb6d91a8 | 908 | |
909 | ||
85e0023b | 910 | void P2resolZ(){ |
cb6d91a8 | 911 | // |
912 | // | |
913 | // | |
85e0023b | 914 | TH2F * hdP2Z = new TH2F("hdP2Z","hdP2Z",10,-250,250,50,-20.0,20.0); |
915 | chainCosmic->Draw("1000*(dP2-corrP2)/sqrt(2.):x02>>hdP2Z",cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 916 | hdP2Z->FitSlicesY(); |
917 | hdP2Z_2->SetXTitle("Z position (cm)"); | |
85e0023b | 918 | hdP2Z_2->SetYTitle("#sigma_{#phi} (mrad)"); |
cb6d91a8 | 919 | hdP2Z_2->Draw(); |
85e0023b | 920 | gPad->SaveAs("picPerformance/SigmaP2_z.gif"); |
921 | gPad->SaveAs("picPerformance/SigmaP2_z.eps"); | |
922 | gPad->SaveAs("picPerformance/SigmaP2_z.root"); | |
923 | ||
cb6d91a8 | 924 | // |
925 | TH2F * hdPP2Z = new TH2F("hdPP2Z","hdPP2Z",8,-200,200,50,-5.05,5.05); | |
85e0023b | 926 | chainCosmic->Draw("(dP2-corrP2)/sP2:x02>>hdPP2Z",cutAll+cutRun+cutS+cutN120,""); |
cb6d91a8 | 927 | hdPP2Z->FitSlicesY(); |
928 | hdPP2Z_2->SetXTitle("Z position (cm)"); | |
85e0023b | 929 | hdPP2Z_2->SetYTitle("#sigma_{#Phi} (Unit) "); |
cb6d91a8 | 930 | hdPP2Z_2->Draw(); |
85e0023b | 931 | gPad->SaveAs("picPerformance/PullP2_z.gif"); |
932 | gPad->SaveAs("picPerformance/PullP2_z.eps"); | |
933 | gPad->SaveAs("picPerformance/PullP2_z.root"); | |
934 | ||
cb6d91a8 | 935 | } |
936 | ||
85e0023b | 937 | void P3resolZ(){ |
cb6d91a8 | 938 | // |
939 | // | |
940 | // | |
85e0023b | 941 | TH2F * hdP3Z= new TH2F("hdP3Z","hdP3Z",10,-250,250,50,-5,5); |
942 | chainCosmic->Draw("1000*(dP3-corrP3)/sqrt(2.):x02>>hdP3Z",cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 943 | hdP3Z->FitSlicesY(); |
85e0023b | 944 | hdP3Z_2->SetMinimum(0); |
cb6d91a8 | 945 | hdP3Z_2->SetXTitle("Z position (cm)"); |
85e0023b | 946 | hdP3Z_2->SetYTitle("#sigma_{#Theta} (mrad)"); |
cb6d91a8 | 947 | hdP3Z_2->Draw(); |
85e0023b | 948 | gPad->SaveAs("picPerformance/SigmaP3_z.gif"); |
949 | gPad->SaveAs("picPerformance/SigmaP3_z.eps"); | |
950 | gPad->SaveAs("picPerformance/SigmaP3_z.root"); | |
cb6d91a8 | 951 | // |
85e0023b | 952 | TH2F * hdPP3Z= new TH2F("hdPP3Z","hdPP3Z",8,-200,200,50,-5.05,5.05); |
953 | chainCosmic->Draw("(dP3-corrP3)/sP3:x02>>hdPP3Z",cutAll+cutRun+cutS+cutN120,""); | |
cb6d91a8 | 954 | hdPP3Z->FitSlicesY(); |
85e0023b | 955 | hdPP3Z->SetMinimum(0); |
cb6d91a8 | 956 | hdPP3Z_2->SetXTitle("Z position (cm)"); |
85e0023b | 957 | hdPP3Z_2->SetYTitle("#sigma_{#Theta} (Unit) "); |
cb6d91a8 | 958 | hdPP3Z_2->Draw(); |
85e0023b | 959 | // |
960 | gPad->SaveAs("picPerformance/PullP3_z.gif"); | |
961 | gPad->SaveAs("picPerformance/PullP3_z.eps"); | |
962 | gPad->SaveAs("picPerformance/PullP3_z.root"); | |
cb6d91a8 | 963 | } |
964 | ||
965 | ||
966 | ||
85e0023b | 967 | void P4resolZ(){ |
cb6d91a8 | 968 | // |
969 | // | |
cb6d91a8 | 970 | // |
85e0023b | 971 | TH2F *hdP4Z = new TH2F("hdP4Z","hdP4Z",10,-250,250,100,-0.05,0.05); |
972 | TH2F *hdP4ZNoCor=new TH2F("hdP4ZNoCor","hdP4ZNoCor",10,-250,250,100,-0.05,0.05); | |
973 | chainCosmic->Draw("(dP4-corrP4)/sqrt(2.):x02>>hdP4Z",cutAll+cutRun+cutS+cutN120,""); | |
974 | chainCosmic->Draw("(dP4-0)/sqrt(2.):x02>>hdP4ZNoCor",cutAll+cutRun+cutS+cutN120,""); | |
975 | hdP4Z->FitSlicesY(); | |
976 | hdP4ZNoCor->FitSlicesY(); | |
977 | hdP4Z_2->SetMinimum(0); | |
978 | hdP4Z_2->SetXTitle("Z position (cm)"); | |
979 | hdP4Z_2->SetYTitle("#sigma_{1/pt} (1/GeV)"); | |
980 | hdP4Z_2->SetMarkerStyle(kmimarkers[0]); | |
981 | hdP4ZNoCor_2->SetMarkerStyle(kmimarkers[1]); | |
982 | hdP4Z_2->Draw(); | |
983 | //hdP4ZNoCor_2->Draw("same"); | |
984 | gPad->SaveAs("picPerformance/SigmaP4_z.gif"); | |
985 | gPad->SaveAs("picPerformance/SigmaP4_z.eps"); | |
986 | gPad->SaveAs("picPerformance/SigmaP4_z.root"); | |
cb6d91a8 | 987 | // |
85e0023b | 988 | TH2F * hdPP4Z = new TH2F("hdPP4Z","hdPP4Z",8,-200,200,50,-5.05,5.05); |
989 | TH2F * hncdPP4Z = new TH2F("hncdPP4Z","hncdPP4Z",8,-200,200,50,-5.05,5.05); | |
990 | chainCosmic->Draw("(dP4-corrP4)/sP4:x02>>hdPP4Z",cutAll+cutRun+cutS+cutN120,""); | |
991 | chainCosmic->Draw("(dP4-0)/sP4:x02>>hncdPP4Z",cutAll+cutRun+cutS+cutN120,""); | |
992 | hdPP4Z->FitSlicesY(); | |
993 | hncdPP4Z->FitSlicesY(); | |
994 | hdPP4Z_2->SetMarkerStyle(kmimarkers[0]); | |
995 | hncdPP4Z_2->SetMarkerStyle(kmimarkers[1]); | |
996 | hdPP4Z_2->SetMinimum(0); | |
997 | hdPP4Z_2->SetXTitle("Z position (cm)"); | |
998 | hdPP4Z_2->SetYTitle("#sigma_{1/pt} (Unit) "); | |
999 | hdPP4Z_2->Draw(); | |
1000 | //hncdPP4Z_2->Draw("same"); | |
1001 | gPad->SaveAs("picPerformance/PullP4_z.gif"); | |
1002 | gPad->SaveAs("picPerformance/PullP4_z.eps"); | |
1003 | gPad->SaveAs("picPerformance/PullP4_z.root"); | |
cb6d91a8 | 1004 | |
1005 | } | |
1006 | ||
85e0023b | 1007 | */ |