]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/papers/PRL107_032301/fig1ab.C
macros and figures paper
[u/mrichter/AliRoot.git] / PWG2 / FLOW / papers / PRL107_032301 / fig1ab.C
CommitLineData
6fa5a1ef 1
2static int myDarkRed = TColor::GetColor(128,0,0);
3static int myDarkGreen = TColor::GetColor(0,128,0);
4static int myDarkBlue = TColor::GetColor(0,0,128);
5
6void fig1ab(Int_t rWrite = 0, Int_t rPerformance = 0)
7{
8 myOptions();
9 gROOT->ForceStyle();
10 TDatime now;
11 int iDate = now.GetDate();
12 int iYear=iDate/10000;
13 int iMonth=(iDate%10000)/100;
14 int iDay=iDate%100;
15 char* cMonth[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
16 char cStamp1[25],cStamp2[25];
17 sprintf(cStamp1,"%i %s %i",iDay,cMonth[iMonth-1],iYear);
18 sprintf(cStamp2,"%i/%.2d/%i",iDay,iMonth,iYear);
19
20 Double_t xCent[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
21 Double_t exCent[9] = {0.};
22
23 //===================================================================================================
24 // Figure 1a:
25
26 //=========================================================================================================================
27 // <<cos(2phi1+2phi2+2phi3-3phi4-3phi5)>>:
28 Double_t xf5pCorrelator[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
29 Double_t yf5pCorrelator[] = {-1.885920e-10,-6.829616e-10,7.614580e-10,-1.138544e-09,1.112910e-09,
30 7.147351e-08,7.625261e-08,-4.045715e-09,-8.973545e-07};
31 Double_t xErrf5pCorrelator[9] = {0.};
32 Double_t yErrf5pCorrelator[] = {3.193590e-10,9.788524e-10,2.210425e-09,6.072454e-09,1.346291e-08,
33 2.891663e-08,6.706111e-08,2.032517e-07,1.058125e-06};
34 Int_t nPointsf5pCorrelator = sizeof(xf5pCorrelator)/sizeof(Double_t);
35 TGraphErrors *f5pCorrelator = new TGraphErrors(nPointsf5pCorrelator,xf5pCorrelator,yf5pCorrelator,
36 xErrf5pCorrelator,yErrf5pCorrelator);
37 myGraphSetUp(f5pCorrelator,1.0,kFullSquare,kBlack,1,kBlack);
38 //ShiftAlongXaxis(f5pCorrelator,0.0);
39 //=========================================================================================================================
40
41 //=========================================================================================================================
42 // v2:
43 // QC2_v2 = v2{2}:
44 Double_t xQC2_v2[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
45 Double_t yQC2_v2[] = {0.03057544, 0.04782869, 0.06730953, 0.08693288, 0.09905272,
46 0.10507712, 0.10546323, 0.10293218, 0.10292639};
47 Double_t xErrQC2_v2[9] = {0.};
48 Double_t yErrQC2_v2[] = {0.00006919, 0.00008033, 0.00006915, 0.00008314, 0.00010003,
49 0.00012251, 0.00015668, 0.00022385, 0.00039746};
50 Int_t nPointsQC2_v2 = sizeof(xQC2_v2)/sizeof(Double_t);
51 TGraphErrors *QC2_v2 = new TGraphErrors(nPointsQC2_v2,xQC2_v2,yQC2_v2,xErrQC2_v2,yErrQC2_v2);
52 myGraphSetUp(QC2_v2,1.0,kFullCircle,kBlue,1,kBlack);
53 //ShiftAlongXaxis(QC2_v2,1.0);
54
55 // QC4_v2 = v2{4}:
56 Double_t xQC4_v2[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
57 Double_t yQC4_v2[] = {0.01524963,0.03617246,0.05778658,0.07579155,0.08485658,0.08614990,
58 0.07996274,0.06850833,0.04132845};
59 Double_t xErrQC4_v2[9] = {0.};
60 Double_t yErrQC4_v2[] = {0.00090087,0.00020984,0.00014058,0.00014179,0.00017103,0.00024813,
61 0.00049434,0.00157658,0.02242034};
62 Int_t nPointsQC4_v2 = sizeof(xQC4_v2)/sizeof(Double_t);
63 TGraphErrors *QC4_v2 = new TGraphErrors(nPointsQC4_v2,xQC4_v2,yQC4_v2,xErrQC4_v2,yErrQC4_v2);
64 myGraphSetUp(QC4_v2,1.0,kOpenSquare,kBlue,1,kBlack);
65 //ShiftAlongXaxis(QC4_v2,1.0);
66 //=========================================================================================================================
67
68 // v2{SP}, TPC ref mult, TPConly tracks, all charges:
69 Double_t xSP_TPCrefMultTPConlyAll[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
70 Double_t ySP_TPCrefMultTPConlyAllOrg[] = {0.027582,0.044635,0.064334,0.083715,0.095463,0.100227,0.098364,0.090479,0.078384};
71 Double_t ySP_TPCrefMultTPConlyAll[9] = {0.};
72 Double_t xErrSP_TPCrefMultTPConlyAll[9] = {0.};
73
74 Double_t yErrSP_TPCrefMultTPConlyAll[] = {0.000133,0.000123,0.000097,0.000115,0.000144,0.000198,0.000317,0.000755,0.009428}; // stat errors
75 //Double_t yErrSP_TPCrefMultTPConlyAll[] = {0.0014,0.0011,0.0017,0.0021,0.0023,0.0025,0.0025,0.0023,0.010}; // stat + syst nonflow
76 //Double_t ySystErrSP_TPCrefMultTPConlyAll[] = {0.0014,0.0011,0.0017,0.0021,0.0023,0.0025,0.0025,0.0023,0.010}; // stat + syst nonflow
77 Double_t ySystErrSP_TPCrefMultTPConlyAll[9] = {0.};
78 Double_t yCorrSP[9] = {0.};
79 //Double_t ySP_PP[] = {0.008, 0.0086, 0.01, 0.012, 0.015, 0.02, 0.026, 0.037, 0.056}; // Vera \delta eta=0.4
80 Double_t ySP_PP[] = {0.005321,0.005928,0.007075,0.010423,0.012069,0.013821,0.020232,0.025020,0.035993}; //Ante Hijing
81 for (Int_t p=0;p<9;p++) {
82 yCorrSP[p] = TMath::Sqrt(ySP_TPCrefMultTPConlyAllOrg[p]*ySP_TPCrefMultTPConlyAllOrg[p] + ySP_PP[p]*ySP_PP[p]) -
83 ySP_TPCrefMultTPConlyAllOrg[p];
84 cout << "yCorrSP:" << yCorrSP[p] << endl;
85 ySP_TPCrefMultTPConlyAll[p] = ySP_TPCrefMultTPConlyAllOrg[p] - yCorrSP[p];
86 Double_t estsys = 0.04*ySP_TPCrefMultTPConlyAll[p];
87 ySystErrSP_TPCrefMultTPConlyAll[p] = TMath::Sqrt(1.*yCorrSP[p]*1.*yCorrSP[p]+estsys*estsys);
88 }
89 Int_t nPointsSP_TPCrefMultTPConlyAll = sizeof(xSP_TPCrefMultTPConlyAll)/sizeof(Double_t);
90 TGraphErrors *SP_TPCrefMultTPConlyAllOrg = new TGraphErrors(nPointsSP_TPCrefMultTPConlyAll,xSP_TPCrefMultTPConlyAll,
91 ySP_TPCrefMultTPConlyAllOrg,xErrSP_TPCrefMultTPConlyAll,
92 yErrSP_TPCrefMultTPConlyAll);
93 myGraphSetUp(SP_TPCrefMultTPConlyAllOrg,1.0,kOpenCircle,kRed,1,kBlack);
94
95 TGraphErrors *SP_TPCrefMultTPConlyAll = new TGraphErrors(nPointsSP_TPCrefMultTPConlyAll,xSP_TPCrefMultTPConlyAll,
96 ySP_TPCrefMultTPConlyAll,xErrSP_TPCrefMultTPConlyAll,
97 yErrSP_TPCrefMultTPConlyAll);
98 myGraphSetUp(SP_TPCrefMultTPConlyAll,1.0,kFullCircle,kRed,1,kBlack);
99
100 TGraphErrors *SP_TPCrefMultTPConlyAll2 = new TGraphErrors(nPointsSP_TPCrefMultTPConlyAll,xSP_TPCrefMultTPConlyAll,
101 ySP_TPCrefMultTPConlyAll,xErrSP_TPCrefMultTPConlyAll,
102 ySystErrSP_TPCrefMultTPConlyAll );
103 myGraphSetUp(SP_TPCrefMultTPConlyAll2,1.0,kFullCircle,kRed,1,kBlack,kRed-9,1001);
104 //=========================================================================================================================
105
106 //=========================================================================================================================
107 // v3:
108 // QC2_v3 = v3{2}:
109 Double_t xQC2_v3[] = {2.5,7.5,15.,25.,35.,45.};
110 Double_t yQC2_v3[] = {0.02183955,0.02539081,0.02875255,0.03241459,0.03507416,0.03730817,
111 0.03889757,0.04285879,0.05030896};
112 Double_t xErrQC2_v3[9] = {0.};
113 Double_t yErrQC2_v3[] = {0.00005352,0.00005932,0.00004912,0.00006050,0.00007675,0.00010535,
114 0.00016134,0.00027456,0.00052779};
115 Int_t nPointsQC2_v3 = sizeof(xQC2_v3)/sizeof(Double_t);
116 TGraphErrors *QC2_v3 = new TGraphErrors(nPointsQC2_v3,xQC2_v3,yQC2_v3,xErrQC2_v3,yErrQC2_v3);
117 myGraphSetUp(QC2_v3,1.0,kFullTriangleUp,kBlue,1,kBlack);
118 //ShiftAlongXaxis(QC2_v3,0.0);
119
120 // QC2_v3_same = v3{2}, same charges:
121 Double_t xQC2_v3_same[] = {2.5,7.5,15.,25.,35.,45.};
122 Double_t yQC2_v3_same[] = {0.02047422,0.02403312,0.02751779,0.03108505,0.03372405,0.03572696,0.03741600};
123 Double_t xErrQC2_v3_same[7] = {0.};
124 Double_t yErrQC2_v3_same[] = {0.00006541,0.00007080,0.00005897,0.00007455,0.00009984,0.00014546,0.00023698};
125 Int_t nPointsQC2_v3_same = sizeof(xQC2_v3_same)/sizeof(Double_t);
126 TGraphErrors *QC2_v3_same = new TGraphErrors(nPointsQC2_v3_same,xQC2_v3_same,yQC2_v3_same,xErrQC2_v3_same,yErrQC2_v3_same);
127 myGraphSetUp(QC2_v3_same,1.0,kStar,kBlue,1,kBlack);
128 //ShiftAlongXaxis(QC2_v3_same,1.);
129
130 // QC4_v3 = v3{4}:
131 Double_t xQC4_v3[] = {2.5,7.5,15.,25.,35.,45.};
132 Double_t yQC4_v3[] = {0.01053669,0.01257961,0.01552626,0.01506058,0.01839253,0.01770513,
133 0.02810784,0.03316069};
134 Double_t xErrQC4_v3[8] = {0.};
135 Double_t yErrQC4_v3[] = {0.00101506,0.00115529,0.00069718,0.00148116,0.00148018,0.00352904,
136 0.00763725,0.02345570};
137 Int_t nPointsQC4_v3 = sizeof(xQC4_v3)/sizeof(Double_t);
138 TGraphErrors *QC4_v3 = new TGraphErrors(6,xQC4_v3,yQC4_v3,xErrQC4_v3,yErrQC4_v3);
139 myGraphSetUp(QC4_v3,1.0,kOpenSquare,kBlue,1,kBlack);
140 //ShiftAlongXaxis(QC4_v3,0.75);
141
142 // QC4_v3_same = v3{4}, same charges:
143 Double_t xQC4_v3_same[] = {2.5,7.5,15.,25.,35.,45.};
144 Double_t yQC4_v3_same[] = {0.00760270,0.01289241,0.01396290,0.01593748,0.01841474,0.01355171};
145 Double_t xErrQC4_v3_same[6] = {0.};
146 Double_t yErrQC4_v3_same[] = {0.00433070,0.00180779,0.00151872,0.00209834,0.00279355,0.01648787};
147 Int_t nPointsQC4_v3_same = sizeof(xQC4_v3_same)/sizeof(Double_t);
148 TGraphErrors *QC4_v3_same = new TGraphErrors(nPointsQC4_v3_same,xQC4_v3_same,yQC4_v3_same,xErrQC4_v3_same,yErrQC4_v3_same);
149 myGraphSetUp(QC4_v3_same,1.0,kOpenSquare,kRed,1,kBlack);
150
151 // ZDC_v3 = v3{ZDC} (Ilya):
152 Double_t xZDC_v3[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
153 Double_t yZDC_v3[] = {0.2005414,-0.0008304778,0.0003468132,0.001181955,-0.0001876906,0.0005668259,-2.986464e-05,0.0007950359,0.006499858};
154 Double_t xErrZDC_v3[9] = {0.};
155 Double_t yErrZDC_v3[] = {0.6825955,0.002633532,0.0006703818,0.0005074313,0.0006300845,0.0009810903,0.001860773,0.004609001,0.01633596};
156 Int_t nPointsZDC_v3 = sizeof(xZDC_v3)/sizeof(Double_t);
157 TGraphErrors *ZDC_v3 = new TGraphErrors(6,xZDC_v3,yZDC_v3,xErrZDC_v3,yErrZDC_v3);
158 myGraphSetUp(ZDC_v3,1.0,kFullCircle,kGreen+2,1,kBlack);
159
160 /*
161 // ZDC_v3 = v3{ZDC} (Ilya):
162 Double_t xZDC_v3[] = {2.5,7.5,15.,25.,35.,45.};
163 Double_t yZDC_v3[] = {0.004703597,2.977193e-05,7.509025e-05,8.895956e-05,0.0001218988,
164 5.045662e-06,0.0003617772,0.001024175,-0.0009996569};
165 Double_t xErrZDC_v3[9] = {0.};
166 Double_t yErrZDC_v3[] = {0.002843094,0.0003961917,9.486118e-05,7.382399e-05,9.159939e-05,
167 0.0001466929,0.0002849215,0.0007678118,0.003465045};
168 Int_t nPointsZDC_v3 = sizeof(xZDC_v3)/sizeof(Double_t);
169 TGraphErrors *ZDC_v3 = new TGraphErrors(nPointsZDC_v3,xZDC_v3,yZDC_v3,xErrZDC_v3,yErrZDC_v3);
170 myGraphSetUp(ZDC_v3,1.0,kOpenTriangleUp,kGreen+2,1,kBlack);
171 */
172
173 // SP_v3_etaGap02 = v3{SP}:
174 Double_t xSP_v3_etaGap02[] = {2.5,7.5,15.,25.,35.,45.};
175 Double_t ySP_v3_etaGap02[] = {0.02100282,0.02441799,0.02742384,0.03061855,0.03244124,0.03295708,0.03197919};
176 Double_t xErrSP_v3_etaGap02[9] = {0.};
177 Double_t yErrSP_v3_etaGap02[] = {0.00007620,0.00008169,0.00006829,0.00009012,0.00011868,0.00018015,0.00031468};
178 Int_t nPointsSP_v3_etaGap02 = sizeof(xSP_v3_etaGap02)/sizeof(Double_t);
179 TGraphErrors *SP_v3_etaGap02 = new TGraphErrors(nPointsSP_v3_etaGap02,xSP_v3_etaGap02,ySP_v3_etaGap02,
180 xErrSP_v3_etaGap02,yErrSP_v3_etaGap02);
181 myGraphSetUp(SP_v3_etaGap02,1.0,kOpenTriangleUp,kBlue,1,kBlack);
182 //ShiftAlongXaxis(SP_v3_etaGap02,-0.5);
183
184 // SP_v3_etaGap10 = v3{SP}:
185 Double_t xSP_v3_etaGap10[] = {2.5,7.5,15.,25.,35.,45.};
186 Double_t ySP_v3_etaGap10[] = {0.02070702,0.02382848,0.02672520,0.02970215,0.03109479,0.03105698,0.02908181};
187 Double_t xErrSP_v3_etaGap10[7] = {0.};
188 Double_t yErrSP_v3_etaGap10[] = {0.00013628,0.00014867,0.00012609,0.00016659,0.00024023,0.00038862,0.00073425};
189 Int_t nPointsSP_v3_etaGap10 = sizeof(xSP_v3_etaGap10)/sizeof(Double_t);
190 TGraphErrors *SP_v3_etaGap10 = new TGraphErrors(nPointsSP_v3_etaGap10,xSP_v3_etaGap10,ySP_v3_etaGap10,
191 xErrSP_v3_etaGap10,yErrSP_v3_etaGap10);
192 myGraphSetUp(SP_v3_etaGap10,1.2,kOpenSquare,kBlue,1,kBlack);
193 //ShiftAlongXaxis(SP_v3_etaGap10,0.5);
194
195 Double_t ySystErrSPv3[7] = {0.};
196 Double_t yCorrSPv3[7] = {0.};
197 Double_t ySPv3_PP[] = {0.003,0.003,0.004,0.005,0.006,0.008,0.01}; //Vera pp
198
199 for (Int_t p=0;p<6;p++) {
200 Double_t corr = TMath::Sqrt(ySP_v3_etaGap10[p]*ySP_v3_etaGap10[p] + ySPv3_PP[p]*ySPv3_PP[p]) - ySP_v3_etaGap10[p];
201 cout << "Corr v3:" << corr << endl;
202 yCorrSPv3[p] = ySP_v3_etaGap10[p] - corr;
203 Double_t estsys = 0.05*yCorrSPv3[p];
204 ySystErrSPv3[p] = TMath::Sqrt(1.*corr*1.*corr+estsys*estsys);
205 }
206 TGraphErrors *SP_v3_corr = new TGraphErrors(nPointsSP_v3_etaGap10,xSP_v3_etaGap10,yCorrSPv3,
207 xErrSP_v3_etaGap10,yErrSP_v3_etaGap10);
208 myGraphSetUp(SP_v3_corr,1.,kFullSquare,kBlue,1,kBlack);
209
210 TGraphErrors *SP_v3_corr2 = new TGraphErrors(nPointsSP_v3_etaGap10,xSP_v3_etaGap10,yCorrSPv3,
211 xErrSP_v3_etaGap10,ySystErrSPv3);
212 myGraphSetUp(SP_v3_corr2,1.,kFullSquare,kBlue-9,1,kBlue,kBlue-9,1001);
213
214 // SP_v4_etaGap10 = v4{SP}:
215 Double_t xSP_v4_etaGap10[] = {2.5,7.5,15.,25.,35.,45.};
216 Double_t ySP_v4_etaGap10[] = {0.00981464,0.01161192,0.01288244,0.01435392,0.01599797,0.01553851};
217 Double_t xErrSP_v4_etaGap10[6] = {0.};
218 Double_t yErrSP_v4_etaGap10[] = {0.00025098,0.00026355,0.00022703,0.00030744,0.00042727,0.00073090};
219 Int_t nPointsSP_v4_etaGap10 = sizeof(xSP_v4_etaGap10)/sizeof(Double_t);
220 TGraphErrors *SP_v4_etaGap10 = new TGraphErrors(nPointsSP_v4_etaGap10,xSP_v4_etaGap10,ySP_v4_etaGap10,
221 xErrSP_v4_etaGap10,yErrSP_v4_etaGap10);
222 myGraphSetUp(SP_v4_etaGap10,1.2,kStar,kMagenta,1,kBlack);
223 ShiftAlongXaxis(SP_v4_etaGap10,1.5);
224
225
226
227 Double_t ySystErrSPv4[7] = {0.};
228 Double_t yCorrSPv4[7] = {0.};
229 Double_t ySPv4_PP[] = {0.0025,0.0025,0.0025,0.0025,0.0025,0.0025, 0.0025};
230
231 for (Int_t p=0;p<6;p++) {
232 Double_t corr = TMath::Sqrt(ySP_v4_etaGap10[p]*ySP_v4_etaGap10[p] + ySPv4_PP[p]*ySPv4_PP[p]) - ySP_v4_etaGap10[p];
233 cout << "Corr v4:" << corr << endl;
234 yCorrSPv4[p] = ySP_v4_etaGap10[p] - corr;
235 Double_t estsys = 0.05*yCorrSPv4[p];
236 ySystErrSPv4[p] = TMath::Sqrt(1.*corr*1.*corr+estsys*estsys);
237 }
238 TGraphErrors *SP_v4_corr = new TGraphErrors(nPointsSP_v4_etaGap10,xSP_v4_etaGap10,yCorrSPv4,
239 xErrSP_v4_etaGap10,yErrSP_v4_etaGap10);
240 myGraphSetUp(SP_v4_corr,1.2,kStar,kMagenta,1,kBlack);
241
242 TGraphErrors *SP_v4_corr2 = new TGraphErrors(nPointsSP_v4_etaGap10,xSP_v4_etaGap10,yCorrSPv4,
243 xErrSP_v4_etaGap10,ySystErrSPv4);
244 myGraphSetUp(SP_v4_corr2,1.2,kStar,kMagenta-9,1,kMagenta,kMagenta-9,1001);
245 //=========================================================================================================================
246
247 //=========================================================================================================================
248 // v3 centrality dependence prediction by Luzum and Ollitrault:
249 Double_t xLuzOll[] = {2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5};
250 Double_t yLuzOll[] = {0.023931343405028907,0.025578676086755334,0.02692673087997464,0.0277496106070913,
251 0.02834431352143814,0.030099333306694308,0.029712119761886445,0.02910588380400307,
252 0.029029451386236353,0.027650687387294634,0.02479761160079346,0.020694594742745584,
253 0.014559252721547645,0.00687958280855717,-0.0011508459086818318};
254 Double_t xErrLuzOll[15] = {0.};
255 Double_t yErrLuzOll[15] = {0.};
256 Int_t nPointsLuzOll = sizeof(xLuzOll)/sizeof(Double_t);
257 TGraphErrors *LuzOll = new TGraphErrors(nPointsLuzOll,xLuzOll,yLuzOll,xErrLuzOll,yErrLuzOll);
258 myGraphSetUp(LuzOll,1.,kFullSquare,kBlack,3,kBlack);
259 //=========================================================================================================================
260
261 //=========================================================================================================================
262 // v3{5}:
263 Double_t factor = 100.;
264 Double_t xQC5_v3_squared[] = {2.5,7.5,15.,25.,35.,45.,55.,65.,75.};
265 Double_t yQC5_v3_squared[9] = {0.};
266 Double_t xErrQC5_v3_squared[9] = {0.};
267 Double_t yErrQC5_v3_squared[9] = {0.};
268 for(Int_t p=0;p<6;p++)
269 {
270 Double_t value = 0.; // v3{5}
271 Double_t error = 0.; // v3{5} error
272 Double_t mh = yf5pCorrelator[p];
273 Double_t mhError = yErrf5pCorrelator[p];
274 Double_t v24 = yQC4_v2[p];
275 Double_t v24Error = yErrQC4_v2[p];
276 Double_t v22 = yQC2_v2[p];
277 Double_t v22Error = yErrQC2_v2[p];
278 if(TMath::Abs(v24)> 0.)
279 {
280 value = mh/pow(v22,3.); // v3{5}^2
281 error = pow((1./pow(v22,6.))*pow(mhError,2.)+9.*(pow(mh,2.)/pow(v22,8.))*pow(v22Error,2.),0.5);
282 yQC5_v3_squared[p] = value*factor;
283 yErrQC5_v3_squared[p] = error*factor;
284 }
285 } // end of for(Int_t p=0;p<9;p++)
286 Int_t nPointsQC5_v3_squared = sizeof(xQC5_v3_squared)/sizeof(Double_t);
287 TGraphErrors *QC5_v3_squared = new TGraphErrors(6,xQC5_v3_squared,yQC5_v3_squared,
288 xErrQC5_v3_squared,yErrQC5_v3_squared);
289 myGraphSetUp(QC5_v3_squared,1.4,33,kBlack,1.,kBlack);
290 ShiftAlongXaxis(QC5_v3_squared,-0.5);
291 //=========================================================================================================================
292 // v2 epsilons
293 Double_t r2E2Cum2WNpart[]= {0.0813921,0.122575,0.192946,0.276331,0.351085,0.421993,0.49293,0.573383,0.661991,0.709309,0.926234};
294 Double_t r2E2Cum2CGCNpart[]= {0.1037700, 0.176570, 0.270957, 0.365345, 0.437808, 0.496254, 0.546311, 0.596211, 0.645011};
295 Double_t xRatio_v22_e2CGC[9] = {0.};
296 Double_t yRatio_v22_e2CGC[9] = {0.};
297 Double_t xErrRatio_v22_e2CGC[9] = {0.};
298 Double_t yErrRatio_v22_e2CGC[9] = {0.};
299 Double_t ySystErrRatio_v22_e2CGC[9] = {0.};
300 Double_t xRatio_v22_e2w[9] = {0.};
301 Double_t yRatio_v22_e2w[9] = {0.};
302 Double_t xErrRatio_v22_e2w[9] = {0.};
303 Double_t yErrRatio_v22_e2w[9] = {0.};
304 Double_t ySystErrRatio_v22_e2w[9] = {0.};
305
306 for(Int_t p=0;p<9;p++) {
307 xRatio_v22_e2CGC[p] = xSP_TPCrefMultTPConlyAll[p];
308 yRatio_v22_e2CGC[p] = ySP_TPCrefMultTPConlyAll[p]/r2E2Cum2CGCNpart[p];
309 cout << "v2/epslon CGC: " << yRatio_v22_e2CGC[p] << endl;
310 yErrRatio_v22_e2CGC[p] = yErrSP_TPCrefMultTPConlyAll[p]/r2E2Cum2CGCNpart[p];
311 ySystErrRatio_v22_e2CGC[p] = ySystErrSP_TPCrefMultTPConlyAll[p]/r2E2Cum2CGCNpart[p];
312
313
314 xRatio_v22_e2w[p] = xSP_TPCrefMultTPConlyAll[p];
315 yRatio_v22_e2w[p] = ySP_TPCrefMultTPConlyAll[p]/r2E2Cum2WNpart[p];
316 yErrRatio_v22_e2w[p] = yErrSP_TPCrefMultTPConlyAll[p]/r2E2Cum2WNpart[p];
317 ySystErrRatio_v22_e2w[p] = ySystErrSP_TPCrefMultTPConlyAll[p]/r2E2Cum2WNpart[p];
318 }
319 TGraphErrors *Ratio_v22_e2CGC = new TGraphErrors(9,xRatio_v22_e2CGC,yRatio_v22_e2CGC,
320 xErrRatio_v22_e2CGC,yErrRatio_v22_e2CGC);
321 myGraphSetUp(Ratio_v22_e2CGC,1.,kFullCircle,kRed,1.,kRed);
322
323 TGraphErrors *Ratio_v22_e2w = new TGraphErrors(9,xRatio_v22_e2w,yRatio_v22_e2w,
324 xErrRatio_v22_e2w,yErrRatio_v22_e2w);
325 myGraphSetUp(Ratio_v22_e2w,1.,kOpenCircle,kMagenta,1.,kMagenta);
326
327 TGraphErrors *Ratio_v22_e2CGC2 = new TGraphErrors(9,xRatio_v22_e2CGC,yRatio_v22_e2CGC,
328 xErrRatio_v22_e2CGC,ySystErrRatio_v22_e2CGC);
329 myGraphSetUp(Ratio_v22_e2CGC2,1.,kFullCircle,kRed-9,1.,kRed,kRed-9,1001);
330
331 TGraphErrors *Ratio_v22_e2w2 = new TGraphErrors(9,xRatio_v22_e2w,yRatio_v22_e2w,
332 xErrRatio_v22_e2w,ySystErrRatio_v22_e2w);
333 myGraphSetUp(Ratio_v22_e2w2,1.,kOpenCircle,kMagenta,1.,kMagenta,kMagenta-9,1001);
334
335 //=========================================================================================================================
336
337 // v3 epsilons
338 Double_t r2E3Cum2CGCNpart[]= {0.0794007, 0.0954744, 0.115036, 0.141516, 0.173228, 0.212523, 0.259254, 0.302282, 0.309824};
339 Double_t r2E3Cum2WNpart[]= {0.0798219,0.104613,0.135106,0.173153,0.214027,0.259469,0.308709,0.354488,0.38321,0.39706,0.377804};
340 Double_t xRatio_v32_e2CGC[7] = {0.};
341 Double_t yRatio_v32_e2CGC[7] = {0.};
342 Double_t xErrRatio_v32_e2CGC[7] = {0.};
343 Double_t yErrRatio_v32_e2CGC[7] = {0.};
344 Double_t ySystErrRatio_v32_e2CGC[7] = {0.};
345 Double_t xRatio_v32_e2w[7] = {0.};
346 Double_t yRatio_v32_e2w[7] = {0.};
347 Double_t xErrRatio_v32_e2w[7] = {0.};
348 Double_t yErrRatio_v32_e2w[7] = {0.};
349 Double_t ySystErrRatio_v32_e2w[7] = {0.};
350 for(Int_t p=0;p<6;p++) {
351 xRatio_v32_e2CGC[p] = xSP_v3_etaGap10[p];
352 yRatio_v32_e2CGC[p] = ySP_v3_etaGap10[p]/r2E3Cum2CGCNpart[p];
353 yErrRatio_v32_e2CGC[p] = yErrSP_v3_etaGap10[p]/r2E3Cum2CGCNpart[p];
354 ySystErrRatio_v32_e2CGC[p] = ySystErrSPv3[p]/r2E3Cum2CGCNpart[p];
355
356 xRatio_v32_e2w[p] = xSP_v3_etaGap10[p];
357 yRatio_v32_e2w[p] = ySP_v3_etaGap10[p]/r2E3Cum2WNpart[p];
358 yErrRatio_v32_e2w[p] = yErrSP_v3_etaGap10[p]/r2E3Cum2WNpart[p];
359 ySystErrRatio_v32_e2w[p] = ySystErrSPv3[p]/r2E3Cum2WNpart[p];
360
361 }
362
363 TGraphErrors *Ratio_v32_e2CGC = new TGraphErrors(6,xRatio_v32_e2CGC,yRatio_v32_e2CGC,
364 xErrRatio_v32_e2CGC,yErrRatio_v32_e2CGC);
365 myGraphSetUp(Ratio_v32_e2CGC,1.,kFullSquare,kBlue,1.,kBlue);
366
367 TGraphErrors *Ratio_v32_e2w = new TGraphErrors(6,xRatio_v32_e2w,yRatio_v32_e2w,
368 xErrRatio_v32_e2w,yErrRatio_v32_e2w);
369 myGraphSetUp(Ratio_v32_e2w,1.,kOpenSquare,kMagenta,1.,kMagenta);
370
371
372 TGraphErrors *Ratio_v32_e2CGC2 = new TGraphErrors(6,xRatio_v32_e2CGC,yRatio_v32_e2CGC,
373 xErrRatio_v32_e2CGC,ySystErrRatio_v32_e2CGC);
374 myGraphSetUp(Ratio_v32_e2CGC2,1.,kFullSquare,kBlue-9,1,kBlue,kBlue-9,1001);
375
376 TGraphErrors *Ratio_v32_e2w2 = new TGraphErrors(6,xRatio_v32_e2w,yRatio_v32_e2w,
377 xErrRatio_v32_e2w,ySystErrRatio_v32_e2w);
378 myGraphSetUp(Ratio_v32_e2w2,1.,kOpenSquare,kMagenta,1,kMagenta,kMagenta-9,1001);
379 //=========================================================================================================================
380
381 // Style histogramm:
382 TH1F *myBlankHisto = new TH1F("myBlankHisto","Blank Histogram",100,0.,100.);
383 //myBlankHisto->SetXTitle("p_{t} (GeV/#font[72]{c})");
384 myBlankHisto->SetNdivisions(505,"y");
385 myBlankHisto->GetYaxis()->SetTitleOffset(0.6);
386 //myBlankHisto->GetYaxis()->SetLabelSize(0.05);
387 //myBlankHisto->GetYaxis()->SetTitleSize(0.07);
388 //myBlankHisto->GetYaxis()->SetRangeUser(-0.02101,0.399);
389 myBlankHisto->GetXaxis()->SetRangeUser(0.,81.);
390 // Main canvas:
391 TCanvas *myCan = new TCanvas("myCan",cStamp1,500,750);
392 myCan->Divide(1,2,0.0,0.0);
393 myCan->Draw();
394
395 // Figure 1a:
396 myCan->cd(1);
397 gPad->SetBottomMargin(0.);
398 gPad->SetRightMargin(0.001);
399 TH1D* styleHistPad1 = myBlankHisto->Clone("styleHistPad1");
400 styleHistPad1->GetYaxis()->SetRangeUser(-0.005,0.1099);
401 styleHistPad1->GetYaxis()->SetTitle("v_{n}");
402 styleHistPad1->Draw();
403 TLatex *a = new TLatex(0.95,0.93,"(a)");
404 a->SetNDC();
405 a->SetTextSize(0.05);
406 a->Draw();
407 // Legend:
408 TLegend *myLegendPad1 = new TLegend(0.45,0.44,0.67,0.74);
409 myLegendSetUp(myLegendPad1,0.04);
410 //myLegendPad1->AddEntry(f5pCorrelator,"#propto v_{2}^{3} v_{3}^{2} ??","p");
411 //myLegendPad1->AddEntry(QC2_v2,"v_{2}{2}","p");
412 //myLegendPad1->AddEntry(QC4_v2,"v_{2}{4}","p");
413 //myLegendPad1->AddEntry(QC2_v3,"v_{3}{2}","p");
414 //myLegendPad1->AddEntry(QC2_v3_same,"v_{3}{2} (same charges)","p");
415 //myLegendPad1->AddEntry(SP_v3_etaGap02,"v_{3}{SP} (#Delta#eta = 0.2)","p");
416 myLegendPad1->AddEntry(SP_TPCrefMultTPConlyAll,"v_{2}{2, |#Delta#eta| > 1}","p");
417 myLegendPad1->AddEntry(SP_v3_corr,"v_{3}{2, |#Delta#eta| > 1}","p");
418 myLegendPad1->AddEntry(SP_v4_etaGap10,"v_{4}{2, |#Delta#eta| > 1}","p");
419 myLegendPad1->AddEntry(QC4_v3,"v_{3}{4}","p");
420 //myLegendPad1->AddEntry(QC4_v3_same,"v_{3}{4} (same charges)","p");
421 myLegendPad1->AddEntry(ZDC_v3,"v_{3/#Psi_{RP}}","p");
422 myLegendPad1->AddEntry(QC5_v3_squared,"100 #times v_{3/#Psi_{2}}^{2}","p");
423 myLegendPad1->Draw("same");
424 // Final drawing (order is important!):
425 //f5pCorrelator->Draw("psame");
426 //QC2_v2->Draw("psame");
427 //QC4_v2->Draw("psame");
428 //QC2_v3->Draw("psame");
429 //QC2_v3_same->Draw("psame");
430 //SP_v3_etaGap02->Draw("psame");
431 SP_TPCrefMultTPConlyAll2->Draw("same3");
432 SP_TPCrefMultTPConlyAll->Draw("lsame");
433 SP_TPCrefMultTPConlyAll->Draw("psame");
434 //SP_v3_etaGap10->Draw("psame");
435 //SP_v4_etaGap10->Draw("psame");
436 SP_v4_corr2->Draw("same3");
437 SP_v4_corr->Draw("lsame");
438 SP_v4_corr->Draw("psame");
439 SP_v3_corr2->Draw("same3");
440 SP_v3_corr->Draw("lsame");
441 SP_v3_corr->Draw("psame");
442 QC4_v3->Draw("psame");
443 //QC4_v3_same->Draw("psame");
444 QC5_v3_squared->Draw("psame");
445 ZDC_v3->Draw("psame");
446 //LuzOll->Draw("lsame");
447
448 // Figure 1b:
449 myCan->cd(2);
450 gPad->SetTopMargin(0.);
451 gPad->SetBottomMargin(0.15);
452 gPad->SetRightMargin(0.001);
453 TH1D* styleHistPad2 = myBlankHisto->Clone("styleHistPad2");
454 styleHistPad2->GetYaxis()->SetRangeUser(0.,0.4799);
455 styleHistPad2->GetXaxis()->SetTitle("centrality percentile");
456 styleHistPad2->GetYaxis()->SetTitle("v_{n}/#varepsilon_{n}");
457 styleHistPad2->Draw();
458 TLatex *b = new TLatex(0.95,0.93,"(b)");
459 b->SetNDC();
460 b->SetTextSize(0.05);
461 b->Draw();
462 TLegend *myLegendPad2 = new TLegend(0.6,0.64,0.86,0.94);
463 myLegendSetUp(myLegendPad2,0.04);
464 myLegendPad2->AddEntry(Ratio_v22_e2CGC,"v_{2}{2, |#Delta#eta| > 1}/#varepsilon_{2}^{CGC}{2}","p");
465 myLegendPad2->AddEntry(Ratio_v32_e2CGC,"v_{3}{2, |#Delta#eta| > 1}/#varepsilon_{3}^{CGC}{2}","p");
466 myLegendPad2->AddEntry(Ratio_v22_e2w,"v_{2}{2, |#Delta#eta| > 1}/#varepsilon_{2}^{W}{2}","p");
467 myLegendPad2->AddEntry(Ratio_v32_e2w,"v_{3}{2, |#Delta#eta| > 1}/#varepsilon_{3}^{W}{2}","p");
468 //myLegendPad2->AddEntry(Ratio_v32_e3b,"v_{3}{2}/#varepsilon_{3,Ncoll}{2}","l");
469 //myLegendPad2->AddEntry(Ratio_v34_e2b,"v_{3}{4}/#varepsilon_{3,Ncoll}{4}","l");
470 //myLegendPad2->AddEntry(Ratio_v34_e2w,"v_{3}{4}/#varepsilon_{3}{4}","p");
471 //myLegendPad2->AddEntry(Ratio_v32_e3w,"v_{3}{2}/#varepsilon_{3}{2}","p");
472 myLegendPad2->Draw("same");
473 //Ratio_v34_e2b->Draw("same3");
474 //Ratio_v34_e2b->Draw("lsameX");
475 //Ratio_v32_e3b->Draw("same3");
476 //Ratio_v32_e3b->Draw("lsameX");
477 //Ratio_v34_e2w->Draw("psame");
478 //Ratio_v32_e3w->Draw("psame");
479
480
481
482
483 Ratio_v22_e2CGC2->Draw("same3");
484 Ratio_v22_e2w2->Draw("same3");
485 Ratio_v32_e2CGC2->Draw("same3");
486 Ratio_v32_e2w2->Draw("same3");
487 Ratio_v32_e2CGC->Draw("lsameX");
488 Ratio_v22_e2CGC->Draw("lsameX");
489 Ratio_v32_e2w->Draw("lsameX");
490 Ratio_v22_e2w->Draw("lsameX");
491 Ratio_v32_e2CGC->Draw("psame");
492 Ratio_v22_e2CGC->Draw("psame");
493 Ratio_v32_e2w->Draw("psame");
494 Ratio_v22_e2w->Draw("psame");
495
496 return;
497
498
499 /*
500 TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo",0.47,0.37,0.62,0.60);
501 //myPadLogo->SetFillColor(2); // color to first figure out where is the pad then comment !
502 myPadSetUp(myPadLogo,0,0,0,0);
503 myPadLogo->Draw();
504 myPadLogo->cd();
505 TASImage *myAliceLogo = new TASImage("alice_logo_transparent.png");
506 //.TASImage *myAliceLogo = new TASImage("alice_logo.pdf");
507 myAliceLogo->Draw();
508 */
509
510 if (rPerformance){
511 TLatex *alice = new TLatex(0.75,0.34,"Performance");
512 alice->SetNDC();
513 alice->SetTextColor(myDarkRed);
514 // alice->SetTextFont(42);
515 alice->SetTextSize(0.05);
516 alice->SetLineWidth(2);
517 alice->Draw();
518
519 TText *date = new TText(0.78,0.28,cStamp2);
520 date->SetNDC();
521 date->SetTextFont(42);
522 date->SetTextSize(0.04);
523 date->Draw();
524
525 TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo",0.77,0.37,0.92,0.60);
526 myPadLogo->SetFillColor(2); // color to first figure out where is the pad then comment !
527 myPadSetUp(myPadLogo,0,0,0,0);
528 myPadLogo->Draw();
529 myPadLogo->cd();
530 TASImage *myAliceLogo = new TASImage("alice_logo_transparent.png");
531 //.TASImage *myAliceLogo = new TASImage("alice_logo.pdf");
532
533 myAliceLogo->Draw();
534 }
535 if (rWrite == 1) myCan->SaveAs("fig_template.pdf");
536 if (rWrite == 2) myCan->SaveAs("fig_template.png");
537}
538
539void myLegendSetUp(TLegend *currentLegend=0,float currentTextSize=0.07){
540 currentLegend->SetTextFont(42);
541 currentLegend->SetBorderSize(0);
542 currentLegend->SetFillStyle(0);
543 currentLegend->SetFillColor(0);
544 currentLegend->SetMargin(0.25);
545 currentLegend->SetTextSize(currentTextSize);
546 currentLegend->SetEntrySeparation(0.5);
547 return;
548}
549
550void myPadSetUp(TPad *currentPad, float currentLeft=0.11, float currentTop=0.04, float currentRight=0.04, float currentBottom=0.15){
551 currentPad->SetLeftMargin(currentLeft);
552 currentPad->SetTopMargin(currentTop);
553 currentPad->SetRightMargin(currentRight);
554 currentPad->SetBottomMargin(currentBottom);
555 return;
556}
557
558void myGraphSetUp(TGraphErrors *currentGraph=0, Float_t currentMarkerSize = 1.0,
559 int currentMarkerStyle=20, int currentMarkerColor=0,
560 int currentLineStyle=1, int currentLineColor=0, int currentFillColor=0, int currentFillStyle=0)
561{
562 currentGraph->SetMarkerSize(currentMarkerSize);
563 currentGraph->SetMarkerStyle(currentMarkerStyle);
564 currentGraph->SetMarkerColor(currentMarkerColor);
565 currentGraph->SetLineStyle(currentLineStyle);
566 currentGraph->SetLineWidth(2);
567 currentGraph->SetLineColor(currentLineColor);
568 currentGraph->SetFillColor(currentFillColor);
569 currentGraph->SetFillStyle(currentFillStyle);
570 return;
571}
572
573void ShiftAlongXaxis(TGraphErrors *ge, Double_t shift)
574{
575 // Shift original TGraphErrors along x-axis by Double_t shift.
576
577 if(!ge){cout<<"!ge"<<endl;exit(0);}
578
579 Int_t nPoints = ge->GetN();
580 Double_t x = 0.;
581 Double_t y = 0.;
582 for(Int_t p=0;p<nPoints;p++)
583 {
584 ge->GetPoint(p,x,y);
585 x+=shift;
586 ge->SetPoint(p,x,y);
587 } // end of for(Int_t p=0;p<nPoints;p++)
588
589} // end of void ShiftAlongXaxis(TGraphErrors *ge, Double_t shift)
590
591void myOptions(Int_t lStat=0){
592 // Set gStyle
593 int font = 42;
594 // From plain
595 gStyle->SetFrameBorderMode(0);
596 gStyle->SetFrameFillColor(0);
597 gStyle->SetCanvasBorderMode(0);
598 gStyle->SetPadBorderMode(0);
599 gStyle->SetPadColor(10);
600 gStyle->SetCanvasColor(10);
601 gStyle->SetTitleFillColor(10);
602 gStyle->SetTitleBorderSize(1);
603 gStyle->SetStatColor(10);
604 gStyle->SetStatBorderSize(1);
605 gStyle->SetLegendBorderSize(1);
606 //
607 gStyle->SetDrawBorder(0);
608 gStyle->SetTextFont(font);
609 gStyle->SetStatFont(font);
610 gStyle->SetStatFontSize(0.05);
611 gStyle->SetStatX(0.97);
612 gStyle->SetStatY(0.98);
613 gStyle->SetStatH(0.03);
614 gStyle->SetStatW(0.3);
615 gStyle->SetTickLength(0.02,"y");
616 gStyle->SetEndErrorSize(3);
617 gStyle->SetLabelSize(0.05,"xyz");
618 gStyle->SetLabelFont(font,"xyz");
619 gStyle->SetLabelOffset(0.01,"xyz");
620 gStyle->SetTitleFont(font,"xyz");
621 gStyle->SetTitleOffset(1.0,"xyz");
622 gStyle->SetTitleSize(0.06,"xyz");
623 gStyle->SetMarkerSize(1);
624 gStyle->SetPalette(1,0);
625 if (lStat){
626 gStyle->SetOptTitle(1);
627 gStyle->SetOptStat(1111);
628 gStyle->SetOptFit(1111);
629 }
630 else {
631 gStyle->SetOptTitle(0);
632 gStyle->SetOptStat(0);
633 gStyle->SetOptFit(0);
634 }
635}