]>
Commit | Line | Data |
---|---|---|
1 | void 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 | ||
23 | TList *list = (TList*)file->Get("cOutputITS"); | |
24 | TNtuple *ntTracks = (TNtuple*)list->FindObject("fNtupleESDTracks"); | |
25 | ||
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); | |
41 | ||
42 | ||
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]; | |
61 | ||
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]; | |
67 | ||
68 | Double_t errx[nPtBins]; | |
69 | ||
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; | |
71 | ||
72 | for(Int_t j=0;j<nPtBins;j++) { | |
73 | n1ITSclspart[j]=0.; | |
74 | n2ITSclspart[j]=0.; | |
75 | n3ITSclspart[j]=0.; | |
76 | n4ITSclspart[j]=0.; | |
77 | n5ITSclspart[j]=0.; | |
78 | n6ITSclspart[j]=0.; | |
79 | nSPD[j]=0.; | |
80 | n2ITS[j]=0.; | |
81 | n3ITS[j]=0.; | |
82 | n4ITS[j]=0.; | |
83 | n5ITS[j]=0.; | |
84 | n6ITS[j]=0.; | |
85 | n456ITS[j]=0.; | |
86 | n1ITSnorm6[j]=0.; | |
87 | n2ITSnorm6[j]=0.; | |
88 | n3ITSnorm6[j]=0.; | |
89 | n4ITSnorm6[j]=0.; | |
90 | n5ITSnorm6[j]=0.; | |
91 | n6ITSnorm6[j]=0.; | |
92 | n456ITSnorm6[j]=0.; | |
93 | n4ITSnorm5[j]=0.; | |
94 | n5ITSnorm5[j]=0.; | |
95 | n3ITSnorm4[j]=0.; | |
96 | n4ITSnorm4[j]=0.; | |
97 | n2ITSnorm3[j]=0.; | |
98 | n3ITSnorm3[j]=0.; | |
99 | n1ITSnorm2[j]=0.; | |
100 | n2ITSnorm2[j]=0.; | |
101 | nSPDtoGen[j]=0.; | |
102 | n2ITStoGen[j]=0.; | |
103 | n3ITStoGen[j]=0.; | |
104 | n4ITStoGen[j]=0.; | |
105 | n5ITStoGen[j]=0.; | |
106 | n6ITStoGen[j]=0.; | |
107 | n456ITStoGen[j]=0.; | |
108 | nTPCtoGen[j]=0.; | |
109 | n1ITSto6cls[j]=0.; | |
110 | n2ITSto6cls[j]=0.; | |
111 | n3ITSto6cls[j]=0.; | |
112 | n4ITSto6cls[j]=0.; | |
113 | n5ITSto6cls[j]=0.; | |
114 | n6ITSto6cls[j]=0.; | |
115 | n4ITSto5cls[j]=0.; | |
116 | n5ITSto5cls[j]=0.; | |
117 | n3ITSto4cls[j]=0.; | |
118 | n4ITSto4cls[j]=0.; | |
119 | n2ITSto3cls[j]=0.; | |
120 | n3ITSto3cls[j]=0.; | |
121 | n1ITSto2cls[j]=0.; | |
122 | n2ITSto2cls[j]=0.; | |
123 | n456ITSto6cls[j]=0.; | |
124 | nTPCto6cls[j]=0.; | |
125 | n330[j]=0; | |
126 | n331[j]=0; | |
127 | n332[j]=0; | |
128 | n313[j]=0; | |
129 | n323[j]=0; | |
130 | n133[j]=0; | |
131 | n233[j]=0; | |
132 | nOTHERS[j]=0; | |
133 | nSDD[j]=0.; | |
134 | nSSD[j]=0.; | |
135 | errx[j]=0.; | |
136 | ntottr[j]=0; | |
137 | meanpt[j]=0; | |
138 | } | |
139 | ||
140 | ptbinning[0]=0.15; | |
141 | ptbinning[1]=0.35; | |
142 | ptbinning[2]=0.4; | |
143 | ptbinning[3]=0.6; | |
144 | ptbinning[4]=0.7; | |
145 | ptbinning[5]=0.85; | |
146 | ptbinning[6]=0.85; | |
147 | ptbinning[7]=1.2; | |
148 | ptbinning[8]=1.7; | |
149 | ptbinning[9]=2.3; | |
150 | ptbinning[10]=3.6; | |
151 | ptbinning[11]=4.4; | |
152 | ptbinning[12]=6.5; | |
153 | ptbinning[13]=7.5; | |
154 | ptbinning[14]=8.5; | |
155 | ptbinning[15]=11.5; | |
156 | ptbinning[16]=18.5; | |
157 | ptbinning[17]=21.5; | |
158 | ptbinning[18]=27.5; | |
159 | ptbinning[19]=32.5; | |
160 | ||
161 | ||
162 | ||
163 | ||
164 | ||
165 | // ------------ Starting Loop on Tracks ---------- | |
166 | ntracks=ntTracks->GetEntries(); | |
167 | printf("number of Tracks %d \n",ntracks); | |
168 | ||
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); | |
194 | ||
195 | ||
196 | if(nTPCcls<=minTPCcls) continue; | |
197 | ||
198 | if(useAbsPdg) pdg=TMath::Abs(pdg); | |
199 | if(pdg!=pdgcode) continue; | |
200 | ||
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;} | |
204 | if(ptmes>0.) { | |
205 | ntottr[k]+=1.; | |
206 | meanpt[k]+=pt; | |
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.; | |
212 | } | |
213 | if(askITSrefit && sigmad0TV<0.) continue; | |
214 | if(nITSclsassign!=nITSsel) cout<<" ERROR "<<ITSflag<<" "<<nITSclsassign<<" "<<nITSsel<<" "<<ITSflagorig<<endl; | |
215 | ||
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.; | |
221 | ||
222 | if(((Int_t)ITSflag)%10==3) nSPD[k]+=1.; // both SPD | |
223 | ||
224 | if(nITSclspart==6) { | |
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.; | |
231 | } | |
232 | if(nITSclspart==5) { | |
233 | if(nITSsel==4) n4ITSnorm5[k]+=1.; | |
234 | if(nITSsel==5) n5ITSnorm5[k]+=1.; | |
235 | } | |
236 | if(nITSclspart==4) { | |
237 | if(nITSsel==3) n3ITSnorm4[k]+=1.; | |
238 | if(nITSsel==4) n4ITSnorm4[k]+=1.; | |
239 | } | |
240 | if(nITSclspart==3) { | |
241 | if(nITSsel==2) n2ITSnorm3[k]+=1.; | |
242 | if(nITSsel==3) n3ITSnorm3[k]+=1.; | |
243 | } | |
244 | if(nITSclspart==2) { | |
245 | if(nITSsel==1) n1ITSnorm2[k]+=1.; | |
246 | if(nITSsel==2) n2ITSnorm2[k]+=1.; | |
247 | } | |
248 | ||
249 | if(k==nPtBins-1 && nITSclspart==5 && nITSsel==4) printf("nClustersPart %d nClustersTrack %d Map %d\n",nITSclspart,nITSsel,ITSflag); | |
250 | ||
251 | //5 points array | |
252 | if(nITSclspart==5) { | |
253 | if(ITSflag==332) { | |
254 | n332[k]+=1.; | |
255 | } else if(ITSflag==331) { | |
256 | n331[k]+=1.; | |
257 | } else if(ITSflag==323) { | |
258 | n323[k]+=1.; | |
259 | } else if(ITSflag==313) { | |
260 | n313[k]+=1.; | |
261 | } else if(ITSflag==233) { | |
262 | n233[k]+=1.; | |
263 | } else if(ITSflag==133) { | |
264 | n133[k]+=1.; | |
265 | } | |
266 | } | |
267 | if(ITSflag==330) { | |
268 | n330[k]+=1.; | |
269 | } else if(ITSflag!=333) { | |
270 | nOTHERS[k]+=1.; | |
271 | } | |
272 | ||
273 | } | |
274 | } | |
275 | ||
276 | } //end loop on tracks | |
277 | ||
278 | printf("%d %d %d %d %d\n",n2ITS[9],n3ITS[9],n4ITS[9],n5ITS[9],n6ITS[9]); | |
279 | ||
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.; | |
287 | ||
288 | //cout<<n1ITSclspart[k]<<" "<<n2ITSclspart[k]<<" "<<n3ITSclspart[k]<<" "<<n4ITSclspart[k]<<" "<<n5ITSclspart[k]<<" "<<n6ITSclspart[k]<<endl; | |
289 | ||
290 | if(ntottr[k]!=0) { | |
291 | meanpt[k]=meanpt[k]/ntottr[k]; | |
292 | ||
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]; | |
301 | ||
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]; | |
316 | ||
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; | |
320 | ||
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]; | |
326 | ||
327 | n4ITS[k]=n4ITS[k]/ntottr[k]; | |
328 | n5ITS[k]=n5ITS[k]/ntottr[k]; | |
329 | n6ITS[k]=n6ITS[k]/ntottr[k]; | |
330 | ||
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]; | |
342 | ||
343 | ||
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]); | |
348 | ||
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]); | |
354 | ||
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]); | |
364 | ||
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]); | |
380 | ||
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]); | |
388 | ||
389 | ||
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]); | |
393 | } else { | |
394 | meanpt[k]=(ptbinning[2*k+1]+ptbinning[2*k])/2.; | |
395 | } | |
396 | ||
397 | } // end loop on pt bins | |
398 | ||
399 | //-------DRAWING TGRAPH-------- | |
400 | ||
401 | const int cWidth = 500; | |
402 | const int cHeight = (int)(500*(29.7/21.)); | |
403 | ||
404 | TCanvas* ceff0 = new TCanvas("ceff0","ceff0",cWidth,cHeight); | |
405 | ceff0->SetLogx(); | |
406 | ceff0->SetGridy(); | |
407 | ||
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); | |
419 | gr4->SetMinimum(0.); | |
420 | gr4->Draw("AP"); | |
421 | ||
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(""); | |
432 | gr5->Draw("P"); | |
433 | ||
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(""); | |
443 | gr6->Draw("P"); | |
444 | ||
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(""); | |
454 | gr456->Draw("P"); | |
455 | ||
456 | TLegend *l0 = new TLegend(0.5,0.5,0.9,0.9); | |
457 | l0->SetFillStyle(0); | |
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"); | |
463 | l0->Draw(); | |
464 | ||
465 | TCanvas* ceff1 = new TCanvas("ceff1","ceff1",cWidth,cHeight); | |
466 | ceff1->SetLogx(); | |
467 | ceff1->SetGridy(); | |
468 | ||
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"); | |
482 | ||
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(""); | |
492 | gr2toGen->Draw("P"); | |
493 | ||
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(""); | |
503 | gr3toGen->Draw("P"); | |
504 | ||
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(""); | |
514 | gr5toGen->Draw("P"); | |
515 | ||
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(""); | |
525 | gr6toGen->Draw("P"); | |
526 | ||
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"); | |
537 | ||
538 | ||
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"); | |
549 | ||
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"); | |
560 | ||
561 | ||
562 | TLegend *l1 = new TLegend(0.5,0.5,0.9,0.9); | |
563 | l1->SetFillStyle(0); | |
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"); | |
573 | l1->Draw(); | |
574 | ||
575 | ||
576 | ||
577 | TCanvas* ceff2_6 = new TCanvas("ceff2_6","ceff2_6",cWidth,cHeight); | |
578 | ceff2_6->SetLogx(); | |
579 | ceff2_6->SetGridy(); | |
580 | ||
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"); | |
594 | ||
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"); | |
605 | ||
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"); | |
616 | ||
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"); | |
627 | ||
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"); | |
638 | ||
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"); | |
649 | ||
650 | ||
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"); | |
660 | l2_6->Draw(); | |
661 | ||
662 | TCanvas* ceff2_5 = new TCanvas("ceff2_5","ceff2_5",cWidth,cHeight); | |
663 | ceff2_5->SetLogx(); | |
664 | ceff2_5->SetGridy(); | |
665 | ||
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"); | |
679 | ||
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"); | |
690 | ||
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"); | |
696 | l2_5->Draw(); | |
697 | ||
698 | TCanvas* ceff2_4 = new TCanvas("ceff2_4","ceff2_4",cWidth,cHeight); | |
699 | ceff2_4->SetLogx(); | |
700 | ceff2_4->SetGridy(); | |
701 | ||
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"); | |
715 | ||
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"); | |
726 | ||
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"); | |
732 | l2_4->Draw(); | |
733 | ||
734 | TCanvas* ceff2_3 = new TCanvas("ceff2_3","ceff2_3",cWidth,cHeight); | |
735 | ceff2_3->SetLogx(); | |
736 | ceff2_3->SetGridy(); | |
737 | ||
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"); | |
751 | ||
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"); | |
762 | ||
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"); | |
768 | l2_3->Draw(); | |
769 | ||
770 | TCanvas* ceff2_2 = new TCanvas("ceff2_2","ceff2_2",cWidth,cHeight); | |
771 | ceff2_2->SetLogx(); | |
772 | ceff2_2->SetGridy(); | |
773 | ||
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"); | |
787 | ||
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"); | |
798 | ||
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"); | |
804 | l2_2->Draw(); | |
805 | ||
806 | ||
807 | TCanvas* ceff3 = new TCanvas("ceff3","ceff3",cWidth,cHeight); | |
808 | ceff3->SetLogx(); | |
809 | ceff3->SetGridy(); | |
810 | ||
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"); | |
824 | ||
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"); | |
835 | ||
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"); | |
846 | ||
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"); | |
857 | ||
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"); | |
868 | ||
869 | TLegend *l3 = new TLegend(0.5,0.5,0.9,0.9); | |
870 | l3->SetFillStyle(0); | |
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"); | |
877 | l3->Draw(); | |
878 | ||
879 | ||
880 | ////////////--------------5 POINTS SCENARIO | |
881 | ||
882 | TCanvas* fitting1 = new TCanvas("fitting1","5 Points Scenario tracks analysis",cWidth,cHeight); | |
883 | fitting1->Divide(3,2); | |
884 | fitting1->cd(1); | |
885 | // gPad->SetLogy(); | |
886 | gPad->SetLogx(); | |
887 | gPad->SetGridx(); | |
888 | gPad->SetGridy(); | |
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(""); | |
903 | gr133->Draw("AP"); | |
904 | ||
905 | fitting1->cd(4); | |
906 | // gPad->SetLogy(); | |
907 | gPad->SetLogx(); | |
908 | gPad->SetGridx(); | |
909 | gPad->SetGridy(); | |
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(""); | |
924 | gr233->Draw("AP"); | |
925 | ||
926 | fitting1->cd(2); | |
927 | // gPad->SetLogy(); | |
928 | gPad->SetLogx(); | |
929 | gPad->SetGridx(); | |
930 | gPad->SetGridy(); | |
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(""); | |
944 | gr313->Draw("AP"); | |
945 | ||
946 | fitting1->cd(5); | |
947 | // gPad->SetLogy(); | |
948 | gPad->SetLogx(); | |
949 | gPad->SetGridx(); | |
950 | gPad->SetGridy(); | |
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(""); | |
964 | gr323->Draw("AP"); | |
965 | ||
966 | fitting1->cd(3); | |
967 | // gPad->SetLogy(); | |
968 | gPad->SetLogx(); | |
969 | gPad->SetGridx(); | |
970 | gPad->SetGridy(); | |
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(""); | |
984 | gr331->Draw("AP"); | |
985 | ||
986 | fitting1->cd(6); | |
987 | // gPad->SetLogy(); | |
988 | gPad->SetLogx(); | |
989 | gPad->SetGridx(); | |
990 | gPad->SetGridy(); | |
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(""); | |
1004 | gr332->Draw("AP"); | |
1005 | ||
1006 | ||
1007 | TCanvas* fitting2 = new TCanvas("fitting2","SPD Scenario tracks analysis",cWidth,cHeight); | |
1008 | fitting2->Divide(3,2); | |
1009 | ||
1010 | fitting2->cd(1); | |
1011 | gPad->SetLogx(); | |
1012 | gPad->SetGridx(); | |
1013 | gPad->SetGridy(); | |
1014 | gr331->Draw("AP"); | |
1015 | ||
1016 | fitting2->cd(2); | |
1017 | gPad->SetLogx(); | |
1018 | gPad->SetGridx(); | |
1019 | gPad->SetGridy(); | |
1020 | gr332->Draw("AP"); | |
1021 | ||
1022 | fitting2->cd(3); | |
1023 | // gPad->SetLogy(); | |
1024 | gPad->SetLogx(); | |
1025 | gPad->SetGridx(); | |
1026 | gPad->SetGridy(); | |
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(""); | |
1041 | gr330->Draw("AP"); | |
1042 | ||
1043 | fitting2->cd(4); | |
1044 | // gPad->SetLogy(); | |
1045 | gPad->SetLogx(); | |
1046 | gPad->SetGridx(); | |
1047 | gPad->SetGridy(); | |
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(""); | |
1062 | grSSD->Draw("AP"); | |
1063 | ||
1064 | fitting2->cd(5); | |
1065 | // gPad->SetLogy(); | |
1066 | gPad->SetLogx(); | |
1067 | gPad->SetGridx(); | |
1068 | gPad->SetGridy(); | |
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(""); | |
1083 | grSDD->Draw("AP"); | |
1084 | ||
1085 | fitting2->cd(6); | |
1086 | // gPad->SetLogy(); | |
1087 | gPad->SetLogx(); | |
1088 | gPad->SetGridx(); | |
1089 | gPad->SetGridy(); | |
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"); | |
1105 | ||
1106 | ceff0->cd(); | |
1107 | gr330->Draw("p"); | |
1108 | gr331->Draw("p"); | |
1109 | gr332->Draw("p"); | |
1110 | grSSD->Draw("p"); | |
1111 | grSDD->Draw("p"); | |
1112 | // gr313->Draw("p"); | |
1113 | // gr323->Draw("p"); | |
1114 | //gr133->Draw("p"); | |
1115 | //gr233->Draw("p"); | |
1116 | ||
1117 | ||
1118 | //---------CLOSE EVRYTHING AND SAVE------------ | |
1119 | TFile *outfile = new TFile("EfficienciesAnalysis.root","recreate"); | |
1120 | gr4->Write(); | |
1121 | gr5->Write(); | |
1122 | gr6->Write(); | |
1123 | gr456->Write(); | |
1124 | gr4toGen->Write(); | |
1125 | gr5toGen->Write(); | |
1126 | gr6toGen->Write(); | |
1127 | gr456toGen->Write(); | |
1128 | grTPCtoGen->Write(); | |
1129 | gr4to6cls->Write(); | |
1130 | gr5to6cls->Write(); | |
1131 | gr6to6cls->Write(); | |
1132 | //gr456to6cls->Write(); | |
1133 | //gr330->Write(); | |
1134 | //gr331->Write(); | |
1135 | //gr332->Write(); | |
1136 | //gr323->Write(); | |
1137 | //gr313->Write(); | |
1138 | //gr133->Write(); | |
1139 | //gr233->Write(); | |
1140 | //grOTHERS->Write(); | |
1141 | //grSPD->Write(); | |
1142 | //grSSD->Write(); | |
1143 | //grSDD->Write(); | |
1144 | outfile->Close(); | |
1145 | ||
1146 | ||
1147 | printf("Number of fakes: %d\n",nfakes); | |
1148 | return; | |
1149 | } | |
1150 | //-------------------------------------------------------------------------- | |
1151 | Int_t ITSnCluster(Int_t ITSf) | |
1152 | { | |
1153 | Int_t sign,aITSf,n0,n3,aux,ITSsel;//be careful!:working with integer! | |
1154 | n0=0; | |
1155 | n3=0; | |
1156 | aITSf=TMath::Abs(ITSf); | |
1157 | if(aITSf==0)sign=0; | |
1158 | else if (aITSf==ITSf)sign=1; | |
1159 | else if(aITSf==-ITSf)sign=-1; | |
1160 | ||
1161 | if (aITSf/100<1)n0++; | |
1162 | n3=aITSf/300; | |
1163 | aux=(aITSf-(aITSf/100)*100); | |
1164 | if(aux/10<1)n0++; | |
1165 | n3+=aux/30; | |
1166 | aux=(aux-(aux/10)*10); | |
1167 | if (aux==0)n0++; | |
1168 | n3+=aux/3; | |
1169 | ITSsel=3+n3-n0; | |
1170 | ||
1171 | if(ITSsel>6) { | |
1172 | cout<<"Wrong ITSflag assignment!"<<endl; | |
1173 | return 99; | |
1174 | } | |
1175 | ||
1176 | return ITSsel*sign; | |
1177 | } | |
1178 | //---------------------------------------------------------------------------- |