1 int drawPerformanceTPCQAMatch(const char* inFile = "perf.root") {
3 // Draw control histograms
4 // and generate output pictures
7 gSystem->Load("libSTAT");
8 gSystem->Load("libANALYSIS");
9 gSystem->Load("libANALYSISalice");
10 gSystem->Load("libANALYSIScalib");
11 gSystem->Load("libCORRFW");
12 gSystem->Load("libTPCcalib");
13 gSystem->Load("libTRDcalib");
14 gSystem->Load("libT0calib");
15 gSystem->Load("libTOFcalib");
16 gSystem->Load("libANALYSISalice.so");
17 gSystem->Load("libANALYSIScalib.so");
18 gSystem->Load("libTENDER.so");
19 gSystem->Load("libPWGPP.so");
22 gROOT->SetStyle("Plain");
23 gStyle->SetPalette(1);
24 gStyle->SetOptStat(0);
25 gStyle->SetTitleSize(0.025);
26 TH1::AddDirectory(kFALSE);
31 Float_t mineta = -0.8;
32 Float_t maxeta = 0.799;
33 Float_t minNclust = 70.0;
38 TFile *file = TFile::Open(inFile);
41 cout<<"QA file opened"<<endl;
44 if(gROOT->FindObject("TPC_PerformanceQA")) TPC_PerformanceQA->cd();
45 cout<<"TPC_PerformanceQA opened"<<endl;
46 TList *TPC = (TList*)gROOT->FindObject("TPCQA");
47 if(TPC==NULL) TPC = (TList*)gROOT->FindObject("TPCQA_v0_c0");
48 if(TPC==NULL) TPC = (TList*)gROOT->FindObject("TPCQA_v0_c30");
49 if(TPC==NULL) TPC = (TList*)gROOT->FindObject("TPCQA_v0_c70");
50 if(TPC==NULL) TPC = (TList*)gROOT->FindObject("TPC");
51 if(TPC==NULL) return(0);
52 cout<<"TPCQA list found"<<endl;
53 // get TPC performance object
54 AliPerformanceTPC *obj = (AliPerformanceTPC*)TPC->FindObject("AliPerformanceTPC");
55 if(obj==NULL) return(0);
56 cout<<"what about here after obj "<<endl;
57 // get folder with histograms
58 TFolder *fold = obj->GetAnalysisFolder();
60 cout<<"what about here after folder "<<endl;
64 // if(gROOT->FindObject("HLT_PerformanceQA")) HLT_PerformanceQA->cd();
65 // TList *HLT = (TList*)gROOT->FindObject("HLTQA");
80 h1D = (TH1*)fold->FindObject("h_tpc_event_1");
81 Double_t NEvents = h1D->GetEntries();
83 cout<<"number of events "<<NEvents<<endl;
85 TCanvas *can1 = new TCanvas("can1","TPC event information",1200,800);
89 fold->FindObject("h_tpc_event_6")->Draw("histe");
93 h1D = (TH1*)fold->FindObject("h_tpc_event_recvertex_0");
94 h1D->GetXaxis()->SetRangeUser(-1.,1.);
99 h1D = (TH1*)fold->FindObject("h_tpc_event_recvertex_1");
100 h1D->GetXaxis()->SetRangeUser(-1.,1.);
105 fold->FindObject("h_tpc_event_recvertex_2")->Draw("histe");
109 TH1 *hp = fold->FindObject("h_tpc_event_recvertex_3");
110 hp->SetTitle("Track.Multi., ncl>70, |dcar|<3 cm, |dcaz|<3 cm");
115 hp = (TH1*)fold->FindObject("h_tpc_event_recvertex_4");
116 hp->SetTitle("Pos/neg(red) Track.Multi. ncl>70, |dcar|<3 cm, |dcaz|<3 cm");
118 TH1* he = fold->FindObject("h_tpc_event_recvertex_5");
119 he->SetLineColor(kRed);
120 he->Draw("histesame");
122 can1->SaveAs("TPC_event_info.png");
125 TCanvas *can2 = new TCanvas("can2","#eta , #phi and p_{t}",1200,800);
130 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_0_5_6");
131 h3D->GetXaxis()->SetRangeUser(minNclust,160);
132 h3D->Project3D("yz")->Draw("colz");
133 h3D->Project3D("yz")->SetTitle("#eta vs #phi, positive tracks");
137 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_0_5_6");
138 h3D->GetXaxis()->SetRangeUser(minNclust,160);
139 h3D->Project3D("yz")->Draw("colz");
140 h3D->Project3D("yz")->SetTitle("#eta vs #phi, negative tracks");
144 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_0_5_6");
145 h3D->GetXaxis()->SetRangeUser(minNclust,160);
146 h1D = h3D->Project3D("y");
147 h1D->SetTitle("#eta of pos/neg(red) charged tracks, ncl>70");
150 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_0_5_6");
151 h3D->GetXaxis()->SetRangeUser(minNclust,160);
152 h1D = h3D->Project3D("y");
153 h1D->SetLineColor(kRed);
154 h1D->Draw("histesame");
158 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_0_5_7");
159 h3D->GetXaxis()->SetRangeUser(minNclust,160);
160 h3D->GetYaxis()->SetRangeUser(mineta,maxeta);
161 h1D = h3D->Project3D("z");
162 h1D->Scale(1,"width");
163 h1D->SetTitle("p_{T} of pos/neg(red) charged tracks, ncl>70, |#eta|<0.8");
166 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_0_5_7");
167 h3D->GetXaxis()->SetRangeUser(minNclust,160);
168 h3D->GetYaxis()->SetRangeUser(mineta,maxeta);
169 h1D = h3D->Project3D("z");
170 h1D->Scale(1,"width");
171 h1D->SetLineColor(kRed);
172 h1D->Draw("histesame");
175 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_5_6_7");
176 h3D->GetZaxis()->SetRangeUser(2,20);
177 h3D->GetXaxis()->SetRangeUser(mineta,-0.00001);
178 TH1 *h1D = h3D->Project3D("y");
179 h1D->SetTitle("#phi of pos/neg(red) charged tracks, pt>1GeV/c, -0.8<#eta<0.0");
182 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_5_6_7");
183 h3D->GetZaxis()->SetRangeUser(2,20);
184 h3D->GetXaxis()->SetRangeUser(mineta,-0.00001);
185 h1D = h3D->Project3D("y");
186 h1D->SetLineColor(kRed);
187 h1D->Draw("histesame");
190 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_5_6_7");
191 TH3 *h3D1 = h3D->Clone("h3D1");
192 h3D1->GetXaxis()->SetRangeUser(0.0,maxeta);
193 h3D1->GetZaxis()->SetRangeUser(2,20);
194 h1D = h3D1->Project3D("y");
195 h1D->SetTitle("#phi of pos/neg(red) charged tracks, pt>1GeV/c, 0.0<#eta<0.8");
198 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_5_6_7");
199 TH3 *h3D2 = h3D->Clone("h3D2");
200 h3D2->GetXaxis()->SetRangeUser(0.0,maxeta);
201 h3D2->GetZaxis()->SetRangeUser(2,20);
202 h1D = h3D2->Project3D("y");
203 h1D->SetLineColor(kRed);
204 h1D->Draw("histesame");
206 can2->SaveAs("eta_phi_pt.png");
208 TCanvas *can3 = new TCanvas("can3","Cluster Occupancy",700,700);
212 TH3 *h3D_1 = (TH3*)fold->FindObject("h_tpc_clust_0_1_2");
213 TH3 *h3D_2 = (TH3*) h3D_1->Clone("h3D_2");
214 h3D_1->GetZaxis()->SetRangeUser(0,0.99);
215 h3D_1->Project3D("xy")->Draw("colz");
216 h3D_1->Project3D("xy")->SetTitle("Cluster Occupancy A Side");
218 h3D_1->Project3D("xy")->Scale(1.0/NEvents);
222 h3D_2->GetZaxis()->SetRangeUser(1,2) ;
223 h3D_2->Project3D("xy")->Draw("colz");
224 h3D_2->Project3D("xy")->SetTitle("Cluster Occupancy C Side");
226 h3D_2->Project3D("xy")->Scale(1.0/NEvents);
228 can3->SaveAs("cluster_occupancy.png");
230 TObjArray *arr1 = new TObjArray();
231 TObjArray *arr2 = new TObjArray();
232 TObjArray *arr3 = new TObjArray();
233 TObjArray *arr4 = new TObjArray();
234 TObjArray *arr5 = new TObjArray();
235 TObjArray *arr6 = new TObjArray();
237 TCanvas *can4 = new TCanvas("can4","Clusters in Detail",1200,800);
241 h3D = (TH3*)fold->FindObject("h_tpc_track_all_recvertex_0_5_7");
242 h2D = (TH2*)h3D->Project3D("xy");
243 h2D->SetTitle("nCluster vs #eta, |dcar|<3 cm, |dcaz|<3 cm");
244 h2D->FitSlicesY(0,0,-1,0,"QNR",arr1);
246 arr1->At(1)->Draw("same");
249 h3D = (TH3*)fold->FindObject("h_tpc_track_all_recvertex_2_5_7");
250 h2D = (TH2*)h3D->Project3D("xy");
251 h2D->SetTitle("Findable clusters, |dcar|<3 cm, |dcaz|<3 cm");
252 h2D->FitSlicesY(0,0,-1,0,"QNR",arr2);
254 arr2->At(1)->Draw("same");
257 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_0_5_6");
258 TH3 *h3D11 = h3D->Clone("h3D11");
259 h3D11->Add(((TH3*)fold->FindObject("h_tpc_track_neg_recvertex_0_5_6")),1);
260 h3D11->GetYaxis()->SetRangeUser(mineta,-0.00001);
261 h2D = (TH2*)h3D11->Project3D("xz");
262 h2D->SetTitle("nCluster vs #phi, -0.8<#eta<0.0, |dcar|<3 cm, |dcaz|<3 cm");
263 h2D->FitSlicesY(0,0,-1,0,"QNR",arr3);
265 arr3->At(1)->Draw("same");
268 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_0_5_6");
269 TH3 *h3D22 = h3D->Clone("h3D22");
270 h3D22->Add(((TH3*)fold->FindObject("h_tpc_track_neg_recvertex_0_5_6")),1);
271 h3D22->GetYaxis()->SetRangeUser(0.0,maxeta);
272 h2D = (TH2*)h3D22->Project3D("xz");
273 h2D->SetTitle("nCluster vs #phi, 0.0<#eta<0.8, |dcar|<3 cm, |dcaz|<3 cm");
274 h2D->FitSlicesY(0,0,-1,0,"QNR",arr4);
276 arr4->At(1)->Draw("same");
279 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_2_5_6");
280 TH3 *h3D33 = h3D->Clone("h3D33");
281 h3D33->Add(((TH3*)fold->FindObject("h_tpc_track_neg_recvertex_2_5_6")),1);
282 h3D33->GetYaxis()->SetRangeUser(mineta,-0.00001);
283 h2D = (TH2*)h3D33->Project3D("xz");
284 h2D->SetTitle("Findable clusters vs #phi, -0.8<#eta<0.0, |dcar|<3 cm, |dcaz|<3 cm");
285 h2D->FitSlicesY(0,0,-1,0,"QNR",arr5);
287 arr5->At(1)->Draw("same");
290 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_2_5_6");
291 TH3 *h3D44 = h3D->Clone("h3D44");
292 h3D44->Add(((TH3*)fold->FindObject("h_tpc_track_neg_recvertex_2_5_6")),1);
293 h3D44->GetYaxis()->SetRangeUser(0.0,maxeta);
294 h2D = (TH2*)h3D44->Project3D("xz");
295 h2D->SetTitle("Findalbe clusters vs #phi, 0.0<#eta<0.8, |dcar|<3 cm, |dcaz|<3 cm");
296 h2D->FitSlicesY(0,0,-1,0,"QNR",arr6);
298 arr6->At(1)->Draw("same");
300 can4->SaveAs("cluster_in_detail.png");
303 TObjArray *arr7 = new TObjArray();
304 TObjArray *arr8 = new TObjArray();
306 TCanvas *can5 = new TCanvas("can5","DCA In Detail",1200,800);
310 h3D = (TH3*)fold->FindObject("h_tpc_track_all_recvertex_3_5_7");
311 h3D->GetYaxis()->SetRangeUser(-1,1);
312 h2D = (TH2*)h3D->Project3D("xy");
313 h2D->FitSlicesY(0,0,-1,0,"QNR",arr7);
314 h2D->SetTitle("DCAR vs #eta");
316 arr7->At(1)->Draw("same");
319 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_3_5_7");
320 h3D->GetYaxis()->SetRangeUser(-1,1);
321 h3D->Project3D("xy")->Draw("colz");
322 h3D->Project3D("xy")->SetTitle("DCAR vs #eta of pos. charged tracks");
325 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_3_5_7");
326 h3D->GetYaxis()->SetRangeUser(-1,1);
327 h3D->Project3D("xy")->Draw("colz");
328 h3D->Project3D("xy")->SetTitle("DCAR vs #eta of neg. charged tracks");
331 h3D = (TH3*)fold->FindObject("h_tpc_track_all_recvertex_4_5_7");
332 h3D->GetYaxis()->SetRangeUser(-1,1);
333 h2D = (TH2*)h3D->Project3D("xy");
334 h2D->FitSlicesY(0,0,-1,0,"QNR",arr8);
335 h2D->SetTitle("DCAZ vs #eta");
337 arr8->At(1)->Draw("same");
340 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_4_5_7");
341 h3D->GetYaxis()->SetRangeUser(-1,1);
342 h3D->Project3D("xy")->Draw("colz");
343 h3D->Project3D("xy")->SetTitle("DCAZ vs #eta of pos. charged tracks");
346 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_4_5_7");
347 h3D->GetYaxis()->SetRangeUser(-1,1);
348 h3D->Project3D("xy")->Draw("colz");
349 h3D->Project3D("xy")->SetTitle("DCAZ vs #eta of neg. charged tracks");
351 can5->SaveAs("dca_in_detail.png");
353 TCanvas *can51 = new TCanvas("can51","DCAr versus pT",700,800);
356 TObjArray *arr9 = new TObjArray();
357 TObjArray *arr10 = new TObjArray();
358 TObjArray *arr11 = new TObjArray();
359 TObjArray *arr12 = new TObjArray();
362 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_3_5_7");
363 TH3 *h3Dp = h3D->Clone("h3Dp");
364 h3D->SetAxisRange(0.25,ptMax,"Z");
365 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
366 h2D = (TH2*)h3D->Project3D("xz");
368 h2D->SetTitle("DCAR vs pT of pos. charged tracks(A Side)");
369 h2D->FitSlicesY(0,0,-1,0,"QNR",arr9);
370 TH1 *width1 = (TH1*)arr9->At(2);
371 width1->Draw("same");
372 width1->SetLineColor(2);
373 arr9->At(1)->Draw("same");
376 //h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_3_5_7");
377 h3Dp->SetAxisRange(0.25,ptMax,"Z");
378 h3Dp->GetYaxis()->SetRangeUser(mineta,-0.00001);
379 h2D = (TH2*)h3Dp->Project3D("xz");
381 h2D->SetTitle("DCAR vs pT of pos. charged tracks(C Side)");
382 h2D->FitSlicesY(0,0,-1,0,"QNR",arr10);
383 TH1 *width2 = (TH1*)arr10->At(2);
384 width2->Draw("same");
385 width2->SetLineColor(2);
386 arr10->At(1)->Draw("same");
389 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_3_5_7");
390 TH3 *h3Dn = h3D->Clone("h3Dn");
391 h3D->SetAxisRange(0.25,ptMax,"Z");
392 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
393 h2D = (TH2*)h3D->Project3D("xz");
395 h2D->SetTitle("DCAR vs pT of neg. charged tracks(A Side)");
396 h2D->FitSlicesY(0,0,-1,0,"QNR",arr11);
397 TH1 *width3 = (TH1*)arr11->At(2);
398 width3->Draw("same");
399 width3->SetLineColor(2);
400 arr11->At(1)->Draw("same");
403 //h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_3_5_7");
404 h3Dn->SetAxisRange(0.25,ptMax,"Z");
405 h3Dn->GetYaxis()->SetRangeUser(mineta,-0.00001);
406 h2D = (TH2*)h3Dn->Project3D("xz");
408 h2D->SetTitle("DCAR vs pT of neg. charged tracks(C Side)");
409 h2D->FitSlicesY(0,0,-1,0,"QNR",arr12);
410 TH1 *width4 = (TH1*)arr12->At(2);
411 width4->Draw("same");
412 width4->SetLineColor(2);
413 arr12->At(1)->Draw("same");
415 can51->SaveAs("dcar_pT.png");
417 // get TPC dEdx performance object
418 AliPerformanceDEdx *obj1 = TPC->FindObject("AliPerformanceDEdxTPCInner");
419 if(obj1==NULL) return(0);
421 // get folder with histograms
422 TFolder *fold1 = obj1->GetAnalysisFolder();
423 if(!fold1) return(0);
425 TCanvas *can6 = new TCanvas("can6","TPC dEdX",1200,800);
430 fold1->FindObject("h_tpc_dedx_0_1")->Draw("colz");
434 fold1->FindObject("h_tpc_dedx_0_5")->Draw("colz");
438 fold1->FindObject("h_tpc_dedx_0_6")->Draw("colz");
443 TH2 *h2 = fold1->FindObject("h_tpc_dedx_0_7");
444 h2->GetXaxis()->SetRangeUser(0.1,10);
446 ////////////////////////////////////////////////////////////////////
449 //fold1->FindObject("h_tpc_dedx_mips_a_0_1")->Draw("colz");
450 TH2 *htest = fold1->FindObject("h_tpc_dedx_mips_a_0_1");
451 htest->GetYaxis()->SetRangeUser(30,60);
455 //fold1->FindObject("h_tpc_dedx_mips_c_0_1")->Draw("colz");
456 TH2 *htest1 = fold1->FindObject("h_tpc_dedx_mips_c_0_1");
457 htest1->GetYaxis()->SetRangeUser(30,60);
458 htest1->Draw("colz");
460 /////////////////////////////////////////////////////////////////////
461 can6->SaveAs("TPC_dEdx_track_info.png");
463 TObjArray *arr9 = new TObjArray();
464 TObjArray *arr10 = new TObjArray();
466 TCanvas *can7 = new TCanvas("can7","DCA vs #phi",1200,800);
470 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_3_5_6");
471 TH3 *h3D71 = h3D->Clone("h3D71");
472 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
473 h3D->Project3D("xz")->Draw("colz");
474 h3D->Project3D("xz")->SetTitle("DCAR vs #phi of pos. charged tracks(A)");
477 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_3_5_6");
478 TH3 *h3D72 = h3D->Clone("h3D72");
479 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
480 h3D->Project3D("xz")->Draw("colz");
481 h3D->Project3D("xz")->SetTitle("DCAR vs #phi of neg. charged tracks(A)");
484 h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_4_5_6");
485 TH3 *h3D73 = h3D->Clone("h3D73");
486 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
487 h3D->Project3D("xz")->Draw("colz");
488 h3D->Project3D("xz")->SetTitle("DCAZ vs #phi of pos. charged tracks(A)");
491 h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_4_5_6");
492 TH3 *h3D74 = h3D->Clone("h3D74");
493 h3D->GetYaxis()->SetRangeUser(0.0,maxeta);
494 h3D->Project3D("xz")->Draw("colz");
495 h3D->Project3D("xz")->SetTitle("DCAZ vs #phi of neg. charged tracks(A)");
498 //h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_3_5_6");
499 h3D71->GetYaxis()->SetRangeUser(mineta,-0.00001);
500 h3D71->Project3D("xz")->Draw("colz");
501 h3D71->Project3D("xz")->SetTitle("DCAR vs #phi of pos. charged tracks(C)");
504 //h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_3_5_6");
505 h3D72->GetYaxis()->SetRangeUser(mineta,-0.00001);
506 h3D72->Project3D("xz")->Draw("colz");
507 h3D72->Project3D("xz")->SetTitle("DCAR vs #phi of neg. charged tracks(C)");
510 //h3D = (TH3*)fold->FindObject("h_tpc_track_pos_recvertex_4_5_6");
511 h3D73->GetYaxis()->SetRangeUser(mineta,-0.00001);
512 h3D73->Project3D("xz")->Draw("colz");
513 h3D73->Project3D("xz")->SetTitle("DCAZ vs #phi of pos. charged tracks(C)");
516 //h3D = (TH3*)fold->FindObject("h_tpc_track_neg_recvertex_4_5_6");
517 h3D74->GetYaxis()->SetRangeUser(mineta,-0.00001);
518 h3D74->Project3D("xz")->Draw("colz");
519 h3D74->Project3D("xz")->SetTitle("DCAZ vs #phi of neg. charged tracks(C)");
522 can7->SaveAs("dca_and_phi.png");
525 AliPerformanceMatch *obj2 = (AliPerformanceMatch*)TPC->FindObject("AliPerformanceMatchTPCITS");
526 TFolder *pMatch = obj2->GetAnalysisFolder();
528 AliPerformanceMatch *obj3 = (AliPerformanceMatch*)TPC->FindObject("AliPerformanceMatchITSTPC");
529 TFolder *pPull = obj3->GetAnalysisFolder();
542 TCanvas *can8 = new TCanvas("can8","TPC-ITS Matching Efficiency",800,800);
546 h2D = (TH2*)(pMatch->FindObject("h_tpc_match_trackingeff_all_2_3"));
547 h2D1 = (TH2*)(pMatch->FindObject("h_tpc_match_trackingeff_tpc_2_3"));
548 TH2 *h2D2 = h2D->Clone("h2D2");
549 TH2 *h2D3 = h2D1->Clone("h2D3");
551 h2D->GetXaxis()->SetRangeUser(0,1.5);
552 h2D1->GetXaxis()->SetRangeUser(0,1.5);
553 h1D = h2D->ProjectionY();
554 h1D1 = h2D1->ProjectionY();
556 h1D1->SetTitle("TPC-ITS Matching Efficiency (A)");
560 h2D2->GetXaxis()->SetRangeUser(-1.5,0);
561 h2D3->GetXaxis()->SetRangeUser(-1.5,0);
562 h1D2 = h2D2->ProjectionY();
563 h1D3 = h2D3->ProjectionY();
565 h1D3->SetLineColor(2);
566 h1D3->SetTitle("TPC-ITS Matching Efficiency (C)");
570 h2D = (TH2*)(pMatch->FindObject("h_tpc_match_trackingeff_all_1_3"));
571 h2D1 = (TH2*)(pMatch->FindObject("h_tpc_match_trackingeff_tpc_1_3"));
572 TH2 *h2D4 = h2D->Clone("h2D4");
573 TH2 *h2D5 = h2D1->Clone("h2D5");
575 h2D->GetXaxis()->SetRangeUser(0,1.5);
576 h2D1->GetXaxis()->SetRangeUser(0,1.5);
577 h1D = h2D->ProjectionY();
578 h1D1 = h2D1->ProjectionY();
580 h1D1->SetTitle("TPC-ITS Matching Efficiency (A)");
584 h2D4->GetXaxis()->SetRangeUser(-1.5,0);
585 h2D5->GetXaxis()->SetRangeUser(-1.5,0);
586 h1D2 = h2D4->ProjectionY();
587 h1D3 = h2D5->ProjectionY();
589 h1D3->SetLineColor(2);
590 h1D3->SetTitle("TPC-ITS Matching Efficiency (C)");
593 can8->SaveAs("TPC-ITS.png");
596 TCanvas *can9 = new TCanvas("can9","Pulls of TPC Tracks vs 1/pT",1200,800);
599 TObjArray *arr1 = new TObjArray();
600 TObjArray *arr2 = new TObjArray();
601 TObjArray *arr3 = new TObjArray();
602 TObjArray *arr4 = new TObjArray();
603 TObjArray *arr5 = new TObjArray();
606 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_0_7"));
607 h2D->FitSlicesY(0,0,-1,0,"QNR",arr1);
609 arr1->At(1)->Draw("same");
612 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_1_7"));
613 h2D->FitSlicesY(0,0,-1,0,"QNR",arr2);
615 arr2->At(1)->Draw("same");
618 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_2_7"));
619 h2D->FitSlicesY(0,0,-1,0,"QNR",arr3);
621 arr3->At(1)->Draw("same");
624 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_3_7"));
625 h2D->FitSlicesY(0,0,-1,0,"QNR",arr4);
627 arr4->At(1)->Draw("same");
630 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_4_7"));
631 h2D->FitSlicesY(0,0,-1,0,"QNR",arr5);
633 arr5->At(1)->Draw("same");
635 can9->SaveAs("pull-pt.png");
637 TCanvas *can10 = new TCanvas("can10","Pulls of TPC Tracks vs Eta",1200,800);
640 TObjArray *arr6 = new TObjArray();
641 TObjArray *arr7 = new TObjArray();
642 TObjArray *arr8 = new TObjArray();
643 TObjArray *arr9 = new TObjArray();
644 TObjArray *arr10 = new TObjArray();
647 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_0_6"));
648 h2D->FitSlicesY(0,0,-1,0,"QNR",arr6);
650 arr6->At(1)->Draw("same");
653 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_1_6"));
654 h2D->FitSlicesY(0,0,-1,0,"QNR",arr7);
656 arr7->At(1)->Draw("same");
659 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_2_6"));
660 h2D->FitSlicesY(0,0,-1,0,"QNR",arr8);
662 arr8->At(1)->Draw("same");
665 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_3_6"));
666 h2D->FitSlicesY(0,0,-1,0,"QNR",arr9);
668 arr9->At(1)->Draw("same");
671 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_4_6"));
672 h2D->FitSlicesY(0,0,-1,0,"QNR",arr10);
674 arr10->At(1)->Draw("same");
676 can10->SaveAs("pull-eta.png");
678 TCanvas *can11 = new TCanvas("can11","Pulls of TPC Tracks vs Phi",1200,800);
681 TObjArray *arr11 = new TObjArray();
682 TObjArray *arr12 = new TObjArray();
683 TObjArray *arr13 = new TObjArray();
684 TObjArray *arr14 = new TObjArray();
685 TObjArray *arr15 = new TObjArray();
688 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_0_5"));
689 h2D->FitSlicesY(0,0,-1,0,"QNR",arr11);
691 arr11->At(1)->Draw("same");
694 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_1_5"));
695 h2D->FitSlicesY(0,0,-1,0,"QNR",arr12);
697 arr12->At(1)->Draw("same");
700 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_2_5"));
701 h2D->FitSlicesY(0,0,-1,0,"QNR",arr13);
703 arr13->At(1)->Draw("same");
706 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_3_5"));
707 h2D->FitSlicesY(0,0,-1,0,"QNR",arr14);
709 arr14->At(1)->Draw("same");
712 h2D = (TH2*)(pPull->FindObject("h_tpc_match_pull_4_5"));
713 h2D->FitSlicesY(0,0,-1,0,"QNR",arr15);
715 arr15->At(1)->Draw("same");
717 can11->SaveAs("pull-phi.png");
719 AliPerformanceMatch *obj4 = (AliPerformanceMatch*)TPC->FindObject("AliPerformanceMatchTPCConstrain");
720 TFolder *pConstrain = obj4->GetAnalysisFolder();
722 TCanvas *can12 = new TCanvas("can12","#delta_{sin#phi}/#sigma_{sin#phi}",800,800);
725 h3D = (TH3*)pConstrain->FindObject("h_tpc_constrain_tpc_0_2_3");
726 TH3 *h31 = h3D->Clone("h31");
729 h3D->GetZaxis()->SetRangeUser(0,maxeta);
730 // h3D->GetYaxis()->SetRangeUser(0.25,10);
731 h2D = (TH2*)h3D->Project3D("xy");
733 h2D->SetTitle("A Side");
734 h2D->SetYTitle("(sin#phi_{TPC} - sin#phi_{Global})/#sigma");
735 h2D->FitSlicesY(0,0,-1,0,"QNR",arr11);
736 arr11->At(1)->Draw("same");
737 TH1 *width1 = (TH1*)arr11->At(2);
738 width1->Draw("same");
739 width1->SetLineColor(2);
741 /* h3D->Project3D("xy")->Draw("colz");
742 h3D->Project3D("xy")->SetTitle("A Side");
743 h3D->Project3D("xy")->SetYTitle("#delta_{sin#phi}/#sigma_{sin#phi}");
744 h3D->Project3D("xy")->FitSlicesY(0,0,-1,0,"QNR",arr11);
745 arr11->At(1)->Draw("same"); */
748 h31->GetZaxis()->SetRangeUser(mineta,-0.001);
749 // h31->GetYaxis()->SetRangeUser(0.25,10);
750 h2D = (TH2*)h31->Project3D("xy");
752 h2D->SetTitle("C Side");
753 h2D->SetYTitle("(sin#phi_{TPC} - sin#phi_{Global})/#sigma");
754 h2D->FitSlicesY(0,0,-1,0,"QNR",arr12);
755 arr12->At(1)->Draw("same");
756 TH1 *width2 = (TH1*)arr12->At(2);
757 width2->Draw("same");
758 width2->SetLineColor(2);
760 /* h31->Project3D("xy")->Draw("colz");
761 h31->Project3D("xy")->SetTitle("C Side");
762 h31->Project3D("xy")->SetYTitle("#delta_{sin#phi}/#sigma_{sin#phi}");
763 h31->Project3D("xy")->FitSlicesY(0,0,-1,0,"QNR",arr12);
764 arr12->At(1)->Draw("same"); */
767 h3D = (TH3*)pConstrain->FindObject("h_tpc_constrain_tpc_0_1_3");
768 h3D->GetZaxis()->SetRangeUser(0,maxeta);
769 TH3 *h32 = h3D->Clone("h32");
770 h2D = (TH2*)h3D->Project3D("xy");
772 h2D->SetTitle("A Side");
773 h2D->SetYTitle("(sin#phi_{TPC} - sin#phi_{Global})/#sigma");
774 h2D->FitSlicesY(0,0,-1,0,"QNR",arr13);
775 arr13->At(1)->Draw("same");
776 TH1 *width3 = (TH1*)arr13->At(2);
777 width3->Draw("same");
778 width3->SetLineColor(2);
780 /* h3D->Project3D("xy")->Draw("colz");
781 h3D->Project3D("xy")->SetTitle("A Side");
782 h3D->Project3D("xy")->SetYTitle("#delta_{sin#phi}/#sigma_{sin#phi}");
783 h3D->Project3D("xy")->FitSlicesY(0,0,-1,0,"QNR",arr13);
784 arr13->At(1)->Draw("same"); */
787 h32->GetZaxis()->SetRangeUser(mineta,-0.001);
788 h2D = (TH2*)h32->Project3D("xy");
790 h2D->SetTitle("C Side");
791 h2D->SetYTitle("(sin#phi_{TPC} - sin#phi_{Global})/#sigma");
792 h2D->FitSlicesY(0,0,-1,0,"QNR",arr14);
793 arr14->At(1)->Draw("same");
794 TH1 *width4 = (TH1*)arr14->At(2);
795 width4->Draw("same");
796 width4->SetLineColor(2);
798 /* h32->Project3D("xy")->Draw("colz");
799 h32->Project3D("xy")->SetTitle("C Side");
800 h32->Project3D("xy")->SetYTitle("#delta_{sin#phi}/#sigma_{sin#phi}");
801 h32->Project3D("xy")->FitSlicesY(0,0,-1,0,"QNR",arr14);
802 arr14->At(1)->Draw("same"); */
804 can12->SaveAs("pullPhiConstrain.png");
807 // resolution and efficiency plots from David - added by Patrick
810 AliPerformanceRes *objPerfRes = (AliPerformanceRes*) TPC->FindObject("AliPerformanceRes");
811 if (objPerfRes == NULL) {printf("Error getting AliPerformanceRes\n");}
812 TFolder *folderRes = objPerfRes->GetAnalysisFolder();
813 TH1F* h_resPt_vs_Pt = (TH1F*)folderRes->FindObject("h_res_4_vs_9");
814 TH1F* h_mean_resPt_vs_Pt = (TH1F*)folderRes->FindObject("h_mean_res_4_vs_9");
815 TH1F* h_pullPt_vs_Pt = (TH1F*)folderRes->FindObject("h_pull_4_vs_9");
816 TH1F* h_mean_pullPt_vs_Pt = (TH1F*)folderRes->FindObject("h_mean_pull_4_vs_9");
818 TCanvas *can13 = new TCanvas("can13","Resolution p_{T}",800,800);
821 h_resPt_vs_Pt ->Draw();
823 h_mean_resPt_vs_Pt ->Draw();
825 h_pullPt_vs_Pt ->Draw();
827 h_mean_pullPt_vs_Pt->Draw();
829 can13->SaveAs("res_pT_1overpT.png");
831 AliPerformanceEff *objPerfEff = (AliPerformanceEff*) TPC->FindObject("AliPerformanceEff");
832 if (objPerfEff == NULL) {printf("Error getting AliPerformanceEff\n");}
833 TFolder *folderEff = objPerfEff->GetAnalysisFolder();
834 TH1F* eta_all = (TH1F*)folderEff->FindObject("etaRecEff");
835 TH1F* eta_all_neg = (TH1F*)folderEff->FindObject("etaRecEffNeg");
836 TH1F* eta_all_pos = (TH1F*)folderEff->FindObject("etaRecEffPos");
837 TH1F* phi_all = (TH1F*)folderEff->FindObject("phiRecEff");
838 TH1F* phi_all_neg = (TH1F*)folderEff->FindObject("phiRecEffNeg");
839 TH1F* phi_all_pos = (TH1F*)folderEff->FindObject("phiRecEffPos");
840 TH1F* pt_all = (TH1F*)folderEff->FindObject("ptRecEff");
841 TH1F* pt_all_neg = (TH1F*)folderEff->FindObject("ptRecEffNeg");
842 TH1F* pt_all_pos = (TH1F*)folderEff->FindObject("ptRecEffPos");
843 TH1F* eta_all_findable = (TH1F*)folderEff->FindObject("etaRecEffF");
844 TH1F* eta_all_findable_neg = (TH1F*)folderEff->FindObject("etaRecEffFNeg");
845 TH1F* eta_all_findable_pos = (TH1F*)folderEff->FindObject("etaRecEffFPos");
846 TH1F* phi_all_findable = (TH1F*)folderEff->FindObject("phiRecEffF");
847 TH1F* phi_all_findable_neg = (TH1F*)folderEff->FindObject("phiRecEffFNeg");
848 TH1F* phi_all_findable_pos = (TH1F*)folderEff->FindObject("phiRecEffFPos");
849 TH1F* pt_all_findable = (TH1F*)folderEff->FindObject("ptRecEffF");
850 TH1F* pt_all_findable_neg = (TH1F*)folderEff->FindObject("ptRecEffFNeg");
851 TH1F* pt_all_findable_pos = (TH1F*)folderEff->FindObject("ptRecEffFPos");
852 TH1F* eta_Pi = (TH1F*)folderEff->FindObject("etaRecEffPi");
853 TH1F* eta_Pi_neg = (TH1F*)folderEff->FindObject("etaRecEffPiNeg");
854 TH1F* eta_Pi_pos = (TH1F*)folderEff->FindObject("etaRecEffPiPos");
855 TH1F* phi_Pi = (TH1F*)folderEff->FindObject("phiRecEffPi");
856 TH1F* phi_Pi_neg = (TH1F*)folderEff->FindObject("phiRecEffPiNeg");
857 TH1F* phi_Pi_pos = (TH1F*)folderEff->FindObject("phiRecEffPiPos");
858 TH1F* pt_Pi = (TH1F*)folderEff->FindObject("ptRecEffPi");
859 TH1F* pt_Pi_neg = (TH1F*)folderEff->FindObject("ptRecEffPiNeg");
860 TH1F* pt_Pi_pos = (TH1F*)folderEff->FindObject("ptRecEffPiPos");
861 TH1F* eta_K = (TH1F*)folderEff->FindObject("etaRecEffK");
862 TH1F* eta_K_neg = (TH1F*)folderEff->FindObject("etaRecEffKNeg");
863 TH1F* eta_K_pos = (TH1F*)folderEff->FindObject("etaRecEffKPos");
864 TH1F* phi_K = (TH1F*)folderEff->FindObject("phiRecEffK");
865 TH1F* phi_K_neg = (TH1F*)folderEff->FindObject("phiRecEffKNeg");
866 TH1F* phi_K_pos = (TH1F*)folderEff->FindObject("phiRecEffKPos");
867 TH1F* pt_K = (TH1F*)folderEff->FindObject("ptRecEffK");
868 TH1F* pt_K_neg = (TH1F*)folderEff->FindObject("ptRecEffKNeg");
869 TH1F* pt_K_pos = (TH1F*)folderEff->FindObject("ptRecEffKPos");
870 TH1F* eta_P = (TH1F*)folderEff->FindObject("etaRecEffP");
871 TH1F* eta_P_neg = (TH1F*)folderEff->FindObject("etaRecEffPNeg");
872 TH1F* eta_P_pos = (TH1F*)folderEff->FindObject("etaRecEffPPos");
873 TH1F* phi_P = (TH1F*)folderEff->FindObject("phiRecEffP");
874 TH1F* phi_P_neg = (TH1F*)folderEff->FindObject("phiRecEffPNeg");
875 TH1F* phi_P_pos = (TH1F*)folderEff->FindObject("phiRecEffPPos");
876 TH1F* pt_P = (TH1F*)folderEff->FindObject("ptRecEffP");
877 TH1F* pt_P_neg = (TH1F*)folderEff->FindObject("ptRecEffPNeg");
878 TH1F* pt_P_pos = (TH1F*)folderEff->FindObject("ptRecEffPPos");
879 eta_all ->SetLineWidth(2);
880 eta_all_neg ->SetLineColor(kRed);
881 eta_all_pos ->SetLineColor(kBlue);
882 phi_all ->SetLineWidth(2);
883 phi_all_neg ->SetLineColor(kRed);
884 phi_all_pos ->SetLineColor(kBlue);
885 pt_all ->SetLineWidth(2);
886 pt_all_neg ->SetLineColor(kRed);
887 pt_all_pos ->SetLineColor(kBlue);
888 eta_all_findable ->SetLineWidth(2);
889 eta_all_findable_neg->SetLineColor(kRed);
890 eta_all_findable_pos->SetLineColor(kBlue);
891 phi_all_findable ->SetLineWidth(2);
892 phi_all_findable_neg->SetLineColor(kRed);
893 phi_all_findable_pos->SetLineColor(kBlue);
894 pt_all_findable ->SetLineWidth(2);
895 pt_all_findable_neg ->SetLineColor(kRed);
896 pt_all_findable_pos ->SetLineColor(kBlue);
897 eta_Pi ->SetLineWidth(2);
898 eta_Pi_neg ->SetLineColor(kRed);
899 eta_Pi_pos ->SetLineColor(kBlue);
900 phi_Pi ->SetLineWidth(2);
901 phi_Pi_neg ->SetLineColor(kRed);
902 phi_Pi_pos ->SetLineColor(kBlue);
903 pt_Pi ->SetLineWidth(2);
904 pt_Pi_neg ->SetLineColor(kRed);
905 pt_Pi_pos ->SetLineColor(kBlue);
906 eta_K ->SetLineWidth(2);
907 eta_K_neg ->SetLineColor(kRed);
908 eta_K_pos ->SetLineColor(kBlue);
909 phi_K ->SetLineWidth(2);
910 phi_K_neg ->SetLineColor(kRed);
911 phi_K_pos ->SetLineColor(kBlue);
912 pt_K ->SetLineWidth(2);
913 pt_K_neg ->SetLineColor(kRed);
914 pt_K_pos ->SetLineColor(kBlue);
915 eta_P ->SetLineWidth(2);
916 eta_P_neg ->SetLineColor(kRed);
917 eta_P_pos ->SetLineColor(kBlue);
918 phi_P ->SetLineWidth(2);
919 phi_P_neg ->SetLineColor(kRed);
920 phi_P_pos ->SetLineColor(kBlue);
921 pt_P ->SetLineWidth(2);
922 pt_P_neg ->SetLineColor(kRed);
923 pt_P_pos ->SetLineColor(kBlue);
925 TCanvas *can14 = new TCanvas("can14","Efficiency All",1000,800);
929 eta_all_neg ->Draw("same");
930 eta_all_pos ->Draw("same");
933 phi_all_neg ->Draw("same");
934 phi_all_pos ->Draw("same");
937 pt_all_neg ->Draw("same");
938 pt_all_pos ->Draw("same");
940 eta_all_findable ->Draw();
941 eta_all_findable_neg->Draw("same");
942 eta_all_findable_pos->Draw("same");
944 phi_all_findable ->Draw();
945 phi_all_findable_neg->Draw("same");
946 phi_all_findable_pos->Draw("same");
948 pt_all_findable ->Draw();
949 pt_all_findable_neg ->Draw("same");
950 pt_all_findable_pos ->Draw("same");
952 can14->SaveAs("eff_all+all_findable.png");
954 TCanvas *can15 = new TCanvas("can15","Efficiency Pi K P",1000,1000);
958 eta_Pi_neg ->Draw("same");
959 eta_Pi_pos ->Draw("same");
962 phi_Pi_neg ->Draw("same");
963 phi_Pi_pos ->Draw("same");
966 pt_Pi_neg ->Draw("same");
967 pt_Pi_pos ->Draw("same");
970 eta_K_neg ->Draw("same");
971 eta_K_pos ->Draw("same");
974 phi_K_neg ->Draw("same");
975 phi_K_pos ->Draw("same");
978 pt_K_neg ->Draw("same");
979 pt_K_pos ->Draw("same");
982 eta_P_neg ->Draw("same");
983 eta_P_pos ->Draw("same");
986 phi_P_neg ->Draw("same");
987 phi_P_pos ->Draw("same");
990 pt_P_neg ->Draw("same");
991 pt_P_pos ->Draw("same");
993 can15->SaveAs("eff_Pi_K_P.png");
995 //get more histos from THnSparse...
996 THnSparseF* EffHisto = (THnSparseF*) objPerfEff->GetEffHisto();
997 //mceta:mcphi:mcpt:pid:recStatus:findable:charge:nclones:nfakes
998 //pid:e-=0,mu-=1,pi+=2,K+=3,p+=4
999 TH1* h_pid = (TH1*) EffHisto->Projection(3);
1000 TH1* h_charge = (TH1*) EffHisto->Projection(6);
1001 //TH1* h_find = (TH1*) EffHisto->Projection(5);
1002 //TH1* eta_All = (TH1*) EffHisto->Projection(0);
1004 cout<<"before setrange"<<endl;
1005 EffHisto->GetAxis(5)->SetRangeUser(1, 1.999); //set findable
1006 EffHisto->GetAxis(3)->SetRangeUser(2, 2.999); //set pion
1007 cout<<"after setrange"<<endl;
1008 TH1* h_charge_sel = (TH1*) EffHisto->Projection(6);
1009 cout<<"after projection"<<endl;
1010 EffHisto->GetAxis(6)->UnZoom(); //set all charges
1011 TH1* eta_Pi_findable = (TH1*) EffHisto->Projection(0);
1012 TH1* phi_Pi_findable = (TH1*) EffHisto->Projection(1);
1013 TH1* pt_Pi_findable = (TH1*) EffHisto->Projection(2);
1014 EffHisto->GetAxis(6)->SetRangeUser(-1.5, -0.499); //set negative
1015 TH1* eta_Pi_findable_neg = (TH1*) EffHisto->Projection(0);
1016 TH1* phi_Pi_findable_neg = (TH1*) EffHisto->Projection(1);
1017 TH1* pt_Pi_findable_neg = (TH1*) EffHisto->Projection(2);
1018 EffHisto->GetAxis(6)->SetRangeUser(0.5, 1.499); //set positive
1019 TH1* eta_Pi_findable_pos = (TH1*) EffHisto->Projection(0);
1020 TH1* phi_Pi_findable_pos = (TH1*) EffHisto->Projection(1);
1021 TH1* pt_Pi_findable_pos = (TH1*) EffHisto->Projection(2);
1022 //EffHisto->GetAxis(3)->SetRangeUser(3, 3.999); //set kaon
1023 //EffHisto->GetAxis(6)->UnZoom(); //set all charges
1025 //EffHisto->GetAxis(3)->SetRangeUser(4, 4.999); //set proton
1027 eta_Pi_findable ->SetLineWidth(2);
1028 eta_Pi_findable_neg ->SetLineColor(kRed);
1029 eta_Pi_findable_pos ->SetLineColor(kBlue);
1030 phi_Pi_findable ->SetLineWidth(2);
1031 phi_Pi_findable_neg ->SetLineColor(kRed);
1032 phi_Pi_findable_pos ->SetLineColor(kBlue);
1033 pt_Pi_findable ->SetLineWidth(2);
1034 pt_Pi_findable_neg ->SetLineColor(kRed);
1035 pt_Pi_findable_pos ->SetLineColor(kBlue);
1036 //eta_K_findable ->SetLineWidth(2);
1037 //eta_K_findable_neg ->SetLineColor(kRed);
1038 //eta_K_findable_pos ->SetLineColor(kBlue);
1039 //phi_K_findable ->SetLineWidth(2);
1040 //phi_K_findable_neg ->SetLineColor(kRed);
1041 //phi_K_findable_pos ->SetLineColor(kBlue);
1042 //pt_K_findable ->SetLineWidth(2);
1043 //pt_K_findable_neg ->SetLineColor(kRed);
1044 //pt_K_findable_pos ->SetLineColor(kBlue);
1045 //eta_P_findable ->SetLineWidth(2);
1046 //eta_P_findable_neg ->SetLineColor(kRed);
1047 //eta_P_findable_pos ->SetLineColor(kBlue);
1048 //phi_P_findable ->SetLineWidth(2);
1049 //phi_P_findable_neg ->SetLineColor(kRed);
1050 //phi_P_findable_pos ->SetLineColor(kBlue);
1051 //pt_P_findable ->SetLineWidth(2);
1052 //pt_P_findable_neg ->SetLineColor(kRed);
1053 //pt_P_findable_pos ->SetLineColor(kBlue);
1055 TCanvas *can16 = new TCanvas("can16","Efficiency Pi K P findable",1000,1000);
1062 h_charge_sel->Draw();
1064 eta_Pi_findable->Draw();
1065 eta_Pi_findable_neg->Draw("same");
1066 eta_Pi_findable_pos->Draw("same");
1068 phi_Pi_findable->Draw();
1069 phi_Pi_findable_neg->Draw("same");
1070 phi_Pi_findable_pos->Draw("same");
1072 pt_Pi_findable->Draw();
1073 pt_Pi_findable_neg->Draw("same");
1074 pt_Pi_findable_pos->Draw("same");
1076 can16->SaveAs("eff_Pi_K_P_findable.png");
1079 ofstream fout("runqa_exist");
1082 fout<<NEvents<<endl;