]>
Commit | Line | Data |
---|---|---|
9d3cbee7 | 1 | void CompareFlowResults() |
2 | { | |
3 | gSystem->AddIncludePath("-I$ALICE_ROOT/include"); | |
4 | gSystem->AddIncludePath("-I$ROOTSYS/include"); | |
5 | ||
6 | //load needed libraries: | |
7 | gSystem->Load("libTree.so"); | |
8 | gSystem->Load("libANALYSIS.so"); | |
9 | gSystem->Load("libPWG2flow.so"); | |
10 | cerr<<"libPWG2flow.so loaded ..."<<endl; | |
11 | cout<<endl; | |
a88e5ac2 | 12 | |
9d3cbee7 | 13 | |
a88e5ac2 | 14 | //================================================================================== |
15 | // accessing output files | |
16 | //================================================================================== | |
70288839 | 17 | //type of analysis was: ESD, AOD, MC, ESDMC0, ESDMC1 |
18 | const TString type = "ESD"; | |
19 | ||
9d3cbee7 | 20 | //open the output files: |
70288839 | 21 | TString inputFileNameMCEP = "outputMCEPanalysis"; |
a88e5ac2 | 22 | TFile* fileMCEP = NULL; |
23 | fileMCEP = TFile::Open(((inputFileNameMCEP.Append(type)).Append(".root")).Data(), "READ"); | |
9d3cbee7 | 24 | |
70288839 | 25 | TString inputFileNameLYZ1 = "outputLYZ1analysis"; |
a88e5ac2 | 26 | TFile* fileLYZ1 = NULL; |
27 | fileLYZ1 = TFile::Open(((inputFileNameLYZ1.Append(type)).Append("_firstrun.root")).Data(), "READ"); | |
28 | ||
29 | TString inputFileNameLYZ2 = "outputLYZ2analysis"; | |
30 | TFile* fileLYZ2 = NULL; | |
31 | fileLYZ2 = TFile::Open(((inputFileNameLYZ2.Append(type)).Append("_secondrun.root")).Data(), "READ"); | |
9d3cbee7 | 32 | |
a88e5ac2 | 33 | TString inputFileNameLYZEP = "outputLYZEPanalysis"; |
34 | TFile* fileLYZEP = NULL; | |
35 | fileLYZEP = TFile::Open(((inputFileNameLYZEP.Append(type)).Append(".root")).Data(), "READ"); | |
9d3cbee7 | 36 | |
70288839 | 37 | TString inputFileNameFQD = "outputFQDanalysis"; |
a88e5ac2 | 38 | TFile* fileFQD = NULL; |
39 | fileFQD = TFile::Open(((inputFileNameFQD.Append(type)).Append(".root")).Data(), "READ"); | |
9d3cbee7 | 40 | |
70288839 | 41 | TString inputFileNameGFC = "outputGFCanalysis"; |
a88e5ac2 | 42 | TFile* fileGFC = NULL; |
43 | fileGFC = TFile::Open(((inputFileNameGFC.Append(type)).Append(".root")).Data(), "READ"); | |
9d3cbee7 | 44 | |
70288839 | 45 | TString inputFileNameQC = "outputQCanalysis"; |
a88e5ac2 | 46 | TFile* fileQC = NULL; |
47 | fileQC = TFile::Open(((inputFileNameQC.Append(type)).Append(".root")).Data(), "READ"); | |
48 | //================================================================================== | |
49 | ||
50 | //================================================================================== | |
51 | // cosmetics | |
52 | //================================================================================== | |
53 | //removing the title and stat. box from all histograms: | |
54 | gStyle->SetOptTitle(0); | |
55 | gStyle->SetOptStat(0); | |
56 | ||
57 | //choosing the style and color of mesh for MC error bands: | |
58 | Int_t meshStyle = 1001; | |
59 | Int_t meshColor = kRed-10; | |
60 | ||
61 | //marker style and color (int. flow) | |
62 | Int_t markerStyle = 21; | |
63 | Int_t markerColor = kRed-3; | |
64 | //================================================================================== | |
9d3cbee7 | 65 | |
a88e5ac2 | 66 | |
67 | ||
68 | ||
69 | ||
9d3cbee7 | 70 | //================================================================================== |
71 | // INTEGRATED FLOW | |
72 | //================================================================================== | |
a88e5ac2 | 73 | //the number of different methods: |
74 | const Int_t nMethods=12; | |
9d3cbee7 | 75 | |
a88e5ac2 | 76 | //booking the histogram for the integrated flow results from all methods: |
77 | TH1D* intFlowAll = new TH1D("intFlowAll","Integrated Flow",nMethods,0,nMethods); | |
78 | //intFlowAll->SetLabelSize(0.036,"X"); | |
79 | //intFlowAll->SetLabelSize(0.036,"Y"); | |
80 | intFlowAll->SetMarkerStyle(markerStyle); | |
81 | intFlowAll->SetMarkerColor(markerColor); | |
82 | (intFlowAll->GetXaxis())->SetBinLabel(1,"v_{2}{MC}"); | |
83 | (intFlowAll->GetXaxis())->SetBinLabel(2,"v_{2}{2,GFC}"); | |
84 | (intFlowAll->GetXaxis())->SetBinLabel(3,"v_{2}{2,QC}"); | |
85 | (intFlowAll->GetXaxis())->SetBinLabel(4,"v_{2}{4,GFC}"); | |
86 | (intFlowAll->GetXaxis())->SetBinLabel(5,"v_{2}{4,QC}"); | |
87 | (intFlowAll->GetXaxis())->SetBinLabel(6,"v_{2}{6,GFC}"); | |
88 | (intFlowAll->GetXaxis())->SetBinLabel(7,"v_{2}{6,QC}"); | |
89 | (intFlowAll->GetXaxis())->SetBinLabel(8,"v_{2}{8,GFC}"); | |
90 | (intFlowAll->GetXaxis())->SetBinLabel(9,"v_{2}{8,QC}"); | |
91 | (intFlowAll->GetXaxis())->SetBinLabel(10,"v_{2}{FQD}"); | |
92 | (intFlowAll->GetXaxis())->SetBinLabel(11,"v_{2}{LYZ}"); | |
93 | (intFlowAll->GetXaxis())->SetBinLabel(12,"v_{2}{LYZEP}"); | |
94 | ||
95 | //booking the graph to store flow values and errors from all methods: | |
96 | Double_t x[nMethods] = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5}; | |
97 | Double_t xError[nMethods] = {0.}; | |
98 | Double_t flowValue[nMethods] = {0.}; | |
99 | Double_t flowError[nMethods] = {0.}; | |
100 | ||
101 | //accessing the results for each method: | |
9d3cbee7 | 102 | //MCEP = Monte Carlo Event Plane |
103 | TList *pListMCEP = NULL; | |
a88e5ac2 | 104 | AliFlowCommonHist *mcepCommonHist = NULL; |
70288839 | 105 | AliFlowCommonHistResults *mcepCommonHistRes = NULL; |
a88e5ac2 | 106 | if(fileMCEP) |
9d3cbee7 | 107 | { |
a88e5ac2 | 108 | fileMCEP->GetObject("cobjMCEP",pListMCEP); |
9d3cbee7 | 109 | if(pListMCEP) |
110 | { | |
70288839 | 111 | mcepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListMCEP->FindObject("AliFlowCommonHistMCEP")); |
112 | mcepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListMCEP->FindObject("AliFlowCommonHistResultsMCEP")); | |
113 | if(mcepCommonHistRes) | |
9d3cbee7 | 114 | { |
a88e5ac2 | 115 | flowValue[0] = (mcepCommonHistRes->GetHistIntFlow())->GetBinContent(1); |
116 | flowError[0] = (mcepCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 117 | } |
118 | } | |
119 | } | |
120 | ||
121 | //LYZ1 = Lee-Yang Zeros (1st run) | |
122 | TList *pListLYZ1 = NULL; | |
a88e5ac2 | 123 | AliFlowCommonHist *lyz1CommonHist = NULL; |
124 | AliFlowCommonHistResults *lyz1CommonHistRes = NULL; | |
125 | if(fileLYZ1) | |
9d3cbee7 | 126 | { |
a88e5ac2 | 127 | fileLYZ1->GetObject("cobjLYZ1",pListLYZ1); |
9d3cbee7 | 128 | if(pListLYZ1) |
129 | { | |
a88e5ac2 | 130 | lyz1CommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ1->FindObject("AliFlowCommonHistLYZ1")); |
131 | lyz1CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ1->FindObject("AliFlowCommonHistResultsLYZ1")); | |
132 | if(lyz1CommonHistRes) | |
133 | { | |
134 | flowValue[10] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinContent(1); | |
135 | flowError[10] = (lyz1CommonHistRes->GetHistIntFlow())->GetBinError(1); | |
136 | } | |
137 | } | |
138 | } | |
139 | ||
140 | //LYZ2 = Lee-Yang Zeros (2nd run) (needed only for differential flow) | |
141 | TList *pListLYZ2 = NULL; | |
142 | AliFlowCommonHist *lyz2CommonHist = NULL; | |
143 | AliFlowCommonHistResults *lyz2CommonHistRes = NULL; | |
144 | if(fileLYZ2) | |
145 | { | |
146 | fileLYZ2->GetObject("cobjLYZ2",pListLYZ2); | |
147 | if(pListLYZ2) | |
148 | { | |
149 | lyz2CommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZ2->FindObject("AliFlowCommonHistLYZ2")); | |
150 | lyz2CommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZ2->FindObject("AliFlowCommonHistResultsLYZ2")); | |
151 | } | |
152 | } | |
153 | ||
154 | //LYZEP = Lee-Yang Zeros Event Plane | |
155 | TList *pListLYZEP = NULL; | |
156 | AliFlowCommonHist *lyzepCommonHist = NULL; | |
157 | AliFlowCommonHistResults *lyzepCommonHistRes = NULL; | |
158 | if(fileLYZEP) | |
159 | { | |
160 | fileLYZEP->GetObject("cobjLYZEP",pListLYZEP); | |
161 | if(pListLYZEP) | |
162 | { | |
163 | lyzepCommonHist = dynamic_cast<AliFlowCommonHist*> (pListLYZEP->FindObject("AliFlowCommonHistLYZEP")); | |
164 | lyzepCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListLYZEP->FindObject("AliFlowCommonHistResultsLYZEP")); | |
165 | if(lyzepCommonHistRes) | |
9d3cbee7 | 166 | { |
a88e5ac2 | 167 | flowValue[11] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinContent(1); |
168 | //flowError[11] = (lyzepCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 169 | } |
170 | } | |
171 | } | |
172 | ||
173 | //FQD = Fitting q-distribution | |
174 | TList *pListFQD = NULL; | |
a88e5ac2 | 175 | AliFlowCommonHist *fqdCommonHist = NULL; |
176 | AliFlowCommonHistResults *fqdCommonHistRes = NULL; | |
177 | if(fileFQD) | |
9d3cbee7 | 178 | { |
a88e5ac2 | 179 | fileFQD->GetObject("cobjFQD",pListFQD); |
9d3cbee7 | 180 | if(pListFQD) |
181 | { | |
a88e5ac2 | 182 | fqdCommonHist = dynamic_cast<AliFlowCommonHist*> (pListFQD->FindObject("AliFlowCommonHistFQD")); |
183 | fqdCommonHistRes = dynamic_cast<AliFlowCommonHistResults*> (pListFQD->FindObject("AliFlowCommonHistResultsFQD")); | |
184 | if(fqdCommonHistRes) | |
9d3cbee7 | 185 | { |
a88e5ac2 | 186 | flowValue[9] = (fqdCommonHistRes->GetHistIntFlow())->GetBinContent(1); |
187 | flowError[9] = (fqdCommonHistRes->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 188 | } |
189 | } | |
190 | } | |
191 | ||
192 | //GFC = Generating Function Cumulants | |
193 | TList *pListGFC = NULL; | |
a88e5ac2 | 194 | AliFlowCommonHist *gfcCommonHist = NULL; |
195 | AliFlowCommonHistResults *gfcCommonHistRes2 = NULL; | |
196 | AliFlowCommonHistResults *gfcCommonHistRes4 = NULL; | |
197 | AliFlowCommonHistResults *gfcCommonHistRes6 = NULL; | |
198 | AliFlowCommonHistResults *gfcCommonHistRes8 = NULL; | |
199 | if(fileGFC) | |
9d3cbee7 | 200 | { |
a88e5ac2 | 201 | fileGFC->GetObject("cobjGFC",pListGFC); |
9d3cbee7 | 202 | if(pListGFC) |
203 | { | |
a88e5ac2 | 204 | gfcCommonHist = dynamic_cast<AliFlowCommonHist*> (pListGFC->FindObject("AliFlowCommonHistGFC")); |
205 | gfcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults2ndOrderGFC")); | |
206 | if(gfcCommonHistRes2) | |
9d3cbee7 | 207 | { |
a88e5ac2 | 208 | flowValue[1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinContent(1); |
209 | flowError[1] = (gfcCommonHistRes2->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 210 | } |
a88e5ac2 | 211 | gfcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults4thOrderGFC")); |
212 | if(gfcCommonHistRes4) | |
9d3cbee7 | 213 | { |
a88e5ac2 | 214 | flowValue[3] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinContent(1); |
215 | flowError[3] = (gfcCommonHistRes4->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 216 | } |
a88e5ac2 | 217 | gfcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults6thOrderGFC")); |
218 | if(gfcCommonHistRes6) | |
9d3cbee7 | 219 | { |
a88e5ac2 | 220 | flowValue[5] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinContent(1); |
221 | flowError[5] = (gfcCommonHistRes6->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 222 | } |
a88e5ac2 | 223 | gfcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListGFC->FindObject("AliFlowCommonHistResults8thOrderGFC")); |
224 | if(gfcCommonHistRes8) | |
9d3cbee7 | 225 | { |
a88e5ac2 | 226 | flowValue[7] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinContent(1); |
227 | flowError[7] = (gfcCommonHistRes8->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 228 | } |
229 | } | |
230 | } | |
231 | ||
232 | //QC = Q-cumulants | |
233 | TList *pListQC = NULL; | |
a88e5ac2 | 234 | AliFlowCommonHist *qcCommonHist2 = NULL; |
235 | AliFlowCommonHist *qcCommonHist4 = NULL; | |
236 | AliFlowCommonHist *qcCommonHist6 = NULL; | |
237 | AliFlowCommonHist *qcCommonHist8 = NULL; | |
70288839 | 238 | AliFlowCommonHistResults *qcCommonHistRes2 = NULL; |
239 | AliFlowCommonHistResults *qcCommonHistRes4 = NULL; | |
240 | AliFlowCommonHistResults *qcCommonHistRes6 = NULL; | |
241 | AliFlowCommonHistResults *qcCommonHistRes8 = NULL; | |
a88e5ac2 | 242 | |
243 | if(fileQC) | |
9d3cbee7 | 244 | { |
a88e5ac2 | 245 | fileQC->GetObject("cobjQC",pListQC); |
9d3cbee7 | 246 | if(pListQC) |
247 | { | |
a88e5ac2 | 248 | qcCommonHist2 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist2ndOrderQC")); |
70288839 | 249 | qcCommonHistRes2 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults2ndOrderQC")); |
250 | if(qcCommonHistRes2) | |
9d3cbee7 | 251 | { |
a88e5ac2 | 252 | flowValue[2] = (qcCommonHistRes2->GetHistIntFlow())->GetBinContent(1); |
253 | //flowError[2] = (qcCommonHistRes2->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 254 | } |
a88e5ac2 | 255 | qcCommonHist4 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist4thOrderQC")); |
70288839 | 256 | qcCommonHistRes4 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults4thOrderQC")); |
257 | if(qcCommonHistRes4) | |
9d3cbee7 | 258 | { |
a88e5ac2 | 259 | flowValue[4] = (qcCommonHistRes4->GetHistIntFlow())->GetBinContent(1); |
260 | //flowError[4] = (qcCommonHistRes4->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 261 | } |
a88e5ac2 | 262 | qcCommonHist6 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist6thOrderQC")); |
70288839 | 263 | qcCommonHistRes6 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults6thOrderQC")); |
264 | if(qcCommonHistRes6) | |
9d3cbee7 | 265 | { |
a88e5ac2 | 266 | flowValue[6] = (qcCommonHistRes6->GetHistIntFlow())->GetBinContent(1); |
267 | //flowError[6] = (qcCommonHistRes6->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 268 | } |
a88e5ac2 | 269 | qcCommonHist8 = dynamic_cast<AliFlowCommonHist*> (pListQC->FindObject("AliFlowCommonHist8thOrderQC")); |
70288839 | 270 | qcCommonHistRes8 = dynamic_cast<AliFlowCommonHistResults*> (pListQC->FindObject("AliFlowCommonHistResults8thOrderQC")); |
271 | if(qcCommonHistRes8) | |
9d3cbee7 | 272 | { |
a88e5ac2 | 273 | flowValue[8] = (qcCommonHistRes8->GetHistIntFlow())->GetBinContent(1); |
274 | //flowError[8] = (qcCommonHistRes8->GetHistIntFlow())->GetBinError(1); | |
9d3cbee7 | 275 | } |
276 | } | |
a88e5ac2 | 277 | } |
278 | ||
279 | Double_t dMax=flowValue[0]+flowError[0]; | |
280 | Double_t dMin=flowValue[0]-flowError[0]; | |
281 | ||
282 | for(Int_t i=1;i<nMethods;i++) | |
283 | { | |
284 | if(!(flowValue[i]==0. && flowError[i]==0.)) | |
285 | { | |
286 | if(dMax<flowValue[i]+flowError[i]) dMax=flowValue[i]+flowError[i]; | |
287 | if(dMin>flowValue[i]-flowError[i]) dMin=flowValue[i]-flowError[i]; | |
288 | } | |
289 | } | |
290 | ||
291 | TGraph* flowResults = new TGraphErrors(nMethods, x, flowValue, xError, flowError); | |
9d3cbee7 | 292 | |
a88e5ac2 | 293 | flowResults->SetMarkerStyle(markerStyle); |
294 | flowResults->SetMarkerColor(markerColor); | |
295 | //----------------------------------------------------------------------------------- | |
296 | ||
70288839 | 297 | //---------------------------------------------------------------------------------- |
298 | //cosmetics: mesh for MC error bands (integrated flow) | |
a88e5ac2 | 299 | TGraph* pMesh = NULL; |
300 | if(intFlowAll && mcepCommonHistRes) | |
301 | { | |
302 | //Double_t valueMC = intFlowAll->GetBinContent(1); | |
303 | //Double_t errorMC = intFlowAll->GetBinError(1); | |
304 | //Int_t nPts = intFlowAll->GetNbinsX(); | |
305 | ||
306 | Double_t valueMC = flowValue[0]; | |
307 | Double_t errorMC = flowError[0]; | |
308 | Int_t nPts = nMethods; | |
309 | ||
310 | pMesh = new TGraph(nPts); | |
6f62c2a7 | 311 | |
a88e5ac2 | 312 | pMesh->SetPoint(1,0,valueMC+errorMC); |
313 | pMesh->SetPoint(2,nPts+1,valueMC+errorMC); | |
314 | pMesh->SetPoint(3,nPts+1,valueMC-errorMC); | |
315 | pMesh->SetPoint(4,0,valueMC-errorMC); | |
316 | pMesh->SetPoint(5,0,valueMC+errorMC); | |
6f62c2a7 | 317 | |
a88e5ac2 | 318 | pMesh->SetFillStyle(meshStyle); |
319 | pMesh->SetFillColor(meshColor); | |
6f62c2a7 | 320 | } |
a88e5ac2 | 321 | //---------------------------------------------------------------------------------- |
70288839 | 322 | |
70288839 | 323 | |
a88e5ac2 | 324 | //---------------------------------------------------------------------------------- |
325 | //cosmetics: text (integrated flow) | |
326 | //default text: | |
327 | TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC"); | |
328 | textDefault->SetTextFont(72); | |
329 | textDefault->SetTextSize(0.08); | |
330 | //textDefault->SetLineColor(kFALSE); | |
331 | //textDefault->SetShadowColor(kFALSE); | |
332 | ||
333 | TString *entryDefaultAvM = new TString("Average Multiplicity"); | |
334 | TString *entryDefaultAnd = new TString("and"); | |
335 | TString *entryDefaultNumOfEvts = new TString("Number of Events:"); | |
336 | ||
337 | textDefault->AddText(entryDefaultAvM->Data()); | |
338 | textDefault->AddText(entryDefaultAnd->Data()); | |
339 | textDefault->AddText(entryDefaultNumOfEvts->Data()); | |
340 | ||
341 | //results: | |
342 | TPaveText *textResults = new TPaveText(0.05,0.12,0.95,0.70,"NDC"); | |
343 | textResults->SetTextFont(72); | |
344 | textResults->SetTextSize(0.06); | |
345 | //textResults->SetLineColor(kFALSE); | |
346 | //textResults->SetShadowColor(kFALSE); | |
347 | ||
348 | TString *entryMC = new TString("MC ...... "); | |
349 | TString *entryGFC = new TString("GFC ..... "); | |
350 | TString *entryQC2 = new TString("QC{2} ... "); | |
351 | TString *entryQC4 = new TString("QC{4} ... "); | |
352 | TString *entryQC6 = new TString("QC{6} ... "); | |
353 | TString *entryQC8 = new TString("QC{8} ... "); | |
354 | TString *entryFQD = new TString("FQD ..... "); | |
355 | TString *entryLYZ1 = new TString("LYZ ..... "); | |
356 | TString *entryLYZEP = new TString("LYZEP ... "); | |
357 | ||
358 | Double_t avMultMC=0.; | |
359 | Long_t nEvtsMC=0; | |
360 | ||
361 | Double_t avMultGFC=0.; | |
362 | Long_t nEvtsGFC=0; | |
363 | ||
364 | Double_t avMultQC2=0., avMultQC4=0., avMultQC6=0., avMultQC8=0.; | |
365 | Long_t nEvtsQC2=0, nEvtsQC4=0, nEvtsQC6=0, nEvtsQC8=0; | |
366 | ||
367 | Double_t avMultFQD=0.; | |
368 | Long_t nEvtsFQD=0; | |
369 | ||
370 | Double_t avMultLYZ1=0.; | |
371 | Long_t nEvtsLYZ1=0; | |
70288839 | 372 | |
a88e5ac2 | 373 | Double_t avMultLYZEP=0.; |
374 | Long_t nEvtsLYZEP=0; | |
70288839 | 375 | |
a88e5ac2 | 376 | //MC: |
70288839 | 377 | if(mcepCommonHist) |
378 | { | |
379 | avMultMC = (mcepCommonHist->GetHistMultInt())->GetMean(); | |
380 | nEvtsMC = (mcepCommonHist->GetHistMultInt())->GetEntries(); | |
a88e5ac2 | 381 | } |
382 | if(entryMC) | |
383 | { | |
70288839 | 384 | entryMC->Append("M = "); |
385 | (*entryMC)+=(Long_t)avMultMC; | |
386 | entryMC->Append(", N = "); | |
387 | (*entryMC)+=(Long_t)nEvtsMC; | |
70288839 | 388 | } |
a88e5ac2 | 389 | |
390 | //GFC: | |
391 | if(gfcCommonHist) | |
392 | { | |
393 | avMultGFC = (gfcCommonHist->GetHistMultInt())->GetMean(); | |
394 | nEvtsGFC = (gfcCommonHist->GetHistMultInt())->GetEntries(); | |
395 | } | |
396 | if(entryGFC) | |
397 | { | |
398 | entryGFC->Append("M = "); | |
399 | (*entryGFC)+=(Long_t)avMultGFC; | |
400 | entryGFC->Append(", N = "); | |
401 | (*entryGFC)+=(Long_t)nEvtsGFC; | |
402 | } | |
403 | ||
404 | //QC: | |
70288839 | 405 | if(qcCommonHist2) |
406 | { | |
407 | avMultQC2 = (qcCommonHist2->GetHistMultInt())->GetMean(); | |
408 | nEvtsQC2 = (qcCommonHist2->GetHistMultInt())->GetEntries(); | |
a88e5ac2 | 409 | } |
410 | if(entryQC2) | |
411 | { | |
70288839 | 412 | entryQC2->Append("M = "); |
413 | (*entryQC2)+=(Long_t)avMultQC2; | |
414 | entryQC2->Append(", N = "); | |
415 | (*entryQC2)+=(Long_t)nEvtsQC2; | |
70288839 | 416 | } |
417 | if(qcCommonHist4) | |
418 | { | |
419 | avMultQC4 = (qcCommonHist4->GetHistMultInt())->GetMean(); | |
420 | nEvtsQC4 = (qcCommonHist4->GetHistMultInt())->GetEntries(); | |
a88e5ac2 | 421 | } |
422 | if(entryQC4) | |
423 | { | |
70288839 | 424 | entryQC4->Append("M = "); |
425 | (*entryQC4)+=(Long_t)avMultQC4; | |
426 | entryQC4->Append(", N = "); | |
427 | (*entryQC4)+=(Long_t)nEvtsQC4; | |
70288839 | 428 | } |
a88e5ac2 | 429 | if(qcCommonHist6) |
430 | { | |
431 | avMultQC6 = (qcCommonHist6->GetHistMultInt())->GetMean(); | |
432 | nEvtsQC6 = (qcCommonHist6->GetHistMultInt())->GetEntries(); | |
433 | } | |
434 | if(entryQC6) | |
435 | { | |
436 | entryQC6->Append("M = "); | |
437 | (*entryQC6)+=(Long_t)avMultQC6; | |
438 | entryQC6->Append(", N = "); | |
439 | (*entryQC6)+=(Long_t)nEvtsQC6; | |
440 | } | |
441 | if(qcCommonHist8) | |
442 | { | |
443 | avMultQC8 = (qcCommonHist8->GetHistMultInt())->GetMean(); | |
444 | nEvtsQC8 = (qcCommonHist8->GetHistMultInt())->GetEntries(); | |
445 | } | |
446 | if(entryQC8) | |
447 | { | |
448 | entryQC8->Append("M = "); | |
449 | (*entryQC8)+=(Long_t)avMultQC8; | |
450 | entryQC8->Append(", N = "); | |
451 | (*entryQC8)+=(Long_t)nEvtsQC8; | |
452 | } | |
70288839 | 453 | |
a88e5ac2 | 454 | //FQD: |
455 | if(fqdCommonHist) | |
456 | { | |
457 | avMultFQD = (fqdCommonHist->GetHistMultInt())->GetMean(); | |
458 | nEvtsFQD = (fqdCommonHist->GetHistMultInt())->GetEntries(); | |
459 | } | |
460 | if(entryFQD) | |
461 | { | |
462 | entryFQD->Append("M = "); | |
463 | (*entryFQD)+=(Long_t)avMultFQD; | |
464 | entryFQD->Append(", N = "); | |
465 | (*entryFQD)+=(Long_t)nEvtsFQD; | |
466 | } | |
70288839 | 467 | |
a88e5ac2 | 468 | //LYZ1: |
469 | if(lyz1CommonHist) | |
470 | { | |
471 | avMultLYZ1 = (lyz1CommonHist->GetHistMultInt())->GetMean(); | |
472 | nEvtsLYZ1 = (lyz1CommonHist->GetHistMultInt())->GetEntries(); | |
473 | } | |
474 | if(entryLYZ1) | |
475 | { | |
476 | entryLYZ1->Append("M = "); | |
477 | (*entryLYZ1)+=(Long_t)avMultLYZ1; | |
478 | entryLYZ1->Append(", N = "); | |
479 | (*entryLYZ1)+=(Long_t)nEvtsLYZ1; | |
480 | } | |
70288839 | 481 | |
a88e5ac2 | 482 | //LYZEP: |
483 | if(lyzepCommonHist) | |
70288839 | 484 | { |
a88e5ac2 | 485 | avMultcLYZEP = (lyzepCommonHist->GetHistMultInt())->GetMean(); |
486 | nEvtsLYZEP = (lyzepCommonHist->GetHistMultInt())->GetEntries(); | |
70288839 | 487 | } |
a88e5ac2 | 488 | if(entryLYZEP) |
70288839 | 489 | { |
a88e5ac2 | 490 | entryLYZEP->Append("M = "); |
491 | (*entryLYZEP)+=(Long_t)avMultLYZEP; | |
492 | entryLYZEP->Append(", N = "); | |
493 | (*entryLYZEP)+=(Long_t)nEvtsLYZEP; | |
70288839 | 494 | } |
a88e5ac2 | 495 | |
496 | if(textResults) | |
70288839 | 497 | { |
a88e5ac2 | 498 | textResults->AddText(entryMC->Data()); |
499 | textResults->AddText(entryGFC->Data()); | |
500 | textResults->AddText(entryQC2->Data()); | |
501 | textResults->AddText(entryQC4->Data()); | |
502 | textResults->AddText(entryQC6->Data()); | |
503 | textResults->AddText(entryQC8->Data()); | |
504 | textResults->AddText(entryFQD->Data()); | |
505 | textResults->AddText(entryLYZ1->Data()); | |
506 | textResults->AddText(entryLYZEP->Data()); | |
70288839 | 507 | } |
a88e5ac2 | 508 | //---------------------------------------------------------------------------------- |
70288839 | 509 | |
510 | //---------------------------------------------------------------------------------- | |
a88e5ac2 | 511 | //final drawing for integrated flow: |
512 | TCanvas* intFlowAllCanvas = new TCanvas("Integrated Flow","Integrated Flow",1000,600); | |
6f62c2a7 | 513 | |
a88e5ac2 | 514 | intFlowAllCanvas->Divide(2,1); |
6f62c2a7 | 515 | |
a88e5ac2 | 516 | //1st pad is for plot: |
517 | (intFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0); | |
9d3cbee7 | 518 | |
a88e5ac2 | 519 | if(intFlowAll) |
520 | { | |
521 | if(dMin>0. && dMax>0.) | |
522 | { | |
523 | (intFlowAll->GetYaxis())->SetRangeUser(0.9744*dMin,1.0144*dMax); | |
524 | } else if(dMin<0. && dMax>0.) | |
525 | { | |
526 | if(!(-1.*dMin<4.*dMax)) | |
527 | { | |
528 | (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,1.0144*dMax); | |
529 | } else {(intFlowAll->GetYaxis())->SetRangeUser(1.1266*dMin,1.0144*dMax);} | |
530 | } else if(dMin<0. && dMax<0.) | |
531 | { | |
532 | (intFlowAll->GetYaxis())->SetRangeUser(1.0266*dMin,0.9866*dMax); | |
533 | } | |
534 | intFlowAll->Draw("E1"); | |
535 | } | |
536 | ||
537 | if(pMesh) pMesh->Draw("LFSAME"); | |
538 | ||
539 | if(flowResults) flowResults->Draw("PSAME"); | |
540 | ||
541 | //2nd pad is for legend: | |
542 | (intFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0); | |
543 | ||
544 | if(textDefault) | |
545 | { | |
546 | textDefault->Draw(); | |
547 | textResults->Draw(); | |
548 | } | |
549 | //---------------------------------------------------------------------------------- | |
9d3cbee7 | 550 | //================================================================================== |
551 | ||
552 | ||
553 | ||
554 | ||
555 | //================================================================================== | |
556 | // DIFFERENTIAL FLOW | |
557 | //================================================================================== | |
70288839 | 558 | Int_t iNbinsPt = AliFlowCommonConstants::GetNbinsPt(); |
559 | Double_t dPtMin = AliFlowCommonConstants::GetPtMin(); | |
560 | Double_t dPtMax = AliFlowCommonConstants::GetPtMax(); | |
561 | ||
a88e5ac2 | 562 | //---------------------------------------------------------------------------------- |
563 | //cosmetics: the style histogram: | |
70288839 | 564 | TH1D *styleHist = new TH1D("styleHist","styleHist",iNbinsPt,dPtMin,dPtMax); |
565 | styleHist->SetTitle("Differential Flow"); | |
566 | styleHist->SetXTitle("p_{t} [GeV]"); | |
567 | styleHist->SetYTitle("v_{n}"); | |
a88e5ac2 | 568 | //---------------------------------------------------------------------------------- |
9d3cbee7 | 569 | |
a88e5ac2 | 570 | //---------------------------------------------------------------------------------- |
571 | //cosmetics: Monte Carlo error bands for differential flow | |
572 | TGraph* pMeshDiffFlow = NULL; | |
573 | if(mcepCommonHistRes) | |
574 | { | |
575 | Int_t nPtsDF = (mcepCommonHistRes->GetHistDiffFlow())->GetNbinsX(); | |
576 | Double_t binWidth = (mcepCommonHistRes->GetHistDiffFlow())->GetBinWidth(1);//assuming that all bins have the same width | |
577 | ||
578 | pMeshDiffFlow = new TGraph(2*nPts+1); | |
579 | ||
580 | Double_t valueMC=0., errorMC=0.; | |
581 | for(Int_t i=1;i<nPtsDF+1;i++) | |
582 | { | |
583 | valueMC = (mcepCommonHistRes->GetHistDiffFlow())->GetBinContent(i); | |
584 | errorMC = (mcepCommonHistRes->GetHistDiffFlow())->GetBinError(i); | |
585 | pMeshDiffFlow->SetPoint(i,(i-0.5)*binWidth,valueMC+errorMC); | |
586 | } | |
587 | for(Int_t i=nPtsDF+1;i<2*nPtsDF+1;i++) | |
588 | { | |
589 | valueMC = (mcepCommonHistRes->GetHistDiffFlow())->GetBinContent(2*nPtsDF+1-i); | |
590 | errorMC = (mcepCommonHistRes->GetHistDiffFlow())->GetBinError(2*nPtsDF+1-i); | |
591 | pMeshDiffFlow->SetPoint(i,(2*nPtsDF-i+0.5)*binWidth,valueMC-errorMC); | |
592 | } | |
593 | pMeshDiffFlow->SetPoint(2*nPtsDF+1,0.5*binWidth,valueMC+errorMC); | |
594 | pMeshDiffFlow->SetFillStyle(meshStyle); | |
595 | pMeshDiffFlow->SetFillColor(meshColor); | |
596 | } | |
597 | //---------------------------------------------------------------------------------- | |
598 | ||
70288839 | 599 | //MCEP = Monte Carlo Event Plane |
a88e5ac2 | 600 | Double_t avMultDiffFlowMC=0.; |
601 | Double_t nEvtsDiffFlowMC=0; | |
602 | if(fileMCEP) | |
9d3cbee7 | 603 | { |
70288839 | 604 | if(mcepCommonHistRes) |
605 | { | |
70288839 | 606 | (mcepCommonHistRes->GetHistDiffFlow())->SetMarkerColor(2); |
607 | (mcepCommonHistRes->GetHistDiffFlow())->SetMarkerStyle(20); | |
a88e5ac2 | 608 | } |
609 | if(mcepCommonHist) | |
610 | { | |
611 | avMultDiffFlowMC = (mcepCommonHist->GetHistMultDiff())->GetMean(); | |
612 | nEvtsDiffFlowMC = (mcepCommonHist->GetHistMultDiff())->GetEntries(); | |
70288839 | 613 | } |
614 | } | |
a88e5ac2 | 615 | |
9d3cbee7 | 616 | //GFC = Generating Function Cumulants |
a88e5ac2 | 617 | Double_t avMultDiffFlowGFC=0.; |
618 | Double_t nEvtsDiffFlowGFC=0.; | |
619 | if(fileGFC) | |
9d3cbee7 | 620 | { |
a88e5ac2 | 621 | if(gfcCommonHistRes2) |
9d3cbee7 | 622 | { |
a88e5ac2 | 623 | (gfcCommonHistRes2->GetHistDiffFlow())->SetMarkerColor(kViolet+3); |
624 | (gfcCommonHistRes2->GetHistDiffFlow())->SetMarkerStyle(20); | |
9d3cbee7 | 625 | } |
a88e5ac2 | 626 | if(gfcCommonHistRes4) |
9d3cbee7 | 627 | { |
a88e5ac2 | 628 | (gfcCommonHistRes4->GetHistDiffFlow())->SetMarkerColor(kViolet-6); |
629 | (gfcCommonHistRes4->GetHistDiffFlow())->SetMarkerStyle(21); | |
9d3cbee7 | 630 | } |
a88e5ac2 | 631 | if(gfcCommonHist) |
632 | { | |
633 | avMultDiffFlowGFC = (gfcCommonHist->GetHistMultDiff())->GetMean(); | |
634 | nEvtsDiffFlowGFC = (gfcCommonHist->GetHistMultDiff())->GetEntries(); | |
635 | } | |
9d3cbee7 | 636 | } |
a88e5ac2 | 637 | |
9d3cbee7 | 638 | //QC = Q-cumulants |
a88e5ac2 | 639 | Double_t avMultDiffFlowQC2=0., avMultDiffFlowQC4=0.; |
640 | Double_t nEvtsDiffFlowQC2=0., nEvtsDiffFlowQC4=0.; | |
641 | if(fileQC) | |
9d3cbee7 | 642 | { |
a88e5ac2 | 643 | //QC{2} |
70288839 | 644 | if(qcCommonHistRes2) |
9d3cbee7 | 645 | { |
a88e5ac2 | 646 | (qcCommonHistRes2->GetHistDiffFlow())->SetMarkerColor(kOrange+3); |
70288839 | 647 | (qcCommonHistRes2->GetHistDiffFlow())->SetMarkerStyle(20); |
9d3cbee7 | 648 | } |
a88e5ac2 | 649 | if(qcCommonHist2) |
650 | { | |
651 | avMultDiffFlowQC2 = (qcCommonHist2->GetHistMultDiff())->GetMean(); | |
652 | nEvtsDiffFlowQC2 = (qcCommonHist2->GetHistMultDiff())->GetEntries(); | |
653 | } | |
654 | //QC{4} | |
70288839 | 655 | if(qcCommonHistRes4) |
9d3cbee7 | 656 | { |
a88e5ac2 | 657 | (qcCommonHistRes4->GetHistDiffFlow())->SetMarkerColor(kOrange-6); |
70288839 | 658 | (qcCommonHistRes4->GetHistDiffFlow())->SetMarkerStyle(21); |
a88e5ac2 | 659 | } |
660 | if(qcCommonHist4) | |
661 | { | |
662 | avMultDiffFlowQC4 = (qcCommonHist4->GetHistMultDiff())->GetMean(); | |
663 | nEvtsDiffFlowQC4 = (qcCommonHist4->GetHistMultDiff())->GetEntries(); | |
9d3cbee7 | 664 | } |
665 | } | |
70288839 | 666 | |
a88e5ac2 | 667 | //LYZ2 = Lee-Yang Zeros (2nd run) |
668 | Double_t avMultDiffFlowLYZ2=0.; | |
669 | Double_t nEvtsDiffFlowLYZ2=0; | |
670 | if(fileLYZ2) | |
9d3cbee7 | 671 | { |
a88e5ac2 | 672 | if(lyz2CommonHistRes) |
9d3cbee7 | 673 | { |
a88e5ac2 | 674 | (lyz2CommonHistRes->GetHistDiffFlow())->SetMarkerColor(kGreen+3); |
675 | (lyz2CommonHistRes->GetHistDiffFlow())->SetMarkerStyle(22); | |
676 | } | |
677 | if(lyz2CommonHist) | |
9d3cbee7 | 678 | { |
a88e5ac2 | 679 | avMultDiffFlowLYZ2 = (lyz2CommonHist->GetHistMultDiff())->GetMean(); |
680 | nEvtsDiffFlowLYZ2 = (lyz2CommonHist->GetHistMultDiff())->GetEntries(); | |
9d3cbee7 | 681 | } |
682 | } | |
70288839 | 683 | |
a88e5ac2 | 684 | //---------------------------------------------------------------------------------- |
685 | //final drawing for differential flow: | |
686 | TCanvas* diffFlowAllCanvas = new TCanvas("Differential Flow","Differential Flow",1000,600); | |
70288839 | 687 | |
a88e5ac2 | 688 | diffFlowAllCanvas->Divide(2,1); |
70288839 | 689 | |
a88e5ac2 | 690 | //1st pad is for plot: |
691 | (diffFlowAllCanvas->cd(1))->SetPad(0.0,0.0,0.75,1.0); | |
70288839 | 692 | |
a88e5ac2 | 693 | if(styleHist) |
70288839 | 694 | { |
a88e5ac2 | 695 | styleHist->Draw(); |
70288839 | 696 | } |
a88e5ac2 | 697 | if(pMeshDiffFlow) |
70288839 | 698 | { |
a88e5ac2 | 699 | pMeshDiffFlow->Draw("LFSAME"); |
70288839 | 700 | } |
a88e5ac2 | 701 | //MC |
702 | if(mcepCommonHistRes) | |
703 | { | |
704 | //(mcepCommonHistRes->GetHistDiffFlow())->Draw("E1PSAME"); | |
705 | } | |
706 | //GFC | |
707 | if(gfcCommonHistRes2) | |
708 | { | |
709 | (gfcCommonHistRes2->GetHistDiffFlow())->Draw("E1PSAME"); | |
710 | } | |
711 | if(gfcCommonHistRes4) | |
712 | { | |
713 | (gfcCommonHistRes4->GetHistDiffFlow())->Draw("E1PSAME"); | |
714 | } | |
715 | //QC | |
716 | if(qcCommonHistRes2) | |
717 | { | |
718 | (qcCommonHistRes2->GetHistDiffFlow())->Draw("E1PSAME"); | |
719 | } | |
720 | if(qcCommonHistRes4) | |
721 | { | |
722 | (qcCommonHistRes4->GetHistDiffFlow())->Draw("E1PSAME"); | |
723 | } | |
724 | //LYZ2 | |
725 | if(lyz2CommonHistRes) | |
726 | { | |
727 | (lyz2CommonHistRes->GetHistDiffFlow())->Draw("E1PSAME"); | |
70288839 | 728 | } |
729 | ||
a88e5ac2 | 730 | //2nd pad is for legend: |
731 | (diffFlowAllCanvas->cd(2))->SetPad(0.75,0.0,1.0,1.0); | |
732 | ||
733 | TLegend* legendDiffFlow = new TLegend(0.02,0.25,0.97,0.75); | |
734 | legendDiffFlow->SetTextFont(72); | |
735 | legendDiffFlow->SetTextSize(0.06); | |
736 | ||
737 | //legend's entries: | |
738 | TString *entryDiffMC = new TString("MC ....... "); | |
739 | TString *entryDiffGFC2 = new TString("GFC{2} ... "); | |
740 | TString *entryDiffGFC4 = new TString("GFC{4} ... "); | |
741 | TString *entryDiffQC2 = new TString("QC{2} .... "); | |
742 | TString *entryDiffQC4 = new TString("QC{4} .... "); | |
743 | TString *entryDiffLYZ2 = new TString("LYZ ...... "); | |
744 | ||
745 | //MC | |
70288839 | 746 | if(mcepCommonHistRes) |
6f62c2a7 | 747 | { |
a88e5ac2 | 748 | (mcepCommonHistRes->GetHistDiffFlow())->SetFillStyle(meshStyle); |
749 | (mcepCommonHistRes->GetHistDiffFlow())->SetFillColor(meshColor); | |
750 | entryDiffMC->Append("M = "); | |
751 | (*entryDiffMC)+=(Long_t)avMultDiffFlowMC; | |
752 | entryDiffMC->Append(", N = "); | |
753 | (*entryDiffMC)+=(Long_t)nEvtsDiffFlowMC; | |
754 | legendDiffFlow->AddEntry(mcepCommonHistRes->GetHistDiffFlow(),entryDiffMC->Data(),"f"); | |
755 | } | |
6f62c2a7 | 756 | |
a88e5ac2 | 757 | //GFC |
758 | if(gfcCommonHistRes2) | |
759 | { | |
760 | entryDiffGFC2->Append("M = "); | |
761 | (*entryDiffGFC2)+=(Long_t)avMultDiffFlowGFC; | |
762 | entryDiffGFC2->Append(", N = "); | |
763 | (*entryDiffGFC2)+=(Long_t)nEvtsDiffFlowGFC; | |
764 | legendDiffFlow->AddEntry(gfcCommonHistRes2->GetHistDiffFlow(),entryDiffGFC2->Data(),"p"); | |
765 | } | |
766 | if(gfcCommonHistRes4) | |
767 | { | |
768 | entryDiffGFC4->Append("M = "); | |
769 | (*entryDiffGFC4)+=(Long_t)avMultDiffFlowGFC; | |
770 | entryDiffGFC4->Append(", N = "); | |
771 | (*entryDiffGFC4)+=(Long_t)nEvtsDiffFlowGFC; | |
772 | legendDiffFlow->AddEntry(gfcCommonHistRes4->GetHistDiffFlow(),entryDiffGFC4->Data(),"p"); | |
773 | } | |
6f62c2a7 | 774 | |
a88e5ac2 | 775 | //QC |
776 | if(qcCommonHistRes2) | |
777 | { | |
778 | entryDiffQC2->Append("M = "); | |
779 | (*entryDiffQC2)+=(Long_t)avMultDiffFlowQC2; | |
780 | entryDiffQC2->Append(", N = "); | |
781 | (*entryDiffQC2)+=(Long_t)nEvtsDiffFlowQC2; | |
782 | legendDiffFlow->AddEntry(qcCommonHistRes2->GetHistDiffFlow(),entryDiffQC2->Data(),"p"); | |
783 | } | |
784 | if(qcCommonHistRes4) | |
785 | { | |
786 | entryDiffQC4->Append("M = "); | |
787 | (*entryDiffQC4)+=(Long_t)avMultDiffFlowQC4; | |
788 | entryDiffQC4->Append(", N = "); | |
789 | (*entryDiffQC4)+=(Long_t)nEvtsDiffFlowQC4; | |
790 | legendDiffFlow->AddEntry(qcCommonHistRes4->GetHistDiffFlow(),entryDiffQC4->Data(),"p"); | |
791 | } | |
6f62c2a7 | 792 | |
a88e5ac2 | 793 | //LYZ |
794 | if(lyz2CommonHistRes) | |
795 | { | |
796 | entryDiffLYZ2->Append("M = "); | |
797 | (*entryDiffLYZ2)+=(Long_t)avMultDiffFlowLYZ2; | |
798 | entryDiffLYZ2->Append(", N = "); | |
799 | (*entryDiffLYZ2)+=(Long_t)nEvtsDiffFlowLYZ2; | |
800 | legendDiffFlow->AddEntry(lyz2CommonHistRes->GetHistDiffFlow(),entryDiffLYZ2->Data(),"p"); | |
801 | } | |
802 | ||
803 | //drawing finally the legend in the 2nd pad: | |
804 | if(legendDiffFlow) | |
805 | { | |
806 | legendDiffFlow->Draw(); | |
807 | } | |
6f62c2a7 | 808 | |
a88e5ac2 | 809 | //===================================================================================== |
810 | ||
70288839 | 811 | } |