]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FLOW/papers/arXiv_1207.0900/drawPaperFigure2.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FLOW / papers / arXiv_1207.0900 / drawPaperFigure2.C
CommitLineData
496f8a92 1//=======================================================================//
2//Macro to draw the main results of the MH analysis:
3//i) drawCentralityDependence3P:: Draws the <cos(psi1 + psi2 - 2psi3)
4// vs centrality percentile
5//ii) drawNpartDependence3P:: Draws the <cos(psi1 + psi2 - 2psi3)
6// vs Nparticipants
7//iii) drawNpartDependenceScaled3P:: Draws the Npart*<cos(psi1 + psi2 - 2psi3)
8// vs Nparticipants
9//iv) drawCentralityDependenceRP:: Draws the <cos(psi1 + psi2 - 2PsiRP)
10// vs centrality percentile
11//v) drawNpartDependenceRP:: Draws the <cos(psi1 + psi2 - 2PsiRP)
12// vs Nparticipants
13//vi) drawNpartDependenceScaledRP:: Draws the Npart*<cos(psi1 + psi2 - 2PsiRP)
14// vs Nparticipants
15//=======================================================================//
16Bool_t gPreliminary = kFALSE;
17
18//+++++++++++++++++++++GLOBAL VARIABLES+++++++++++++++++++++//
19const Int_t nCentralityBins = 9;
20TString strCentralityBins[nCentralityBins] = {"0-5","5-10","10-20",
21 "20-30","30-40","40-50",
22 "50-60","60-70","70-80"};
23//Double_t gCentralityPercentile[nCentralityBins] = {75.,65.,55.,45.,35.,25.,15.,7.5,2.5};
24Double_t gCentralityPercentileStar[nCentralityBins] = {1.75,6.75,14.,24.,34.,44.,54.,64.,74.};
25Double_t gCentralityPercentile[nCentralityBins] = {3.0,8.0,16.,26.,36.,46.,56.,66.,76.};
26Double_t gCentralityPercentile2[nCentralityBins] = {0.5,5.5,12.,22.,32.,42.,52.,62.,72.};
27Double_t gCentralityPercentile3[nCentralityBins] = {4.25,9.25,18.,28.,38.,48.,58.,68.,78.};
28Double_t gCentralityPercentileError[nCentralityBins] = {0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5};
29// Double_t gCentralityPercentileSystematicError[nCentralityBins] = {1.5,1.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5};
30Double_t gCentralityPercentileSystematicError[nCentralityBins] = {0,0,0,0,0,0,0,0,0};
31Double_t gCentralityPercentileStarSystematicError[nCentralityBins] = {0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5};
32
33//================================HIJING================================//
34Double_t g3pCorrelatorHijingNoFlowPlusMinus[nCentralityBins] = {-1.20093e-07, 1.84157e-07, 1.76266e-07, 7.57471e-07, 1.19105e-06, 4.13612e-06, 1.40261e-05, 4.40286e-05, 9.745345e-05};
35Double_t g3pCorrelatorHijingNoFlowPlusMinusError[nCentralityBins] = {9.3131e-08, 8.68461e-08, 1.21384e-07, 2.13452e-07, 1.12347e-07, 3.13793e-07, 8.37252e-07, 3.15813e-06, 9.655345e-06};
36Double_t g3pCorrelatorHijingNoFlowSameCharge[nCentralityBins] = {1.77386e-08, 9.26015e-10, 7.43216e-08, 1.76705e-07, 8.10251e-07, 2.68011e-06, 9.20014e-06, 3.3102e-05, 9.95345e-05};
37Double_t g3pCorrelatorHijingNoFlowSameChargeError[nCentralityBins] = {2.97636e-08,4.08723e-08, 4.65237e-08, 1.12774e-07, 1.99168e-07, 5.83821e-07, 1.56612e-06, 5.90915e-06, 2.12124e-05};
38/*Double_t g3pCorrelatorHijingNoFlowPlusMinus[nCentralityBins] = {-1.20093e-07,2.1169e-07,8.38551e-07,1.71174e-06,4.37847e-06,1.05875e-05,2.98748e-05,0.000100555,0.000289372};
39Double_t g3pCorrelatorHijingNoFlowPlusMinusError[nCentralityBins] = {9.3131e-08,5.3237e-08,4.87755e-08,9.58588e-08,2.42031e-07,4.74851e-07,1.23657e-06,3.81097e-06,1.27354e-05};
40Double_t g3pCorrelatorHijingNoFlowSameCharge[nCentralityBins] = {1.77386e-08,1.3287e-07,4.17543e-07,5.91545e-07,3.51865e-06,7.17039e-06,2.00607e-05,6.20528e-05,0.000176748};
41Double_t g3pCorrelatorHijingNoFlowSameChargeError[nCentralityBins] = {2.97636e-08,4.3382e-08,8.9158e-08,1.76401e-07,4.46464e-07,8.82932e-07,2.32232e-06,7.11183e-06,2.31168e-05};*/
42
43/*Double_t g3pCorrelatorHijingWithFlowPlusMinus[nCentralityBins] = {-1.20093e-07, 1.56519e-07, 2.90847e-07, 7.57471e-07, 1.17141e-06, 4.13612e-06, 2.4549e-06, 2.10261e-05, 7.40286e-05};
44Double_t g3pCorrelatorHijingWithFlowPlusMinusError[nCentralityBins] = {9.3131e-08, 7.9856e-08, 7.42477e-08, 2.13452e-07, 1.07302e-07, 3.13793e-07, 8.2704e-07, 9.37252e-07, 5.15813e-06};
45Double_t g3pCorrelatorHijingWithFlowSameCharge[nCentralityBins] = {-5.78124e-07, 4.16894e-08, 3.8112e-07, -1.70606e-07, 8.10251e-07, 2.68011e-06, 2.4549e-06, 3.1102e-05, 8.95345e-05};
46Double_t g3pCorrelatorHijingWithFlowSameChargeError[nCentralityBins] = {1.80581e-07, 1.45975e-07, 1.56996e-07, 3.96189e-07, 1.99168e-07, 5.83821e-07, 8.2704e-07, 7.90915e-06, 4.12124e-05};*/
47/*Double_t g3pCorrelatorHijingWithFlowSameCharge[nCentralityBins] = {1.3299e-07,8.4476e-07,2.96354e-06,6.80478e-06,1.45245e-05,2.76715e-05,5.86195e-05,0.00012099,0.000279274};
48Double_t g3pCorrelatorHijingWithFlowSameChargeError[nCentralityBins] = {9.7787e-08,1.6551e-07,2.17682e-07,4.47015e-07,1.05436e-06,8.82932e-07,5.47122e-06,9.83962e-06,2.75911e-05};
49Double_t g3pCorrelatorHijingWithFlowPlusMinus[nCentralityBins] = {2.7632e-07,7.3227e-07,4.05092e-06,9.67432e-06,1.98196e-05,3.64523e-05,7.97305e-05,0.000172174,0.000412814};
50Double_t g3pCorrelatorHijingWithFlowPlusMinusError[nCentralityBins] = {8.3287e-08,1.8366e-07,1.18877e-07,2.43468e-07,5.71375e-07,9.59e-07,2.05589e-06,5.28575e-06,1.51409e-05};*/
51Double_t g3pCorrelatorHijingWithFlowSameCharge[nCentralityBins] = {1.3299e-08,4.4476e-07,1.96354e-06,3.80478e-06,7.45245e-06,0.76715e-05,2.86195e-05,0.00012099,0.000279274};
52Double_t g3pCorrelatorHijingWithFlowSameChargeError[nCentralityBins] = {9.7787e-08,1.6551e-07,2.17682e-07,4.47015e-07,6.05436e-08,8.82932e-07,5.47122e-06,9.83962e-06,2.75911e-05};
53Double_t g3pCorrelatorHijingWithFlowPlusMinus[nCentralityBins] = {2.7632e-08,5.3227e-07,2.05092e-06,6.67432e-06,9.98196e-06,2.64523e-05,4.97305e-05,0.000172174,0.000412814};
54Double_t g3pCorrelatorHijingWithFlowPlusMinusError[nCentralityBins] = {8.3287e-08,1.8366e-07,1.18877e-07,2.43468e-07,5.71375e-07,9.59e-07,2.05589e-06,5.28575e-06,1.51409e-05};
55
56Double_t g3pHijingNoFlowAvg[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
57Double_t g3pHijingNoFlowAvgError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
58Double_t g3pHijingNoFlowPlusMinus[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
59Double_t g3pHijingNoFlowPlusMinusError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
60Double_t g3pHijingNoFlowSameCharge[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
61Double_t g3pHijingNoFlowSameChargeError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
62
63Double_t g3pHijingWithFlowAvg[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
64Double_t g3pHijingWithFlowAvgError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
65Double_t g3pHijingWithFlowPlusMinus[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
66Double_t g3pHijingWithFlowPlusMinusError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
67Double_t g3pHijingWithFlowSameCharge[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
68Double_t g3pHijingWithFlowSameChargeError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
69//================================HIJING================================//
70
71//================================STAR================================//
72Double_t g3pCorrelatorSTARPlusPlus[nCentralityBins] = {-2.72475e-05,
73 -4.84767e-05,
74 -8.43622e-05,
75 -0.000139391,
76 -0.000212998,
77 -0.000310464,
78 -0.000449019,
79 -0.000531625,
80 10.};
81Double_t g3pCorrelatorSTARPlusPlusError[nCentralityBins] = {2.51676e-06,
82 2.38477e-06,
83 1.96375e-06,
84 2.50148e-06,
85 3.87569e-06,
86 6.65112e-06,
87 1.36251e-05,
88 3.49563e-05,
89 0.0};
90Double_t g3pCorrelatorSTARPlusPlusSysErrorHigh[nCentralityBins] = {-2.372263e-05,-4.559134e-05,-8.079906e-05,-0.0001334556,-0.0002038168,-0.0002934094,-0.0004116487,-0.0004651086};
91Double_t g3pCorrelatorSTARPlusPlusSysErrorLow[nCentralityBins] = {-7.013656e-05,-7.013656e-05,-0.0001010264,-0.0001578065,-0.0002416504,-0.0003675497,-0.0005460016,-0.0007163518};
92
93Double_t g3pCorrelatorSTARPlusMinus[nCentralityBins] = {-1.16758e-05,
94 -8.2939e-06,
95 -7.9278e-06,
96 -5.81744e-06,
97 -3.32537e-06,
98 1.71515e-05,
99 5.88244e-05,
100 0.000205355,
101 10.};
102Double_t g3pCorrelatorSTARPlusMinusError[nCentralityBins] = {2.55046e-06,
103 2.41575e-06,
104 1.99013e-06,
105 2.52889e-06,
106 3.90957e-06,
107 6.65273e-06,
108 1.3518e-05,
109 3.40235e-05,
110 0.0};
111Double_t g3pCorrelatorSTARPlusMinusSysErrorHigh[nCentralityBins] = {-1.202044e-05,-8.387146e-06,-7.959642e-06,-5.834463e-06,-3.335567e-06,1.72155e-05,5.916783e-05,0.0002078669};
112Double_t g3pCorrelatorSTARPlusMinusSysErrorLow[nCentralityBins] = {-1.199969e-05,-1.199969e-05,-9.493789e-06,-6.585985e-06,-3.772705e-06,2.030513e-05,7.152968e-05,0.0002767107};
113//================================STAR================================//
114
115//================================ALICE================================//
116Double_t gv2[nCentralityBins] = {0.0218688,0.0410256,0.0617027,0.0803975,0.0914567,0.0950293,0.0930474,0.0871609,0.0854715};
117Double_t gv2Error[nCentralityBins] = {0.00777206,0.0055282,0.00461509,0.00540859,0.00673375,0.00916149,0.0118708,0.0150726,0.0159525};
118
119Double_t g3pCorrelatorALICEDataSameCharge[nCentralityBins] = {-1.60885e-05,
120 -2.33387e-05,
121 -5.49677e-05,
122 -0.000105864,
123 -0.000166243,
124 -0.000276424,
125 -0.00037915,
126 -0.000425016,
127 -0.000293409};
128Double_t g3pCorrelatorALICEDataSameChargeError[nCentralityBins] = {3.22359e-06,
129 3.45502e-06,
130 3.26195e-06,
131 4.85736e-06,
132 7.60362e-06,
133 1.31918e-05,
134 2.61394e-05,
135 6.2836e-05,
136 0.000196171};
137//Double_t g3pCorrelatorALICEDataSameChargeSystematicError[nCentralityBins] = {3.58357E-05,1.66674E-05,1.27416E-05,1.98483E-05,3.97548E-05,8.97482E-05,0.00010582,0.000233554,0.00031035126};
138Double_t g3pCorrelatorALICEDataSameChargeSystematicError[nCentralityBins] = {1.6383E-05,1.66674E-05,1.27416E-05,1.98483E-05,3.97548E-05,8.97482E-05,0.00010582,0.000233554,0.00031035126};
139
140Double_t g3pCorrelatorALICEDataPlusMinus[nCentralityBins] = {-3.25362e-07,
141 3.86547e-06,
142 -3.41652e-06,
143 -1.40672e-05,
144 -2.64535e-05,
145 -3.86616e-05,
146 2.17488e-05,
147 0.000248817,
148 0.00105866};
149Double_t g3pCorrelatorALICEDataPlusMinusError[nCentralityBins] = {4.40278e-06,
150 4.87877e-06,
151 4.57899e-06,
152 6.81769e-06,
153 1.06697e-05,
154 1.83207e-05,
155 3.62493e-05,
156 8.68075e-05,
157 0.000279468};
158//Double_t g3pCorrelatorALICEDataPlusMinusSystematicError[nCentralityBins] = {3.55452E-05,1.8482E-05,6.31586E-06,1.20367E-05,3.66273E-05,4.12716E-05,8.08092E-05,0.000158143,0.00031038405};
159Double_t g3pCorrelatorALICEDataPlusMinusSystematicError[nCentralityBins] = {6.80205E-06,1.8482E-05,6.31586E-06,1.20367E-05,3.66273E-05,4.12716E-05,8.08092E-05,0.000158143,0.00031038405};
160
161Double_t g3pCorrelatorALICEDatav1Fluctustions[nCentralityBins] = {-4.26793e-06,-5.19642e-06,-1.57247e-05,-3.27355e-05,-5.33411e-05,-8.64989e-05,-9.82421e-05,-4.53941e-05,0.000229361};
162Double_t g3pCorrelatorALICEDatav1FluctustionsError[nCentralityBins] = {3.939e-06,4.5402e-06,1.34675e-05,2.72301e-05,4.30072e-05,7.10439e-05,8.04585e-05,4.27054e-05,0.000153265};
163
164Double_t g3pCorrelatorALICEDatav1Fluctustions[nCentralityBins] = {-4.26793e-06,-5.19642e-06,-1.57247e-05,-3.27355e-05,-5.33411e-05,-8.64989e-05,-9.82421e-05,-4.53941e-05,0.000229361};
165Double_t g3pCorrelatorALICEDatav1FluctustionsError[nCentralityBins] = {3.939e-06,4.5402e-06,1.34675e-05,2.72301e-05,4.30072e-05,7.10439e-05,8.04585e-05,4.27054e-05,0.000153265};
166//================================ALICE================================//
167
168//============================Toneev et al.=============================//
169Double_t g3pCorrelatorToneevSameCharge[4] = {-2.*8.4e-07,-2.*0.0168e-03,-2.*0.0338e-03,-2.*0.0588e-03};
170Double_t g3pCorrelatorToneevSameChargeError[4] = {0.,0.,0.,0.};
171Double_t gCentralityPercentileToneev[4] = {2.5,20.,45.,67.};
172Double_t gCentralityPercentileErrorToneev[4] = {0.5,0.5,0.5,0.5};
173//============================Toneev et al.=============================//
174//+++++++++++++++++++++END OF VARIABLES+++++++++++++++++++++//
175
176//_____________________________________________________//
177void drawPaperFigure2()
178{
179 //Draws the <cos(psi1 + psi2 - 2psi3) vs centrality percentile
180 gROOT->LoadMacro("SetFlowStyle.C");
181 SetFlowStyle();
182
183 TGaxis::SetMaxDigits(2);
184
185 //Fix the asymmetric errors for STAR
186 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
187 g3pCorrelatorSTARPlusPlusSysErrorHigh[iBin] = TMath::Abs(g3pCorrelatorSTARPlusPlus[iBin] - g3pCorrelatorSTARPlusPlusSysErrorHigh[iBin]);
188 g3pCorrelatorSTARPlusPlusSysErrorLow[iBin] = TMath::Abs(g3pCorrelatorSTARPlusPlus[iBin] - g3pCorrelatorSTARPlusPlusSysErrorLow[iBin]);
189 //Printf("%lf - %lf - %lf",g3pCorrelatorSTARPlusPlus[iBin],g3pCorrelatorSTARPlusPlusSysErrorLow[iBin],g3pCorrelatorSTARPlusPlusSysErrorHigh[iBin]);
190
191 g3pCorrelatorSTARPlusMinusSysErrorHigh[iBin] = TMath::Abs(g3pCorrelatorSTARPlusMinus[iBin] - g3pCorrelatorSTARPlusMinusSysErrorHigh[iBin]);
192 g3pCorrelatorSTARPlusMinusSysErrorLow[iBin] = TMath::Abs(g3pCorrelatorSTARPlusMinus[iBin] - g3pCorrelatorSTARPlusMinusSysErrorLow[iBin]);
193 //Printf("%lf - %lf - %lf",g3pCorrelatorSTARPlusMinus[iBin],g3pCorrelatorSTARPlusMinusSysErrorLow[iBin],g3pCorrelatorSTARPlusMinusSysErrorHigh[iBin]);
194 }
195
196 //Teany-Yan
197 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
198 g3pCorrelatorALICEDatav1Fluctustions[iBin] = 0.5*(g3pCorrelatorALICEDataPlusMinus[iBin] + g3pCorrelatorALICEDataSameCharge[iBin]);
199 //g3pCorrelatorALICEDatav1FluctustionsError[iBin] = 0.1*g3pCorrelatorALICEDatav1Fluctustions[iBin];
200 g3pCorrelatorALICEDatav1FluctustionsError[iBin] = 0.5*TMath::Sqrt(TMath::Power(g3pCorrelatorALICEDataPlusMinusError[iBin],2) + TMath::Power(g3pCorrelatorALICEDataSameChargeError[iBin],2));
201 }
202
203 //HIJING
204 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
205 //no flow
206 g3pHijingNoFlowPlusMinus[iBin] = g3pCorrelatorHijingNoFlowPlusMinus[iBin]/gv2[iBin];
207 g3pHijingNoFlowPlusMinusError[iBin] = (1./gv2[iBin])*TMath::Sqrt(TMath::Power((g3pCorrelatorHijingNoFlowPlusMinus[iBin]*gv2Error[iBin]/gv2[iBin]),2) + TMath::Power(g3pCorrelatorHijingNoFlowPlusMinusError[iBin],2));
208
209 g3pHijingNoFlowSameCharge[iBin] = g3pCorrelatorHijingNoFlowSameCharge[iBin]/gv2[iBin];
210 g3pHijingNoFlowSameChargeError[iBin] = (1./gv2[iBin])*TMath::Sqrt(TMath::Power((g3pCorrelatorHijingNoFlowSameCharge[iBin]*gv2Error[iBin]/gv2[iBin]),2) + TMath::Power(g3pCorrelatorHijingNoFlowSameChargeError[iBin],2));
211
212 g3pHijingNoFlowAvg[iBin] = 0.5*(g3pHijingNoFlowPlusMinus[iBin] + g3pHijingNoFlowSameCharge[iBin]);
213 g3pHijingNoFlowAvgError[iBin] = 0.5*TMath::Sqrt(TMath::Power(g3pHijingNoFlowPlusMinusError[iBin],2) + TMath::Power(g3pHijingNoFlowSameChargeError[iBin],2));
214
215 //with flow
216 g3pHijingWithFlowPlusMinus[iBin] = g3pCorrelatorHijingWithFlowPlusMinus[iBin]/gv2[iBin];
217 g3pHijingWithFlowPlusMinusError[iBin] = (1./gv2[iBin])*TMath::Sqrt(TMath::Power((g3pCorrelatorHijingWithFlowPlusMinus[iBin]*gv2Error[iBin]/gv2[iBin]),2) + TMath::Power(g3pCorrelatorHijingWithFlowPlusMinusError[iBin],2));
218
219 g3pHijingWithFlowSameCharge[iBin] = g3pCorrelatorHijingWithFlowSameCharge[iBin]/gv2[iBin];
220 g3pHijingWithFlowSameChargeError[iBin] = (1./gv2[iBin])*TMath::Sqrt(TMath::Power((g3pCorrelatorHijingWithFlowSameCharge[iBin]*gv2Error[iBin]/gv2[iBin]),2) + TMath::Power(g3pCorrelatorHijingWithFlowSameChargeError[iBin],2));
221
222 g3pHijingWithFlowAvg[iBin] = 0.5*(g3pHijingWithFlowPlusMinus[iBin] + g3pHijingWithFlowSameCharge[iBin]);
223 g3pHijingWithFlowAvgError[iBin] = 0.5*TMath::Sqrt(TMath::Power(g3pHijingWithFlowPlusMinusError[iBin],2) + TMath::Power(g3pHijingWithFlowSameChargeError[iBin],2));
224 }
225
226 //================================================//
227 //v1 fluctuations
228 TH1F *gHistv1Fluctuations = new TH1F("gHistv1Fluctuations",
229 ";Centrality percentile;#LT cos(#phi_{#alpha} + #phi_{#beta} - 2#Psi_{RP}) #GT",
230 nCentralityBins,0,93);
231 myTGraphSetUpTH(gHistv1Fluctuations,1,myv1FluctColorSame,0,1,myv1FluctColorSame,10,1001,myv1FluctColorSame);
232
233 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
234 gHistv1Fluctuations->SetBinContent(iBin,g3pCorrelatorALICEDatav1Fluctustions[iBin]);
235 gHistv1Fluctuations->SetBinError(iBin,g3pCorrelatorALICEDatav1FluctustionsError[iBin]);
236
237 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pCorrelatorALICEDatav1Fluctustions[iBin]<<" ± "<<g3pCorrelatorALICEDatav1FluctustionsError[iBin]<<endl;
238 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pCorrelatorALICEDataSameCharge[iBin]<<" ± "<<g3pCorrelatorALICEDataSameChargeError[iBin]<<" ± "<<g3pCorrelatorALICEDataSameChargeSystematicError[iBin]<<endl;
239 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pCorrelatorALICEDataPlusMinus[iBin]<<" ± "<<g3pCorrelatorALICEDataPlusMinusError[iBin]<<" ± "<<g3pCorrelatorALICEDataPlusMinusSystematicError[iBin]<<endl;
240 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingWithFlowPlusMinus[iBin]<<" ± "<<g3pHijingWithFlowPlusMinusError[iBin]<<endl;
241 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingWithFlowSameCharge[iBin]<<" ± "<<g3pHijingWithFlowSameChargeError[iBin]<<endl;
242 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingWithFlowPlusMinus[iBin]<<" ± "<<g3pHijingWithFlowPlusMinusError[iBin]<<endl;
243 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingNoFlowSameCharge[iBin]<<" ± "<<g3pHijingNoFlowSameChargeError[iBin]<<endl;
244 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingNoFlowPlusMinus[iBin]<<" ± "<<g3pHijingNoFlowPlusMinusError[iBin]<<endl;
245 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingWithFlowPlusMinus[iBin]<<" ± "<<g3pHijingWithFlowPlusMinusError[iBin]<<endl;
246 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingNoFlowAvg[iBin]<<" ± "<<g3pHijingNoFlowAvgError[iBin]<<endl;
247 //cout<<"Centrality: "<<strCentralityBins[iBin].Data()<<" "<<g3pHijingWithFlowAvg[iBin]<<" ± "<<g3pHijingWithFlowAvgError[iBin]<<endl;
248 }
249
250 //================================================//
251 //HIJING without flow
252 TString drawOptions_HIJING = "PZ";
253 int markerColor_HIJING = 32;
254 int markerColor_HIJINGv2 = 32;
255 int lineColor_HIJING = markerColor_HIJING;
256 int lineColor_HIJINGv2 = markerColor_HIJINGv2;
257 int lineStyle_HIJING = 1;
258 int lineStyle_HIJINGv2 = 1;
259 int markerStyle_HIJINGopp = 32;
260 int markerStyle_HIJINGoppv2 = 26;
261 int markerStyle_HIJINGsame = 23;
262 int markerStyle_HIJINGsamev2 = 22;
263 float markerSize_HIJING = 1.*myMarkerSize;
264 TGraphErrors *grHIJINGNoFlowAvg = new TGraphErrors(nCentralityBins,
265 gCentralityPercentile2,
266 g3pHijingNoFlowAvg,
267 gCentralityPercentileError,
268 g3pHijingNoFlowAvgError);
269 myTGraphSetUp(grHIJINGNoFlowAvg,markerStyle_HIJINGopp,markerColor_HIJING,markerSize_HIJING,lineStyle_HIJING,lineColor_HIJING,2,1001,markerColor_HIJING);
270
271 TGraphErrors *grHIJINGNoFlowPlusMinus = new TGraphErrors(nCentralityBins,
272 gCentralityPercentile2,
273 g3pHijingNoFlowPlusMinus,
274 gCentralityPercentileError,
275 g3pHijingNoFlowPlusMinusError);
276 myTGraphSetUp(grHIJINGNoFlowPlusMinus,markerStyle_HIJINGopp,markerColor_HIJING,markerSize_HIJING,lineStyle_HIJING,lineColor_HIJING,2,1001,markerColor_HIJING);
277
278 TGraphErrors *grHIJINGNoFlowSameCharge = new TGraphErrors(nCentralityBins,
279 gCentralityPercentile2,
280 g3pHijingNoFlowSameCharge,
281 gCentralityPercentileError,
282 g3pHijingNoFlowSameChargeError);
283 myTGraphSetUp(grHIJINGNoFlowSameCharge,markerStyle_HIJINGsame,markerColor_HIJING,markerSize_HIJING,lineStyle_HIJING,lineColor_HIJING,2,1001,markerColor_HIJING);
284 //================================================//
285
286 //================================================//
287 //HIJING with flow
288 TGraphErrors *grHIJINGWithFlowAvg = new TGraphErrors(nCentralityBins,
289 gCentralityPercentile3,
290 g3pHijingWithFlowAvg,
291 gCentralityPercentileError,
292 g3pHijingWithFlowAvgError);
293 myTGraphSetUp(grHIJINGWithFlowAvg,markerStyle_HIJINGsamev2,markerColor_HIJINGv2,markerSize_HIJING,lineStyle_HIJINGv2,markerColor_HIJINGv2,2,1001,markerColor_HIJINGv2);
294
295 TGraphErrors *grHIJINGWithFlowPlusMinus = new TGraphErrors(nCentralityBins,
296 gCentralityPercentile3,
297 g3pHijingWithFlowPlusMinus,
298 gCentralityPercentileError,
299 g3pHijingWithFlowPlusMinusError);
300 myTGraphSetUp(grHIJINGWithFlowPlusMinus,markerStyle_HIJINGsamev2,markerColor_HIJINGv2,markerSize_HIJING,lineStyle_HIJINGv2,markerColor_HIJINGv2,2,1001,markerColor_HIJINGv2);
301
302 TGraphErrors *grHIJINGWithFlowSameCharge = new TGraphErrors(nCentralityBins,
303 gCentralityPercentile3,
304 g3pHijingWithFlowSameCharge,
305 gCentralityPercentileError,
306 g3pHijingWithFlowSameChargeError);
307 myTGraphSetUp(grHIJINGWithFlowSameCharge,markerStyle_HIJINGsamev2,markerColor_HIJINGv2,markerSize_HIJING,lineStyle_HIJINGv2,markerColor_HIJINGv2,2,1001,markerColor_HIJINGv2);
308 //================================================//
309
310 //================================================//
311 //Toneev et al.
312 TGraphErrors *grToneevSameCharge = new TGraphErrors(4,gCentralityPercentileToneev,g3pCorrelatorToneevSameCharge,gCentralityPercentileErrorToneev,g3pCorrelatorToneevSameChargeError);
313 myTGraphSetUp(grToneevSameCharge,21,myToneevColor,3,1,myToneevColor,3,1001,myToneevColor);
314 //================================================//
315 int markerColor_ALICE = myDarkRed;
316 int lineColor_ALICE = markerColor_ALICE;
317 int markerStyle_ALICEsame = 20;
318 int markerStyle_ALICEopp = 24;
319 int color_sysErr_STAR = 17;
320 int color_sysErr_ALICE = 25;
321 //(+-)
322 TGraphErrors *grALICEDataPlusMinus = new TGraphErrors(nCentralityBins,
323 gCentralityPercentile,
324 g3pCorrelatorALICEDataPlusMinus,
325 gCentralityPercentileError,
326 g3pCorrelatorALICEDataPlusMinusError);
327 myTGraphSetUp(grALICEDataPlusMinus,markerStyle_ALICEopp,markerColor_ALICE,myMarkerSize,1,lineColor_ALICE,2,1001,markerColor_ALICE);
328
329 TGraphErrors *grALICEDataPlusMinusSystematic = new TGraphErrors(nCentralityBins,
330 gCentralityPercentile,
331 g3pCorrelatorALICEDataPlusMinus,
332 gCentralityPercentileSystematicError,
333 g3pCorrelatorALICEDataPlusMinusSystematicError);
334 myTGraphSetUp(grALICEDataPlusMinusSystematic,markerStyle_ALICEopp,color_sysErr_ALICE,myMarkerSize,1,color_sysErr_ALICE,10,1001,color_sysErr_ALICE);
335 Printf("ALICE (+-)");
336 for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++)
337 cout<<"Centrality: "<<strCentralityBins[iCentrality].Data()<<" - C "<<g3pCorrelatorALICEDataPlusMinus[iCentrality]<<" - Sys: "<<g3pCorrelatorALICEDataPlusMinusSystematicError[iCentrality]<<" ("<<100*TMath::Abs(g3pCorrelatorALICEDataPlusMinusSystematicError[iCentrality]/g3pCorrelatorALICEDataPlusMinus[iCentrality])<<"%)"<<endl;
338
339 int markerColor_STAR = 9;
340 int lineColor_STAR = markerColor_STAR;
341 TGraphErrors *grSTARDataPlusMinus = new TGraphErrors(nCentralityBins,
342 gCentralityPercentileStar,
343 g3pCorrelatorSTARPlusMinus,
344 gCentralityPercentileError,
345 g3pCorrelatorSTARPlusMinusError);
346 myTGraphSetUp(grSTARDataPlusMinus,30,markerColor_STAR,myMarkerSize+0.2,1,lineColor_STAR,2,1001,markerColor_STAR);
347 TGraphAsymmErrors *grSTARDataPlusMinusSystematics = new TGraphAsymmErrors(nCentralityBins,gCentralityPercentileStar,g3pCorrelatorSTARPlusMinus,gCentralityPercentileError,gCentralityPercentileError,g3pCorrelatorSTARPlusMinusSysErrorHigh,g3pCorrelatorSTARPlusMinusSysErrorLow);
348 myTGraphSetUp_Asym(grSTARDataPlusMinusSystematics,30,color_sysErr_STAR,myMarkerSize,1,color_sysErr_STAR,10,1001,color_sysErr_STAR);
349
350 //================================================//
351 //(--)&(++)
352 TGraphErrors *grALICEDataSameCharge = new TGraphErrors(nCentralityBins,
353 gCentralityPercentile,
354 g3pCorrelatorALICEDataSameCharge,
355 gCentralityPercentileError,
356 g3pCorrelatorALICEDataSameChargeError);
357 myTGraphSetUp(grALICEDataSameCharge,markerStyle_ALICEsame,markerColor_ALICE,myMarkerSize,1,lineColor_ALICE,2,1001,markerColor_ALICE);
358
359 TGraphErrors *grALICEDataSameChargeSystematic = new TGraphErrors(nCentralityBins,
360 gCentralityPercentile,
361 g3pCorrelatorALICEDataSameCharge,
362 gCentralityPercentileSystematicError,
363 g3pCorrelatorALICEDataSameChargeSystematicError);;
364 myTGraphSetUp(grALICEDataSameChargeSystematic,markerStyle_ALICEsame,color_sysErr_ALICE,myMarkerSize,1,color_sysErr_ALICE,10,1001,color_sysErr_ALICE);
365 Printf("ALICE (++,--)");
366 for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++)
367 cout<<"Centrality: "<<strCentralityBins[iCentrality].Data()<<" - C "<<g3pCorrelatorALICEDataSameCharge[iCentrality]<<" - Sys: "<<g3pCorrelatorALICEDataSameChargeSystematicError[iCentrality]<<" ("<<100*TMath::Abs(g3pCorrelatorALICEDataSameChargeSystematicError[iCentrality]/g3pCorrelatorALICEDataSameCharge[iCentrality])<<"%)"<<endl;
368
369 TGraphErrors *grSTARDataPlusPlus = new TGraphErrors(nCentralityBins,
370 gCentralityPercentileStar,
371 g3pCorrelatorSTARPlusPlus,
372 gCentralityPercentileError,
373 g3pCorrelatorSTARPlusPlusError);
374 myTGraphSetUp(grSTARDataPlusPlus,29,markerColor_STAR,myMarkerSize+0.4,1,lineColor_STAR,2,1001,markerColor_STAR);
375 TGraphAsymmErrors *grSTARDataPlusPlusSystematics = new TGraphAsymmErrors(nCentralityBins,
376 gCentralityPercentileStar,
377 g3pCorrelatorSTARPlusPlus,
378 gCentralityPercentileError,
379 gCentralityPercentileError,
380 g3pCorrelatorSTARPlusPlusSysErrorLow,
381 g3pCorrelatorSTARPlusPlusSysErrorHigh);
382 myTGraphSetUp_Asym(grSTARDataPlusPlusSystematics,29,color_sysErr_STAR,myMarkerSize+0.4,1,color_sysErr_STAR,10,1001,color_sysErr_STAR);
383
384 //_____________________________________________________//
385 //Draw the results
386 //_____________________________________________________//
387 TLatex *latex = new TLatex();
388 latex->SetTextSize(0.035);
389
390 //====================================//
391 //<cos(psi1+psi2-2phi3)> vs centrality
392 TH2F *gEmpty1 = new TH2F("gEmpty1",
393 ";centrality, %;#LT cos(#phi_{#alpha} + #phi_{#beta} - 2#Psi_{RP}) #GT",
394 nCentralityBins,0,70,1000,-7.e-04,6.e-04);
395 gEmpty1->SetStats(kFALSE);
396 //gEmpty1->GetYaxis()->SetTitleOffset(1.8);
397 //gEmpty1->GetXaxis()->SetTitleOffset(1.5);
398 gEmpty1->GetYaxis()->SetTitleSize(0.07);
399 gEmpty1->GetYaxis()->SetTitleOffset(0.85);
400 gEmpty1->GetYaxis()->SetNdivisions(10);
401 gEmpty1->GetXaxis()->SetNdivisions(10);
402
403 TF1 *f1 = new TF1("f1","0",0,1000);
404 f1->SetLineColor(1); f1->SetLineStyle(1); f1->SetLineWidth(1);
405
406 TCanvas *c1 = new TCanvas("c1","Centrality dependence: 3p correlator",
407 0,0,800,600);
408 TPad *myPad = new TPad("myPad", "The pad",0,0,1,1);
409 myPadSetUp(myPad,0.15,0.065,0.04,0.15);
410 myPad->Draw();
411 myPad->cd();
412 //c1->SetGridx(); c1->SetGridy();
413 gEmpty1->Draw();
414 f1->Draw("same");
415
416 // shift various data points wrt. each other
417 float shift_ALICE = -2.;
418 float shift_STAR = 2.;
419 float shift_HIJING = 6.5;
420 float shift_HIJINGv2 = -0.5;
421
422 ShiftAlongXaxis_TGraphErrors(grALICEDataPlusMinusSystematic,shift_ALICE);
423 ShiftAlongXaxis_TGraphErrors(grALICEDataSameChargeSystematic,shift_ALICE);
424 ShiftAlongXaxis_TGraphErrors(grALICEDataPlusMinus,shift_ALICE);
425 ShiftAlongXaxis_TGraphErrors(grALICEDataSameCharge,shift_ALICE);
426
427 ShiftAlongXaxis_TGraphAsymmErrors(grSTARDataPlusPlusSystematics,shift_STAR);
428 ShiftAlongXaxis_TGraphAsymmErrors(grSTARDataPlusMinusSystematics,shift_STAR);
429 ShiftAlongXaxis_TGraphErrors(grSTARDataPlusPlus,shift_STAR);
430 ShiftAlongXaxis_TGraphErrors(grSTARDataPlusMinus,shift_STAR);
431
432 ShiftAlongXaxis_TGraphErrors(grHIJINGWithFlowSameCharge,shift_HIJINGv2);
433 ShiftAlongXaxis_TGraphErrors(grHIJINGWithFlowPlusMinus,shift_HIJINGv2);
434 ShiftAlongXaxis_TGraphErrors(grHIJINGWithFlowAvg,shift_HIJINGv2);
435 ShiftAlongXaxis_TGraphErrors(grHIJINGNoFlowSameCharge,shift_HIJING);
436 ShiftAlongXaxis_TGraphErrors(grHIJINGNoFlowPlusMinus,shift_HIJING);
437 ShiftAlongXaxis_TGraphErrors(grHIJINGNoFlowAvg,shift_HIJING);
438
439 //grHIJINGWithFlowSameCharge->Draw(drawOptions_HIJING);
440 //grHIJINGWithFlowPlusMinus->Draw(drawOptions_HIJING);
441 //grHIJINGWithFlowAvg->Draw(drawOptions_HIJING);
442 //grHIJINGNoFlowSameCharge->Draw(drawOptions_HIJING);
443 //grHIJINGNoFlowPlusMinusAvg->Draw(drawOptions_HIJING);
444 grHIJINGNoFlowAvg->Draw(drawOptions_HIJING);
445
446 gHistv1Fluctuations->Draw("e3,same");
447 grToneevSameCharge->Draw("C");
448
449 grSTARDataPlusPlusSystematics->Draw("P2");
450 grSTARDataPlusPlus->Draw("PZ");
451 grSTARDataPlusMinusSystematics->Draw("P2");
452 grSTARDataPlusMinus->Draw("PZ");
453
454 grALICEDataPlusMinusSystematic->Draw("Z");
455 grALICEDataSameChargeSystematic->Draw("Z");
456 grALICEDataPlusMinus->Draw("PZ");
457 TGraphErrors *grALICEDataPlusMinus_clone = (TGraphErrors*)grALICEDataPlusMinus->Clone("grALICEDataPlusMinus_clone");
458 grALICEDataPlusMinus_clone->SetMarkerSize(0.9*grALICEDataPlusMinus->GetMarkerSize());
459 TGraphErrors *grALICEDataPlusMinus_clone1 = (TGraphErrors*)grALICEDataPlusMinus->Clone("grALICEDataPlusMinus_clone1");
460 grALICEDataPlusMinus_clone1->SetMarkerSize(0.8*grALICEDataPlusMinus->GetMarkerSize());
461 grALICEDataPlusMinus_clone->Draw("PZ");
462 grALICEDataPlusMinus_clone1->Draw("PZ");
463 grALICEDataSameCharge->SetMarkerSize(1.1*grALICEDataSameCharge->GetMarkerSize());
464 grALICEDataSameCharge->Draw("PZ");
465
466 //TLegend *legend1 = new TLegend(0.18,0.54,0.8,0.85,"","brNDC");
467 //TLegend *legend1 = new TLegend(0.19,0.63,0.78,0.88,"","brNDC");
468 TLegend *legend1 = new TLegend(0.17,0.19,0.58,0.33,"","brNDC");
469 myLegendSetUp(legend1,0.04);
470 legend1->SetNColumns(2);
471 //legend->AddEntry("Opposite charge","(+-)","");
472 //legend->AddEntry("Same charge","Same Charge","");
473 legend1->AddEntry(grALICEDataPlusMinusSystematic," ","L");
474 legend1->AddEntry(grALICEDataSameChargeSystematic," ","L");
475// legend1->AddEntry(grALICEDataSameChargeSystematic," ALICE Pb-Pb @ #sqrt{s_{NN}} = 2.76 TeV","lp");
476 legend1->AddEntry(grSTARDataPlusMinusSystematics," ","L");
477 legend1->AddEntry(grSTARDataPlusPlusSystematics," ","L");
478// legend1->AddEntry("NULL"," ","");
479// legend1->AddEntry("NULL"," ","");
480 legend1->AddEntry("NULL"," ","");
481 legend1->AddEntry("NULL"," ","");
482 legend1->AddEntry("NULL"," ","");
483 legend1->AddEntry("NULL"," ","");
484// legend1->AddEntry("NULL"," ","");
485// legend1->AddEntry("NULL"," ","");
486 //legend1->Draw();
487
488 //TLegend *legend = new TLegend(0.19,0.68,0.78,0.93,"","brNDC");
489 TLegend *legend = new TLegend(0.19,0.75,0.78,0.89,"","brNDC");
490 myLegendSetUp(legend,0.04);
491 legend->SetNColumns(2);
492 //legend->AddEntry("Opposite charge","(+-)","");
493 //legend->AddEntry("Same charge","Same Charge","");
494 legend->AddEntry(grALICEDataSameCharge," ","p");
495 legend->AddEntry(grALICEDataPlusMinus," ALICE Pb-Pb @ #sqrt{s_{NN}} = 2.76 TeV","p");
496 legend->AddEntry(grSTARDataPlusPlus," ","p");
497 legend->AddEntry(grSTARDataPlusMinus," STAR Au-Au @ #sqrt{s_{NN}} = 0.2 TeV","p");
498 //legend->AddEntry(grHIJINGNoFlowSameCharge," ","p");
499 //legend->AddEntry(grHIJINGNoFlowPlusMinus," #LTcos(#phi_{#alpha} + #phi_{#beta} - 2#phi_{c})#GT_{HIJING} / v_{2}{2}","p");
500 //legend->AddEntry(grHIJINGWithFlowSameCharge," ","p");
501 //legend->AddEntry(grHIJINGWithFlowPlusMinus," HIJING with v_{2} modulations","p");
502// legend->AddEntry(grToneevSameCharge," ","l");
503// legend->AddEntry("NULL"," CME expectation (Toneev #font[12]{et al.})","");
504 legend->Draw();
505
506 TLegend *legend3 = new TLegend(0.19,0.675,0.78,0.775,"","brNDC");
507 myLegendSetUp(legend3,0.04);
508 legend3->AddEntry(gHistv1Fluctuations," (ALICE) same+opp. mean","L");
509 legend3->Draw();
510
511 TLatex *myText = new TLatex();
512 myText->SetNDC();
513 myText->SetTextSize(0.04);
514 myText->SetTextColor(1);
515 myText->DrawLatex(0.195,0.89,"same");
516 //myText->DrawLatex(0.155,0.34,"same");
517 myText->SetTextColor(1);
518 myText->DrawLatex(0.29,0.89,"opp.");
519 //myText->DrawLatex(0.23,0.34,"opp.");
520
521 //TLegend *legend2 = new TLegend(0.17,0.19,0.58,0.33,"","brNDC");
522 TLegend *legend2 = new TLegend(0.17,0.19,0.58,0.37,"","brNDC");
523 myLegendSetUp(legend2,0.04);
524 //legend2->SetNColumns(2);
525 //legend2->AddEntry("Opposite charge","(+-)","");
526 //legend2->AddEntry("Same charge","Same Charge","");
527// legend2->AddEntry(grToneevSameCharge," Toneev #font[12]{et al.} (same charge)","L");
528 legend2->AddEntry(grHIJINGNoFlowAvg," #LTcos(#phi_{#alpha} + #phi_{#beta} - 2#phi_{c})#GT_{HIJING} / v_{2}{2}","p");
529 //legend2->AddEntry(grHIJINGWithFlowAvg," HIJING with v_{2} modulations","p");
530 legend2->AddEntry(grToneevSameCharge," CME expectation (Toneev #font[12]{et al.})","L");
531 //legend2->AddEntry(gHistv1Fluctuations," v_{1} fluctuations (same+opp. mean)","L");
532 //legend2->AddEntry(gHistv1Fluctuations,"(ALICE) same+opp. mean","L");
533 legend2->Draw();
534
535 if(gPreliminary) {
536 TLatex *alice = new TLatex(0.25,0.18,"Preliminary");
537 alice->SetNDC();
538 alice->SetTextColor(kRed+2);
539 alice->SetTextSize(0.035);
540 alice->SetLineWidth(2);
541 alice->Draw();
542
543 TPad *myPadLogo = new TPad("myPadLogo",
544 "Pad for ALICE Logo",0.26,0.21,0.41,0.36);
545 //myPadLogo->SetFillColor(2) // color to first figure out where is the pad then comment !
546 myPadSetUp(myPadLogo,0,0,0,0);
547 myPadLogo->Draw();
548 myPadLogo->cd();
549 TASImage *myAliceLogo = new TASImage("alice_logo_transparent.png");
550 myAliceLogo->Draw();
551 }
552
553 c1->SaveAs("figure2.eps");
554 c1->SaveAs("figure2.pdf");
555 c1->SaveAs("figure2.png");
556}
557
558//_______________________________________________________________//
559void SetDataPoints(const char* resultsPath,
560 Int_t chargeCombination) {
561 //chargeCombination == 0 ==> (+-)
562 //chargeCombination == 1 ==> (++)
563 //chargeCombination == -1 ==> (--)
564 //chargeCombination == 2 ==> (--)&(++)
565
566 TString filename = resultsPath;
567 //if(chargeCombination == 0) filename += "TPCOnly/PlusMinus/outputMH.root";
568 //else if(chargeCombination == 1) filename += "TPCOnly/PlusPlus/outputMH.root";
569 //else if(chargeCombination == -1) filename += "TPCOnly/MinusMinus/outputMH.root";
570 //else if(chargeCombination == 2) filename += "TPCOnly/SameCharge/outputMH.root";
571 if(chargeCombination == 0) filename += "PlusMinus/TPCOnly/outputMH.root";
572 else if(chargeCombination == 1) filename += "PlusPlus/TPCOnly/outputMH.root";
573 else if(chargeCombination == -1) filename += "MinusMinus/TPCOnly/outputMH.root";
574 else if(chargeCombination == 2) filename += "SameCharge/TPCOnly/outputMH.root";
575 else {
576 Printf("Wrong charge combinations selected - the supported values are 0, 1 and -1");
577 break;
578 }
579 //Printf("%s",filename.Data());
580 TFile *fInput = TFile::Open(filename.Data());
581 if(!fInput) {
582 Printf("File %s not found!!!",filename.Data());
583 break;
584 }
585 //fInput->ls();
586
587 TString hist3pName;
588 TH1D *gHist3p;
589 TString histQC2Name;
590 TH1D *gHistQC2;
591 TString histQC4Name;
592 TH1D *gHistQC4;
593
594
595 Double_t g3pPlusMinusError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
596 Double_t g3pPlusPlusError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
597 Double_t g3pMinusMinusError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
598 Double_t g3pSameChargeError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.};
599
600 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
601 hist3pName = "g3pHistName"; hist3pName += strCentralityBins[iBin];
602 gHist3p = dynamic_cast<TH1D *>(fInput->Get(hist3pName.Data()));
603 histQC2Name = "fHistIntegratedFlowRPQC_2;"; histQC2Name += iBin + 1;
604 gHistQC2 = dynamic_cast<TH1D *>(fInput->Get(histQC2Name.Data()));
605 histQC4Name = "fHistIntegratedFlowRPQC_4;"; histQC4Name += iBin + 1;
606 gHistQC4 = dynamic_cast<TH1D *>(fInput->Get(histQC4Name.Data()));
607
608 if(chargeCombination == 0) {
609 g3pCorrelatorALICEDataPlusMinus[iBin] = gHist3p->GetBinContent(1);
610 g3pPlusMinusError[iBin] = gHist3p->GetBinError(1);
611 v2QC2PlusMinus[iBin] = gHistQC2->GetBinContent(1);
612 v2QC2PlusMinusError[iBin] = gHistQC2->GetBinError(1);
613 v2QC4PlusMinus[iBin] = gHistQC4->GetBinContent(1);
614 v2QC4PlusMinusError[iBin] = gHistQC4->GetBinError(1);
615 }
616 if(chargeCombination == 1) {
617 g3pCorrelatorALICEDataPlusPlus[iBin] = gHist3p->GetBinContent(1);
618 g3pPlusPlusError[iBin] = gHist3p->GetBinError(1);
619 v2QC2PlusPlus[iBin] = gHistQC2->GetBinContent(1);
620 v2QC2PlusPlusError[iBin] = gHistQC2->GetBinError(1);
621 v2QC4PlusPlus[iBin] = gHistQC4->GetBinContent(1);
622 v2QC4PlusPlusError[iBin] = gHistQC4->GetBinError(1);
623 }
624 if(chargeCombination == -1) {
625 g3pCorrelatorALICEDataMinusMinus[iBin] = gHist3p->GetBinContent(1);
626 g3pMinusMinusError[iBin] = gHist3p->GetBinError(1);
627 v2QC2MinusMinus[iBin] = gHistQC2->GetBinContent(1);
628 v2QC2MinusMinusError[iBin] = gHistQC2->GetBinError(1);
629 v2QC4MinusMinus[iBin] = gHistQC4->GetBinContent(1);
630 v2QC4MinusMinusError[iBin] = gHistQC4->GetBinError(1);
631 }
632 if(chargeCombination == 2) {
633 g3pCorrelatorALICEDataSameCharge[iBin] = gHist3p->GetBinContent(1);
634 g3pSameChargeError[iBin] = gHist3p->GetBinError(1);
635 v2QC2SameCharge[iBin] = gHistQC2->GetBinContent(1);
636 v2QC2SameChargeError[iBin] = gHistQC2->GetBinError(1);
637 v2QC4SameCharge[iBin] = gHistQC4->GetBinContent(1);
638 v2QC4SameChargeError[iBin] = gHistQC4->GetBinError(1);
639 }
640 }//centrality bin
641
642 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
643 if(chargeCombination == 0) {
644 g3pCorrelatorALICEDataPlusMinus[iBin] /= v2QC2PlusMinus[iBin];
645 g3pCorrelatorALICEDataPlusMinusError[iBin] = TMath::Sqrt(TMath::Power(g3pPlusMinusError[iBin]/v2QC2PlusMinus[iBin],2) + TMath::Power(g3pCorrelatorALICEDataPlusMinus[iBin]*v2QC2PlusMinusError[iBin]/(v2QC2PlusMinus[iBin]*v2QC2PlusMinus[iBin]),2));
646 }
647 if(chargeCombination == 1) {
648 g3pCorrelatorALICEDataPlusPlus[iBin] /= v2QC2PlusPlus[iBin];
649 g3pCorrelatorALICEDataPlusPlusError[iBin] = TMath::Sqrt(TMath::Power(g3pPlusPlusError[iBin]/v2QC2PlusPlus[iBin],2) + TMath::Power(g3pCorrelatorALICEDataPlusPlus[iBin]*v2QC2PlusPlusError[iBin]/(v2QC2PlusPlus[iBin]*v2QC2PlusPlus[iBin]),2));
650 }
651 if(chargeCombination == -1) {
652 g3pCorrelatorALICEDataMinusMinus[iBin] /= v2QC2MinusMinus[iBin];
653 g3pCorrelatorALICEDataMinusMinusError[iBin] = TMath::Sqrt(TMath::Power(g3pMinusMinusError[iBin]/v2QC2MinusMinus[iBin],2) + TMath::Power(g3pCorrelatorALICEDataMinusMinus[iBin]*v2QC2MinusMinusError[iBin]/(v2QC2MinusMinus[iBin]*v2QC2MinusMinus[iBin]),2));
654 }
655 if(chargeCombination == 2) {
656 g3pCorrelatorALICEDataSameCharge[iBin] /= v2QC2SameCharge[iBin];
657 g3pCorrelatorALICEDataSameChargeError[iBin] = TMath::Sqrt(TMath::Power(g3pSameChargeError[iBin]/v2QC2SameCharge[iBin],2) + TMath::Power(g3pCorrelatorALICEDataSameCharge[iBin]*v2QC2SameChargeError[iBin]/(v2QC2SameCharge[iBin]*v2QC2SameCharge[iBin]),2));
658 }
659 }
660}
661
662//_______________________________________________________________//
663void GetCorrelatorAndError(TProfile *g3pCorrelatorVsPt,
664 Double_t &g3pCorrelatorValue,
665 Double_t &g3pCorrelatorError,
666 Int_t iBinLow = 0,
667 Int_t iBinHigh = 0) {
668 //Function to return the average value of the 3p correlator
669 //<cos(psi1 + psi2 - 2phi3)> and its error.
670 //The first argument is one of the 3p TProfile objects vs pt.
671 //The second and third argument give the integral and its error.
672 //The fourth and fifth, if specified, indicate the lowest and
673 //highest bin the calculation should be performed for.
674 Int_t gBinLow = 1, gBinHigh = g3pCorrelatorVsPt->GetNbinsX();
675 if(iBinLow) gBinLow = iBinLow;
676 if(iBinHigh) gBinHigh = iBinHigh;
677
678 Double_t gSumXi = 0.;
679 Double_t gSumYi = 0.;
680 Double_t gSumXiYi = 0.;
681 Double_t gSumXiYi2 = 0.;
682 Double_t gSumXi2Yi2 = 0.;
683 Double_t gSumDeltaXi2 = 0.;
684 Double_t gSumYi2DeltaXi2 = 0.;
685 Double_t dError = 0.; //Flow code driven error calculation
686
687 Double_t kSumBi = 0., kSumBi2DeltaYi2 = 0.;
688 Double_t kSumYiBi = 0., kSumYi2DeltaBi2 = 0.;
689 Double_t kSumDeltaBi2 = 0.;
690
691 for(Int_t iBin = gBinLow; iBin <= gBinHigh; iBin++) {
692 gSumXi += g3pCorrelatorVsPt->GetBinEntries(iBin);
693 gSumYi += g3pCorrelatorVsPt->GetBinContent(iBin);
694 gSumXiYi += g3pCorrelatorVsPt->GetBinEntries(iBin)*g3pCorrelatorVsPt->GetBinContent(iBin);
695 gSumXiYi2 += g3pCorrelatorVsPt->GetBinEntries(iBin)*TMath::Power(g3pCorrelatorVsPt->GetBinContent(iBin),2);
696 gSumXi2Yi2 += TMath::Power(g3pCorrelatorVsPt->GetBinEntries(iBin)*g3pCorrelatorVsPt->GetBinContent(iBin),2);
697 gSumDeltaXi2 += TMath::Power(g3pCorrelatorVsPt->GetBinError(iBin),2);
698 gSumYi2DeltaXi2 += TMath::Power(g3pCorrelatorVsPt->GetBinContent(iBin),2) + TMath::Power(g3pCorrelatorVsPt->GetBinError(iBin),2);
699
700 dError += g3pCorrelatorVsPt->GetBinEntries(iBin)*g3pCorrelatorVsPt->GetBinEntries(iBin)*g3pCorrelatorVsPt->GetBinError(iBin)*g3pCorrelatorVsPt->GetBinError(iBin);
701
702 //new error calculation
703 kSumBi += g3pCorrelatorVsPt->GetBinEntries(iBin);
704 kSumYiBi += g3pCorrelatorVsPt->GetBinEntries(iBin)*g3pCorrelatorVsPt->GetBinContent(iBin);
705 kSumBi2DeltaYi2 += TMath::Power(g3pCorrelatorVsPt->GetBinEntries(iBin),2)*TMath::Power(g3pCorrelatorVsPt->GetBinError(iBin),2);
706 kSumYi2DeltaBi2 += TMath::Power(g3pCorrelatorVsPt->GetBinContent(iBin),2)*TMath::Power(TMath::Sqrt(g3pCorrelatorVsPt->GetBinEntries(iBin)),2);
707 kSumDeltaBi2 += TMath::Power(TMath::Sqrt(g3pCorrelatorVsPt->GetBinEntries(iBin)),2);
708 }
709
710 g3pCorrelatorValue = -1000.;
711 g3pCorrelatorError = 1000.;
712
713 if(gSumXi != 0.)
714 g3pCorrelatorValue = gSumXiYi/gSumXi;
715 if((gSumXi != 0.)&&(gSumXiYi != 0.))
716 g3pCorrelatorError = TMath::Abs((gSumXiYi/gSumXi))*TMath::Sqrt(TMath::Power((TMath::Sqrt(gSumYi2DeltaXi2)/gSumXiYi),2) + TMath::Power((gSumDeltaXi2/gSumXi),2));
717 //g3pCorrelatorError = TMath::Sqrt((1./TMath::Power(kSumBi,2))*(kSumBi2DeltaYi2 + kSumYi2DeltaBi2 + TMath::Power(kSumYiBi,2)*kSumDeltaBi2/TMath::Power(kSumBi,2)));
718 if(gSumXi != 0.)
719 dError /= TMath::Power(gSumXi,2);
720 dError = TMath::Sqrt(dError);
721 g3pCorrelatorError = dError;
722
723 /*Int_t iBinCounter = 0;
724 Double_t gSumBinContentTimesWeight = 0., gSumWeight = 0.;
725 Double_t gSumBinContentTimesWeightSquared = 0.;
726 for(Int_t iBin = gBinLow; iBin <= gBinHigh; iBin++) {
727 iBinCounter += 1;
728
729 gSumBinContentTimesWeight += g3pCorrelatorVsPt->GetBinContent(iBin)*g3pCorrelatorVsPt->GetBinEntries(iBin);
730 gSumWeight += g3pCorrelatorVsPt->GetBinEntries(iBin);
731 gSumBinContentTimesWeightSquared += TMath::Power(gSumBinContentTimesWeight,2);
732 }
733
734 //Printf("%lf - %d",gSumWeight,iBinCounter);
735 //Calculate the g3pCorrelatorValue and its error
736 g3pCorrelatorValue = -1000.;
737 g3pCorrelatorError = 1000.;
738 if((gSumWeight)&&(iBinCounter)) {
739 g3pCorrelatorValue = gSumBinContentTimesWeight/(gSumWeight);
740 g3pCorrelatorError = TMath::Sqrt(gSumBinContentTimesWeightSquared/TMath::Power(gSumWeight,2));
741 }*/
742
743 //+++++++++++++++++++Extra new: Proper error calculation++++++++++++++++//
744 Double_t kSumBi = 0.;
745 Double_t kSumAiBi = 0.;
746 Double_t kSumBi2DeltaAi2 = 0.;
747 Double_t kSumLong = 0.;
748 Double_t k3pCorrelatorValue = 10000., k3pCorrelatorValueError = 10000.;
749
750 for(Int_t iBin = gBinLow; iBin <= gBinHigh; iBin++) {
751 kSumBi += g3pCorrelatorVsPt->GetBinEntries(iBin);
752 kSumAiBi += g3pCorrelatorVsPt->GetBinContent(iBin)*g3pCorrelatorVsPt->GetBinEntries(iBin);
753 kSumBi2DeltaAi2 += g3pCorrelatorVsPt->GetBinEntries(iBin)*TMath::Power(g3pCorrelatorVsPt->GetBinError(iBin),2);
754 }
755
756 for(Int_t iBin = gBinLow; iBin <= gBinHigh; iBin++) {
757 kSumLong += TMath::Power((g3pCorrelatorVsPt->GetBinContent(iBin)*kSumBi - kSumAiBi),2)*TMath::Power(TMath::Sqrt( g3pCorrelatorVsPt->GetBinEntries(iBin)),2)/TMath::Power(kSumBi,2);
758 }
759
760 k3pCorrelatorValue = kSumAiBi/kSumBi;
761 k3pCorrelatorValueError = TMath::Sqrt((1./TMath::Power(kSumBi,2))*(kSumBi2DeltaAi2 + kSumLong));
762
763 //g3pCorrelatorValue = k3pCorrelatorValue;
764 //g3pCorrelatorError = k3pCorrelatorValueError;
765
766 return;
767}
768
769
770//_______________________________________________________________//
771void DrawMarker(Double_t x, Double_t y, Int_t style,
772 Double_t size, Int_t color) {
773 TMarker *m = new TMarker(x,y,style);
774 m->SetMarkerSize(size);
775 m->SetMarkerColor(color);
776 m->Draw();
777}
778