]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/PHOSTasks/PHOS_PbPb/macros/Flow/plotV2_comV0.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb / macros / Flow / plotV2_comV0.C
CommitLineData
e751e1d9 1//#include "pointsForPionGroup.C"
2#include "v2All.C"
3#include "v2CMS.C"
4#include "v2PHENIX.C"
5
6Int_t drawch = 0;
7Int_t drawall = 0; //V0A and V0C separate
8Int_t drawsum = 1; //PHOS V0A+V0C
9Int_t drawphenix = 0;
10Int_t drawcms = 0;
11Int_t drawpcm = 1;
12Int_t drawwhdg = 0;
13Int_t drawmerge = 1; //PHOS+PCM
14Int_t merge = 1;
15Int_t fit = 0;
16Int_t diff = 2; //1 - PHOS+PCM - charged (fit), 2 - PHOS - PHOS+PCM, 3 - PCM - PHOS+PCM, 4 - PHOS - charged (fit), 5 - PCM - charged (fit)
17
18//Compare pi0 v2 with V0 detector (method 1 or 2) with other measurements - charged pion v2, CMS pi0 v2, PHENIX pi0 v2
19//Merge results from PHOS and PCM
20
21void plotV2_comV0(Int_t cen=1, Int_t method=1){
22 char key[255];
23 gStyle->SetErrorX(0.2);
24
25if(diff==1||diff==4||diff==5){
26drawch=1;
27fit=1;
28}
29
30 TGraphAsymmErrors * v2ch; // = (TGraphErrors*)f3->Get(cen3.Data()) ;
31
32 if(cen==10) v2ch=v2Pion(0,10);
33 if(cen==11) v2ch=v2Pion(20,40);
34 if(cen==0) v2ch=v2Pion(0,5);
35 if(cen==1) v2ch=v2Pion(5,10);
36 if(cen==2) v2ch=v2Pion(10,20);
37 if(cen==3) v2ch=v2Pion(20,30);
38 if(cen==4) v2ch=v2Pion(30,40);
39 if(cen==5) v2ch=v2Pion(40,50);
40 if(cen==20) v2ch=v2Pion(10,50);
41 if(cen==21) v2ch=v2Pion(0,20);
42
43 v2ch->SetMarkerStyle(7) ;
44 v2ch->SetMarkerColor(kOrange-2) ;
45 v2ch->SetLineColor(kOrange-2) ;
46 v2ch->SetFillColor(kOrange-2) ;
47 v2ch->SetLineWidth(1) ;
48
49 TGraphAsymmErrors * v2chAlex; // = (TGraphErrors*)f3->Get(cen3.Data()) ;
50
51 if(cen==10) v2chAlex=v2PionAlex(0,10);
52 if(cen==11) v2chAlex=v2PionAlex(20,40);
53 if(cen==0) v2chAlex=v2PionAlex(0,5);
54 if(cen==1) v2chAlex=v2PionAlex(5,10);
55 if(cen==2) v2chAlex=v2PionAlex(10,20);
56 if(cen==3) v2chAlex=v2PionAlex(20,30);
57 if(cen==4) v2chAlex=v2PionAlex(30,40);
58 if(cen==5) v2chAlex=v2PionAlex(40,50);
59 if(cen==20) v2chAlex=v2PionAlex(10,50);
60 if(cen==21) v2chAlex=v2PionAlex(0,20);
61
62 v2chAlex->SetMarkerStyle(22) ;
63 v2chAlex->SetMarkerColor(kYellow) ;
64 v2chAlex->SetLineColor(kYellow) ;
65 v2chAlex->SetFillColor(kYellow) ;
66 v2chAlex->SetLineWidth(1) ;
67
68 TList *coll = new TList();
69 coll->Add(v2chAlex);
70
71 TGraphAsymmErrors *v2chAll = v2ch->Clone("v2chAll");
72 v2chAll->Merge(coll);
73
74 TGraphErrors *v2CMS; // = (TGraphErrors*)f3->Get(cen3.Data()) ;
75
76 TFile *fPCM = new TFile("PCMPi0v2_new.root") ;
77
78 TGraphErrors *v2PCM, *v2PCMsys;
79
80 if(cen==11){
81 v2PCM = (TGraphErrors*)fPCM->Get("Pi0IMv2_V0_20-40");
82 v2PCMsys = (TGraphErrors*)fPCM->Get("Pi0IMv2sys_V0_20-40");
83 }
84 if(cen==21){
85 v2PCM = (TGraphErrors*)fPCM->Get("Pi0IMv2_V0_0-20");
86 v2PCMsys = (TGraphErrors*)fPCM->Get("Pi0IMv2sys_V0_0-20");
87 }
88
89 if(cen==11||cen==21){
90 v2PCM->SetMarkerStyle(29) ;
91 v2PCM->SetMarkerColor(kBlue) ;
92 v2PCM->SetMarkerSize(1.6) ;
93 v2PCM->SetLineColor(kBlue) ;
94 v2PCM->SetLineWidth(1) ;
95 v2PCMsys->SetMarkerStyle(24) ;
96 v2PCMsys->SetMarkerColor(kBlue) ;
97 v2PCMsys->SetLineColor(kBlue) ;
98 v2PCMsys->SetLineWidth(1) ;
99 v2PCMsys->SetFillStyle(0);
100 v2PCMsys->SetLineColor(kBlue) ;
101 }
102 else if(merge){ cout<<"Wrong centrality for merging PCM and PHOS (valid 11 and 21 only!)"<<endl; return;}
103
104// if(cen==10) v2CMS=v2CMS2030();
105// if(cen==11) v2CMS=
106// if(cen==0) v2CMS=v2PionAlex(0,5);
107// if(cen==1) v2CMS=v2PionAlex(5,10);
108// if(cen==2) v2CMS=v2PionAlex(10,20);
109 if(cen==3) v2CMS=v2CMS2030();
110 if(cen==4) v2CMS=v2CMS3040();
111 if(cen==5) v2CMS=v2CMS4050();
112
113 TGraphErrors * v2PHENIX; //
114
115 if(cen==2) v2PHENIX=v2PHENIX1020();
116 if(cen==3) v2PHENIX=v2PHENIX2030();
117 if(cen==4) v2PHENIX=v2PHENIX3040();
118 if(cen==5) v2PHENIX=v2PHENIX4050();
119 if(cen==10) v2PHENIX=v2PHENIX010();
120
121if(cen==3||cen==4||cen==5){
122 v2CMS->SetMarkerStyle(23) ;
123 v2CMS->SetMarkerColor(kViolet) ;
124 v2CMS->SetLineColor(kViolet) ;
125 v2CMS->SetLineWidth(1) ;
126}
127if(cen==2||cen==3||cen==4||cen==5||cen==10){
128 v2PHENIX->SetMarkerStyle(23) ;
129 v2PHENIX->SetMarkerColor(kBlue) ;
130 v2PHENIX->SetLineColor(kBlue) ;
131 v2PHENIX->SetLineWidth(1) ;
132}
133
134fstream fWHDG;
135char wname[255];
136if(cen==2) sprintf(wname,"WHDGlhcPi0v21020b.dat");
137if(cen==3) sprintf(wname,"WHDGlhcPi0v22030b.dat");
138if(cen==4) sprintf(wname,"WHDGlhcPi0v23040b.dat");
139if(cen==5) sprintf(wname,"WHDGlhcPi0v24050b.dat");
140
141if(cen>=2&&cen<=5){
142fWHDG.open(wname,ios::in);
143
144const int N=4;
145Double_t xW[N],yW[N],exW[N],eyW[N];
146
147int i=0;
148while(!fWHDG.eof()){
149 fWHDG>>xW[i]>>yW[i];
150 exW[i]=0;
151 eyW[i]=0;
152 i++;
153 if(i>=N) break;
154}
155fWHDG.close();
156
157TGraphErrors * gWHDG = new TGraphErrors(N,xW,yW,exW,eyW);
158gWHDG->SetLineColor(kGreen-5);
159gWHDG->SetLineWidth(3);
160gWHDG->SetMarkerStyle(20);
161gWHDG->SetMarkerColor(kGreen-5);
162}
163
164 char name[255];
165 sprintf(name,"v2_method%d_QA.root",method);
166 TFile *f = new TFile(name) ;
167
168 char key[255] ;
169 char kind[15];
170 sprintf(kind,"Both2core"); //PID
171 char w[25];
172 sprintf(w,""); //weight - "" or "NW"
173
174 sprintf(key,"v2stat_m%d_%s_%s_%d_%d",method,w,kind,cen,0) ;
175 cout<<key<<endl;
176 TH1D * v2stat0 = (TH1D*)f->Get(key) ;
177 sprintf(key,"v2sys_m%d_%s_%s_%d_%d",method,w,kind,cen,0) ;
178 TH1D * v2sys0 = (TH1D*)f->Get(key) ;
179
180 sprintf(key,"v2stat_m%d_%s_%s_%d_%d",method,w,kind,cen,1) ;
181 TH1D * v2stat1 = (TH1D*)f->Get(key) ;
182 sprintf(key,"v2sys_m%d_%s_%s_%d_%d",method,w,kind,cen,1) ;
183 TH1D * v2sys1 = (TH1D*)f->Get(key) ;
184
185 v2sys0->SetFillStyle(0);
186 v2sys0->SetLineColor(kBlue-9) ;
187
188 v2sys1->SetFillStyle(0) ;
189 v2sys1->SetLineColor(kGreen) ;
190
191 TH1D * box = new TH1D("box","",100,0.,16.) ;
192 if(cen==0||cen==1||cen==10) box->SetMinimum(-0.20001) ;
193 else box->SetMinimum(-0.10001) ;
194 box->SetMaximum(0.5) ;
195
196/* if(diff){
197 box->SetMinimum(-0.10001) ;
198 box->SetMaximum(0.1) ;
199 }
200*/
201
202 box->SetLabelOffset(0.01,"Y");
203 box->SetLabelOffset(0.01,"X");
204 box->SetTitleOffset(0.5,"Y");
205 box->SetTitleSize(0.05,"X");
206 box->SetTitleSize(0.05,"Y");
207 box->SetLabelSize(0.04,"X");
208 box->SetLabelSize(0.04,"Y");
209 box->SetNdivisions(505,"Y");
210 box->GetXaxis()->SetTitleOffset(0.9) ;
211 box->GetYaxis()->SetTitleOffset(0.9) ;
212
213 box->SetXTitle("p_{T} (GeV/c)") ;
214 box->SetYTitle("v_{2}{EP}") ;
215
216 TCanvas * c= new TCanvas("a","v2") ;
217 c->SetFillColor(0) ;
218 c->SetFillStyle(0) ;
219 c->SetFrameBorderMode(0);
220 gStyle->SetOptTitle(0);
221 gStyle->SetOptStat(0);
222 gStyle->SetTitleFillColor(kWhite);
223 gStyle->SetPalette(1);
224 gStyle->SetCanvasBorderMode(-1);
225 gStyle->SetCanvasBorderSize(1);
226 gStyle->SetFrameFillColor(0);
227 gStyle->SetFrameFillStyle(0);
228 gStyle->SetFrameBorderSize(1);
229
230 Double_t x[100],y[100],ex[100],ey[100] ;
231
232 for(Int_t i=0;i<v2stat0->GetNbinsX();i++){
233 x[i]=v2stat0->GetXaxis()->GetBinCenter(i+1) ;
234 y[i]=v2stat0->GetBinContent(i+1) ;
235 ey[i]=v2stat0->GetBinError(i+1) ;
236 ex[i]=0. ;
237 }
238
239 TGraphErrors * g = new TGraphErrors(v2stat0->GetNbinsX(),x,y,ex,ey) ;
240 g->SetMarkerStyle(20) ;
241 g->SetMarkerColor(4) ;
242 g->SetLineColor(4) ;
243 g->SetLineWidth(1) ;
244
245
246 for(Int_t i=0;i<v2stat1->GetNbinsX();i++){
247 x[i]=v2stat1->GetXaxis()->GetBinCenter(i+1) ;
248 y[i]=v2stat1->GetBinContent(i+1) ;
249 ey[i]=v2stat1->GetBinError(i+1) ;
250 ex[i]=0. ;
251 }
252
253 TGraphErrors * g2 = new TGraphErrors(v2stat1->GetNbinsX(),x,y,ex,ey) ;
254 g2->SetMarkerStyle(20) ;
255 g2->SetMarkerColor(kBlack) ;
256 g2->SetLineColor(kBlack) ;
257 g2->SetLineWidth(1) ;
258
259//merge V0A V0C
260 TH1D *v2sumstat = v2stat0->Clone("v2sumstat");
261 TH1D *v2sumsys = v2sys0->Clone("v2sumsys");
262cout<<"merge v0a and v0c"<<endl;
263 for(Int_t i=0;i<v2sumstat->GetNbinsX();i++){
264 Double_t bin1 = v2stat1->GetBinContent(i+1) ;
265 Double_t bin2 = v2stat0->GetBinContent(i+1) ;
266 Double_t stat1 = v2stat1->GetBinError(i+1) ;
267 Double_t stat2 = v2stat0->GetBinError(i+1) ;
268 Double_t sys1 = v2sys1->GetBinError(i+1) ;
269 Double_t sys2 = v2sys0->GetBinError(i+1) ;
270
271 Double_t stat=0;
272 if(stat1!=0&&stat2!=0)stat = 1./TMath::Sqrt(1./stat1/stat1 + 1./stat2/stat2);
273 Double_t sys=0;
274 if(sys1!=0&&sys2!=0) sys = 1./TMath::Sqrt(1./sys1/sys1 + 1./sys2/sys2);
275 Double_t weight = 1, mean = bin1;
276 if(sys1+stat1!=0 && sys2+stat2!=0){
277 weight=(1./(sys1*sys1+stat1*stat1) + 1./(sys2*sys2+stat2*stat2));
278 mean = bin1/(sys1*sys1+stat1*stat1) + bin2/(sys2*sys2+stat2*stat2);
279 }
280 mean /= weight;
281
282//if(cen==0 && i==0){mean=-100.; stat=0; sys=0;}
283
284 cout<<"bin1 = "<<bin1<<" bin2 = "<<bin2<<" mean = "<<mean<<" sys1 = "<<sys1<<" sys2 = "<<sys2<<" sys = "<<sys<<endl;
285
286 v2sumstat->SetBinContent(i+1,mean);
287 v2sumsys->SetBinContent(i+1,mean);
288 v2sumstat->SetBinError(i+1,stat);
289 v2sumsys->SetBinError(i+1,sys);
290 }
291
292 v2sumsys->SetFillStyle(0) ;
293 v2sumsys->SetLineColor(kRed) ;
294
295//merge PHOS and PCM
296 if(cen==21 || cen==11){
297cout<<"merge PHOS and PCM"<<endl;
298 TH1D *v2mstat = v2stat0->Clone("v2mstat");
299 TH1D *v2msys = v2sys0->Clone("v2msys");
300
301 for(Int_t i=0;i<v2mstat->GetNbinsX();i++){
302 Double_t bin1 = v2sumstat->GetBinContent(i+1) ;
303 Double_t bin2,tmp;
304
305 v2PCM->GetPoint(i,tmp,bin2);//GetBinContent(i+1) ;
306 Double_t stat1 = v2sumstat->GetBinError(i+1) ;
307 Double_t stat2 = v2PCM->GetErrorY(i);//->GetBinError(i+1) ;
308 Double_t sys1 = v2sumsys->GetBinError(i+1) ;
309 Double_t sys2 = v2PCMsys->GetErrorY(i);//GetBinError(i+1) ;
310
311 Double_t stat=0;
312 if(stat1!=0&&stat2!=0)stat = 1./TMath::Sqrt(1./stat1/stat1 + 1./stat2/stat2);
313 Double_t sys=0;
314 if(sys1!=0&&sys2!=0) sys = 1./TMath::Sqrt(1./sys1/sys1 + 1./sys2/sys2);
315 Double_t weight = 1, mean = bin1;
316 if(sys1+stat1!=0 && sys2+stat2!=0){
317 weight=(1./(sys1*sys1+stat1*stat1) + 1./(sys2*sys2+stat2*stat2));
318 mean = bin1/(sys1*sys1+stat1*stat1) + bin2/(sys2*sys2+stat2*stat2);
319 }
320 mean /= weight;
321
322 if(i>7){ //no PCM
323 mean=bin1;
324 stat=stat1;
325 sys=sys1;
326 }
327//if(cen==0 && i==0){mean=-100.; stat=0; sys=0;}
328
329 cout<<"i = "<<i<<", bin1 = "<<bin1<<" bin2 = "<<bin2<<" mean = "<<mean<<endl;
330 cout<<"sys1 = "<<sys1<<" sys2 = "<<sys2<<" sys = "<<sys<<" stat1 = "<<stat1<<" stat2 = "<<stat2<<" stat = "<<stat<<endl;
331
332/*if(cen==21&&i==0){
333 v2mstat->SetBinContent(i+1,0);
334 v2msys->SetBinContent(i+1,0);
335 v2mstat->SetBinError(i+1,0);
336 v2msys->SetBinError(i+1,0);
337 v2sumstat->SetBinContent(i+1,0);
338 v2sumsys->SetBinContent(i+1,0);
339 v2sumstat->SetBinError(i+1,0);
340 v2sumsys->SetBinError(i+1,0);
341}
342else{
343*/
344 v2mstat->SetBinContent(i+1,mean);
345 v2msys->SetBinContent(i+1,mean);
346 v2mstat->SetBinError(i+1,stat);
347 v2msys->SetBinError(i+1,sys);
348//}
349 }
350
351 v2msys->SetFillStyle(0) ;
352 v2msys->SetLineColor(kBlack) ;
353 v2msys->SetLineWidth(1) ;
354
355 for(Int_t i=0;i<v2mstat->GetNbinsX();i++){
356 x[i]=v2mstat->GetXaxis()->GetBinCenter(i+1) ;
357 y[i]=v2mstat->GetBinContent(i+1) ;
358 ey[i]=v2mstat->GetBinError(i+1) ;
359 ex[i]=0. ;
360 }
361
362 TGraphErrors * gm = new TGraphErrors(v2mstat->GetNbinsX(),x,y,ex,ey) ;
363 gm->SetMarkerStyle(24) ;
364 gm->SetMarkerColor(kBlack);
365 gm->SetLineColor(kBlack) ;
366 gm->SetLineWidth(1) ;
367 gm->SetMarkerSize(1);
368 }
369
370 for(Int_t i=0;i<v2sumstat->GetNbinsX();i++){
371 x[i]=v2sumstat->GetXaxis()->GetBinCenter(i+1) ;
372 y[i]=v2sumstat->GetBinContent(i+1) ;
373 ey[i]=v2sumstat->GetBinError(i+1) ;
374 ex[i]=0. ;
375 }
376
377 TGraphErrors * gsum = new TGraphErrors(v2sumstat->GetNbinsX(),x,y,ex,ey) ;
378 gsum->SetMarkerStyle(21) ;
379 gsum->SetMarkerColor(kRed);
380 gsum->SetLineColor(kRed) ;
381 gsum->SetLineWidth(1) ;
382 gsum->SetMarkerSize(1.5);
383
384//DRAW ALL!!!
385 box->Draw() ;
386
387 if(drawch){
388 v2ch->Draw("3");
389 v2chAlex->Draw("3 same");
390 }
391//if(cen==3||cen==4||cen==5) v2CMS->Draw("p same");
392
393 if(drawall){
394 v2sys0->Draw("E2same");
395 v2sys1->Draw("E2same");
396 g->Draw("p") ;
397 g2->Draw("p");
398 }
399
400 if(drawwhdg&&cen>=2&&cen<=5){
401 gWHDG->Draw("pl");
402 }
403
404 if(fit){
405// TF1* ff=new TF1("ff","[0]*(1-exp(-[1]*x))/([2]+exp([3]+[4]*x+[5]*x*x))");
406 TF1* ff=new TF1("ff","([0]+exp([1]+[2]*x+[3]*x*x))/([4]+exp([5]+[6]*x+[7]*x*x))",0,20);
407
408 ff->SetParameters(0,0.05);
409 ff->SetParameters(1,0.05);
410
411 v2chAll->Fit(ff,"m");
412 ff->Draw("same");
413
414 Double_t *p = ff->GetParameters();
415 cout<<p[0]<<"*(1-exp(-1*("<<p[1]<<")*x))/("<<p[2]<<"+exp("<<p[3]<<"+("<<p[4]<<")*x+("<<p[5]<<")*x*x))"<<endl;
416
417 TGraphAsymmErrors* v2ch_cpy = v2ch->Clone("v2ch_cpy");
418 TGraphAsymmErrors* v2ch_diff = v2ch->Clone("v2ch_diff");
419
420 v2ch_cpy->Apply(ff);
421 }
422
423//PHOS sum V0A and V0C
424 if(drawsum){
425 gsum->Draw("p");
426 v2sumsys->Draw("E2same");
427
428 TFile fout("v2PHOS.root","update");
429 char nname[100];
430 char cname[100]="";
431 if(cen==10) sprintf(cname,"cen010");
432 if(cen==11) sprintf(cname,"cen2040");
433 if(cen==20) sprintf(cname,"cen1050");
434
435 if(cen==0) sprintf(cname,"cen05");
436 if(cen==1) sprintf(cname,"cen510");
437 if(cen==2) sprintf(cname,"cen1020");
438 if(cen==3) sprintf(cname,"cen2030");
439 if(cen==4) sprintf(cname,"cen3040");
440 if(cen==5) sprintf(cname,"cen4050");
441
442 sprintf(nname,"v2statV0_%s_11h",cname) ;
443 gsum->SetName(nname) ;
444 sprintf(nname,"v2sysV0_%s_11h",cname) ;
445 v2sumsys->SetName(nname) ;
446
447 gsum->Write(0,TObject::kOverwrite) ;
448 v2sumsys->Write(0,TObject::kOverwrite) ;
449 fout.Close() ;
450
451 }
452
453 if(fit){
454 for(int i=0;i<v2ch_cpy->GetN();i++){
455 Double_t px1,px2,py1,py2,pyPHOS,pyPCM,py,px;
456 v2ch_cpy->GetPoint(i,px1,py1); //PHOS+PCM
457 v2ch->GetPoint(i,px2,py2); //PHOS+PCM
458
459 v2ch_diff->SetPoint(i,px1,py1-py2);
460 }
461 v2ch_diff->SetLineColor(kGray+1);
462 v2ch_diff->SetMarkerColor(kGray+1);
463
464 v2ch_diff->Draw("3");
465 }
466
467 if(drawpcm){
468 if(cen==11||cen==21){
469 v2PCMsys->Draw("E2same");
470 v2PCM->Draw("p");
471 }
472 }
473
474// if(merge){
475 if(diff){
476 TGraphErrors *gtmp = gsum->Clone("gtmp");
477
478//if(merge)gtmp=gm->Clone("gtmp");
479//else gtmp=gsum->Clone("gtmp");
480
481 TGraphErrors *gmnew;
482 TH1D *v2msysnew;
483 TGraphErrors *gmsysnew;
484
485if(diff==1){
486 gmnew=(TGraphErrors*)gm->Clone("gmnew");
487 v2msysnew=(TH1D*)v2msys->Clone("v2msysnew");
488}
489else if(diff==2||diff==4){
490 gmnew=(TGraphErrors*)gsum->Clone("gmnew");
491 v2msysnew=(TH1D*)v2sumsys->Clone("v2msysnew");
492}
493else if(diff==3||diff==5){
494 gmnew=(TGraphErrors*)v2PCM->Clone("gmnew");
495 gmsysnew=(TGraphErrors*)v2PCMsys->Clone("v2msysnew");
496}
497
498// TH1D *v2msysnew = v2msys->Clone("v2msysnew");
499
500 if(fit)gtmp->Apply(ff);
501 for(int i=0;i<gmnew->GetN();i++){
502 Double_t px1=0,px2=0,py1=0,py2=0,pyPHOS=0,pyPCM=0,py=0,px=0;
503 if(diff==1||diff==2||diff==3)gm->GetPoint(i,px1,py1); //PHOS+PCM
504 if(fit)gtmp->GetPoint(i,px2,py2); //ch fit
505
506 if(px1!=px2) cout<<"ERROR!"<<endl;
507cout<<"points: "<<py1<<" "<<py2<<endl;
508
509 py=py1-py2;
510 gsum->GetPoint(i,px,pyPHOS);
511 if(merge)v2PCM->GetPoint(i,px,pyPCM);
512 if(i>7) pyPCM=0;
513 if(diff==2){ //PHOS - PHOS+PCM
514 py=pyPHOS-py1;
515 }
516 if(diff==3){ //PCM - PHOS+PCM
517 py=pyPCM-py1;
518 }
519 if(diff==4){ //PHOS - ch
520 py=pyPHOS-py2;
521 }
522 if(diff==5){ //PCM - ch
523 py=pyPCM-py2;
524 }
525
526 gmnew->SetPoint(i,px,py);
527 if(diff==1||diff==2||diff==4)v2msysnew->SetBinContent(i+1,py);
528 if(diff==3||diff==5)gmsysnew->SetPoint(i,px,py);
529
530 }
531 gmnew->SetLineColor(kGreen);
532 gmnew->SetMarkerColor(kGreen);
533
534 gmnew->Draw("p");
535 if(diff==1||diff==2||diff==4){
536 v2msysnew->SetLineColor(kGreen);
537 v2msysnew->SetMarkerColor(kGreen);
538 v2msysnew->Draw("E2same");
539 }
540 if(diff==3||diff==5){
541 gmsysnew->SetLineColor(kGreen);
542 gmsysnew->SetMarkerColor(kGreen);
543 gmsysnew->Draw("E2same");
544 }
545// }
546
547 if(drawmerge){
548 gm->Draw("p");
549 v2msys->Draw("E2same");
550 }
551
552 if(diff!=0){
553 TF1* ffuu=new TF1("ffuu","[0]");
554 gmnew->Fit(ffuu,"m");
555
556 TPaveText* t3=new TPaveText(0.12,0.08,0.57,0.18,"NDC"); //0.63,0.5,0.8,0.70,"NDC");
557 t3->SetFillStyle(0);
558 t3->SetBorderSize(0);
559 t3->SetTextSize(0.04) ;
560
561 char ffuuname[255];
562
563 sprintf(ffuuname,"fit diff: %f #pm %f",ffuu->GetParameter(0),ffuu->GetParError(0));
564 t3->AddText(0.,0.,ffuuname);
565 t3->Draw();
566 }
567 }
568
569 if(drawcms)
570 if(cen==3||cen==4||cen==5) v2CMS->Draw("p same");
571 if(drawphenix)
572 if(cen==2||cen==3||cen==4||cen==5||cen==10) v2PHENIX->Draw("p same");
573
574//TITLE
575
576 TPaveText* t2=new TPaveText(0.12,0.88,0.57,0.98,"NDC"); //0.63,0.5,0.8,0.70,"NDC");
577 t2->SetFillStyle(0);
578 t2->SetBorderSize(0);
579 t2->SetTextSize(0.04) ;
580
581 char tname[255];
582
583 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 0-10%%");
584 if(cen==10) t2->AddText(0.,0.,tname);
585 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 20-40%%");
586 if(cen==11) t2->AddText(0.,0.,tname);
587 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 0-5%%");
588 if(cen==0) t2->AddText(0.,0.,tname);
589 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 5-10%%");
590 if(cen==1) t2->AddText(0.,0.,tname);
591 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 10-20%%");
592 if(cen==2) t2->AddText(0.,0.,tname);
593 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 20-30%%");
594 if(cen==3) t2->AddText(0.,0.,tname);
595 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 30-40%%");
596 if(cen==4) t2->AddText(0.,0.,tname);
597 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 40-50%%");
598 if(cen==5) t2->AddText(0.,0.,tname);
599 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 10-50%%");
600 if(cen==20) t2->AddText(0.,0.,tname);
601 sprintf(tname,"#pi^{0} v_{2}^{EP} centrality 0-20%%");
602 if(cen==21) t2->AddText(0.,0.,tname);
603
604 t2->Draw();
605
606 TLegend * l = new TLegend(0.15,0.68,0.95,0.88) ;
607// TLegend * l = new TLegend(0.22,0.08,0.75,0.28) ;
608
609 l->SetFillColor(0) ;
610 l->SetTextSize(0.04) ;
611
612
613 if(drawsum)
614 if(method==1) l->AddEntry(gsum,"PHOS #pi^{0} dNdPhi method, VZERO EP 3 subs","p") ;
615 else if(method==2) l->AddEntry(gsum,"PHOS #pi^{0} inv mass method, VZERO EP 3 subs","p") ;
616
617 if(drawpcm)
618 if(cen==11||cen==21)l->AddEntry(v2PCM,"PCM #pi^{0}, VZERO EP 3 subs","p") ;
619
620 if(drawall){
621 l->AddEntry(g,"PHOS #pi^{0}, V0A EP 3 subs","p") ;
622 l->AddEntry(g2,"PHOS #pi^{0}, V0C EP 3 subs","p") ;
623 }
624
625 if(merge){
626 l->AddEntry(gm,"PHOS+PCM #pi^{0}, V0 EP 3 subs","p") ;
627 if(diff==1)l->AddEntry(gmnew,"PHOS+PCM #pi^{0} - #pi^{#pm}, V0 EP","p") ;
628 if(diff==2)l->AddEntry(gmnew,"PHOS - PHOS+PCM #pi^{0}, V0 EP 3 subs","p") ;
629 if(diff==3)l->AddEntry(gmnew,"PCM - PHOS+PCM #pi^{0}, V0 EP 3 subs","p") ;
630 if(diff==4)l->AddEntry(gmnew,"PHOS #pi^{0} - #pi^{#pm}, V0 EP","p") ;
631 if(diff==5)l->AddEntry(gmnew,"PCM #pi^{0} - #pi^{#pm}, V0 EP","p") ;
632 }
633 if(drawch){
634 l->AddEntry(v2ch,"TOF #pi^{#pm}, V0 EP 3 subs","f") ;
635 l->AddEntry(v2chAlex,"TPC #pi^{#pm} (v2Alex)","f") ;
636 }
637if(drawcms)
638if(cen==3||cen==4||cen==5)l->AddEntry(v2CMS,"CMS #pi^{0}","p");
639if(drawphenix)
640if(cen==2||cen==3||cen==4||cen==5||cen==10) l->AddEntry(v2PHENIX,"PHENIX #pi^{0}, MPC+RXNin","p");
641if(drawwhdg)
642if(cen>=2&&cen<=5)l->AddEntry(gWHDG,"WHDG predictions for #pi^{0} v_{2} at LHC energies","p");
643
644 l->Draw() ;
645
646//if(cen==4) ALICEPreliminary2(c);
647// else ALICEPreliminary(c);
648
649// if(cen==6)TGraphErrors * gph = new TGraphErrors(17,pT2,v22,xbins,v2e2);
650// if(cen==3)TGraphErrors * gph = new TGraphErrors(17,pT4,v24,xbins,v2e4);
651// if(cen==4)TGraphErrors * gph = new TGraphErrors(17,pT6,v26,xbins,v2e6);
652
653 if(diff==0){
654 if(drawall)
655 sprintf(name,"combined_%s_%s_%d_%d_V0EPall.gif",w,kind,cen,method) ;
656 else
657 sprintf(name,"combined_%s_%s_%d_%d_V0EP.gif",w,kind,cen,method) ;
658 }
659 else{
660 if(drawall)
661 sprintf(name,"combined_%s_%s_%d_%d_V0EPall_diff%d.gif",w,kind,cen,method,diff) ;
662 else
663 sprintf(name,"combined_%s_%s_%d_%d_V0EP_diff%d.gif",w,kind,cen,method,diff) ;
664}
665 c->SaveAs(name) ;
666
667 if(diff==0){
668 if(drawall)
669 sprintf(name,"combined_%s_%s_%d_%d_V0EPall.eps",w,kind,cen,method) ;
670 else
671 sprintf(name,"combined_%s_%s_%d_%d_V0EP.eps",w,kind,cen,method) ;
672 }
673 else{
674 if(drawall)
675 sprintf(name,"combined_%s_%s_%d_%d_V0EPall_diff%d.eps",w,kind,cen,method,diff) ;
676 else
677 sprintf(name,"combined_%s_%s_%d_%d_V0EP_diff%d.eps",w,kind,cen,method,diff) ;
678}
679
680 c->SaveAs(name) ;
681
682
683}
684//-----------------------------------------------------------------------------
685void ALICEPreliminary(TPad *c){
686
687 TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo",0.69,0.70,0.84,0.89);//0.65,0.70,0.8,0.89);
688 myPadLogo->SetFillColor(0);
689 myPadLogo->SetBorderMode(0);
690 myPadLogo->SetBorderSize(2);
691 myPadLogo->SetFrameBorderMode(0);
692 myPadLogo->SetLeftMargin(0.0);
693 myPadLogo->SetTopMargin(0.0);
694 myPadLogo->SetBottomMargin(0.0);
695 myPadLogo->SetRightMargin(0.0);
696 myPadLogo->SetFillStyle(0);
697 myPadLogo->Draw();
698 myPadLogo->cd();
699
700 TASImage *myAliceLogo = new TASImage("./alice_logo.png");
701 myAliceLogo->Draw();
702
703 c->cd() ;
704 TPaveText* t1=new TPaveText(0.67,0.6,0.84,0.70,"NDC"); //0.63,0.5,0.8,0.70,"NDC");
705 t1->SetFillStyle(0);
706 t1->SetBorderSize(0);
707 t1->SetTextSize(0.03) ;
708 t1->AddText(0.,0.,"ALICE performance");
709 t1->AddText(0.,0.,"#color[1]{18/05/2011}");
710 t1->AddText(0.,0.,"Pb-Pb->#pi^{0}+X @ #sqrt{s_{NN}}=2.76 TeV");
711
712// t1->AddText(0.,0.,"9.8#times 10^{6} events");
713// t1->AddText(0.,0.,"PHOS");
714 t1->SetTextColor(kRed);
715 t1->SetTextFont(42);
716 t1->Draw();
717}
718
719//-----------------------------------------------------------------------------
720void ALICEPreliminary2(TPad *c){
721
722 TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo",0.19,0.70,0.34,0.89);//0.65,0.70,0.8,0.89);
723
724 myPadLogo->SetFillColor(0);
725 myPadLogo->SetBorderMode(0);
726 myPadLogo->SetBorderSize(2);
727 myPadLogo->SetFrameBorderMode(0);
728 myPadLogo->SetLeftMargin(0.0);
729 myPadLogo->SetTopMargin(0.0);
730 myPadLogo->SetBottomMargin(0.0);
731 myPadLogo->SetRightMargin(0.0);
732 myPadLogo->SetFillStyle(0);
733 myPadLogo->Draw();
734 myPadLogo->cd();
735
736 TASImage *myAliceLogo = new TASImage("./alice_logo.png");
737 myAliceLogo->Draw();
738
739 c->cd() ;
740 TPaveText* t1=new TPaveText(0.17,0.6,0.34,0.70,"NDC");
741 t1->SetFillStyle(0);
742 t1->SetBorderSize(0);
743 t1->SetTextSize(0.03) ;
744 t1->AddText(0.,0.,"ALICE performance");
745 t1->AddText(0.,0.,"#color[1]{18/05/2011}");
746 t1->AddText(0.,0.,"PbPb->#pi^{0}+X @ #sqrt{s_{NN}}=2.76 TeV");
747
748// t1->AddText(0.,0.,"9.8#times 10^{6} events");
749// t1->AddText(0.,0.,"PHOS");
750 t1->SetTextColor(kRed);
751 t1->SetTextFont(42);
752 t1->Draw();
753}
754
755