]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/macros/PlotITSTrackingEff.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGPP / macros / PlotITSTrackingEff.C
CommitLineData
f8d0e078 1void PlotITSTrackingEff(TString filename="ITS.Performance.root",
2 TString part="Pi",
3 TString partforgraph="pions",
4 Int_t pdgcode=211,
5 Bool_t useAbsPdg=kTRUE,
6 Bool_t nofakes=kTRUE,
7 Bool_t askITSrefit=kTRUE,
8 Int_t minTPCcls=1)
9{
10 //
11 // Macro to plot ITS tracking efficiency from ITS.Performance.root
12 // A. Dainese
13 //
14
15 //Open File
16 if(gSystem->AccessPathName(filename.Data())) {
17 printf("file not found!\n");
18 return;
19 }
20 TFile *file= TFile::Open(filename.Data());
21 cout<<"Open File "<<filename<<endl;
22
b7fb742d 23
24
f8d0e078 25 TList *list = (TList*)file->Get("cOutputITS");
b7fb742d 26 TDirectoryFile *dir=0;
27 if(!list) {
28 dir=(TDirectoryFile*)file->GetDirectory("ITS_Performance");
29 if(dir) list = (TList*)dir->Get("cOutputITS");
30 }
31
32
33
f8d0e078 34 TNtuple *ntTracks = (TNtuple*)list->FindObject("fNtupleESDTracks");
35
36 //Getting and Addressing NTuples
37 Float_t pt,ptmes,eta,phi,pdg,d0True,d0TV,d0zTV,sigmad0zTV,d0All,d0Oth,sigmad0Oth,ITSflag,sigmad0TV,sigmad0All;
38 ntTracks->SetBranchAddress("pt",&ptmes);
39 ntTracks->SetBranchAddress("ptMC",&pt);
40 ntTracks->SetBranchAddress("eta",&eta);
41 ntTracks->SetBranchAddress("phi",&phi);
42 ntTracks->SetBranchAddress("pdgMC",&pdg);
43 ntTracks->SetBranchAddress("d0MC",&d0True);
44 ntTracks->SetBranchAddress("d0MCv",&d0TV);
45 ntTracks->SetBranchAddress("z0MCv",&d0zTV);
46 ntTracks->SetBranchAddress("sigmad0MCv",&sigmad0TV);
47 ntTracks->SetBranchAddress("sigmaz0MCv",&sigmad0zTV);
48 ntTracks->SetBranchAddress("d0",&d0All);
49 ntTracks->SetBranchAddress("sigmad0",&sigmad0All);
50 ntTracks->SetBranchAddress("ITSflag",&ITSflag);
51
52
53 TString titlegraph1,titlefile;
54 Int_t ntracks,nITSsel,nfakes=0;
55 const Int_t nPtBins=10;
56 Double_t meanpt[nPtBins];
57 ///////////////////////////////////////////////////////////////////////////
58 Double_t nprimgen[nPtBins];
59 Float_t nfiles=48.; if(!useAbsPdg) nfiles*=0.5;
60 for(Int_t j=0; j<nPtBins; j++) nprimgen[j]=nfiles*50.;// *18.;
61 // the factor 50 is for the cut |eta|<0.9
62 // the factor 18 is for the cut 0.9<|eta|<1.4
63 ///////////////////////////////////////////////////////////////////////////
64 Double_t n6ITSclspart[nPtBins],n5ITSclspart[nPtBins],n4ITSclspart[nPtBins],n3ITSclspart[nPtBins],n2ITSclspart[nPtBins],n1ITSclspart[nPtBins];
65 Double_t n6ITSclsparttoTPC[nPtBins],n5ITSclsparttoTPC[nPtBins],n4ITSclsparttoTPC[nPtBins],n3ITSclsparttoTPC[nPtBins],n2ITSclsparttoTPC[nPtBins];
66 Double_t nSPD[nPtBins],n2ITS[nPtBins],n3ITS[nPtBins],n4ITS[nPtBins],n5ITS[nPtBins],n6ITS[nPtBins],n456ITS[nPtBins],ptbinning[2*nPtBins],ntottr[nPtBins];
67 Double_t nTPCnorm6[nPtBins],n1ITSnorm6[nPtBins],n2ITSnorm6[nPtBins],n3ITSnorm6[nPtBins],n4ITSnorm6[nPtBins],n5ITSnorm6[nPtBins],n6ITSnorm6[nPtBins],n456ITSnorm6[nPtBins],n4ITSnorm5[nPtBins],n5ITSnorm5[nPtBins],n3ITSnorm4[nPtBins],n4ITSnorm4[nPtBins],n2ITSnorm3[nPtBins],n3ITSnorm3[nPtBins],n1ITSnorm2[nPtBins],n2ITSnorm2[nPtBins];
68 Double_t nSPDtoGen[nPtBins],n2ITStoGen[nPtBins],n3ITStoGen[nPtBins],n4ITStoGen[nPtBins],n5ITStoGen[nPtBins],n6ITStoGen[nPtBins],n456ITStoGen[nPtBins],nTPCtoGen[nPtBins];
69 Double_t nTPCto6cls[nPtBins],n1ITSto6cls[nPtBins],n2ITSto6cls[nPtBins],n3ITSto6cls[nPtBins],n4ITSto6cls[nPtBins],n5ITSto6cls[nPtBins],n4ITSto5cls[nPtBins],n5ITSto5cls[nPtBins],n3ITSto4cls[nPtBins],n4ITSto4cls[nPtBins],n2ITSto3cls[nPtBins],n3ITSto3cls[nPtBins],n1ITSto2cls[nPtBins],n2ITSto2cls[nPtBins],n6ITSto6cls[nPtBins],n456ITSto6cls[nPtBins];
70 Double_t n330[nPtBins],n331[nPtBins],n332[nPtBins],n313[nPtBins],n323[nPtBins],n133[nPtBins],n233[nPtBins],nOTHERS[nPtBins],nSSD[nPtBins],nSDD[nPtBins];
71
72 Double_t sigmnSPD[nPtBins],sigmn4ITS[nPtBins],sigmn5ITS[nPtBins],sigmn6ITS[nPtBins],sigmn456ITS[nPtBins],ptbinning[2*nPtBins],ntottr[nPtBins];
73 Double_t sigmnSPDtoGen[nPtBins],sigmn2ITStoGen[nPtBins],sigmn3ITStoGen[nPtBins],sigmn4ITStoGen[nPtBins],sigmn5ITStoGen[nPtBins],sigmn6ITStoGen[nPtBins],sigmn456ITStoGen[nPtBins],sigmnTPCtoGen[nPtBins];
74 Double_t sigmnTPCto6cls[nPtBins],sigmn1ITSto6cls[nPtBins],sigmn2ITSto6cls[nPtBins],sigmn3ITSto6cls[nPtBins],sigmn4ITSto6cls[nPtBins],sigmn5ITSto6cls[nPtBins],sigmn6ITSto6cls[nPtBins],sigmn456ITSto6cls[nPtBins],sigmn4ITSto5cls[nPtBins],sigmn5ITSto5cls[nPtBins],sigmn3ITSto4cls[nPtBins],sigmn4ITSto4cls[nPtBins],sigmn2ITSto3cls[nPtBins],sigmn3ITSto3cls[nPtBins],sigmn1ITSto2cls[nPtBins],sigmn2ITSto2cls[nPtBins];
75 Double_t sigmn330[nPtBins],sigmn331[nPtBins],sigmn332[nPtBins],sigmn313[nPtBins],sigmn323[nPtBins],sigmn133[nPtBins],sigmn233[nPtBins],sigmnOTHERS[nPtBins],sigmnSSD[nPtBins],sigmnSDD[nPtBins];
76 Double_t sigmn6ITSclsparttoTPC[nPtBins],sigmn5ITSclsparttoTPC[nPtBins],sigmn4ITSclsparttoTPC[nPtBins],sigmn3ITSclsparttoTPC[nPtBins],sigmn2ITSclsparttoTPC[nPtBins];
77
78 Double_t errx[nPtBins];
79
80 TGraphErrors *gr4,*gr5,*gr6,*gr456,*grSPDtoGen,*gr2toGen,*gr3toGen,*gr4toGen,*gr5toGen,*gr6toGen,*gr456toGen,*grTPCtoGen,*grTPCto6cls,*gr1to6cls,*gr2to6cls,*gr3to6cls,*gr4to6cls,*gr5to6cls,*gr6to6cls,*gr456to6cls,*gr4to5cls,*gr5to5cls,*gr3to4cls,*gr4to4cls,*gr2to3cls,*gr3to3cls,*gr1to2cls,*gr2to2cls,*gr330,*gr331,*gr332,*gr313,*gr323,*gr133,*gr233,*grOTHERS,*grSSD,*grSPD,*gr6clspart,*gr5clspart,*gr4clspart,*gr2ITSclsparttoTPC,*gr3ITSclsparttoTPC,*gr4ITSclsparttoTPC,*gr5ITSclsparttoTPC,*gr6ITSclsparttoTPC;
81
82 for(Int_t j=0;j<nPtBins;j++) {
83 n1ITSclspart[j]=0.;
84 n2ITSclspart[j]=0.;
85 n3ITSclspart[j]=0.;
86 n4ITSclspart[j]=0.;
87 n5ITSclspart[j]=0.;
88 n6ITSclspart[j]=0.;
89 nSPD[j]=0.;
90 n2ITS[j]=0.;
91 n3ITS[j]=0.;
92 n4ITS[j]=0.;
93 n5ITS[j]=0.;
94 n6ITS[j]=0.;
95 n456ITS[j]=0.;
96 n1ITSnorm6[j]=0.;
97 n2ITSnorm6[j]=0.;
98 n3ITSnorm6[j]=0.;
99 n4ITSnorm6[j]=0.;
100 n5ITSnorm6[j]=0.;
101 n6ITSnorm6[j]=0.;
102 n456ITSnorm6[j]=0.;
103 n4ITSnorm5[j]=0.;
104 n5ITSnorm5[j]=0.;
105 n3ITSnorm4[j]=0.;
106 n4ITSnorm4[j]=0.;
107 n2ITSnorm3[j]=0.;
108 n3ITSnorm3[j]=0.;
109 n1ITSnorm2[j]=0.;
110 n2ITSnorm2[j]=0.;
111 nSPDtoGen[j]=0.;
112 n2ITStoGen[j]=0.;
113 n3ITStoGen[j]=0.;
114 n4ITStoGen[j]=0.;
115 n5ITStoGen[j]=0.;
116 n6ITStoGen[j]=0.;
117 n456ITStoGen[j]=0.;
118 nTPCtoGen[j]=0.;
119 n1ITSto6cls[j]=0.;
120 n2ITSto6cls[j]=0.;
121 n3ITSto6cls[j]=0.;
122 n4ITSto6cls[j]=0.;
123 n5ITSto6cls[j]=0.;
124 n6ITSto6cls[j]=0.;
125 n4ITSto5cls[j]=0.;
126 n5ITSto5cls[j]=0.;
127 n3ITSto4cls[j]=0.;
128 n4ITSto4cls[j]=0.;
129 n2ITSto3cls[j]=0.;
130 n3ITSto3cls[j]=0.;
131 n1ITSto2cls[j]=0.;
132 n2ITSto2cls[j]=0.;
133 n456ITSto6cls[j]=0.;
134 nTPCto6cls[j]=0.;
135 n330[j]=0;
136 n331[j]=0;
137 n332[j]=0;
138 n313[j]=0;
139 n323[j]=0;
140 n133[j]=0;
141 n233[j]=0;
142 nOTHERS[j]=0;
143 nSDD[j]=0.;
144 nSSD[j]=0.;
145 errx[j]=0.;
146 ntottr[j]=0;
147 meanpt[j]=0;
148 }
149
150 ptbinning[0]=0.15;
151 ptbinning[1]=0.35;
152 ptbinning[2]=0.4;
153 ptbinning[3]=0.6;
154 ptbinning[4]=0.7;
155 ptbinning[5]=0.85;
156 ptbinning[6]=0.85;
157 ptbinning[7]=1.2;
158 ptbinning[8]=1.7;
159 ptbinning[9]=2.3;
160 ptbinning[10]=3.6;
161 ptbinning[11]=4.4;
162 ptbinning[12]=6.5;
163 ptbinning[13]=7.5;
164 ptbinning[14]=8.5;
165 ptbinning[15]=11.5;
166 ptbinning[16]=18.5;
167 ptbinning[17]=21.5;
168 ptbinning[18]=27.5;
169 ptbinning[19]=32.5;
170
171
172
173
174
175 // ------------ Starting Loop on Tracks ----------
176 ntracks=ntTracks->GetEntries();
177 printf("number of Tracks %d \n",ntracks);
178
179 for (Int_t j=0;j<ntracks;j++) {
180 if(j%10000==0) printf("Reading track %d\n",j);
181 ntTracks->GetEvent(j);
182 if(TMath::Abs(d0True)>1.) continue; // only primaries
183 if(TMath::Abs(eta)>0.9) continue; // only tracks with |etapart|<0.9
184 //if(TMath::Abs(eta)<0.9 || TMath::Abs(eta)>1.4) continue; // only tracks with 0.9<|etapart|<1.4
185 Float_t theta = 2.*TMath::ATan(TMath::Exp(-eta));
186 //if(TMath::Abs(TMath::Abs(phi)-0.5*TMath::Pi())>0.5 || TMath::Abs(theta-0.5*TMath::Pi())>0.5) continue;
187 //if(phi<(.5+0.25)*TMath::Pi() || phi>(.5+0.45)*TMath::Pi()) continue;
188 if(ITSflag<0) nfakes++;
189 //printf(" %d\n",ITSflag);
190 if(nofakes && ITSflag<0) continue; // reject fakes
191 ITSflag=TMath::Abs(ITSflag);
192 //printf("%d\n",ITSflag);
193 Int_t ITSflagorig=ITSflag;
194 Int_t nTPCcls = (Int_t)(ITSflag/100000);
195 ITSflag -= nTPCcls*100000;
196 Int_t nITSclspart = (Int_t)(ITSflag/10000);
197 ITSflag -= nITSclspart*10000;
198 //printf("%d\n",ITSflag);
199 Int_t nITSclsassign = (Int_t)(ITSflag/1000);
200 ITSflag -= nITSclsassign*1000;
201 //printf("%d\n",ITSflag);
202 //printf("%d\n",ITSflag);
203 nITSsel=ITSnCluster(ITSflag);
204
205
206 if(nTPCcls<=minTPCcls) continue;
207
208 if(useAbsPdg) pdg=TMath::Abs(pdg);
209 if(pdg!=pdgcode) continue;
210
211 for (Int_t k=0; k<nPtBins; k++) {
212 if(ptbinning[2*k]<pt&&pt<ptbinning[2*k+1]) {
213 //if(nITSclspart==3) {nITSclspart=5;}else{nITSclspart=-1;}
214 if(ptmes>0.) {
215 ntottr[k]+=1.;
216 meanpt[k]+=pt;
217 if(nITSclspart==6) n6ITSclspart[k]+=1.;
218 if(nITSclspart==5) n5ITSclspart[k]+=1.;
219 if(nITSclspart==4) n4ITSclspart[k]+=1.;
220 if(nITSclspart==3) n3ITSclspart[k]+=1.;
221 if(nITSclspart==2) n2ITSclspart[k]+=1.;
222 }
223 if(askITSrefit && sigmad0TV<0.) continue;
224 if(nITSclsassign!=nITSsel) cout<<" ERROR "<<ITSflag<<" "<<nITSclsassign<<" "<<nITSsel<<" "<<ITSflagorig<<endl;
225
226 if(nITSsel==2) n2ITS[k]+=1.;
227 if(nITSsel==3) n3ITS[k]+=1.;
228 if(nITSsel==4) n4ITS[k]+=1.;
229 if(nITSsel==5) n5ITS[k]+=1.;
230 if(nITSsel==6) n6ITS[k]+=1.;
231
232 if(((Int_t)ITSflag)%10==3) nSPD[k]+=1.; // both SPD
233
234 if(nITSclspart==6) {
235 if(nITSsel==1) n1ITSnorm6[k]+=1.;
236 if(nITSsel==2) n2ITSnorm6[k]+=1.;
237 if(nITSsel==3) n3ITSnorm6[k]+=1.;
238 if(nITSsel==4) n4ITSnorm6[k]+=1.;
239 if(nITSsel==5) n5ITSnorm6[k]+=1.;
240 if(nITSsel==6) n6ITSnorm6[k]+=1.;
241 }
242 if(nITSclspart==5) {
243 if(nITSsel==4) n4ITSnorm5[k]+=1.;
244 if(nITSsel==5) n5ITSnorm5[k]+=1.;
245 }
246 if(nITSclspart==4) {
247 if(nITSsel==3) n3ITSnorm4[k]+=1.;
248 if(nITSsel==4) n4ITSnorm4[k]+=1.;
249 }
250 if(nITSclspart==3) {
251 if(nITSsel==2) n2ITSnorm3[k]+=1.;
252 if(nITSsel==3) n3ITSnorm3[k]+=1.;
253 }
254 if(nITSclspart==2) {
255 if(nITSsel==1) n1ITSnorm2[k]+=1.;
256 if(nITSsel==2) n2ITSnorm2[k]+=1.;
257 }
258
259 if(k==nPtBins-1 && nITSclspart==5 && nITSsel==4) printf("nClustersPart %d nClustersTrack %d Map %d\n",nITSclspart,nITSsel,ITSflag);
260
261 //5 points array
262 if(nITSclspart==5) {
263 if(ITSflag==332) {
264 n332[k]+=1.;
265 } else if(ITSflag==331) {
266 n331[k]+=1.;
267 } else if(ITSflag==323) {
268 n323[k]+=1.;
269 } else if(ITSflag==313) {
270 n313[k]+=1.;
271 } else if(ITSflag==233) {
272 n233[k]+=1.;
273 } else if(ITSflag==133) {
274 n133[k]+=1.;
275 }
276 }
277 if(ITSflag==330) {
278 n330[k]+=1.;
279 } else if(ITSflag!=333) {
280 nOTHERS[k]+=1.;
281 }
282
283 }
284 }
285
286 } //end loop on tracks
287
288 printf("%d %d %d %d %d\n",n2ITS[9],n3ITS[9],n4ITS[9],n5ITS[9],n6ITS[9]);
289
290 for(Int_t k=0;k<nPtBins;k++) {
291 if(n6ITSclspart[k]<1) n6ITSclspart[k]=1.;
292 if(n5ITSclspart[k]<1) n5ITSclspart[k]=1.;
293 if(n4ITSclspart[k]<1) n4ITSclspart[k]=1.;
294 if(n3ITSclspart[k]<1) n3ITSclspart[k]=1.;
295 if(n2ITSclspart[k]<1) n2ITSclspart[k]=1.;
296 if(n1ITSclspart[k]<1) n1ITSclspart[k]=1.;
297
298 //cout<<n1ITSclspart[k]<<" "<<n2ITSclspart[k]<<" "<<n3ITSclspart[k]<<" "<<n4ITSclspart[k]<<" "<<n5ITSclspart[k]<<" "<<n6ITSclspart[k]<<endl;
299
300 if(ntottr[k]!=0) {
301 meanpt[k]=meanpt[k]/ntottr[k];
302
303 nSPDtoGen[k]=nSPD[k]/nprimgen[k];
304 n2ITStoGen[k]=n2ITS[k]/nprimgen[k];
305 n3ITStoGen[k]=n3ITS[k]/nprimgen[k];
306 n4ITStoGen[k]=n4ITS[k]/nprimgen[k];
307 n5ITStoGen[k]=n5ITS[k]/nprimgen[k];
308 n6ITStoGen[k]=n6ITS[k]/nprimgen[k];
309 nTPCtoGen[k]=ntottr[k]/nprimgen[k];
310 n456ITStoGen[k]=n4ITStoGen[k]+n5ITStoGen[k]+n6ITStoGen[k];
311
312 n1ITSto6cls[k]=n1ITSnorm6[k]/n6ITSclspart[k];
313 n2ITSto6cls[k]=n2ITSnorm6[k]/n6ITSclspart[k];
314 n3ITSto6cls[k]=n3ITSnorm6[k]/n6ITSclspart[k];
315 n4ITSto6cls[k]=n4ITSnorm6[k]/n6ITSclspart[k];
316 n5ITSto6cls[k]=n5ITSnorm6[k]/n6ITSclspart[k];
317 n6ITSto6cls[k]=n6ITSnorm6[k]/n6ITSclspart[k];
318 n4ITSto5cls[k]=n4ITSnorm5[k]/n5ITSclspart[k];
319 n5ITSto5cls[k]=n5ITSnorm5[k]/n5ITSclspart[k];
320 n3ITSto4cls[k]=n3ITSnorm4[k]/n4ITSclspart[k];
321 n4ITSto4cls[k]=n4ITSnorm4[k]/n4ITSclspart[k];
322 n2ITSto3cls[k]=n2ITSnorm3[k]/n3ITSclspart[k];
323 n3ITSto3cls[k]=n3ITSnorm3[k]/n3ITSclspart[k];
324 n1ITSto2cls[k]=n1ITSnorm2[k]/n2ITSclspart[k];
325 n2ITSto2cls[k]=n2ITSnorm2[k]/n2ITSclspart[k];
326
327 nTPCto6cls[k]=ntottr[k]/n6ITSclspart[k];
328 n456ITSto6cls[k]=n4ITSto6cls[k]+n5ITSto6cls[k]+n6ITSto6cls[k];
329 //cout<<meanpt[k]<<" "<<n6ITSnorm6[k]<<" "<<n6ITSclspart[k]<<endl;
330
331 n6ITSclsparttoTPC[k]=n6ITSclspart[k]/ntottr[k];
332 n5ITSclsparttoTPC[k]=n5ITSclspart[k]/ntottr[k];
333 n4ITSclsparttoTPC[k]=n4ITSclspart[k]/ntottr[k];
334 n3ITSclsparttoTPC[k]=n3ITSclspart[k]/ntottr[k];
335 n2ITSclsparttoTPC[k]=n2ITSclspart[k]/ntottr[k];
336
337 n4ITS[k]=n4ITS[k]/ntottr[k];
338 n5ITS[k]=n5ITS[k]/ntottr[k];
339 n6ITS[k]=n6ITS[k]/ntottr[k];
340
341 n330[k]=n330[k]/ntottr[k];
342 n331[k]=n331[k]/n5ITSclspart[k];
343 n332[k]=n332[k]/n5ITSclspart[k];
344 n313[k]=n313[k]/n5ITSclspart[k];
345 n323[k]=n323[k]/n5ITSclspart[k];
346 n133[k]=n133[k]/n5ITSclspart[k];
347 n233[k]=n233[k]/n5ITSclspart[k];
348 nOTHERS[k]=nOTHERS[k]/ntottr[k];
349 n456ITS[k]=n4ITS[k]+n5ITS[k]+n6ITS[k];
350 nSSD[k]=n133[k]+n233[k];
351 nSDD[k]=n323[k]+n313[k];
352
353
354 sigmn4ITS[k]=TMath::Sqrt(n4ITS[k]*(1-n4ITS[k])/ntottr[k]);
355 sigmn5ITS[k]=TMath::Sqrt(n5ITS[k]*(1-n5ITS[k])/ntottr[k]);
356 sigmn6ITS[k]=TMath::Sqrt(n6ITS[k]*(1-n6ITS[k])/ntottr[k]);
357 sigmn456ITS[k]=TMath::Sqrt(n456ITS[k]*(1-n456ITS[k])/ntottr[k]);
358
359 sigmn2ITSclsparttoTPC[k]=TMath::Sqrt(n2ITSclsparttoTPC[k]*(1-n2ITSclsparttoTPC[k])/ntottr[k]);
360 sigmn3ITSclsparttoTPC[k]=TMath::Sqrt(n3ITSclsparttoTPC[k]*(1-n3ITSclsparttoTPC[k])/ntottr[k]);
361 sigmn4ITSclsparttoTPC[k]=TMath::Sqrt(n4ITSclsparttoTPC[k]*(1-n4ITSclsparttoTPC[k])/ntottr[k]);
362 sigmn5ITSclsparttoTPC[k]=TMath::Sqrt(n5ITSclsparttoTPC[k]*(1-n5ITSclsparttoTPC[k])/ntottr[k]);
363 sigmn6ITSclsparttoTPC[k]=TMath::Sqrt(n6ITSclsparttoTPC[k]*(1-n6ITSclsparttoTPC[k])/ntottr[k]);
364
365 sigmnSPDtoGen[k]=TMath::Sqrt(nSPDtoGen[k]*(1-nSPDtoGen[k])/nprimgen[k]);
366 sigmn2ITStoGen[k]=TMath::Sqrt(n2ITStoGen[k]*(1-n2ITStoGen[k])/nprimgen[k]);
367 sigmn3ITStoGen[k]=TMath::Sqrt(n3ITStoGen[k]*(1-n3ITStoGen[k])/nprimgen[k]);
368 sigmn4ITStoGen[k]=TMath::Sqrt(n4ITStoGen[k]*(1-n4ITStoGen[k])/nprimgen[k]);
369 sigmn5ITStoGen[k]=TMath::Sqrt(n5ITStoGen[k]*(1-n5ITStoGen[k])/nprimgen[k]);
370 sigmn6ITStoGen[k]=TMath::Sqrt(n6ITStoGen[k]*(1-n6ITStoGen[k])/nprimgen[k]);
371 sigmn456ITStoGen[k]=TMath::Sqrt(n456ITStoGen[k]*(1-n456ITStoGen[k])/nprimgen[k]);
372 sigmnTPCtoGen[k]=TMath::Sqrt(nTPCtoGen[k]*(1-nTPCtoGen[k])/nprimgen[k]);
373 sigmnTPCto6cls[k]=TMath::Sqrt(nTPCto6cls[k]*(1-nTPCto6cls[k])/n6ITSclspart[k]);
374
375 sigmn1ITSto6cls[k]=TMath::Sqrt(n1ITSto6cls[k]*(1-n1ITSto6cls[k])/n6ITSclspart[k]);
376 sigmn2ITSto6cls[k]=TMath::Sqrt(n2ITSto6cls[k]*(1-n2ITSto6cls[k])/n6ITSclspart[k]);
377 sigmn3ITSto6cls[k]=TMath::Sqrt(n3ITSto6cls[k]*(1-n3ITSto6cls[k])/n6ITSclspart[k]);
378 sigmn4ITSto6cls[k]=TMath::Sqrt(n4ITSto6cls[k]*(1-n4ITSto6cls[k])/n6ITSclspart[k]);
379 sigmn5ITSto6cls[k]=TMath::Sqrt(n5ITSto6cls[k]*(1-n5ITSto6cls[k])/n6ITSclspart[k]);
380 sigmn6ITSto6cls[k]=TMath::Sqrt(n6ITSto6cls[k]*(1-n6ITSto6cls[k])/n6ITSclspart[k]);
381 sigmn4ITSto5cls[k]=TMath::Sqrt(n4ITSto5cls[k]*(1-n4ITSto5cls[k])/n5ITSclspart[k]);
382 sigmn5ITSto5cls[k]=TMath::Sqrt(n5ITSto5cls[k]*(1-n5ITSto5cls[k])/n5ITSclspart[k]);
383 sigmn3ITSto4cls[k]=TMath::Sqrt(n3ITSto4cls[k]*(1-n3ITSto4cls[k])/n4ITSclspart[k]);
384 sigmn4ITSto4cls[k]=TMath::Sqrt(n4ITSto4cls[k]*(1-n4ITSto4cls[k])/n4ITSclspart[k]);
385 sigmn2ITSto3cls[k]=TMath::Sqrt(n2ITSto3cls[k]*(1-n2ITSto3cls[k])/n3ITSclspart[k]);
386 sigmn3ITSto3cls[k]=TMath::Sqrt(n3ITSto3cls[k]*(1-n3ITSto3cls[k])/n3ITSclspart[k]);
387 sigmn1ITSto2cls[k]=TMath::Sqrt(n1ITSto2cls[k]*(1-n1ITSto2cls[k])/n2ITSclspart[k]);
388 sigmn2ITSto2cls[k]=TMath::Sqrt(n2ITSto2cls[k]*(1-n2ITSto2cls[k])/n2ITSclspart[k]);
389 sigmn456ITSto6cls[k]=TMath::Sqrt(n456ITSto6cls[k]*(1-n456ITSto6cls[k])/n6ITSclspart[k]);
390
391 sigmn330[k]=TMath::Sqrt(n330[k]*(1-n330[k])/ntottr[k]);
392 sigmn331[k]=TMath::Sqrt(n331[k]*(1-n331[k])/ntottr[k]);
393 sigmn332[k]=TMath::Sqrt(n332[k]*(1-n332[k])/ntottr[k]);
394 sigmn313[k]=TMath::Sqrt(n313[k]*(1-n313[k])/ntottr[k]);
395 sigmn323[k]=TMath::Sqrt(n323[k]*(1-n323[k])/ntottr[k]);
396 sigmn133[k]=TMath::Sqrt(n133[k]*(1-n133[k])/ntottr[k]);
397 sigmn233[k]=TMath::Sqrt(n233[k]*(1-n233[k])/ntottr[k]);
398
399
400 sigmnOTHERS[k]=TMath::Sqrt(nOTHERS[k]*(1-nOTHERS[k])/ntottr[k]);
401 sigmnSSD[k]=TMath::Sqrt((n133[k]+n233[k])*(1-n133[k]-n233[k])/ntottr[k]);
402 sigmnSDD[k]=TMath::Sqrt((n323[k]+n313[k])*(1-n323[k]-n313[k])/ntottr[k]);
403 } else {
404 meanpt[k]=(ptbinning[2*k+1]+ptbinning[2*k])/2.;
405 }
406
407 } // end loop on pt bins
408
409 //-------DRAWING TGRAPH--------
410
411 const int cWidth = 500;
412 const int cHeight = (int)(500*(29.7/21.));
413
414 TCanvas* ceff0 = new TCanvas("ceff0","ceff0",cWidth,cHeight);
415 ceff0->SetLogx();
416 ceff0->SetGridy();
417
418 gr4 = new TGraphErrors(nPtBins,meanpt,n4ITS,errx,sigmn4ITS);
419 gr4->SetName("mygraph04ITS");
420 gr4->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
421 gr4->SetLineColor(1);
422 gr4->SetLineWidth(1);
423 gr4->SetMarkerColor(2);
424 gr4->SetMarkerStyle(21);
425 gr4->SetMarkerSize(1);
426 gr4->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
427 gr4->GetYaxis()->SetTitle("ITS efficiency (normalized to TPC trks)");
428 gr4->SetMaximum(1.2);
429 gr4->SetMinimum(0.);
430 gr4->Draw("AP");
431
432 gr5 = new TGraphErrors(nPtBins,meanpt,n5ITS,errx,sigmn5ITS);
433 gr5->SetName("mygraph05ITS");
434 gr5->SetLineColor(1);
435 gr5->SetLineWidth(1);
436 gr5->SetMarkerColor(8);
437 gr5->SetMarkerStyle(21);
438 gr5->SetMarkerSize(1.);
439 gr5->SetTitle(titlegraph1);
440 gr5->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
441 gr5->GetYaxis()->SetTitle("");
442 gr5->Draw("P");
443
444 gr6 = new TGraphErrors(nPtBins,meanpt,n6ITS,errx,sigmn6ITS);
445 gr6->SetName("mygraph06ITS");
446 gr6->SetLineColor(1);
447 gr6->SetLineWidth(1);
448 gr6->SetMarkerColor(4);
449 gr6->SetMarkerStyle(21);
450 gr6->SetMarkerSize(1.);
451 gr6->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
452 gr6->GetYaxis()->SetTitle("");
453 gr6->Draw("P");
454
455 gr456 = new TGraphErrors(nPtBins,meanpt,n456ITS,errx,sigmn456ITS);
456 gr456->SetName("mygraph456ITS");
457 gr456->SetLineColor(1);
458 gr456->SetLineWidth(1);
459 gr456->SetMarkerColor(1);
460 gr456->SetMarkerStyle(21);
461 gr456->SetMarkerSize(1.);
462 gr456->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
463 gr456->GetYaxis()->SetTitle("");
464 gr456->Draw("P");
465
466 TLegend *l0 = new TLegend(0.5,0.5,0.9,0.9);
467 l0->SetFillStyle(0);
468 l0->SetBorderSize(0);
469 l0->AddEntry(gr4,"kTPCin + 4 ITS cls","p");
470 l0->AddEntry(gr5,"kTPCin + 5 ITS cls","p");
471 l0->AddEntry(gr6,"kTPCin + 6 ITS cls","p");
472 l0->AddEntry(gr456,"kTPCin + 4or5or6 ITS cls","p");
473 l0->Draw();
474
475 TCanvas* ceff1 = new TCanvas("ceff1","ceff1",cWidth,cHeight);
476 ceff1->SetLogx();
477 ceff1->SetGridy();
478
479 gr4toGen = new TGraphErrors(nPtBins,meanpt,n4ITStoGen,errx,sigmn4ITStoGen);
480 gr4toGen->SetName("mygraph04ITStoGen");
481 gr4toGen->SetTitle("Physical tracking efficiency (B=0.5T, no misal.)");
482 gr4toGen->SetLineColor(1);
483 gr4toGen->SetLineWidth(1);
484 gr4toGen->SetMarkerColor(2);
485 gr4toGen->SetMarkerStyle(24);
486 gr4toGen->SetMarkerSize(1.);
487 gr4toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
488 gr4toGen->GetYaxis()->SetTitle("Physical efficiency (normalized to generated)");
489 gr4toGen->SetMaximum(1.2);
490 gr4toGen->SetMinimum(0.);
491 gr4toGen->Draw("AP");
492
493 gr2toGen = new TGraphErrors(nPtBins,meanpt,n2ITStoGen,errx,sigmn2ITStoGen);
494 gr2toGen->SetName("mygraph02ITStoGen");
495 gr2toGen->SetLineColor(1);
496 gr2toGen->SetLineWidth(1);
497 gr2toGen->SetMarkerColor(1);
498 gr2toGen->SetMarkerStyle(20);
499 gr2toGen->SetMarkerSize(1.);
500 gr2toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
501 gr2toGen->GetYaxis()->SetTitle("");
502 gr2toGen->Draw("P");
503
504 gr3toGen = new TGraphErrors(nPtBins,meanpt,n3ITStoGen,errx,sigmn3ITStoGen);
505 gr3toGen->SetName("mygraph03ITStoGen");
506 gr3toGen->SetLineColor(1);
507 gr3toGen->SetLineWidth(1);
508 gr3toGen->SetMarkerColor(2);
509 gr3toGen->SetMarkerStyle(21);
510 gr3toGen->SetMarkerSize(1.);
511 gr3toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
512 gr3toGen->GetYaxis()->SetTitle("");
513 gr3toGen->Draw("P");
514
515 gr5toGen = new TGraphErrors(nPtBins,meanpt,n5ITStoGen,errx,sigmn5ITStoGen);
516 gr5toGen->SetName("mygraph05ITStoGen");
517 gr5toGen->SetLineColor(1);
518 gr5toGen->SetLineWidth(1);
519 gr5toGen->SetMarkerColor(8);
520 gr5toGen->SetMarkerStyle(24);
521 gr5toGen->SetMarkerSize(1.);
522 gr5toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
523 gr5toGen->GetYaxis()->SetTitle("");
524 gr5toGen->Draw("P");
525
526 gr6toGen = new TGraphErrors(nPtBins,meanpt,n6ITStoGen,errx,sigmn6ITStoGen);
527 gr6toGen->SetName("mygraph06ITStoGen");
528 gr6toGen->SetLineColor(1);
529 gr6toGen->SetLineWidth(1);
530 gr6toGen->SetMarkerColor(4);
531 gr6toGen->SetMarkerStyle(24);
532 gr6toGen->SetMarkerSize(1.);
533 gr6toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
534 gr6toGen->GetYaxis()->SetTitle("");
535 gr6toGen->Draw("P");
536
537 gr456toGen = new TGraphErrors(nPtBins,meanpt,n456ITStoGen,errx,sigmn456ITStoGen);
538 gr456toGen->SetName("mygraph0456ITStoGen");
539 gr456toGen->SetLineColor(1);
540 gr456toGen->SetLineWidth(1);
541 gr456toGen->SetMarkerColor(1);
542 gr456toGen->SetMarkerStyle(24);
543 gr456toGen->SetMarkerSize(1.);
544 gr456toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
545 gr456toGen->GetYaxis()->SetTitle("");
546 //gr456toGen->Draw("P");
547
548
549 grTPCtoGen = new TGraphErrors(nPtBins,meanpt,nTPCtoGen,errx,sigmnTPCtoGen);
550 grTPCtoGen->SetName("mygraph0TPCtoGen");
551 grTPCtoGen->SetLineColor(1);
552 grTPCtoGen->SetLineWidth(1);
553 grTPCtoGen->SetMarkerColor(6);
554 grTPCtoGen->SetMarkerStyle(20);
555 grTPCtoGen->SetMarkerSize(1.);
556 grTPCtoGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
557 grTPCtoGen->GetYaxis()->SetTitle("");
558 grTPCtoGen->Draw("P");
559
560 grSPDtoGen = new TGraphErrors(nPtBins,meanpt,nSPDtoGen,errx,sigmnSPDtoGen);
561 grSPDtoGen->SetName("mygraph0SPDtoGen");
562 grSPDtoGen->SetLineColor(1);
563 grSPDtoGen->SetLineWidth(1);
564 grSPDtoGen->SetMarkerColor(9);
565 grSPDtoGen->SetMarkerStyle(22);
566 grSPDtoGen->SetMarkerSize(1.3);
567 grSPDtoGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
568 grSPDtoGen->GetYaxis()->SetTitle("");
569 grSPDtoGen->Draw("P");
570
571
572 TLegend *l1 = new TLegend(0.5,0.5,0.9,0.9);
573 l1->SetFillStyle(0);
574 l1->SetBorderSize(0);
575 l1->AddEntry(grTPCtoGen,"kTPCin","p");
576 l1->AddEntry(grSPDtoGen,"kTPCin + 2 SPD cls","p");
577 l1->AddEntry(gr2toGen,"kTPCin + 2 ITS cls","p");
578 l1->AddEntry(gr3toGen,"kTPCin + 3 ITS cls","p");
579 l1->AddEntry(gr4toGen,"kTPCin + 4 ITS cls","p");
580 l1->AddEntry(gr5toGen,"kTPCin + 5 ITS cls","p");
581 l1->AddEntry(gr6toGen,"kTPCin + 6 ITS cls","p");
582 //l1->AddEntry(gr456toGen,"kTPCin + 4or5or6 ITS cls","p");
583 l1->Draw();
584
585
586
587 TCanvas* ceff2_6 = new TCanvas("ceff2_6","ceff2_6",cWidth,cHeight);
588 ceff2_6->SetLogx();
589 ceff2_6->SetGridy();
590
591 gr4to6cls = new TGraphErrors(nPtBins,meanpt,n4ITSto6cls,errx,sigmn4ITSto6cls);
592 gr4to6cls->SetName("mygraph04ITSto6cls");
593 gr4to6cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
594 gr4to6cls->SetLineColor(1);
595 gr4to6cls->SetLineWidth(1);
596 gr4to6cls->SetMarkerColor(2);
597 gr4to6cls->SetMarkerStyle(24);
598 gr4to6cls->SetMarkerSize(1.);
599 gr4to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
600 gr4to6cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 6 ITS cls)");
601 gr4to6cls->SetMaximum(1.2);
602 gr4to6cls->SetMinimum(0.);
603 gr4to6cls->Draw("AP");
604
605 gr5to6cls = new TGraphErrors(nPtBins,meanpt,n5ITSto6cls,errx,sigmn5ITSto6cls);
606 gr5to6cls->SetName("mygraph05ITSto6cls");
607 gr5to6cls->SetLineColor(1);
608 gr5to6cls->SetLineWidth(1);
609 gr5to6cls->SetMarkerColor(8);
610 gr5to6cls->SetMarkerStyle(25);
611 gr5to6cls->SetMarkerSize(1.);
612 gr5to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
613 gr5to6cls->GetYaxis()->SetTitle("");
614 gr5to6cls->Draw("P");
615
616 gr6to6cls = new TGraphErrors(nPtBins,meanpt,n6ITSto6cls,errx,sigmn6ITSto6cls);
617 gr6to6cls->SetName("mygraph06ITSto6cls");
618 gr6to6cls->SetLineColor(1);
619 gr6to6cls->SetLineWidth(1);
620 gr6to6cls->SetMarkerColor(4);
621 gr6to6cls->SetMarkerStyle(26);
622 gr6to6cls->SetMarkerSize(1.);
623 gr6to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
624 gr6to6cls->GetYaxis()->SetTitle("");
625 gr6to6cls->Draw("P");
626
627 gr3to6cls = new TGraphErrors(nPtBins,meanpt,n3ITSto6cls,errx,sigmn3ITSto6cls);
628 gr3to6cls->SetName("mygraph03ITSto6cls");
629 gr3to6cls->SetLineColor(1);
630 gr3to6cls->SetLineWidth(1);
631 gr3to6cls->SetMarkerColor(9);
632 gr3to6cls->SetMarkerStyle(27);
633 gr3to6cls->SetMarkerSize(1.);
634 gr3to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
635 gr3to6cls->GetYaxis()->SetTitle("");
636 gr3to6cls->Draw("P");
637
638 gr2to6cls = new TGraphErrors(nPtBins,meanpt,n2ITSto6cls,errx,sigmn2ITSto6cls);
639 gr2to6cls->SetName("mygraph02ITSto6cls");
640 gr2to6cls->SetLineColor(1);
641 gr2to6cls->SetLineWidth(1);
642 gr2to6cls->SetMarkerColor(1);
643 gr2to6cls->SetMarkerStyle(28);
644 gr2to6cls->SetMarkerSize(1.);
645 gr2to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
646 gr2to6cls->GetYaxis()->SetTitle("");
647 gr2to6cls->Draw("P");
648
649 gr1to6cls = new TGraphErrors(nPtBins,meanpt,n1ITSto6cls,errx,sigmn1ITSto6cls);
650 gr1to6cls->SetName("mygraph01ITSto6cls");
651 gr1to6cls->SetLineColor(1);
652 gr1to6cls->SetLineWidth(1);
653 gr1to6cls->SetMarkerColor(6);
654 gr1to6cls->SetMarkerStyle(29);
655 gr1to6cls->SetMarkerSize(1.);
656 gr1to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
657 gr1to6cls->GetYaxis()->SetTitle("");
658 gr1to6cls->Draw("P");
659
660
661 TLegend *l2_6 = new TLegend(0.5,0.5,0.9,0.9);
662 l2_6->SetFillStyle(0);
663 l2_6->SetBorderSize(0);
664 l2_6->AddEntry(gr6to6cls,"kTPCin + 6 ITS cls","p");
665 l2_6->AddEntry(gr5to6cls,"kTPCin + 5 ITS cls","p");
666 l2_6->AddEntry(gr4to6cls,"kTPCin + 4 ITS cls","p");
667 l2_6->AddEntry(gr3to6cls,"kTPCin + 3 ITS cls","p");
668 l2_6->AddEntry(gr2to6cls,"kTPCin + 2 ITS cls","p");
669 l2_6->AddEntry(gr1to6cls,"kTPCin + 1 ITS cls","p");
670 l2_6->Draw();
671
672 TCanvas* ceff2_5 = new TCanvas("ceff2_5","ceff2_5",cWidth,cHeight);
673 ceff2_5->SetLogx();
674 ceff2_5->SetGridy();
675
676 gr4to5cls = new TGraphErrors(nPtBins,meanpt,n4ITSto5cls,errx,sigmn4ITSto5cls);
677 gr4to5cls->SetName("mygraph04ITSto5cls");
678 gr4to5cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
679 gr4to5cls->SetLineColor(1);
680 gr4to5cls->SetLineWidth(1);
681 gr4to5cls->SetMarkerColor(2);
682 gr4to5cls->SetMarkerStyle(24);
683 gr4to5cls->SetMarkerSize(1.);
684 gr4to5cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
685 gr4to5cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 5 ITS cls)");
686 gr4to5cls->SetMaximum(1.2);
687 gr4to5cls->SetMinimum(0.);
688 gr4to5cls->Draw("AP");
689
690 gr5to5cls = new TGraphErrors(nPtBins,meanpt,n5ITSto5cls,errx,sigmn5ITSto5cls);
691 gr5to5cls->SetName("mygraph05ITSto5cls");
692 gr5to5cls->SetLineColor(1);
693 gr5to5cls->SetLineWidth(1);
694 gr5to5cls->SetMarkerColor(1);
695 gr5to5cls->SetMarkerStyle(25);
696 gr5to5cls->SetMarkerSize(1.);
697 gr5to5cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
698 gr5to5cls->GetYaxis()->SetTitle("");
699 gr5to5cls->Draw("P");
700
701 TLegend *l2_5 = new TLegend(0.5,0.5,0.9,0.9);
702 l2_5->SetFillStyle(0);
703 l2_5->SetBorderSize(0);
704 l2_5->AddEntry(gr5to5cls,"kTPCin + 5 ITS cls","p");
705 l2_5->AddEntry(gr4to5cls,"kTPCin + 4 ITS cls","p");
706 l2_5->Draw();
707
708 TCanvas* ceff2_4 = new TCanvas("ceff2_4","ceff2_4",cWidth,cHeight);
709 ceff2_4->SetLogx();
710 ceff2_4->SetGridy();
711
712 gr4to4cls = new TGraphErrors(nPtBins,meanpt,n4ITSto4cls,errx,sigmn4ITSto4cls);
713 gr4to4cls->SetName("mygraph04ITSto4cls");
714 gr4to4cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
715 gr4to4cls->SetLineColor(1);
716 gr4to4cls->SetLineWidth(1);
717 gr4to4cls->SetMarkerColor(2);
718 gr4to4cls->SetMarkerStyle(24);
719 gr4to4cls->SetMarkerSize(1.);
720 gr4to4cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
721 gr4to4cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 4 ITS cls)");
722 gr4to4cls->SetMaximum(1.2);
723 gr4to4cls->SetMinimum(0.);
724 gr4to4cls->Draw("AP");
725
726 gr3to4cls = new TGraphErrors(nPtBins,meanpt,n3ITSto4cls,errx,sigmn3ITSto4cls);
727 gr3to4cls->SetName("mygraph03ITSto4cls");
728 gr3to4cls->SetLineColor(1);
729 gr3to4cls->SetLineWidth(1);
730 gr3to4cls->SetMarkerColor(1);
731 gr3to4cls->SetMarkerStyle(25);
732 gr3to4cls->SetMarkerSize(1.);
733 gr3to4cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
734 gr3to4cls->GetYaxis()->SetTitle("");
735 gr3to4cls->Draw("P");
736
737 TLegend *l2_4 = new TLegend(0.5,0.5,0.9,0.9);
738 l2_4->SetFillStyle(0);
739 l2_4->SetBorderSize(0);
740 l2_4->AddEntry(gr4to4cls,"kTPCin + 4 ITS cls","p");
741 l2_4->AddEntry(gr3to4cls,"kTPCin + 3 ITS cls","p");
742 l2_4->Draw();
743
744 TCanvas* ceff2_3 = new TCanvas("ceff2_3","ceff2_3",cWidth,cHeight);
745 ceff2_3->SetLogx();
746 ceff2_3->SetGridy();
747
748 gr3to3cls = new TGraphErrors(nPtBins,meanpt,n3ITSto3cls,errx,sigmn3ITSto3cls);
749 gr3to3cls->SetName("mygraph03ITSto3cls");
750 gr3to3cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
751 gr3to3cls->SetLineColor(1);
752 gr3to3cls->SetLineWidth(1);
753 gr3to3cls->SetMarkerColor(2);
754 gr3to3cls->SetMarkerStyle(24);
755 gr3to3cls->SetMarkerSize(1.);
756 gr3to3cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
757 gr3to3cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 3 ITS cls)");
758 gr3to3cls->SetMaximum(1.2);
759 gr3to3cls->SetMinimum(0.);
760 gr3to3cls->Draw("AP");
761
762 gr2to3cls = new TGraphErrors(nPtBins,meanpt,n2ITSto3cls,errx,sigmn2ITSto3cls);
763 gr2to3cls->SetName("mygraph02ITSto3cls");
764 gr2to3cls->SetLineColor(1);
765 gr2to3cls->SetLineWidth(1);
766 gr2to3cls->SetMarkerColor(1);
767 gr2to3cls->SetMarkerStyle(25);
768 gr2to3cls->SetMarkerSize(1.);
769 gr2to3cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
770 gr2to3cls->GetYaxis()->SetTitle("");
771 gr2to3cls->Draw("P");
772
773 TLegend *l2_3 = new TLegend(0.5,0.5,0.9,0.9);
774 l2_3->SetFillStyle(0);
775 l2_3->SetBorderSize(0);
776 l2_3->AddEntry(gr3to3cls,"kTPCin + 3 ITS cls","p");
777 l2_3->AddEntry(gr2to3cls,"kTPCin + 2 ITS cls","p");
778 l2_3->Draw();
779
780 TCanvas* ceff2_2 = new TCanvas("ceff2_2","ceff2_2",cWidth,cHeight);
781 ceff2_2->SetLogx();
782 ceff2_2->SetGridy();
783
784 gr1to2cls = new TGraphErrors(nPtBins,meanpt,n1ITSto2cls,errx,sigmn1ITSto2cls);
785 gr1to2cls->SetName("mygraph01ITSto2cls");
786 gr1to2cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
787 gr1to2cls->SetLineColor(1);
788 gr1to2cls->SetLineWidth(1);
789 gr1to2cls->SetMarkerColor(2);
790 gr1to2cls->SetMarkerStyle(24);
791 gr1to2cls->SetMarkerSize(1.);
792 gr1to2cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
793 gr1to2cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 2 ITS cls)");
794 gr1to2cls->SetMaximum(1.2);
795 gr1to2cls->SetMinimum(0.);
796 gr1to2cls->Draw("AP");
797
798 gr2to2cls = new TGraphErrors(nPtBins,meanpt,n2ITSto2cls,errx,sigmn2ITSto2cls);
799 gr2to2cls->SetName("mygraph02ITSto2cls");
800 gr2to2cls->SetLineColor(1);
801 gr2to2cls->SetLineWidth(1);
802 gr2to2cls->SetMarkerColor(1);
803 gr2to2cls->SetMarkerStyle(25);
804 gr2to2cls->SetMarkerSize(1.);
805 gr2to2cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
806 gr2to2cls->GetYaxis()->SetTitle("");
807 gr2to2cls->Draw("P");
808
809 TLegend *l2_2 = new TLegend(0.5,0.5,0.9,0.9);
810 l2_2->SetFillStyle(0);
811 l2_2->SetBorderSize(0);
812 l2_2->AddEntry(gr2to2cls,"kTPCin + 2 ITS cls","p");
813 l2_2->AddEntry(gr1to2cls,"kTPCin + 1 ITS cls","p");
814 l2_2->Draw();
815
816
817 TCanvas* ceff3 = new TCanvas("ceff3","ceff3",cWidth,cHeight);
818 ceff3->SetLogx();
819 ceff3->SetGridy();
820
821 gr4ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n4ITSclsparttoTPC,errx,sigmn4ITSclsparttoTPC);
822 gr4ITSclsparttoTPC->SetName("mygraph04ITSclsparttoTPC");
823 gr4ITSclsparttoTPC->SetTitle("Number of produced clusters (B=0.5T, no misal.)");
824 gr4ITSclsparttoTPC->SetLineColor(1);
825 gr4ITSclsparttoTPC->SetLineWidth(1);
826 gr4ITSclsparttoTPC->SetMarkerColor(2);
827 gr4ITSclsparttoTPC->SetMarkerStyle(22);
828 gr4ITSclsparttoTPC->SetMarkerSize(1.);
829 gr4ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
830 gr4ITSclsparttoTPC->GetYaxis()->SetTitle("Fraction of primary kTPCin tracks producing N clusters");
831 gr4ITSclsparttoTPC->SetMaximum(1.2);
832 gr4ITSclsparttoTPC->SetMinimum(0.);
833 gr4ITSclsparttoTPC->Draw("AP");
834
835 gr5ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n5ITSclsparttoTPC,errx,sigmn5ITSclsparttoTPC);
836 gr5ITSclsparttoTPC->SetName("mygraph05ITSclsparttoTPC");
837 gr5ITSclsparttoTPC->SetLineColor(1);
838 gr5ITSclsparttoTPC->SetLineWidth(1);
839 gr5ITSclsparttoTPC->SetMarkerColor(8);
840 gr5ITSclsparttoTPC->SetMarkerStyle(22);
841 gr5ITSclsparttoTPC->SetMarkerSize(1.);
842 gr5ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
843 gr5ITSclsparttoTPC->GetYaxis()->SetTitle("");
844 gr5ITSclsparttoTPC->Draw("P");
845
846 gr6ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n6ITSclsparttoTPC,errx,sigmn6ITSclsparttoTPC);
847 gr6ITSclsparttoTPC->SetName("mygraph06ITSITSclsparttoTPC");
848 gr6ITSclsparttoTPC->SetLineColor(1);
849 gr6ITSclsparttoTPC->SetLineWidth(1);
850 gr6ITSclsparttoTPC->SetMarkerColor(4);
851 gr6ITSclsparttoTPC->SetMarkerStyle(22);
852 gr6ITSclsparttoTPC->SetMarkerSize(1.);
853 gr6ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
854 gr6ITSclsparttoTPC->GetYaxis()->SetTitle("");
855 gr6ITSclsparttoTPC->Draw("P");
856
857 gr3ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n3ITSclsparttoTPC,errx,sigmn3ITSclsparttoTPC);
858 gr3ITSclsparttoTPC->SetName("mygraph03ITSITSclsparttoTPC");
859 gr3ITSclsparttoTPC->SetLineColor(1);
860 gr3ITSclsparttoTPC->SetLineWidth(1);
861 gr3ITSclsparttoTPC->SetMarkerColor(6);
862 gr3ITSclsparttoTPC->SetMarkerStyle(22);
863 gr3ITSclsparttoTPC->SetMarkerSize(1.);
864 gr3ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
865 gr3ITSclsparttoTPC->GetYaxis()->SetTitle("");
866 gr3ITSclsparttoTPC->Draw("P");
867
868 gr2ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n2ITSclsparttoTPC,errx,sigmn2ITSclsparttoTPC);
869 gr2ITSclsparttoTPC->SetName("mygraph06ITSITSclsparttoTPC");
870 gr2ITSclsparttoTPC->SetLineColor(1);
871 gr2ITSclsparttoTPC->SetLineWidth(1);
872 gr2ITSclsparttoTPC->SetMarkerColor(1);
873 gr2ITSclsparttoTPC->SetMarkerStyle(22);
874 gr2ITSclsparttoTPC->SetMarkerSize(1.);
875 gr2ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
876 gr2ITSclsparttoTPC->GetYaxis()->SetTitle("");
877 gr2ITSclsparttoTPC->Draw("P");
878
879 TLegend *l3 = new TLegend(0.5,0.5,0.9,0.9);
880 l3->SetFillStyle(0);
881 l3->SetBorderSize(0);
882 l3->AddEntry(gr2ITSclsparttoTPC,"2 ITS cls","p");
883 l3->AddEntry(gr3ITSclsparttoTPC,"3 ITS cls","p");
884 l3->AddEntry(gr4ITSclsparttoTPC,"4 ITS cls","p");
885 l3->AddEntry(gr5ITSclsparttoTPC,"5 ITS cls","p");
886 l3->AddEntry(gr6ITSclsparttoTPC,"6 ITS cls","p");
887 l3->Draw();
888
889
890 ////////////--------------5 POINTS SCENARIO
891
892 TCanvas* fitting1 = new TCanvas("fitting1","5 Points Scenario tracks analysis",cWidth,cHeight);
893 fitting1->Divide(3,2);
894 fitting1->cd(1);
895 // gPad->SetLogy();
896 gPad->SetLogx();
897 gPad->SetGridx();
898 gPad->SetGridy();
899 gr133 = new TGraphErrors(nPtBins,meanpt,n133,errx,sigmn133);
900 gr133->SetName("mygraph133");
901 gr133->SetLineColor(1);
902 gr133->SetLineWidth(1);
903 gr133->SetMarkerColor(4);
904 gr133->SetMarkerStyle(21);
905 gr133->SetMarkerSize(.5);
906 titlegraph1="NTracks without SSD2 point for ";
907 //titlegraph1="d_{0}(r#phi) Resolution for ";
908 titlegraph1.Append(partforgraph);
909 // titlegraph1.Append(" using True Vertex");
910 gr133->SetTitle(titlegraph1);
911 gr133->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
912 gr133->GetYaxis()->SetTitle("");
913 gr133->Draw("AP");
914
915 fitting1->cd(4);
916 // gPad->SetLogy();
917 gPad->SetLogx();
918 gPad->SetGridx();
919 gPad->SetGridy();
920 gr233 = new TGraphErrors(nPtBins,meanpt,n233,errx,sigmn233);
921 gr233->SetName("mygraph233");
922 gr233->SetLineColor(1);
923 gr233->SetLineWidth(1);
924 gr233->SetMarkerColor(4);
925 gr233->SetMarkerStyle(21);
926 gr233->SetMarkerSize(.5);
927 //titlegraph1="d_{0}(r#phi) Resolution for ";
928 titlegraph1="NTracks without SSD1 point for ";
929 titlegraph1.Append(partforgraph);
930 // titlegraph1.Append(" using Reconstructed Vertex");
931 gr233->SetTitle(titlegraph1);
932 gr233->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
933 gr233->GetYaxis()->SetTitle("");
934 gr233->Draw("AP");
935
936 fitting1->cd(2);
937 // gPad->SetLogy();
938 gPad->SetLogx();
939 gPad->SetGridx();
940 gPad->SetGridy();
941 gr313 = new TGraphErrors(nPtBins,meanpt,n313,errx,sigmn313);
942 gr313->SetName("mygraph313");
943 gr313->SetLineColor(1);
944 gr313->SetLineWidth(1);
945 gr313->SetMarkerColor(4);
946 gr313->SetMarkerStyle(21);
947 gr313->SetMarkerSize(.5);
948 titlegraph1="NTracks without SDD2 point for ";
949 titlegraph1.Append(partforgraph);
950 // titlegraph1.Append(" using Vertex on the Fly");
951 gr313->SetTitle(titlegraph1);
952 gr313->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
953 gr313->GetYaxis()->SetTitle("");
954 gr313->Draw("AP");
955
956 fitting1->cd(5);
957 // gPad->SetLogy();
958 gPad->SetLogx();
959 gPad->SetGridx();
960 gPad->SetGridy();
961 gr323 = new TGraphErrors(nPtBins,meanpt,n323,errx,sigmn323);
962 gr323->SetName("mygraph323");
963 gr323->SetLineColor(1);
964 gr323->SetLineWidth(1);
965 gr323->SetMarkerColor(4);
966 gr323->SetMarkerStyle(21);
967 gr323->SetMarkerSize(.5);
968 titlegraph1="NTracks without SDD1 point for ";
969 titlegraph1.Append(partforgraph);
970 // titlegraph1.Append(" using Vertex on the Fly");
971 gr323->SetTitle(titlegraph1);
972 gr323->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
973 gr323->GetYaxis()->SetTitle("");
974 gr323->Draw("AP");
975
976 fitting1->cd(3);
977 // gPad->SetLogy();
978 gPad->SetLogx();
979 gPad->SetGridx();
980 gPad->SetGridy();
981 gr331 = new TGraphErrors(nPtBins,meanpt,n331,errx,sigmn331);
982 gr331->SetName("mygraph331");
983 gr331->SetLineColor(1);
984 gr331->SetLineWidth(1);
985 gr331->SetMarkerColor(4);
986 gr331->SetMarkerStyle(21);
987 gr331->SetMarkerSize(.5);
988 titlegraph1="NTracks without SPD2 point for ";
989 titlegraph1.Append(partforgraph);
990 // titlegraph1.Append(" using Vertex on the Fly");
991 gr331->SetTitle(titlegraph1);
992 gr331->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
993 gr331->GetYaxis()->SetTitle("");
994 gr331->Draw("AP");
995
996 fitting1->cd(6);
997 // gPad->SetLogy();
998 gPad->SetLogx();
999 gPad->SetGridx();
1000 gPad->SetGridy();
1001 gr332 = new TGraphErrors(nPtBins,meanpt,n332,errx,sigmn332);
1002 gr332->SetName("mygraph332");
1003 gr332->SetLineColor(1);
1004 gr332->SetLineWidth(1);
1005 gr332->SetMarkerColor(4);
1006 gr332->SetMarkerStyle(21);
1007 gr332->SetMarkerSize(.5);
1008 titlegraph1="NTracks without SPD1 point for ";
1009 titlegraph1.Append(partforgraph);
1010 // titlegraph1.Append(" using Vertex on the Fly");
1011 gr332->SetTitle(titlegraph1);
1012 gr332->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1013 gr332->GetYaxis()->SetTitle("");
1014 gr332->Draw("AP");
1015
1016
1017 TCanvas* fitting2 = new TCanvas("fitting2","SPD Scenario tracks analysis",cWidth,cHeight);
1018 fitting2->Divide(3,2);
1019
1020 fitting2->cd(1);
1021 gPad->SetLogx();
1022 gPad->SetGridx();
1023 gPad->SetGridy();
1024 gr331->Draw("AP");
1025
1026 fitting2->cd(2);
1027 gPad->SetLogx();
1028 gPad->SetGridx();
1029 gPad->SetGridy();
1030 gr332->Draw("AP");
1031
1032 fitting2->cd(3);
1033 // gPad->SetLogy();
1034 gPad->SetLogx();
1035 gPad->SetGridx();
1036 gPad->SetGridy();
1037 gr330 = new TGraphErrors(nPtBins,meanpt,n330,errx,sigmn330);
1038 gr330->SetName("mygraph330");
1039 gr330->SetLineColor(1);
1040 gr330->SetLineWidth(1);
1041 gr330->SetMarkerColor(4);
1042 gr330->SetMarkerStyle(21);
1043 gr330->SetMarkerSize(.5);
1044 titlegraph1="NTracks without 2 SPD points for ";
1045 //titlegraph1="d_{0}(r#phi) Resolution for ";
1046 titlegraph1.Append(partforgraph);
1047 // titlegraph1.Append(" using True Vertex");
1048 gr330->SetTitle(titlegraph1);
1049 gr330->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1050 gr330->GetYaxis()->SetTitle("");
1051 gr330->Draw("AP");
1052
1053 fitting2->cd(4);
1054 // gPad->SetLogy();
1055 gPad->SetLogx();
1056 gPad->SetGridx();
1057 gPad->SetGridy();
1058 grSSD = new TGraphErrors(nPtBins,meanpt,nSSD,errx,sigmnSSD);
1059 grSSD->SetName("mygraphSSD");
1060 grSSD->SetLineColor(1);
1061 grSSD->SetLineWidth(1);
1062 grSSD->SetMarkerColor(4);
1063 grSSD->SetMarkerStyle(21);
1064 grSSD->SetMarkerSize(.5);
1065 titlegraph1="NTracks without one SSD point for ";
1066 //titlegraph1="d_{0}(r#phi) Resolution for ";
1067 titlegraph1.Append(partforgraph);
1068 // titlegraph1.Append(" using True Vertex");
1069 grSSD->SetTitle(titlegraph1);
1070 grSSD->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1071 grSSD->GetYaxis()->SetTitle("");
1072 grSSD->Draw("AP");
1073
1074 fitting2->cd(5);
1075 // gPad->SetLogy();
1076 gPad->SetLogx();
1077 gPad->SetGridx();
1078 gPad->SetGridy();
1079 grSDD = new TGraphErrors(nPtBins,meanpt,nSDD,errx,sigmnSDD);
1080 grSDD->SetName("mygraphSDD");
1081 grSDD->SetLineColor(1);
1082 grSDD->SetLineWidth(1);
1083 grSDD->SetMarkerColor(4);
1084 grSDD->SetMarkerStyle(21);
1085 grSDD->SetMarkerSize(.5);
1086 titlegraph1="NTracks without one SDD point for ";
1087 //titlegraph1="d_{0}(r#phi) Resolution for ";
1088 titlegraph1.Append(partforgraph);
1089 // titlegraph1.Append(" using True Vertex");
1090 grSDD->SetTitle(titlegraph1);
1091 grSDD->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1092 grSDD->GetYaxis()->SetTitle("");
1093 grSDD->Draw("AP");
1094
1095 fitting2->cd(6);
1096 // gPad->SetLogy();
1097 gPad->SetLogx();
1098 gPad->SetGridx();
1099 gPad->SetGridy();
1100 grOTHERS = new TGraphErrors(nPtBins,meanpt,nOTHERS,errx,sigmnOTHERS);
1101 grOTHERS->SetName("mygraphOTHERS");
1102 grOTHERS->SetLineColor(1);
1103 grOTHERS->SetLineWidth(1);
1104 grOTHERS->SetMarkerColor(4);
1105 grOTHERS->SetMarkerStyle(21);
1106 grOTHERS->SetMarkerSize(.5);
1107 titlegraph1="NTracks with 4 points (2 SPD+ ?)for ";
1108 //titlegraph1="d_{0}(r#phi) Resolution for ";
1109 titlegraph1.Append(partforgraph);
1110 // titlegraph1.Append(" using True Vertex");
1111 grOTHERS->SetTitle(titlegraph1);
1112 grOTHERS->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1113 grOTHERS->GetYaxis()->SetTitle("");
1114 grOTHERS->Draw("AP");
1115
1116 ceff0->cd();
1117 gr330->Draw("p");
1118 gr331->Draw("p");
1119 gr332->Draw("p");
1120 grSSD->Draw("p");
1121 grSDD->Draw("p");
1122 // gr313->Draw("p");
1123 // gr323->Draw("p");
1124 //gr133->Draw("p");
1125 //gr233->Draw("p");
1126
1127
1128 //---------CLOSE EVRYTHING AND SAVE------------
1129 TFile *outfile = new TFile("EfficienciesAnalysis.root","recreate");
1130 gr4->Write();
1131 gr5->Write();
1132 gr6->Write();
1133 gr456->Write();
1134 gr4toGen->Write();
1135 gr5toGen->Write();
1136 gr6toGen->Write();
1137 gr456toGen->Write();
1138 grTPCtoGen->Write();
1139 gr4to6cls->Write();
1140 gr5to6cls->Write();
1141 gr6to6cls->Write();
1142 //gr456to6cls->Write();
1143 //gr330->Write();
1144 //gr331->Write();
1145 //gr332->Write();
1146 //gr323->Write();
1147 //gr313->Write();
1148 //gr133->Write();
1149 //gr233->Write();
1150 //grOTHERS->Write();
1151 //grSPD->Write();
1152 //grSSD->Write();
1153 //grSDD->Write();
1154 outfile->Close();
1155
1156
1157 printf("Number of fakes: %d\n",nfakes);
1158 return;
1159}
1160//--------------------------------------------------------------------------
1161Int_t ITSnCluster(Int_t ITSf)
1162{
1163 Int_t sign,aITSf,n0,n3,aux,ITSsel;//be careful!:working with integer!
1164 n0=0;
1165 n3=0;
1166 aITSf=TMath::Abs(ITSf);
1167 if(aITSf==0)sign=0;
1168 else if (aITSf==ITSf)sign=1;
1169 else if(aITSf==-ITSf)sign=-1;
1170
1171 if (aITSf/100<1)n0++;
1172 n3=aITSf/300;
1173 aux=(aITSf-(aITSf/100)*100);
1174 if(aux/10<1)n0++;
1175 n3+=aux/30;
1176 aux=(aux-(aux/10)*10);
1177 if (aux==0)n0++;
1178 n3+=aux/3;
1179 ITSsel=3+n3-n0;
1180
1181 if(ITSsel>6) {
1182 cout<<"Wrong ITSflag assignment!"<<endl;
1183 return 99;
1184 }
1185
1186 return ITSsel*sign;
1187}
1188//----------------------------------------------------------------------------