1 void PlotITSTrackingHists(TString fname="ITS.Performance.root") {
3 // Macro to plot the histos from the task AliAnalysisTaskITSTrackingCheck
9 TFile *f= new TFile(fname.Data());
11 TList *list=(TList*)f->Get("cOutput");
12 TH1F *fHistNclsITSSA = (TH1F*)list->FindObject("fHistNclsITSSA");
13 TH1F *fHistClusterMapITSSA = (TH1F*)list->FindObject("fHistClusterMapITSSA");
14 TH1F *fHistClusterMapITSSAok = (TH1F*)list->FindObject("fHistClusterMapITSSAok");
15 TH1F *fHistClusterMapITSSAbad = (TH1F*)list->FindObject("fHistClusterMapITSSAbad");
16 TH1F *fHistClusterMapITSSAskipped = (TH1F*)list->FindObject("fHistClusterMapITSSAskipped");
17 TH1F *fHistClusterMapITSSAoutinz = (TH1F*)list->FindObject("fHistClusterMapITSSAoutinz");
18 TH1F *fHistClusterMapITSSAokoutinzbad = (TH1F*)list->FindObject("fHistClusterMapITSSAokoutinzbad");
19 TH1F *fHistClusterMapITSSAnorefit = (TH1F*)list->FindObject("fHistClusterMapITSSAnorefit");
20 TH1F *fHistClusterMapITSSAnocls = (TH1F*)list->FindObject("fHistClusterMapITSSAnocls");
21 TH1F *fHistNclsITSSAInAcc = (TH1F*)list->FindObject("fHistNclsITSSAInAcc");
22 TH1F *fHistClusterMapITSSAInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAInAcc");
23 TH1F *fHistClusterMapITSSAokInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAokInAcc");
24 TH1F *fHistClusterMapITSSAbadInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAbadInAcc");
25 TH1F *fHistClusterMapModuleITSSAokInAcc = (TH1F*)list->FindObject("fHistClusterMapModuleITSSAokInAcc");
26 TH1F *fHistClusterMapModuleITSSAbadInAcc = (TH1F*)list->FindObject("fHistClusterMapModuleITSSAbadInAcc");
27 TH1F *fHistClusterMapITSSAskippedInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAskippedInAcc");
28 TH1F *fHistClusterMapITSSAoutinzInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAoutinzInAcc");
29 TH1F *fHistClusterMapITSSAokoutinzbadInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAokoutinzbadInAcc");
30 TH1F *fHistClusterMapITSSAnorefitInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAnorefitInAcc");
31 TH1F *fHistClusterMapITSSAnoclsInAcc = (TH1F*)list->FindObject("fHistClusterMapITSSAnoclsInAcc");
32 TH1F *fHistClusterMapModuleITSSAnoclsInAcc = (TH1F*)list->FindObject("fHistClusterMapModuleITSSAnoclsInAcc");
33 TH1F *fHistNclsITSMI = (TH1F*)list->FindObject("fHistNclsITSMI");
34 TH1F *fHistClusterMapITSMI = (TH1F*)list->FindObject("fHistClusterMapITSMI");
35 TH1F *fHistClusterMapITSMIok = (TH1F*)list->FindObject("fHistClusterMapITSMIok");
36 TH1F *fHistClusterMapITSMIbad = (TH1F*)list->FindObject("fHistClusterMapITSMIbad");
37 TH1F *fHistClusterMapITSMIskipped = (TH1F*)list->FindObject("fHistClusterMapITSMIskipped");
38 TH1F *fHistClusterMapITSMIoutinz = (TH1F*)list->FindObject("fHistClusterMapITSMIoutinz");
39 TH1F *fHistClusterMapITSMIokoutinzbad = (TH1F*)list->FindObject("fHistClusterMapITSMIokoutinzbad");
40 TH1F *fHistClusterMapITSMInorefit = (TH1F*)list->FindObject("fHistClusterMapITSMInorefit");
41 TH1F *fHistClusterMapITSMInocls = (TH1F*)list->FindObject("fHistClusterMapITSMInocls");
43 TH1F *fHistPhiTPCInAcc = (TH1F*)list->FindObject("fHistPhiTPCInAcc");
44 TH1F *fHistPhiITSMIokbadoutinz6InAcc = (TH1F*)list->FindObject("fHistPhiITSMIokbadoutinz6InAcc");
46 TH1F *fHistPtTPCInAcc = (TH1F*)list->FindObject("fHistPtTPCInAcc");
47 TH1F *fHistPtITSMI6InAcc = (TH1F*)list->FindObject("fHistPtITSMI6InAcc");
48 TH1F *fHistPtITSMI5InAcc = (TH1F*)list->FindObject("fHistPtITSMI5InAcc");
49 TH1F *fHistPtITSMI4InAcc = (TH1F*)list->FindObject("fHistPtITSMI4InAcc");
50 TH1F *fHistPtITSMI3InAcc = (TH1F*)list->FindObject("fHistPtITSMI3InAcc");
51 TH1F *fHistPtITSMI2InAcc = (TH1F*)list->FindObject("fHistPtITSMI2InAcc");
52 TH1F *fHistPtITSMISPDInAcc = (TH1F*)list->FindObject("fHistPtITSMISPDInAcc");
53 TH1F *fHistPtITSMIokbadoutinz6InAcc = (TH1F*)list->FindObject("fHistPtITSMIokbadoutinz6InAcc");
54 TH1F *fHistPtITSMIokbadoutinz5InAcc = (TH1F*)list->FindObject("fHistPtITSMIokbadoutinz5InAcc");
55 TH1F *fHistPtITSMIokbadoutinz4InAcc = (TH1F*)list->FindObject("fHistPtITSMIokbadoutinz4InAcc");
57 //---------------------------------------------------------------
59 TLegend *l1=new TLegend(0.5,0.5,0.9,0.9);
60 TLegend *l2=new TLegend(0.5,0.5,0.9,0.9);
62 TCanvas *c1= new TCanvas("c1","c1",10,10,600,500);
63 fHistNclsITSSA->SetMinimum(0);
64 fHistNclsITSSA->SetLineColor(1);
65 l1->AddEntry(fHistNclsITSSA,"ITS-SA","l");
66 fHistNclsITSSA->Draw();
67 fHistNclsITSSAInAcc->SetLineColor(4);
68 l1->AddEntry(fHistNclsITSSAInAcc,"ITS-SA in acc.","l");
69 fHistNclsITSSAInAcc->Draw("same");
70 fHistNclsITSMI->SetLineColor(2);
71 l1->AddEntry(fHistNclsITSMI,"ITS from TPC","l");
72 fHistNclsITSMI->Draw("same");
76 TCanvas *c2 =new TCanvas("c2","c2",10,10,1200,800);
80 fHistClusterMapITSSAokoutinzbad->SetLineColor(1);
81 fHistClusterMapITSSAokoutinzbad->SetMarkerColor(1);
82 fHistClusterMapITSSAokoutinzbad->SetMarkerStyle(20);
83 fHistClusterMapITSSAokoutinzbad->Draw();
84 fHistClusterMapITSMIokoutinzbad->SetLineColor(2);
85 fHistClusterMapITSMIokoutinzbad->SetMarkerColor(2);
86 fHistClusterMapITSMIokoutinzbad->SetMarkerStyle(20);
87 fHistClusterMapITSMIokoutinzbad->Draw("same");
91 fHistClusterMapITSSAok->SetLineColor(1);
92 fHistClusterMapITSSAok->SetMarkerColor(1);
93 fHistClusterMapITSSAok->SetMarkerStyle(21);
94 fHistClusterMapITSSAok->Draw();
95 fHistClusterMapITSMIok->SetLineColor(2);
96 fHistClusterMapITSMIok->SetMarkerColor(2);
97 fHistClusterMapITSMIok->SetMarkerStyle(21);
98 fHistClusterMapITSMIok->Draw("same");
101 fHistClusterMapITSSAoutinz->SetLineColor(1);
102 fHistClusterMapITSSAoutinz->SetMarkerColor(1);
103 fHistClusterMapITSSAoutinz->SetMarkerStyle(22);
104 fHistClusterMapITSSAoutinz->Draw();
105 fHistClusterMapITSMIoutinz->SetLineColor(2);
106 fHistClusterMapITSMIoutinz->SetMarkerColor(2);
107 fHistClusterMapITSMIoutinz->SetMarkerStyle(22);
108 fHistClusterMapITSMIoutinz->Draw("same");
111 fHistClusterMapITSSAbad->SetLineColor(1);
112 fHistClusterMapITSSAbad->SetMarkerColor(1);
113 fHistClusterMapITSSAbad->SetMarkerStyle(23);
114 fHistClusterMapITSSAbad->Draw();
115 fHistClusterMapITSMIbad->SetLineColor(2);
116 fHistClusterMapITSMIbad->SetMarkerColor(2);
117 fHistClusterMapITSMIbad->SetMarkerStyle(23);
118 fHistClusterMapITSMIbad->Draw("same");
121 fHistClusterMapITSSAnocls->SetLineColor(1);
122 fHistClusterMapITSSAnocls->SetMarkerColor(1);
123 fHistClusterMapITSSAnocls->SetMarkerStyle(24);
124 fHistClusterMapITSSAnocls->Draw();
125 fHistClusterMapITSMInocls->SetLineColor(2);
126 fHistClusterMapITSMInocls->SetMarkerColor(2);
127 fHistClusterMapITSMInocls->SetMarkerStyle(24);
128 fHistClusterMapITSMInocls->Draw("same");
130 TCanvas *c3 =new TCanvas("c3","c3",10,10,1200,400);
131 fHistClusterMapModuleITSSAokInAcc->SetLineColor(1);
132 fHistClusterMapModuleITSSAokInAcc->Draw();
133 l2->AddEntry(fHistClusterMapModuleITSSAokInAcc,"ok","l");
134 fHistClusterMapModuleITSSAbadInAcc->SetLineColor(2);
135 fHistClusterMapModuleITSSAbadInAcc->Draw("same");
136 l2->AddEntry(fHistClusterMapModuleITSSAbadInAcc,"bad","l");
137 fHistClusterMapModuleITSSAnoclsInAcc->SetLineColor(3);
138 fHistClusterMapModuleITSSAnoclsInAcc->Draw("same");
139 l2->AddEntry(fHistClusterMapModuleITSSAnoclsInAcc,"no cls","l");
143 TCanvas *c4 =new TCanvas("c4","c4",10,10,500,500);
145 fHistPhiITSMIokbadoutinz6InAcc->Divide(fHistPhiTPCInAcc);
146 fHistPhiITSMIokbadoutinz6InAcc->SetMinimum(0);
147 fHistPhiITSMIokbadoutinz6InAcc->SetMaximum(1.5);
148 fHistPhiITSMIokbadoutinz6InAcc->SetYTitle("ITS+TPC / TPC");
149 fHistPhiITSMIokbadoutinz6InAcc->SetTitle("Fraction of tracks with 6 layers ok");
150 fHistPhiITSMIokbadoutinz6InAcc->Draw();
152 TLegend *l3=new TLegend(0.5,0.5,0.9,0.9);
153 TLegend *l4=new TLegend(0.5,0.5,0.9,0.9);
154 TCanvas *c5 =new TCanvas("c5","c5",10,10,1200,600);
159 TH1F *fHistPtITSMIge2InAcc = (TH1F*)fHistPtITSMI6InAcc->Clone("fHistPtITSMIge2InAcc");
160 fHistPtITSMIge2InAcc->Add(fHistPtITSMI5InAcc);
161 fHistPtITSMIge2InAcc->Add(fHistPtITSMI4InAcc);
162 fHistPtITSMIge2InAcc->Add(fHistPtITSMI3InAcc);
163 fHistPtITSMIge2InAcc->Add(fHistPtITSMI2InAcc);
164 fHistPtITSMIge2InAcc->Divide(fHistPtTPCInAcc);
165 fHistPtITSMIge2InAcc->SetMaximum(1.5);
166 fHistPtITSMIge2InAcc->SetMinimum(0);
167 fHistPtITSMIge2InAcc->SetTitle("Fraction of prolonged tracks with N ITS points");
168 fHistPtITSMIge2InAcc->SetYTitle("ITS+TPC / TPC");
169 fHistPtITSMIge2InAcc->Draw();
170 l3->AddEntry(fHistPtITSMIge2InAcc,">=2 cls","l");
171 fHistPtITSMI6InAcc->Divide(fHistPtTPCInAcc);
172 fHistPtITSMI6InAcc->SetLineColor(2);
173 l3->AddEntry(fHistPtITSMI6InAcc,"6 cls","l");
174 fHistPtITSMI6InAcc->Draw("same");
175 fHistPtITSMI5InAcc->Divide(fHistPtTPCInAcc);
176 fHistPtITSMI5InAcc->SetLineColor(3);
177 l3->AddEntry(fHistPtITSMI5InAcc,"5 cls","l");
178 fHistPtITSMI5InAcc->Draw("same");
179 fHistPtITSMI4InAcc->Divide(fHistPtTPCInAcc);
180 fHistPtITSMI4InAcc->SetLineColor(4);
181 l3->AddEntry(fHistPtITSMI4InAcc,"4 cls","l");
182 fHistPtITSMI4InAcc->Draw("same");
183 fHistPtITSMI3InAcc->Divide(fHistPtTPCInAcc);
184 fHistPtITSMI3InAcc->SetLineColor(6);
185 l3->AddEntry(fHistPtITSMI3InAcc,"3 cls","l");
186 fHistPtITSMI3InAcc->Draw("same");
187 fHistPtITSMI2InAcc->Divide(fHistPtTPCInAcc);
188 fHistPtITSMI2InAcc->SetLineColor(7);
189 l3->AddEntry(fHistPtITSMI2InAcc,"2 cls","l");
190 fHistPtITSMI2InAcc->Draw("same");
191 fHistPtITSMISPDInAcc->Divide(fHistPtTPCInAcc);
192 fHistPtITSMISPDInAcc->SetLineColor(9);
193 l3->AddEntry(fHistPtITSMISPDInAcc,"2SPD + any","l");
194 fHistPtITSMISPDInAcc->Draw("same");
195 fHistPtITSMIge2InAcc->Draw("same");
198 TH1F *fHistPtITSMIokbadoutinzge4InAcc = (TH1F*)fHistPtITSMIokbadoutinz6InAcc->Clone("fHistPtITSMIokbadoutinzge4InAcc");
199 fHistPtITSMIokbadoutinzge4InAcc->Add(fHistPtITSMIokbadoutinz5InAcc);
200 fHistPtITSMIokbadoutinzge4InAcc->Add(fHistPtITSMIokbadoutinz4InAcc);
201 fHistPtITSMIokbadoutinzge4InAcc->SetMaximum(1.5);
202 fHistPtITSMIokbadoutinzge4InAcc->SetMinimum(0);
203 fHistPtITSMIokbadoutinzge4InAcc->SetTitle("Fraction of prolonged tracks with N ITS layers \"ok\"");
204 fHistPtITSMIokbadoutinzge4InAcc->SetYTitle("ITS+TPC / TPC");
205 fHistPtITSMIokbadoutinzge4InAcc->Divide(fHistPtTPCInAcc);
206 fHistPtITSMIokbadoutinzge4InAcc->SetLineColor(1);
207 fHistPtITSMIokbadoutinzge4InAcc->Draw();
208 fHistPtITSMIokbadoutinz6InAcc->Divide(fHistPtTPCInAcc);
209 fHistPtITSMIokbadoutinz6InAcc->SetLineColor(2);
210 fHistPtITSMIokbadoutinz6InAcc->Draw("same");
211 fHistPtITSMIokbadoutinz5InAcc->Divide(fHistPtTPCInAcc);
212 fHistPtITSMIokbadoutinz5InAcc->SetLineColor(3);
213 fHistPtITSMIokbadoutinz5InAcc->Draw("same");
214 fHistPtITSMIokbadoutinz4InAcc->Divide(fHistPtTPCInAcc);
215 fHistPtITSMIokbadoutinz4InAcc->SetLineColor(4);
216 fHistPtITSMIokbadoutinz4InAcc->Draw("same");
217 fHistPtITSMIokbadoutinzge4InAcc->Draw("same");
218 l4->AddEntry(fHistPtITSMIokbadoutinzge4InAcc,">=4 layers","l");
219 l4->AddEntry(fHistPtITSMIokbadoutinz6InAcc,"6 layers","l");
220 l4->AddEntry(fHistPtITSMIokbadoutinz5InAcc,"5 layers","l");
221 l4->AddEntry(fHistPtITSMIokbadoutinz4InAcc,"4 layers","l");
225 // PLOT ALIGNMENT CHECKS
227 TH1F *hSPDTrackletsTBdxy = new TH1F("hSPDTrackletsTBdxy","SPD tracklets; SPD tracklet to SPD vertex distance in (x,y) [cm]; entries",100,-0.1,0.1);
228 TH1F *hSPDTrackletsLRdxy = new TH1F("hSPDTrackletsLRdxy","SPD tracklets; SPD tracklet to SPD vertex distance in (x,y) [cm]; entries",100,-0.1,0.1);
229 TH1F *hSPDTrackletsTBdz = new TH1F("hSPDTrackletsTBdz","SPD tracklets; SPD tracklet to SPD vertex distance in z [cm]; entries",100,-0.1,0.1);
230 TH1F *hSPDTrackletsLRdz = new TH1F("hSPDTrackletsLRdz","SPD tracklets; SPD tracklet to SPD vertex distance in z [cm]; entries",100,-0.1,0.1);
232 TNtuple *fNtupleITSAlignSPDTracklets = (TNtuple*)list->FindObject("fNtupleITSAlignSPDTracklets");
233 Float_t dxy,dz,phi,pt;
234 fNtupleITSAlignSPDTracklets->SetBranchAddress("pt",&pt);
235 fNtupleITSAlignSPDTracklets->SetBranchAddress("phi",&phi);
236 fNtupleITSAlignSPDTracklets->SetBranchAddress("dxy",&dxy);
237 fNtupleITSAlignSPDTracklets->SetBranchAddress("dz",&dz);
239 for(Int_t i=0;i<fNtupleITSAlignSPDTracklets->GetEntries();i++) {
240 fNtupleITSAlignSPDTracklets->GetEvent(i);
242 if(TMath::Abs(TMath::Abs(phi)-0.5*TMath::Pi())<0.25*TMath::Pi()) {
244 hSPDTrackletsTBdxy->Fill(dxy);
245 hSPDTrackletsTBdz->Fill(dz);
248 hSPDTrackletsLRdxy->Fill(dxy);
249 hSPDTrackletsLRdz->Fill(dz);
253 TLegend *l6=new TLegend(0.5,0.5,0.9,0.9);
255 TCanvas *c6 = new TCanvas("c6","c6",0,0,1000,500);
258 hSPDTrackletsTBdxy->SetLineColor(4);
259 hSPDTrackletsTBdxy->Draw();
260 hSPDTrackletsLRdxy->SetLineColor(2);
261 hSPDTrackletsLRdxy->Draw("same");
262 l6->AddEntry(hSPDTrackletsTBdxy,"top-bottom","l");
263 l6->AddEntry(hSPDTrackletsLRdxy,"left-right","l");
266 hSPDTrackletsTBdz->SetLineColor(4);
267 hSPDTrackletsTBdz->Draw();
268 hSPDTrackletsLRdz->SetLineColor(2);
269 hSPDTrackletsLRdz->Draw("same");
273 TH1F *hSPDExtraClsTBdxy = new TH1F("hSPDExtraClsTBdxy","SPD extra clusters; track-to-point distance in (x,y) [cm]; entries",100,-0.1,0.1);
274 TH1F *hSPDExtraClsLRdxy = new TH1F("hSPDExtraClsLRdxy","SPD extra clusters; track-to-point distance in (x,y) [cm]; entries",100,-0.1,0.1);
275 TH1F *hSPDExtraClsTBdz = new TH1F("hSPDExtraClsTBdz","SPD extra clusters; track-to-point distance in z [cm]; entries",100,-0.1,0.1);
276 TH1F *hSPDExtraClsLRdz = new TH1F("hSPDExtraClsLRdz","SPD extra clusters; track-to-point distance in z [cm]; entries",100,-0.1,0.1);
278 TNtuple *fNtupleITSAlignExtra = (TNtuple*)list->FindObject("fNtupleITSAlignExtra");
279 Float_t layer,npoints,x,y,z;
280 fNtupleITSAlignExtra->SetBranchAddress("layer",&layer);
281 fNtupleITSAlignExtra->SetBranchAddress("npoints",&npoints);
282 fNtupleITSAlignExtra->SetBranchAddress("x",&x);
283 fNtupleITSAlignExtra->SetBranchAddress("y",&y);
284 fNtupleITSAlignExtra->SetBranchAddress("z",&z);
285 fNtupleITSAlignExtra->SetBranchAddress("dxy",&dxy);
286 fNtupleITSAlignExtra->SetBranchAddress("dz",&dz);
287 fNtupleITSAlignExtra->SetBranchAddress("pt",&pt);
289 for(Int_t i=0;i<fNtupleITSAlignExtra->GetEntries();i++) {
290 fNtupleITSAlignExtra->GetEvent(i);
292 if(layer!=0 && layer!=1) continue;
293 if(npoints<4) continue;
294 phi = TMath::ATan2(y,x);
295 if(TMath::Abs(TMath::Abs(phi)-0.5*TMath::Pi())<0.25*TMath::Pi()) {
297 hSPDExtraClsTBdxy->Fill(dxy);
298 hSPDExtraClsTBdz->Fill(dz);
301 hSPDExtraClsLRdxy->Fill(dxy);
302 hSPDExtraClsLRdz->Fill(dz);
306 TCanvas *c7 = new TCanvas("c7","c7",0,0,1000,500);
309 hSPDExtraClsTBdxy->SetLineColor(4);
310 hSPDExtraClsTBdxy->Draw();
311 hSPDExtraClsLRdxy->SetLineColor(2);
312 hSPDExtraClsLRdxy->Draw("same");
315 hSPDExtraClsTBdz->SetLineColor(4);
316 hSPDExtraClsTBdz->Draw();
317 hSPDExtraClsLRdz->SetLineColor(2);
318 hSPDExtraClsLRdz->Draw("same");