1 void PlotITSTrackingEff(TString filename="ITS.Performance.root",
3 TString partforgraph="pions",
5 Bool_t useAbsPdg=kTRUE,
7 Bool_t askITSrefit=kTRUE,
11 // Macro to plot ITS tracking efficiency from ITS.Performance.root
16 if(gSystem->AccessPathName(filename.Data())) {
17 printf("file not found!\n");
20 TFile *file= TFile::Open(filename.Data());
21 cout<<"Open File "<<filename<<endl;
23 TList *list = (TList*)file->Get("cOutputITS");
24 TNtuple *ntTracks = (TNtuple*)list->FindObject("fNtupleESDTracks");
26 //Getting and Addressing NTuples
27 Float_t pt,ptmes,eta,phi,pdg,d0True,d0TV,d0zTV,sigmad0zTV,d0All,d0Oth,sigmad0Oth,ITSflag,sigmad0TV,sigmad0All;
28 ntTracks->SetBranchAddress("pt",&ptmes);
29 ntTracks->SetBranchAddress("ptMC",&pt);
30 ntTracks->SetBranchAddress("eta",&eta);
31 ntTracks->SetBranchAddress("phi",&phi);
32 ntTracks->SetBranchAddress("pdgMC",&pdg);
33 ntTracks->SetBranchAddress("d0MC",&d0True);
34 ntTracks->SetBranchAddress("d0MCv",&d0TV);
35 ntTracks->SetBranchAddress("z0MCv",&d0zTV);
36 ntTracks->SetBranchAddress("sigmad0MCv",&sigmad0TV);
37 ntTracks->SetBranchAddress("sigmaz0MCv",&sigmad0zTV);
38 ntTracks->SetBranchAddress("d0",&d0All);
39 ntTracks->SetBranchAddress("sigmad0",&sigmad0All);
40 ntTracks->SetBranchAddress("ITSflag",&ITSflag);
43 TString titlegraph1,titlefile;
44 Int_t ntracks,nITSsel,nfakes=0;
45 const Int_t nPtBins=10;
46 Double_t meanpt[nPtBins];
47 ///////////////////////////////////////////////////////////////////////////
48 Double_t nprimgen[nPtBins];
49 Float_t nfiles=48.; if(!useAbsPdg) nfiles*=0.5;
50 for(Int_t j=0; j<nPtBins; j++) nprimgen[j]=nfiles*50.;// *18.;
51 // the factor 50 is for the cut |eta|<0.9
52 // the factor 18 is for the cut 0.9<|eta|<1.4
53 ///////////////////////////////////////////////////////////////////////////
54 Double_t n6ITSclspart[nPtBins],n5ITSclspart[nPtBins],n4ITSclspart[nPtBins],n3ITSclspart[nPtBins],n2ITSclspart[nPtBins],n1ITSclspart[nPtBins];
55 Double_t n6ITSclsparttoTPC[nPtBins],n5ITSclsparttoTPC[nPtBins],n4ITSclsparttoTPC[nPtBins],n3ITSclsparttoTPC[nPtBins],n2ITSclsparttoTPC[nPtBins];
56 Double_t nSPD[nPtBins],n2ITS[nPtBins],n3ITS[nPtBins],n4ITS[nPtBins],n5ITS[nPtBins],n6ITS[nPtBins],n456ITS[nPtBins],ptbinning[2*nPtBins],ntottr[nPtBins];
57 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];
58 Double_t nSPDtoGen[nPtBins],n2ITStoGen[nPtBins],n3ITStoGen[nPtBins],n4ITStoGen[nPtBins],n5ITStoGen[nPtBins],n6ITStoGen[nPtBins],n456ITStoGen[nPtBins],nTPCtoGen[nPtBins];
59 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];
60 Double_t n330[nPtBins],n331[nPtBins],n332[nPtBins],n313[nPtBins],n323[nPtBins],n133[nPtBins],n233[nPtBins],nOTHERS[nPtBins],nSSD[nPtBins],nSDD[nPtBins];
62 Double_t sigmnSPD[nPtBins],sigmn4ITS[nPtBins],sigmn5ITS[nPtBins],sigmn6ITS[nPtBins],sigmn456ITS[nPtBins],ptbinning[2*nPtBins],ntottr[nPtBins];
63 Double_t sigmnSPDtoGen[nPtBins],sigmn2ITStoGen[nPtBins],sigmn3ITStoGen[nPtBins],sigmn4ITStoGen[nPtBins],sigmn5ITStoGen[nPtBins],sigmn6ITStoGen[nPtBins],sigmn456ITStoGen[nPtBins],sigmnTPCtoGen[nPtBins];
64 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];
65 Double_t sigmn330[nPtBins],sigmn331[nPtBins],sigmn332[nPtBins],sigmn313[nPtBins],sigmn323[nPtBins],sigmn133[nPtBins],sigmn233[nPtBins],sigmnOTHERS[nPtBins],sigmnSSD[nPtBins],sigmnSDD[nPtBins];
66 Double_t sigmn6ITSclsparttoTPC[nPtBins],sigmn5ITSclsparttoTPC[nPtBins],sigmn4ITSclsparttoTPC[nPtBins],sigmn3ITSclsparttoTPC[nPtBins],sigmn2ITSclsparttoTPC[nPtBins];
68 Double_t errx[nPtBins];
70 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;
72 for(Int_t j=0;j<nPtBins;j++) {
165 // ------------ Starting Loop on Tracks ----------
166 ntracks=ntTracks->GetEntries();
167 printf("number of Tracks %d \n",ntracks);
169 for (Int_t j=0;j<ntracks;j++) {
170 if(j%10000==0) printf("Reading track %d\n",j);
171 ntTracks->GetEvent(j);
172 if(TMath::Abs(d0True)>1.) continue; // only primaries
173 if(TMath::Abs(eta)>0.9) continue; // only tracks with |etapart|<0.9
174 //if(TMath::Abs(eta)<0.9 || TMath::Abs(eta)>1.4) continue; // only tracks with 0.9<|etapart|<1.4
175 Float_t theta = 2.*TMath::ATan(TMath::Exp(-eta));
176 //if(TMath::Abs(TMath::Abs(phi)-0.5*TMath::Pi())>0.5 || TMath::Abs(theta-0.5*TMath::Pi())>0.5) continue;
177 //if(phi<(.5+0.25)*TMath::Pi() || phi>(.5+0.45)*TMath::Pi()) continue;
178 if(ITSflag<0) nfakes++;
179 //printf(" %d\n",ITSflag);
180 if(nofakes && ITSflag<0) continue; // reject fakes
181 ITSflag=TMath::Abs(ITSflag);
182 //printf("%d\n",ITSflag);
183 Int_t ITSflagorig=ITSflag;
184 Int_t nTPCcls = (Int_t)(ITSflag/100000);
185 ITSflag -= nTPCcls*100000;
186 Int_t nITSclspart = (Int_t)(ITSflag/10000);
187 ITSflag -= nITSclspart*10000;
188 //printf("%d\n",ITSflag);
189 Int_t nITSclsassign = (Int_t)(ITSflag/1000);
190 ITSflag -= nITSclsassign*1000;
191 //printf("%d\n",ITSflag);
192 //printf("%d\n",ITSflag);
193 nITSsel=ITSnCluster(ITSflag);
196 if(nTPCcls<=minTPCcls) continue;
198 if(useAbsPdg) pdg=TMath::Abs(pdg);
199 if(pdg!=pdgcode) continue;
201 for (Int_t k=0; k<nPtBins; k++) {
202 if(ptbinning[2*k]<pt&&pt<ptbinning[2*k+1]) {
203 //if(nITSclspart==3) {nITSclspart=5;}else{nITSclspart=-1;}
207 if(nITSclspart==6) n6ITSclspart[k]+=1.;
208 if(nITSclspart==5) n5ITSclspart[k]+=1.;
209 if(nITSclspart==4) n4ITSclspart[k]+=1.;
210 if(nITSclspart==3) n3ITSclspart[k]+=1.;
211 if(nITSclspart==2) n2ITSclspart[k]+=1.;
213 if(askITSrefit && sigmad0TV<0.) continue;
214 if(nITSclsassign!=nITSsel) cout<<" ERROR "<<ITSflag<<" "<<nITSclsassign<<" "<<nITSsel<<" "<<ITSflagorig<<endl;
216 if(nITSsel==2) n2ITS[k]+=1.;
217 if(nITSsel==3) n3ITS[k]+=1.;
218 if(nITSsel==4) n4ITS[k]+=1.;
219 if(nITSsel==5) n5ITS[k]+=1.;
220 if(nITSsel==6) n6ITS[k]+=1.;
222 if(((Int_t)ITSflag)%10==3) nSPD[k]+=1.; // both SPD
225 if(nITSsel==1) n1ITSnorm6[k]+=1.;
226 if(nITSsel==2) n2ITSnorm6[k]+=1.;
227 if(nITSsel==3) n3ITSnorm6[k]+=1.;
228 if(nITSsel==4) n4ITSnorm6[k]+=1.;
229 if(nITSsel==5) n5ITSnorm6[k]+=1.;
230 if(nITSsel==6) n6ITSnorm6[k]+=1.;
233 if(nITSsel==4) n4ITSnorm5[k]+=1.;
234 if(nITSsel==5) n5ITSnorm5[k]+=1.;
237 if(nITSsel==3) n3ITSnorm4[k]+=1.;
238 if(nITSsel==4) n4ITSnorm4[k]+=1.;
241 if(nITSsel==2) n2ITSnorm3[k]+=1.;
242 if(nITSsel==3) n3ITSnorm3[k]+=1.;
245 if(nITSsel==1) n1ITSnorm2[k]+=1.;
246 if(nITSsel==2) n2ITSnorm2[k]+=1.;
249 if(k==nPtBins-1 && nITSclspart==5 && nITSsel==4) printf("nClustersPart %d nClustersTrack %d Map %d\n",nITSclspart,nITSsel,ITSflag);
255 } else if(ITSflag==331) {
257 } else if(ITSflag==323) {
259 } else if(ITSflag==313) {
261 } else if(ITSflag==233) {
263 } else if(ITSflag==133) {
269 } else if(ITSflag!=333) {
276 } //end loop on tracks
278 printf("%d %d %d %d %d\n",n2ITS[9],n3ITS[9],n4ITS[9],n5ITS[9],n6ITS[9]);
280 for(Int_t k=0;k<nPtBins;k++) {
281 if(n6ITSclspart[k]<1) n6ITSclspart[k]=1.;
282 if(n5ITSclspart[k]<1) n5ITSclspart[k]=1.;
283 if(n4ITSclspart[k]<1) n4ITSclspart[k]=1.;
284 if(n3ITSclspart[k]<1) n3ITSclspart[k]=1.;
285 if(n2ITSclspart[k]<1) n2ITSclspart[k]=1.;
286 if(n1ITSclspart[k]<1) n1ITSclspart[k]=1.;
288 //cout<<n1ITSclspart[k]<<" "<<n2ITSclspart[k]<<" "<<n3ITSclspart[k]<<" "<<n4ITSclspart[k]<<" "<<n5ITSclspart[k]<<" "<<n6ITSclspart[k]<<endl;
291 meanpt[k]=meanpt[k]/ntottr[k];
293 nSPDtoGen[k]=nSPD[k]/nprimgen[k];
294 n2ITStoGen[k]=n2ITS[k]/nprimgen[k];
295 n3ITStoGen[k]=n3ITS[k]/nprimgen[k];
296 n4ITStoGen[k]=n4ITS[k]/nprimgen[k];
297 n5ITStoGen[k]=n5ITS[k]/nprimgen[k];
298 n6ITStoGen[k]=n6ITS[k]/nprimgen[k];
299 nTPCtoGen[k]=ntottr[k]/nprimgen[k];
300 n456ITStoGen[k]=n4ITStoGen[k]+n5ITStoGen[k]+n6ITStoGen[k];
302 n1ITSto6cls[k]=n1ITSnorm6[k]/n6ITSclspart[k];
303 n2ITSto6cls[k]=n2ITSnorm6[k]/n6ITSclspart[k];
304 n3ITSto6cls[k]=n3ITSnorm6[k]/n6ITSclspart[k];
305 n4ITSto6cls[k]=n4ITSnorm6[k]/n6ITSclspart[k];
306 n5ITSto6cls[k]=n5ITSnorm6[k]/n6ITSclspart[k];
307 n6ITSto6cls[k]=n6ITSnorm6[k]/n6ITSclspart[k];
308 n4ITSto5cls[k]=n4ITSnorm5[k]/n5ITSclspart[k];
309 n5ITSto5cls[k]=n5ITSnorm5[k]/n5ITSclspart[k];
310 n3ITSto4cls[k]=n3ITSnorm4[k]/n4ITSclspart[k];
311 n4ITSto4cls[k]=n4ITSnorm4[k]/n4ITSclspart[k];
312 n2ITSto3cls[k]=n2ITSnorm3[k]/n3ITSclspart[k];
313 n3ITSto3cls[k]=n3ITSnorm3[k]/n3ITSclspart[k];
314 n1ITSto2cls[k]=n1ITSnorm2[k]/n2ITSclspart[k];
315 n2ITSto2cls[k]=n2ITSnorm2[k]/n2ITSclspart[k];
317 nTPCto6cls[k]=ntottr[k]/n6ITSclspart[k];
318 n456ITSto6cls[k]=n4ITSto6cls[k]+n5ITSto6cls[k]+n6ITSto6cls[k];
319 //cout<<meanpt[k]<<" "<<n6ITSnorm6[k]<<" "<<n6ITSclspart[k]<<endl;
321 n6ITSclsparttoTPC[k]=n6ITSclspart[k]/ntottr[k];
322 n5ITSclsparttoTPC[k]=n5ITSclspart[k]/ntottr[k];
323 n4ITSclsparttoTPC[k]=n4ITSclspart[k]/ntottr[k];
324 n3ITSclsparttoTPC[k]=n3ITSclspart[k]/ntottr[k];
325 n2ITSclsparttoTPC[k]=n2ITSclspart[k]/ntottr[k];
327 n4ITS[k]=n4ITS[k]/ntottr[k];
328 n5ITS[k]=n5ITS[k]/ntottr[k];
329 n6ITS[k]=n6ITS[k]/ntottr[k];
331 n330[k]=n330[k]/ntottr[k];
332 n331[k]=n331[k]/n5ITSclspart[k];
333 n332[k]=n332[k]/n5ITSclspart[k];
334 n313[k]=n313[k]/n5ITSclspart[k];
335 n323[k]=n323[k]/n5ITSclspart[k];
336 n133[k]=n133[k]/n5ITSclspart[k];
337 n233[k]=n233[k]/n5ITSclspart[k];
338 nOTHERS[k]=nOTHERS[k]/ntottr[k];
339 n456ITS[k]=n4ITS[k]+n5ITS[k]+n6ITS[k];
340 nSSD[k]=n133[k]+n233[k];
341 nSDD[k]=n323[k]+n313[k];
344 sigmn4ITS[k]=TMath::Sqrt(n4ITS[k]*(1-n4ITS[k])/ntottr[k]);
345 sigmn5ITS[k]=TMath::Sqrt(n5ITS[k]*(1-n5ITS[k])/ntottr[k]);
346 sigmn6ITS[k]=TMath::Sqrt(n6ITS[k]*(1-n6ITS[k])/ntottr[k]);
347 sigmn456ITS[k]=TMath::Sqrt(n456ITS[k]*(1-n456ITS[k])/ntottr[k]);
349 sigmn2ITSclsparttoTPC[k]=TMath::Sqrt(n2ITSclsparttoTPC[k]*(1-n2ITSclsparttoTPC[k])/ntottr[k]);
350 sigmn3ITSclsparttoTPC[k]=TMath::Sqrt(n3ITSclsparttoTPC[k]*(1-n3ITSclsparttoTPC[k])/ntottr[k]);
351 sigmn4ITSclsparttoTPC[k]=TMath::Sqrt(n4ITSclsparttoTPC[k]*(1-n4ITSclsparttoTPC[k])/ntottr[k]);
352 sigmn5ITSclsparttoTPC[k]=TMath::Sqrt(n5ITSclsparttoTPC[k]*(1-n5ITSclsparttoTPC[k])/ntottr[k]);
353 sigmn6ITSclsparttoTPC[k]=TMath::Sqrt(n6ITSclsparttoTPC[k]*(1-n6ITSclsparttoTPC[k])/ntottr[k]);
355 sigmnSPDtoGen[k]=TMath::Sqrt(nSPDtoGen[k]*(1-nSPDtoGen[k])/nprimgen[k]);
356 sigmn2ITStoGen[k]=TMath::Sqrt(n2ITStoGen[k]*(1-n2ITStoGen[k])/nprimgen[k]);
357 sigmn3ITStoGen[k]=TMath::Sqrt(n3ITStoGen[k]*(1-n3ITStoGen[k])/nprimgen[k]);
358 sigmn4ITStoGen[k]=TMath::Sqrt(n4ITStoGen[k]*(1-n4ITStoGen[k])/nprimgen[k]);
359 sigmn5ITStoGen[k]=TMath::Sqrt(n5ITStoGen[k]*(1-n5ITStoGen[k])/nprimgen[k]);
360 sigmn6ITStoGen[k]=TMath::Sqrt(n6ITStoGen[k]*(1-n6ITStoGen[k])/nprimgen[k]);
361 sigmn456ITStoGen[k]=TMath::Sqrt(n456ITStoGen[k]*(1-n456ITStoGen[k])/nprimgen[k]);
362 sigmnTPCtoGen[k]=TMath::Sqrt(nTPCtoGen[k]*(1-nTPCtoGen[k])/nprimgen[k]);
363 sigmnTPCto6cls[k]=TMath::Sqrt(nTPCto6cls[k]*(1-nTPCto6cls[k])/n6ITSclspart[k]);
365 sigmn1ITSto6cls[k]=TMath::Sqrt(n1ITSto6cls[k]*(1-n1ITSto6cls[k])/n6ITSclspart[k]);
366 sigmn2ITSto6cls[k]=TMath::Sqrt(n2ITSto6cls[k]*(1-n2ITSto6cls[k])/n6ITSclspart[k]);
367 sigmn3ITSto6cls[k]=TMath::Sqrt(n3ITSto6cls[k]*(1-n3ITSto6cls[k])/n6ITSclspart[k]);
368 sigmn4ITSto6cls[k]=TMath::Sqrt(n4ITSto6cls[k]*(1-n4ITSto6cls[k])/n6ITSclspart[k]);
369 sigmn5ITSto6cls[k]=TMath::Sqrt(n5ITSto6cls[k]*(1-n5ITSto6cls[k])/n6ITSclspart[k]);
370 sigmn6ITSto6cls[k]=TMath::Sqrt(n6ITSto6cls[k]*(1-n6ITSto6cls[k])/n6ITSclspart[k]);
371 sigmn4ITSto5cls[k]=TMath::Sqrt(n4ITSto5cls[k]*(1-n4ITSto5cls[k])/n5ITSclspart[k]);
372 sigmn5ITSto5cls[k]=TMath::Sqrt(n5ITSto5cls[k]*(1-n5ITSto5cls[k])/n5ITSclspart[k]);
373 sigmn3ITSto4cls[k]=TMath::Sqrt(n3ITSto4cls[k]*(1-n3ITSto4cls[k])/n4ITSclspart[k]);
374 sigmn4ITSto4cls[k]=TMath::Sqrt(n4ITSto4cls[k]*(1-n4ITSto4cls[k])/n4ITSclspart[k]);
375 sigmn2ITSto3cls[k]=TMath::Sqrt(n2ITSto3cls[k]*(1-n2ITSto3cls[k])/n3ITSclspart[k]);
376 sigmn3ITSto3cls[k]=TMath::Sqrt(n3ITSto3cls[k]*(1-n3ITSto3cls[k])/n3ITSclspart[k]);
377 sigmn1ITSto2cls[k]=TMath::Sqrt(n1ITSto2cls[k]*(1-n1ITSto2cls[k])/n2ITSclspart[k]);
378 sigmn2ITSto2cls[k]=TMath::Sqrt(n2ITSto2cls[k]*(1-n2ITSto2cls[k])/n2ITSclspart[k]);
379 sigmn456ITSto6cls[k]=TMath::Sqrt(n456ITSto6cls[k]*(1-n456ITSto6cls[k])/n6ITSclspart[k]);
381 sigmn330[k]=TMath::Sqrt(n330[k]*(1-n330[k])/ntottr[k]);
382 sigmn331[k]=TMath::Sqrt(n331[k]*(1-n331[k])/ntottr[k]);
383 sigmn332[k]=TMath::Sqrt(n332[k]*(1-n332[k])/ntottr[k]);
384 sigmn313[k]=TMath::Sqrt(n313[k]*(1-n313[k])/ntottr[k]);
385 sigmn323[k]=TMath::Sqrt(n323[k]*(1-n323[k])/ntottr[k]);
386 sigmn133[k]=TMath::Sqrt(n133[k]*(1-n133[k])/ntottr[k]);
387 sigmn233[k]=TMath::Sqrt(n233[k]*(1-n233[k])/ntottr[k]);
390 sigmnOTHERS[k]=TMath::Sqrt(nOTHERS[k]*(1-nOTHERS[k])/ntottr[k]);
391 sigmnSSD[k]=TMath::Sqrt((n133[k]+n233[k])*(1-n133[k]-n233[k])/ntottr[k]);
392 sigmnSDD[k]=TMath::Sqrt((n323[k]+n313[k])*(1-n323[k]-n313[k])/ntottr[k]);
394 meanpt[k]=(ptbinning[2*k+1]+ptbinning[2*k])/2.;
397 } // end loop on pt bins
399 //-------DRAWING TGRAPH--------
401 const int cWidth = 500;
402 const int cHeight = (int)(500*(29.7/21.));
404 TCanvas* ceff0 = new TCanvas("ceff0","ceff0",cWidth,cHeight);
408 gr4 = new TGraphErrors(nPtBins,meanpt,n4ITS,errx,sigmn4ITS);
409 gr4->SetName("mygraph04ITS");
410 gr4->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
411 gr4->SetLineColor(1);
412 gr4->SetLineWidth(1);
413 gr4->SetMarkerColor(2);
414 gr4->SetMarkerStyle(21);
415 gr4->SetMarkerSize(1);
416 gr4->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
417 gr4->GetYaxis()->SetTitle("ITS efficiency (normalized to TPC trks)");
418 gr4->SetMaximum(1.2);
422 gr5 = new TGraphErrors(nPtBins,meanpt,n5ITS,errx,sigmn5ITS);
423 gr5->SetName("mygraph05ITS");
424 gr5->SetLineColor(1);
425 gr5->SetLineWidth(1);
426 gr5->SetMarkerColor(8);
427 gr5->SetMarkerStyle(21);
428 gr5->SetMarkerSize(1.);
429 gr5->SetTitle(titlegraph1);
430 gr5->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
431 gr5->GetYaxis()->SetTitle("");
434 gr6 = new TGraphErrors(nPtBins,meanpt,n6ITS,errx,sigmn6ITS);
435 gr6->SetName("mygraph06ITS");
436 gr6->SetLineColor(1);
437 gr6->SetLineWidth(1);
438 gr6->SetMarkerColor(4);
439 gr6->SetMarkerStyle(21);
440 gr6->SetMarkerSize(1.);
441 gr6->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
442 gr6->GetYaxis()->SetTitle("");
445 gr456 = new TGraphErrors(nPtBins,meanpt,n456ITS,errx,sigmn456ITS);
446 gr456->SetName("mygraph456ITS");
447 gr456->SetLineColor(1);
448 gr456->SetLineWidth(1);
449 gr456->SetMarkerColor(1);
450 gr456->SetMarkerStyle(21);
451 gr456->SetMarkerSize(1.);
452 gr456->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
453 gr456->GetYaxis()->SetTitle("");
456 TLegend *l0 = new TLegend(0.5,0.5,0.9,0.9);
458 l0->SetBorderSize(0);
459 l0->AddEntry(gr4,"kTPCin + 4 ITS cls","p");
460 l0->AddEntry(gr5,"kTPCin + 5 ITS cls","p");
461 l0->AddEntry(gr6,"kTPCin + 6 ITS cls","p");
462 l0->AddEntry(gr456,"kTPCin + 4or5or6 ITS cls","p");
465 TCanvas* ceff1 = new TCanvas("ceff1","ceff1",cWidth,cHeight);
469 gr4toGen = new TGraphErrors(nPtBins,meanpt,n4ITStoGen,errx,sigmn4ITStoGen);
470 gr4toGen->SetName("mygraph04ITStoGen");
471 gr4toGen->SetTitle("Physical tracking efficiency (B=0.5T, no misal.)");
472 gr4toGen->SetLineColor(1);
473 gr4toGen->SetLineWidth(1);
474 gr4toGen->SetMarkerColor(2);
475 gr4toGen->SetMarkerStyle(24);
476 gr4toGen->SetMarkerSize(1.);
477 gr4toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
478 gr4toGen->GetYaxis()->SetTitle("Physical efficiency (normalized to generated)");
479 gr4toGen->SetMaximum(1.2);
480 gr4toGen->SetMinimum(0.);
481 gr4toGen->Draw("AP");
483 gr2toGen = new TGraphErrors(nPtBins,meanpt,n2ITStoGen,errx,sigmn2ITStoGen);
484 gr2toGen->SetName("mygraph02ITStoGen");
485 gr2toGen->SetLineColor(1);
486 gr2toGen->SetLineWidth(1);
487 gr2toGen->SetMarkerColor(1);
488 gr2toGen->SetMarkerStyle(20);
489 gr2toGen->SetMarkerSize(1.);
490 gr2toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
491 gr2toGen->GetYaxis()->SetTitle("");
494 gr3toGen = new TGraphErrors(nPtBins,meanpt,n3ITStoGen,errx,sigmn3ITStoGen);
495 gr3toGen->SetName("mygraph03ITStoGen");
496 gr3toGen->SetLineColor(1);
497 gr3toGen->SetLineWidth(1);
498 gr3toGen->SetMarkerColor(2);
499 gr3toGen->SetMarkerStyle(21);
500 gr3toGen->SetMarkerSize(1.);
501 gr3toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
502 gr3toGen->GetYaxis()->SetTitle("");
505 gr5toGen = new TGraphErrors(nPtBins,meanpt,n5ITStoGen,errx,sigmn5ITStoGen);
506 gr5toGen->SetName("mygraph05ITStoGen");
507 gr5toGen->SetLineColor(1);
508 gr5toGen->SetLineWidth(1);
509 gr5toGen->SetMarkerColor(8);
510 gr5toGen->SetMarkerStyle(24);
511 gr5toGen->SetMarkerSize(1.);
512 gr5toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
513 gr5toGen->GetYaxis()->SetTitle("");
516 gr6toGen = new TGraphErrors(nPtBins,meanpt,n6ITStoGen,errx,sigmn6ITStoGen);
517 gr6toGen->SetName("mygraph06ITStoGen");
518 gr6toGen->SetLineColor(1);
519 gr6toGen->SetLineWidth(1);
520 gr6toGen->SetMarkerColor(4);
521 gr6toGen->SetMarkerStyle(24);
522 gr6toGen->SetMarkerSize(1.);
523 gr6toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
524 gr6toGen->GetYaxis()->SetTitle("");
527 gr456toGen = new TGraphErrors(nPtBins,meanpt,n456ITStoGen,errx,sigmn456ITStoGen);
528 gr456toGen->SetName("mygraph0456ITStoGen");
529 gr456toGen->SetLineColor(1);
530 gr456toGen->SetLineWidth(1);
531 gr456toGen->SetMarkerColor(1);
532 gr456toGen->SetMarkerStyle(24);
533 gr456toGen->SetMarkerSize(1.);
534 gr456toGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
535 gr456toGen->GetYaxis()->SetTitle("");
536 //gr456toGen->Draw("P");
539 grTPCtoGen = new TGraphErrors(nPtBins,meanpt,nTPCtoGen,errx,sigmnTPCtoGen);
540 grTPCtoGen->SetName("mygraph0TPCtoGen");
541 grTPCtoGen->SetLineColor(1);
542 grTPCtoGen->SetLineWidth(1);
543 grTPCtoGen->SetMarkerColor(6);
544 grTPCtoGen->SetMarkerStyle(20);
545 grTPCtoGen->SetMarkerSize(1.);
546 grTPCtoGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
547 grTPCtoGen->GetYaxis()->SetTitle("");
548 grTPCtoGen->Draw("P");
550 grSPDtoGen = new TGraphErrors(nPtBins,meanpt,nSPDtoGen,errx,sigmnSPDtoGen);
551 grSPDtoGen->SetName("mygraph0SPDtoGen");
552 grSPDtoGen->SetLineColor(1);
553 grSPDtoGen->SetLineWidth(1);
554 grSPDtoGen->SetMarkerColor(9);
555 grSPDtoGen->SetMarkerStyle(22);
556 grSPDtoGen->SetMarkerSize(1.3);
557 grSPDtoGen->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
558 grSPDtoGen->GetYaxis()->SetTitle("");
559 grSPDtoGen->Draw("P");
562 TLegend *l1 = new TLegend(0.5,0.5,0.9,0.9);
564 l1->SetBorderSize(0);
565 l1->AddEntry(grTPCtoGen,"kTPCin","p");
566 l1->AddEntry(grSPDtoGen,"kTPCin + 2 SPD cls","p");
567 l1->AddEntry(gr2toGen,"kTPCin + 2 ITS cls","p");
568 l1->AddEntry(gr3toGen,"kTPCin + 3 ITS cls","p");
569 l1->AddEntry(gr4toGen,"kTPCin + 4 ITS cls","p");
570 l1->AddEntry(gr5toGen,"kTPCin + 5 ITS cls","p");
571 l1->AddEntry(gr6toGen,"kTPCin + 6 ITS cls","p");
572 //l1->AddEntry(gr456toGen,"kTPCin + 4or5or6 ITS cls","p");
577 TCanvas* ceff2_6 = new TCanvas("ceff2_6","ceff2_6",cWidth,cHeight);
581 gr4to6cls = new TGraphErrors(nPtBins,meanpt,n4ITSto6cls,errx,sigmn4ITSto6cls);
582 gr4to6cls->SetName("mygraph04ITSto6cls");
583 gr4to6cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
584 gr4to6cls->SetLineColor(1);
585 gr4to6cls->SetLineWidth(1);
586 gr4to6cls->SetMarkerColor(2);
587 gr4to6cls->SetMarkerStyle(24);
588 gr4to6cls->SetMarkerSize(1.);
589 gr4to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
590 gr4to6cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 6 ITS cls)");
591 gr4to6cls->SetMaximum(1.2);
592 gr4to6cls->SetMinimum(0.);
593 gr4to6cls->Draw("AP");
595 gr5to6cls = new TGraphErrors(nPtBins,meanpt,n5ITSto6cls,errx,sigmn5ITSto6cls);
596 gr5to6cls->SetName("mygraph05ITSto6cls");
597 gr5to6cls->SetLineColor(1);
598 gr5to6cls->SetLineWidth(1);
599 gr5to6cls->SetMarkerColor(8);
600 gr5to6cls->SetMarkerStyle(25);
601 gr5to6cls->SetMarkerSize(1.);
602 gr5to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
603 gr5to6cls->GetYaxis()->SetTitle("");
604 gr5to6cls->Draw("P");
606 gr6to6cls = new TGraphErrors(nPtBins,meanpt,n6ITSto6cls,errx,sigmn6ITSto6cls);
607 gr6to6cls->SetName("mygraph06ITSto6cls");
608 gr6to6cls->SetLineColor(1);
609 gr6to6cls->SetLineWidth(1);
610 gr6to6cls->SetMarkerColor(4);
611 gr6to6cls->SetMarkerStyle(26);
612 gr6to6cls->SetMarkerSize(1.);
613 gr6to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
614 gr6to6cls->GetYaxis()->SetTitle("");
615 gr6to6cls->Draw("P");
617 gr3to6cls = new TGraphErrors(nPtBins,meanpt,n3ITSto6cls,errx,sigmn3ITSto6cls);
618 gr3to6cls->SetName("mygraph03ITSto6cls");
619 gr3to6cls->SetLineColor(1);
620 gr3to6cls->SetLineWidth(1);
621 gr3to6cls->SetMarkerColor(9);
622 gr3to6cls->SetMarkerStyle(27);
623 gr3to6cls->SetMarkerSize(1.);
624 gr3to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
625 gr3to6cls->GetYaxis()->SetTitle("");
626 gr3to6cls->Draw("P");
628 gr2to6cls = new TGraphErrors(nPtBins,meanpt,n2ITSto6cls,errx,sigmn2ITSto6cls);
629 gr2to6cls->SetName("mygraph02ITSto6cls");
630 gr2to6cls->SetLineColor(1);
631 gr2to6cls->SetLineWidth(1);
632 gr2to6cls->SetMarkerColor(1);
633 gr2to6cls->SetMarkerStyle(28);
634 gr2to6cls->SetMarkerSize(1.);
635 gr2to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
636 gr2to6cls->GetYaxis()->SetTitle("");
637 gr2to6cls->Draw("P");
639 gr1to6cls = new TGraphErrors(nPtBins,meanpt,n1ITSto6cls,errx,sigmn1ITSto6cls);
640 gr1to6cls->SetName("mygraph01ITSto6cls");
641 gr1to6cls->SetLineColor(1);
642 gr1to6cls->SetLineWidth(1);
643 gr1to6cls->SetMarkerColor(6);
644 gr1to6cls->SetMarkerStyle(29);
645 gr1to6cls->SetMarkerSize(1.);
646 gr1to6cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
647 gr1to6cls->GetYaxis()->SetTitle("");
648 gr1to6cls->Draw("P");
651 TLegend *l2_6 = new TLegend(0.5,0.5,0.9,0.9);
652 l2_6->SetFillStyle(0);
653 l2_6->SetBorderSize(0);
654 l2_6->AddEntry(gr6to6cls,"kTPCin + 6 ITS cls","p");
655 l2_6->AddEntry(gr5to6cls,"kTPCin + 5 ITS cls","p");
656 l2_6->AddEntry(gr4to6cls,"kTPCin + 4 ITS cls","p");
657 l2_6->AddEntry(gr3to6cls,"kTPCin + 3 ITS cls","p");
658 l2_6->AddEntry(gr2to6cls,"kTPCin + 2 ITS cls","p");
659 l2_6->AddEntry(gr1to6cls,"kTPCin + 1 ITS cls","p");
662 TCanvas* ceff2_5 = new TCanvas("ceff2_5","ceff2_5",cWidth,cHeight);
666 gr4to5cls = new TGraphErrors(nPtBins,meanpt,n4ITSto5cls,errx,sigmn4ITSto5cls);
667 gr4to5cls->SetName("mygraph04ITSto5cls");
668 gr4to5cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
669 gr4to5cls->SetLineColor(1);
670 gr4to5cls->SetLineWidth(1);
671 gr4to5cls->SetMarkerColor(2);
672 gr4to5cls->SetMarkerStyle(24);
673 gr4to5cls->SetMarkerSize(1.);
674 gr4to5cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
675 gr4to5cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 5 ITS cls)");
676 gr4to5cls->SetMaximum(1.2);
677 gr4to5cls->SetMinimum(0.);
678 gr4to5cls->Draw("AP");
680 gr5to5cls = new TGraphErrors(nPtBins,meanpt,n5ITSto5cls,errx,sigmn5ITSto5cls);
681 gr5to5cls->SetName("mygraph05ITSto5cls");
682 gr5to5cls->SetLineColor(1);
683 gr5to5cls->SetLineWidth(1);
684 gr5to5cls->SetMarkerColor(1);
685 gr5to5cls->SetMarkerStyle(25);
686 gr5to5cls->SetMarkerSize(1.);
687 gr5to5cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
688 gr5to5cls->GetYaxis()->SetTitle("");
689 gr5to5cls->Draw("P");
691 TLegend *l2_5 = new TLegend(0.5,0.5,0.9,0.9);
692 l2_5->SetFillStyle(0);
693 l2_5->SetBorderSize(0);
694 l2_5->AddEntry(gr5to5cls,"kTPCin + 5 ITS cls","p");
695 l2_5->AddEntry(gr4to5cls,"kTPCin + 4 ITS cls","p");
698 TCanvas* ceff2_4 = new TCanvas("ceff2_4","ceff2_4",cWidth,cHeight);
702 gr4to4cls = new TGraphErrors(nPtBins,meanpt,n4ITSto4cls,errx,sigmn4ITSto4cls);
703 gr4to4cls->SetName("mygraph04ITSto4cls");
704 gr4to4cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
705 gr4to4cls->SetLineColor(1);
706 gr4to4cls->SetLineWidth(1);
707 gr4to4cls->SetMarkerColor(2);
708 gr4to4cls->SetMarkerStyle(24);
709 gr4to4cls->SetMarkerSize(1.);
710 gr4to4cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
711 gr4to4cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 4 ITS cls)");
712 gr4to4cls->SetMaximum(1.2);
713 gr4to4cls->SetMinimum(0.);
714 gr4to4cls->Draw("AP");
716 gr3to4cls = new TGraphErrors(nPtBins,meanpt,n3ITSto4cls,errx,sigmn3ITSto4cls);
717 gr3to4cls->SetName("mygraph03ITSto4cls");
718 gr3to4cls->SetLineColor(1);
719 gr3to4cls->SetLineWidth(1);
720 gr3to4cls->SetMarkerColor(1);
721 gr3to4cls->SetMarkerStyle(25);
722 gr3to4cls->SetMarkerSize(1.);
723 gr3to4cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
724 gr3to4cls->GetYaxis()->SetTitle("");
725 gr3to4cls->Draw("P");
727 TLegend *l2_4 = new TLegend(0.5,0.5,0.9,0.9);
728 l2_4->SetFillStyle(0);
729 l2_4->SetBorderSize(0);
730 l2_4->AddEntry(gr4to4cls,"kTPCin + 4 ITS cls","p");
731 l2_4->AddEntry(gr3to4cls,"kTPCin + 3 ITS cls","p");
734 TCanvas* ceff2_3 = new TCanvas("ceff2_3","ceff2_3",cWidth,cHeight);
738 gr3to3cls = new TGraphErrors(nPtBins,meanpt,n3ITSto3cls,errx,sigmn3ITSto3cls);
739 gr3to3cls->SetName("mygraph03ITSto3cls");
740 gr3to3cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
741 gr3to3cls->SetLineColor(1);
742 gr3to3cls->SetLineWidth(1);
743 gr3to3cls->SetMarkerColor(2);
744 gr3to3cls->SetMarkerStyle(24);
745 gr3to3cls->SetMarkerSize(1.);
746 gr3to3cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
747 gr3to3cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 3 ITS cls)");
748 gr3to3cls->SetMaximum(1.2);
749 gr3to3cls->SetMinimum(0.);
750 gr3to3cls->Draw("AP");
752 gr2to3cls = new TGraphErrors(nPtBins,meanpt,n2ITSto3cls,errx,sigmn2ITSto3cls);
753 gr2to3cls->SetName("mygraph02ITSto3cls");
754 gr2to3cls->SetLineColor(1);
755 gr2to3cls->SetLineWidth(1);
756 gr2to3cls->SetMarkerColor(1);
757 gr2to3cls->SetMarkerStyle(25);
758 gr2to3cls->SetMarkerSize(1.);
759 gr2to3cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
760 gr2to3cls->GetYaxis()->SetTitle("");
761 gr2to3cls->Draw("P");
763 TLegend *l2_3 = new TLegend(0.5,0.5,0.9,0.9);
764 l2_3->SetFillStyle(0);
765 l2_3->SetBorderSize(0);
766 l2_3->AddEntry(gr3to3cls,"kTPCin + 3 ITS cls","p");
767 l2_3->AddEntry(gr2to3cls,"kTPCin + 2 ITS cls","p");
770 TCanvas* ceff2_2 = new TCanvas("ceff2_2","ceff2_2",cWidth,cHeight);
774 gr1to2cls = new TGraphErrors(nPtBins,meanpt,n1ITSto2cls,errx,sigmn1ITSto2cls);
775 gr1to2cls->SetName("mygraph01ITSto2cls");
776 gr1to2cls->SetTitle("ITS tracking efficiency (B=0.5T, no misal.)");
777 gr1to2cls->SetLineColor(1);
778 gr1to2cls->SetLineWidth(1);
779 gr1to2cls->SetMarkerColor(2);
780 gr1to2cls->SetMarkerStyle(24);
781 gr1to2cls->SetMarkerSize(1.);
782 gr1to2cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
783 gr1to2cls->GetYaxis()->SetTitle("ITS efficiency (normalized to kTPCin with 2 ITS cls)");
784 gr1to2cls->SetMaximum(1.2);
785 gr1to2cls->SetMinimum(0.);
786 gr1to2cls->Draw("AP");
788 gr2to2cls = new TGraphErrors(nPtBins,meanpt,n2ITSto2cls,errx,sigmn2ITSto2cls);
789 gr2to2cls->SetName("mygraph02ITSto2cls");
790 gr2to2cls->SetLineColor(1);
791 gr2to2cls->SetLineWidth(1);
792 gr2to2cls->SetMarkerColor(1);
793 gr2to2cls->SetMarkerStyle(25);
794 gr2to2cls->SetMarkerSize(1.);
795 gr2to2cls->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
796 gr2to2cls->GetYaxis()->SetTitle("");
797 gr2to2cls->Draw("P");
799 TLegend *l2_2 = new TLegend(0.5,0.5,0.9,0.9);
800 l2_2->SetFillStyle(0);
801 l2_2->SetBorderSize(0);
802 l2_2->AddEntry(gr2to2cls,"kTPCin + 2 ITS cls","p");
803 l2_2->AddEntry(gr1to2cls,"kTPCin + 1 ITS cls","p");
807 TCanvas* ceff3 = new TCanvas("ceff3","ceff3",cWidth,cHeight);
811 gr4ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n4ITSclsparttoTPC,errx,sigmn4ITSclsparttoTPC);
812 gr4ITSclsparttoTPC->SetName("mygraph04ITSclsparttoTPC");
813 gr4ITSclsparttoTPC->SetTitle("Number of produced clusters (B=0.5T, no misal.)");
814 gr4ITSclsparttoTPC->SetLineColor(1);
815 gr4ITSclsparttoTPC->SetLineWidth(1);
816 gr4ITSclsparttoTPC->SetMarkerColor(2);
817 gr4ITSclsparttoTPC->SetMarkerStyle(22);
818 gr4ITSclsparttoTPC->SetMarkerSize(1.);
819 gr4ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
820 gr4ITSclsparttoTPC->GetYaxis()->SetTitle("Fraction of primary kTPCin tracks producing N clusters");
821 gr4ITSclsparttoTPC->SetMaximum(1.2);
822 gr4ITSclsparttoTPC->SetMinimum(0.);
823 gr4ITSclsparttoTPC->Draw("AP");
825 gr5ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n5ITSclsparttoTPC,errx,sigmn5ITSclsparttoTPC);
826 gr5ITSclsparttoTPC->SetName("mygraph05ITSclsparttoTPC");
827 gr5ITSclsparttoTPC->SetLineColor(1);
828 gr5ITSclsparttoTPC->SetLineWidth(1);
829 gr5ITSclsparttoTPC->SetMarkerColor(8);
830 gr5ITSclsparttoTPC->SetMarkerStyle(22);
831 gr5ITSclsparttoTPC->SetMarkerSize(1.);
832 gr5ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
833 gr5ITSclsparttoTPC->GetYaxis()->SetTitle("");
834 gr5ITSclsparttoTPC->Draw("P");
836 gr6ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n6ITSclsparttoTPC,errx,sigmn6ITSclsparttoTPC);
837 gr6ITSclsparttoTPC->SetName("mygraph06ITSITSclsparttoTPC");
838 gr6ITSclsparttoTPC->SetLineColor(1);
839 gr6ITSclsparttoTPC->SetLineWidth(1);
840 gr6ITSclsparttoTPC->SetMarkerColor(4);
841 gr6ITSclsparttoTPC->SetMarkerStyle(22);
842 gr6ITSclsparttoTPC->SetMarkerSize(1.);
843 gr6ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
844 gr6ITSclsparttoTPC->GetYaxis()->SetTitle("");
845 gr6ITSclsparttoTPC->Draw("P");
847 gr3ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n3ITSclsparttoTPC,errx,sigmn3ITSclsparttoTPC);
848 gr3ITSclsparttoTPC->SetName("mygraph03ITSITSclsparttoTPC");
849 gr3ITSclsparttoTPC->SetLineColor(1);
850 gr3ITSclsparttoTPC->SetLineWidth(1);
851 gr3ITSclsparttoTPC->SetMarkerColor(6);
852 gr3ITSclsparttoTPC->SetMarkerStyle(22);
853 gr3ITSclsparttoTPC->SetMarkerSize(1.);
854 gr3ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
855 gr3ITSclsparttoTPC->GetYaxis()->SetTitle("");
856 gr3ITSclsparttoTPC->Draw("P");
858 gr2ITSclsparttoTPC = new TGraphErrors(nPtBins,meanpt,n2ITSclsparttoTPC,errx,sigmn2ITSclsparttoTPC);
859 gr2ITSclsparttoTPC->SetName("mygraph06ITSITSclsparttoTPC");
860 gr2ITSclsparttoTPC->SetLineColor(1);
861 gr2ITSclsparttoTPC->SetLineWidth(1);
862 gr2ITSclsparttoTPC->SetMarkerColor(1);
863 gr2ITSclsparttoTPC->SetMarkerStyle(22);
864 gr2ITSclsparttoTPC->SetMarkerSize(1.);
865 gr2ITSclsparttoTPC->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
866 gr2ITSclsparttoTPC->GetYaxis()->SetTitle("");
867 gr2ITSclsparttoTPC->Draw("P");
869 TLegend *l3 = new TLegend(0.5,0.5,0.9,0.9);
871 l3->SetBorderSize(0);
872 l3->AddEntry(gr2ITSclsparttoTPC,"2 ITS cls","p");
873 l3->AddEntry(gr3ITSclsparttoTPC,"3 ITS cls","p");
874 l3->AddEntry(gr4ITSclsparttoTPC,"4 ITS cls","p");
875 l3->AddEntry(gr5ITSclsparttoTPC,"5 ITS cls","p");
876 l3->AddEntry(gr6ITSclsparttoTPC,"6 ITS cls","p");
880 ////////////--------------5 POINTS SCENARIO
882 TCanvas* fitting1 = new TCanvas("fitting1","5 Points Scenario tracks analysis",cWidth,cHeight);
883 fitting1->Divide(3,2);
889 gr133 = new TGraphErrors(nPtBins,meanpt,n133,errx,sigmn133);
890 gr133->SetName("mygraph133");
891 gr133->SetLineColor(1);
892 gr133->SetLineWidth(1);
893 gr133->SetMarkerColor(4);
894 gr133->SetMarkerStyle(21);
895 gr133->SetMarkerSize(.5);
896 titlegraph1="NTracks without SSD2 point for ";
897 //titlegraph1="d_{0}(r#phi) Resolution for ";
898 titlegraph1.Append(partforgraph);
899 // titlegraph1.Append(" using True Vertex");
900 gr133->SetTitle(titlegraph1);
901 gr133->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
902 gr133->GetYaxis()->SetTitle("");
910 gr233 = new TGraphErrors(nPtBins,meanpt,n233,errx,sigmn233);
911 gr233->SetName("mygraph233");
912 gr233->SetLineColor(1);
913 gr233->SetLineWidth(1);
914 gr233->SetMarkerColor(4);
915 gr233->SetMarkerStyle(21);
916 gr233->SetMarkerSize(.5);
917 //titlegraph1="d_{0}(r#phi) Resolution for ";
918 titlegraph1="NTracks without SSD1 point for ";
919 titlegraph1.Append(partforgraph);
920 // titlegraph1.Append(" using Reconstructed Vertex");
921 gr233->SetTitle(titlegraph1);
922 gr233->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
923 gr233->GetYaxis()->SetTitle("");
931 gr313 = new TGraphErrors(nPtBins,meanpt,n313,errx,sigmn313);
932 gr313->SetName("mygraph313");
933 gr313->SetLineColor(1);
934 gr313->SetLineWidth(1);
935 gr313->SetMarkerColor(4);
936 gr313->SetMarkerStyle(21);
937 gr313->SetMarkerSize(.5);
938 titlegraph1="NTracks without SDD2 point for ";
939 titlegraph1.Append(partforgraph);
940 // titlegraph1.Append(" using Vertex on the Fly");
941 gr313->SetTitle(titlegraph1);
942 gr313->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
943 gr313->GetYaxis()->SetTitle("");
951 gr323 = new TGraphErrors(nPtBins,meanpt,n323,errx,sigmn323);
952 gr323->SetName("mygraph323");
953 gr323->SetLineColor(1);
954 gr323->SetLineWidth(1);
955 gr323->SetMarkerColor(4);
956 gr323->SetMarkerStyle(21);
957 gr323->SetMarkerSize(.5);
958 titlegraph1="NTracks without SDD1 point for ";
959 titlegraph1.Append(partforgraph);
960 // titlegraph1.Append(" using Vertex on the Fly");
961 gr323->SetTitle(titlegraph1);
962 gr323->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
963 gr323->GetYaxis()->SetTitle("");
971 gr331 = new TGraphErrors(nPtBins,meanpt,n331,errx,sigmn331);
972 gr331->SetName("mygraph331");
973 gr331->SetLineColor(1);
974 gr331->SetLineWidth(1);
975 gr331->SetMarkerColor(4);
976 gr331->SetMarkerStyle(21);
977 gr331->SetMarkerSize(.5);
978 titlegraph1="NTracks without SPD2 point for ";
979 titlegraph1.Append(partforgraph);
980 // titlegraph1.Append(" using Vertex on the Fly");
981 gr331->SetTitle(titlegraph1);
982 gr331->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
983 gr331->GetYaxis()->SetTitle("");
991 gr332 = new TGraphErrors(nPtBins,meanpt,n332,errx,sigmn332);
992 gr332->SetName("mygraph332");
993 gr332->SetLineColor(1);
994 gr332->SetLineWidth(1);
995 gr332->SetMarkerColor(4);
996 gr332->SetMarkerStyle(21);
997 gr332->SetMarkerSize(.5);
998 titlegraph1="NTracks without SPD1 point for ";
999 titlegraph1.Append(partforgraph);
1000 // titlegraph1.Append(" using Vertex on the Fly");
1001 gr332->SetTitle(titlegraph1);
1002 gr332->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1003 gr332->GetYaxis()->SetTitle("");
1007 TCanvas* fitting2 = new TCanvas("fitting2","SPD Scenario tracks analysis",cWidth,cHeight);
1008 fitting2->Divide(3,2);
1027 gr330 = new TGraphErrors(nPtBins,meanpt,n330,errx,sigmn330);
1028 gr330->SetName("mygraph330");
1029 gr330->SetLineColor(1);
1030 gr330->SetLineWidth(1);
1031 gr330->SetMarkerColor(4);
1032 gr330->SetMarkerStyle(21);
1033 gr330->SetMarkerSize(.5);
1034 titlegraph1="NTracks without 2 SPD points for ";
1035 //titlegraph1="d_{0}(r#phi) Resolution for ";
1036 titlegraph1.Append(partforgraph);
1037 // titlegraph1.Append(" using True Vertex");
1038 gr330->SetTitle(titlegraph1);
1039 gr330->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1040 gr330->GetYaxis()->SetTitle("");
1048 grSSD = new TGraphErrors(nPtBins,meanpt,nSSD,errx,sigmnSSD);
1049 grSSD->SetName("mygraphSSD");
1050 grSSD->SetLineColor(1);
1051 grSSD->SetLineWidth(1);
1052 grSSD->SetMarkerColor(4);
1053 grSSD->SetMarkerStyle(21);
1054 grSSD->SetMarkerSize(.5);
1055 titlegraph1="NTracks without one SSD point for ";
1056 //titlegraph1="d_{0}(r#phi) Resolution for ";
1057 titlegraph1.Append(partforgraph);
1058 // titlegraph1.Append(" using True Vertex");
1059 grSSD->SetTitle(titlegraph1);
1060 grSSD->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1061 grSSD->GetYaxis()->SetTitle("");
1069 grSDD = new TGraphErrors(nPtBins,meanpt,nSDD,errx,sigmnSDD);
1070 grSDD->SetName("mygraphSDD");
1071 grSDD->SetLineColor(1);
1072 grSDD->SetLineWidth(1);
1073 grSDD->SetMarkerColor(4);
1074 grSDD->SetMarkerStyle(21);
1075 grSDD->SetMarkerSize(.5);
1076 titlegraph1="NTracks without one SDD point for ";
1077 //titlegraph1="d_{0}(r#phi) Resolution for ";
1078 titlegraph1.Append(partforgraph);
1079 // titlegraph1.Append(" using True Vertex");
1080 grSDD->SetTitle(titlegraph1);
1081 grSDD->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1082 grSDD->GetYaxis()->SetTitle("");
1090 grOTHERS = new TGraphErrors(nPtBins,meanpt,nOTHERS,errx,sigmnOTHERS);
1091 grOTHERS->SetName("mygraphOTHERS");
1092 grOTHERS->SetLineColor(1);
1093 grOTHERS->SetLineWidth(1);
1094 grOTHERS->SetMarkerColor(4);
1095 grOTHERS->SetMarkerStyle(21);
1096 grOTHERS->SetMarkerSize(.5);
1097 titlegraph1="NTracks with 4 points (2 SPD+ ?)for ";
1098 //titlegraph1="d_{0}(r#phi) Resolution for ";
1099 titlegraph1.Append(partforgraph);
1100 // titlegraph1.Append(" using True Vertex");
1101 grOTHERS->SetTitle(titlegraph1);
1102 grOTHERS->GetXaxis()->SetTitle("p_{t} [GeV/c] ");
1103 grOTHERS->GetYaxis()->SetTitle("");
1104 grOTHERS->Draw("AP");
1112 // gr313->Draw("p");
1113 // gr323->Draw("p");
1118 //---------CLOSE EVRYTHING AND SAVE------------
1119 TFile *outfile = new TFile("EfficienciesAnalysis.root","recreate");
1127 gr456toGen->Write();
1128 grTPCtoGen->Write();
1132 //gr456to6cls->Write();
1140 //grOTHERS->Write();
1147 printf("Number of fakes: %d\n",nfakes);
1150 //--------------------------------------------------------------------------
1151 Int_t ITSnCluster(Int_t ITSf)
1153 Int_t sign,aITSf,n0,n3,aux,ITSsel;//be careful!:working with integer!
1156 aITSf=TMath::Abs(ITSf);
1158 else if (aITSf==ITSf)sign=1;
1159 else if(aITSf==-ITSf)sign=-1;
1161 if (aITSf/100<1)n0++;
1163 aux=(aITSf-(aITSf/100)*100);
1166 aux=(aux-(aux/10)*10);
1172 cout<<"Wrong ITSflag assignment!"<<endl;
1178 //----------------------------------------------------------------------------