]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/EBYE/macros/drawBalanceFunction2DPsi.C
Fix Nested loop for event mixing (if mixed event > main event)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / drawBalanceFunction2DPsi.C
CommitLineData
eb63b883 1const Int_t numberOfCentralityBins = 8;
2TString centralityArray[numberOfCentralityBins] = {"0-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80"};
6acdbcb2 3
4const Int_t gRebin = 1;
5void drawBalanceFunction2DPsi(const char* filename = "AnalysisResultsPsi.root",
eb63b883 6 Int_t gCentrality = 1,
7 Double_t psiMin = -0.5, Double_t psiMax = 0.5,
6acdbcb2 8 Double_t ptTriggerMin = -1.,
9 Double_t ptTriggerMax = -1.,
10 Double_t ptAssociatedMin = -1.,
11 Double_t ptAssociatedMax = -1.) {
12 //Macro that draws the BF distributions for each centrality bin
13 //for reaction plane dependent analysis
14 //Author: Panos.Christakoglou@nikhef.nl
15 //Load the PWG2ebye library
16 gSystem->Load("libANALYSIS.so");
17 gSystem->Load("libANALYSISalice.so");
18 gSystem->Load("libEventMixing.so");
19 gSystem->Load("libCORRFW.so");
20 gSystem->Load("libPWGTools.so");
21 gSystem->Load("libPWGCFebye.so");
22
15dd45a0 23 gROOT->LoadMacro("~/SetPlotStyle.C");
24 SetPlotStyle();
8795e993 25 gStyle->SetPalette(1,0);
15dd45a0 26
6acdbcb2 27 //Prepare the objects and return them
eb63b883 28 TList *listBF = GetListOfObjects(filename,gCentrality,0);
29 TList *listBFShuffled = GetListOfObjects(filename,gCentrality,1);
30 TList *listBFMixed = GetListOfObjects(filename,gCentrality,2);
6acdbcb2 31 if(!listBF) {
32 Printf("The TList object was not created");
33 return;
34 }
35 else
eb63b883 36 draw(listBF,listBFShuffled,listBFMixed,gCentrality,psiMin,psiMax,
6acdbcb2 37 ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
38}
39
40//______________________________________________________//
eb63b883 41TList *GetListOfObjects(const char* filename,
42 Int_t gCentrality, Int_t kData = 1) {
6acdbcb2 43 //Get the TList objects (QA, bf, bf shuffled)
eb63b883 44 //kData == 0: data
45 //kData == 1: shuffling
46 //kData == 2: mixing
6acdbcb2 47 TList *listQA = 0x0;
48 TList *listBF = 0x0;
6acdbcb2 49
50 //Open the file
51 TFile *f = TFile::Open(filename);
52 if((!f)||(!f->IsOpen())) {
53 Printf("The file %s is not found. Aborting...",filename);
54 return listBF;
55 }
56 //f->ls();
57
58 TDirectoryFile *dir = dynamic_cast<TDirectoryFile *>(f->Get("PWGCFEbyE.outputBalanceFunctionPsiAnalysis"));
59 if(!dir) {
60 Printf("The TDirectoryFile is not found. Aborting...",filename);
61 return listBF;
62 }
63 //dir->ls();
64
65 TString listBFName;
eb63b883 66 if(kData == 0) {
67 //cout<<"no shuffling - no mixing"<<endl;
68 listBFName = "listBFPsi_";
69 }
70 else if(kData == 1) {
71 //cout<<"shuffling - no mixing"<<endl;
72 listBFName = "listBFPsiShuffled_";
73 }
74 else if(kData == 2) {
75 //cout<<"no shuffling - mixing"<<endl;
76 listBFName = "listBFPsiMixed_";
77 }
78 listBFName += centralityArray[gCentrality-1];
6acdbcb2 79 listBF = dynamic_cast<TList *>(dir->Get(listBFName.Data()));
eb63b883 80 cout<<"======================================================="<<endl;
81 cout<<"List name: "<<listBF->GetName()<<endl;
6acdbcb2 82 //listBF->ls();
83
84 //Get the histograms
85 TString histoName;
eb63b883 86 if(kData == 0)
6acdbcb2 87 histoName = "fHistPV0M";
eb63b883 88 else if(kData == 1)
6acdbcb2 89 histoName = "fHistP_shuffleV0M";
eb63b883 90 else if(kData == 2)
91 histoName = "fHistPV0M";
6acdbcb2 92 AliTHn *fHistP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
93 if(!fHistP) {
94 Printf("fHistP %s not found!!!",histoName.Data());
95 break;
96 }
97 fHistP->FillParent(); fHistP->DeleteContainers();
98
eb63b883 99 if(kData == 0)
6acdbcb2 100 histoName = "fHistNV0M";
eb63b883 101 if(kData == 1)
6acdbcb2 102 histoName = "fHistN_shuffleV0M";
eb63b883 103 if(kData == 2)
104 histoName = "fHistNV0M";
6acdbcb2 105 AliTHn *fHistN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
106 if(!fHistN) {
107 Printf("fHistN %s not found!!!",histoName.Data());
108 break;
109 }
110 fHistN->FillParent(); fHistN->DeleteContainers();
111
eb63b883 112 if(kData == 0)
6acdbcb2 113 histoName = "fHistPNV0M";
eb63b883 114 if(kData == 1)
6acdbcb2 115 histoName = "fHistPN_shuffleV0M";
eb63b883 116 if(kData == 2)
117 histoName = "fHistPNV0M";
6acdbcb2 118 AliTHn *fHistPN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
119 if(!fHistPN) {
120 Printf("fHistPN %s not found!!!",histoName.Data());
121 break;
122 }
123 fHistPN->FillParent(); fHistPN->DeleteContainers();
124
eb63b883 125 if(kData == 0)
6acdbcb2 126 histoName = "fHistNPV0M";
eb63b883 127 if(kData == 1)
6acdbcb2 128 histoName = "fHistNP_shuffleV0M";
eb63b883 129 if(kData == 2)
130 histoName = "fHistNPV0M";
6acdbcb2 131 AliTHn *fHistNP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
132 if(!fHistNP) {
133 Printf("fHistNP %s not found!!!",histoName.Data());
134 break;
135 }
136 fHistNP->FillParent(); fHistNP->DeleteContainers();
137
eb63b883 138 if(kData == 0)
6acdbcb2 139 histoName = "fHistPPV0M";
eb63b883 140 if(kData == 1)
6acdbcb2 141 histoName = "fHistPP_shuffleV0M";
eb63b883 142 if(kData == 2)
143 histoName = "fHistPPV0M";
6acdbcb2 144 AliTHn *fHistPP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
145 if(!fHistPP) {
146 Printf("fHistPP %s not found!!!",histoName.Data());
147 break;
148 }
149 fHistPP->FillParent(); fHistPP->DeleteContainers();
150
eb63b883 151 if(kData == 0)
6acdbcb2 152 histoName = "fHistNNV0M";
eb63b883 153 if(kData == 1)
6acdbcb2 154 histoName = "fHistNN_shuffleV0M";
eb63b883 155 if(kData == 2)
156 histoName = "fHistNNV0M";
6acdbcb2 157 AliTHn *fHistNN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
158 if(!fHistNN) {
159 Printf("fHistNN %s not found!!!",histoName.Data());
160 break;
161 }
162 fHistNN->FillParent(); fHistNN->DeleteContainers();
163
164 return listBF;
165}
166
167//______________________________________________________//
eb63b883 168void draw(TList *listBF, TList *listBFShuffled, TList *listBFMixed,
169 Int_t gCentrality, Double_t psiMin, Double_t psiMax,
6acdbcb2 170 Double_t ptTriggerMin, Double_t ptTriggerMax,
8795e993 171 Double_t ptAssociatedMin, Double_t ptAssociatedMax) {
6acdbcb2 172 //balance function
173 AliTHn *hP = NULL;
174 AliTHn *hN = NULL;
175 AliTHn *hPN = NULL;
176 AliTHn *hNP = NULL;
177 AliTHn *hPP = NULL;
178 AliTHn *hNN = NULL;
179 //listBF->ls();
180 //Printf("=================");
181 hP = (AliTHn*) listBF->FindObject("fHistPV0M");
182 hN = (AliTHn*) listBF->FindObject("fHistNV0M");
183 hPN = (AliTHn*) listBF->FindObject("fHistPNV0M");
184 hNP = (AliTHn*) listBF->FindObject("fHistNPV0M");
185 hPP = (AliTHn*) listBF->FindObject("fHistPPV0M");
186 hNN = (AliTHn*) listBF->FindObject("fHistNNV0M");
187
188 AliBalancePsi *b = new AliBalancePsi();
189 b->SetHistNp(hP);
190 b->SetHistNn(hN);
191 b->SetHistNpn(hPN);
192 b->SetHistNnp(hNP);
193 b->SetHistNpp(hPP);
194 b->SetHistNnn(hNN);
195
196 //balance function shuffling
197 AliTHn *hPShuffled = NULL;
198 AliTHn *hNShuffled = NULL;
199 AliTHn *hPNShuffled = NULL;
200 AliTHn *hNPShuffled = NULL;
201 AliTHn *hPPShuffled = NULL;
202 AliTHn *hNNShuffled = NULL;
203 //listBFShuffled->ls();
204 hPShuffled = (AliTHn*) listBFShuffled->FindObject("fHistP_shuffleV0M");
205 hNShuffled = (AliTHn*) listBFShuffled->FindObject("fHistN_shuffleV0M");
206 hPNShuffled = (AliTHn*) listBFShuffled->FindObject("fHistPN_shuffleV0M");
207 hNPShuffled = (AliTHn*) listBFShuffled->FindObject("fHistNP_shuffleV0M");
208 hPPShuffled = (AliTHn*) listBFShuffled->FindObject("fHistPP_shuffleV0M");
209 hNNShuffled = (AliTHn*) listBFShuffled->FindObject("fHistNN_shuffleV0M");
210
211 AliBalancePsi *bShuffled = new AliBalancePsi();
212 bShuffled->SetHistNp(hPShuffled);
213 bShuffled->SetHistNn(hNShuffled);
214 bShuffled->SetHistNpn(hPNShuffled);
215 bShuffled->SetHistNnp(hNPShuffled);
216 bShuffled->SetHistNpp(hPPShuffled);
217 bShuffled->SetHistNnn(hNNShuffled);
218
eb63b883 219 //balance function mixing
220 AliTHn *hPMixed = NULL;
221 AliTHn *hNMixed = NULL;
222 AliTHn *hPNMixed = NULL;
223 AliTHn *hNPMixed = NULL;
224 AliTHn *hPPMixed = NULL;
225 AliTHn *hNNMixed = NULL;
226 //listBFMixed->ls();
227 hPMixed = (AliTHn*) listBFMixed->FindObject("fHistPV0M");
228 hNMixed = (AliTHn*) listBFMixed->FindObject("fHistNV0M");
229 hPNMixed = (AliTHn*) listBFMixed->FindObject("fHistPNV0M");
230 hNPMixed = (AliTHn*) listBFMixed->FindObject("fHistNPV0M");
231 hPPMixed = (AliTHn*) listBFMixed->FindObject("fHistPPV0M");
232 hNNMixed = (AliTHn*) listBFMixed->FindObject("fHistNNV0M");
233
234 AliBalancePsi *bMixed = new AliBalancePsi();
235 bMixed->SetHistNp(hPMixed);
236 bMixed->SetHistNn(hNMixed);
237 bMixed->SetHistNpn(hPNMixed);
238 bMixed->SetHistNnp(hNPMixed);
239 bMixed->SetHistNpp(hPPMixed);
240 bMixed->SetHistNnn(hNNMixed);
241
6acdbcb2 242 TH2D *gHistBalanceFunction;
eb63b883 243 TH2D *gHistBalanceFunctionSubtracted;
6acdbcb2 244 TH2D *gHistBalanceFunctionShuffled;
eb63b883 245 TH2D *gHistBalanceFunctionMixed;
6acdbcb2 246 TString histoTitle, pngName;
6acdbcb2 247
6acdbcb2 248 histoTitle = "Centrality: ";
eb63b883 249 histoTitle += centralityArray[gCentrality-1];
6acdbcb2 250 histoTitle += "%";
eb63b883 251 if((psiMin == -0.5)&&(psiMax == 0.5))
252 histoTitle += " (-7.5^{o} < #phi - #Psi_{2} < 7.5^{o})";
253 else if((psiMin == 0.5)&&(psiMax == 1.5))
254 histoTitle += " (37.5^{o} < #phi - #Psi_{2} < 52.5^{o})";
255 else if((psiMin == 1.5)&&(psiMax == 2.5))
256 histoTitle += " (82.5^{o} < #phi - #Psi_{2} < 97.5^{o})";
257 else
258 histoTitle += " (0^{o} < #phi - #Psi_{2} < 180^{o})";
6acdbcb2 259
260 gHistBalanceFunction = b->GetBalanceFunctionDeltaEtaDeltaPhi(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
261 gHistBalanceFunction->SetTitle(histoTitle.Data());
262 gHistBalanceFunction->GetYaxis()->SetTitleOffset(1.3);
eb63b883 263 gHistBalanceFunction->SetName("gHistBalanceFunction");
264
6acdbcb2 265 gHistBalanceFunctionShuffled = bShuffled->GetBalanceFunctionDeltaEtaDeltaPhi(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
eb63b883 266 gHistBalanceFunctionShuffled->SetTitle(histoTitle.Data());
267 gHistBalanceFunctionShuffled->GetYaxis()->SetTitleOffset(1.3);
268 gHistBalanceFunctionShuffled->SetName("gHistBalanceFunctionShuffled");
269
270 gHistBalanceFunctionMixed = bMixed->GetBalanceFunctionDeltaEtaDeltaPhi(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
271 gHistBalanceFunctionMixed->SetTitle(histoTitle.Data());
272 gHistBalanceFunctionMixed->GetYaxis()->SetTitleOffset(1.3);
273 gHistBalanceFunctionMixed->SetName("gHistBalanceFunctionMixed");
274
275 gHistBalanceFunctionSubtracted = dynamic_cast<TH2D *>(gHistBalanceFunction->Clone());
276 gHistBalanceFunctionSubtracted->Add(gHistBalanceFunctionMixed,-1);
277 gHistBalanceFunctionSubtracted->SetTitle(histoTitle.Data());
278 gHistBalanceFunctionSubtracted->GetYaxis()->SetTitleOffset(1.3);
279 gHistBalanceFunctionSubtracted->SetName("gHistBalanceFunctionSubtracted");
280
281 //Draw the results
282 TCanvas *c1 = new TCanvas("c1","",0,0,600,500);
6acdbcb2 283 c1->SetFillColor(10);
284 c1->SetHighLightColor(10);
285 c1->SetLeftMargin(0.15);
eb63b883 286 gHistBalanceFunction->DrawCopy("lego2");
287 TCanvas *c1a = new TCanvas("c1a","",600,0,600,500);
288 c1a->SetFillColor(10);
289 c1a->SetHighLightColor(10);
290 c1a->SetLeftMargin(0.15);
291 gHistBalanceFunction->DrawCopy("colz");
292
293 TCanvas *c2 = new TCanvas("c2","",100,100,600,500);
294 c2->SetFillColor(10);
295 c2->SetHighLightColor(10);
296 c2->SetLeftMargin(0.15);
297 gHistBalanceFunctionShuffled->DrawCopy("lego2");
298 TCanvas *c2a = new TCanvas("c2a","",700,100,600,500);
299 c2a->SetFillColor(10);
300 c2a->SetHighLightColor(10);
301 c2a->SetLeftMargin(0.15);
302 gHistBalanceFunctionShuffled->DrawCopy("colz");
303
304 TCanvas *c3 = new TCanvas("c3","",200,200,600,500);
305 c3->SetFillColor(10);
306 c3->SetHighLightColor(10);
307 c3->SetLeftMargin(0.15);
308 gHistBalanceFunctionMixed->DrawCopy("lego2");
309 TCanvas *c3a = new TCanvas("c3a","",700,200,600,500);
310 c3a->SetFillColor(10);
311 c3a->SetHighLightColor(10);
312 c3a->SetLeftMargin(0.15);
313 gHistBalanceFunctionMixed->DrawCopy("colz");
314
315 TCanvas *c4 = new TCanvas("c4","",300,300,600,500);
316 c4->SetFillColor(10);
317 c4->SetHighLightColor(10);
318 c4->SetLeftMargin(0.15);
319 gHistBalanceFunctionSubtracted->DrawCopy("lego2");
320 TCanvas *c4a = new TCanvas("c4a","",900,300,600,500);
321 c4a->SetFillColor(10);
322 c4a->SetHighLightColor(10);
323 c4a->SetLeftMargin(0.15);
324 gHistBalanceFunctionSubtracted->DrawCopy("colz");
325
326 TString newFileName = "balanceFunction2D.Centrality";
327 newFileName += gCentrality; newFileName += ".Psi";
328 if((psiMin == -0.5)&&(psiMax == 0.5)) newFileName += "InPlane.Ptt";
329 else if((psiMin == 0.5)&&(psiMax == 1.5)) newFileName += "Intermediate.Ptt";
330 else if((psiMin == 1.5)&&(psiMax == 2.5)) newFileName += "OutOfPlane.Ptt";
331 else newFileName += "0.PttFrom";
332 newFileName += ptTriggerMin; newFileName += "To";
333 newFileName += ptTriggerMax; newFileName += ".PtaFrom";
334 newFileName += ptAssociatedMin; newFileName += "To";
335 newFileName += ptAssociatedMax; newFileName += ".root";
336
337 TFile *fOutput = new TFile(newFileName.Data(),"recreate");
338 fOutput->cd();
339 gHistBalanceFunction->Write();
340 gHistBalanceFunctionShuffled->Write();
341 gHistBalanceFunctionMixed->Write();
342 gHistBalanceFunctionSubtracted->Write();
343 fOutput->Close();
6acdbcb2 344}
345
eb63b883 346//____________________________________________________________//
347void drawBFPsi2D(Int_t gCentrality = 1,
348 Double_t psiMin = -0.5, Double_t psiMax = 0.5,
349 Double_t ptTriggerMin = -1.,
350 Double_t ptTriggerMax = -1.,
351 Double_t ptAssociatedMin = -1.,
352 Double_t ptAssociatedMax = -1.) {
353 //Macro that draws the BF distributions for each centrality bin
354 //for reaction plane dependent analysis
355 //Author: Panos.Christakoglou@nikhef.nl
15dd45a0 356 TGaxis::SetMaxDigits(1);
eb63b883 357
358 //Get the input file
359 TString filename = "LHC11h/PttFrom";
360 filename += ptTriggerMin; filename += "To";
361 filename += ptTriggerMax; filename += "PtaFrom";
362 filename += ptAssociatedMin; filename += "To";
363 filename += ptAssociatedMax; filename += "/balanceFunction2D.Centrality";
364 filename += gCentrality; filename += ".Psi";
365 if((psiMin == -0.5)&&(psiMax == 0.5)) filename += "InPlane.Ptt";
366 else if((psiMin == 0.5)&&(psiMax == 1.5)) filename += "Intermediate.Ptt";
367 else if((psiMin == 1.5)&&(psiMax == 2.5)) filename += "OutOfPlane.Ptt";
368 else filename += "0.PttFrom";
369 filename += ptTriggerMin; filename += "To";
370 filename += ptTriggerMax; filename += ".PtaFrom";
371 filename += ptAssociatedMin; filename += "To";
372 filename += ptAssociatedMax; filename += ".root";
373
374 //Open the file
375 TFile *f = TFile::Open(filename.Data());
376 if((!f)||(!f->IsOpen())) {
377 Printf("The file %s is not found. Aborting...",filename);
378 return listBF;
6acdbcb2 379 }
eb63b883 380 //f->ls();
381
382 //Raw balance function
383 TH1D *gHistBalanceFunction = dynamic_cast<TH1D *>(f->Get("gHistBalanceFunction"));
384 gHistBalanceFunction->SetStats(kFALSE);
385 gHistBalanceFunction->GetXaxis()->SetNdivisions(10);
386 gHistBalanceFunction->GetYaxis()->SetNdivisions(10);
387 gHistBalanceFunction->GetZaxis()->SetNdivisions(10);
388 gHistBalanceFunction->GetXaxis()->SetTitleOffset(1.3);
389 gHistBalanceFunction->GetYaxis()->SetTitleOffset(1.3);
390 gHistBalanceFunction->GetZaxis()->SetTitleOffset(1.3);
391 gHistBalanceFunction->GetXaxis()->SetTitle("#Delta #eta");
392 gHistBalanceFunction->GetYaxis()->SetTitle("#Delta #varphi (deg.)");
15dd45a0 393 gHistBalanceFunction->GetZaxis()->SetTitle("B(#Delta #eta, #Delta #varphi)");
eb63b883 394
395 //Shuffled balance function
396 TH1D *gHistBalanceFunctionShuffled = dynamic_cast<TH1D *>(f->Get("gHistBalanceFunctionShuffled"));
397 gHistBalanceFunctionShuffled->SetStats(kFALSE);
398 gHistBalanceFunctionShuffled->GetXaxis()->SetNdivisions(10);
399 gHistBalanceFunctionShuffled->GetYaxis()->SetNdivisions(10);
400 gHistBalanceFunctionShuffled->GetZaxis()->SetNdivisions(10);
401 gHistBalanceFunctionShuffled->GetXaxis()->SetTitleOffset(1.3);
402 gHistBalanceFunctionShuffled->GetYaxis()->SetTitleOffset(1.3);
403 gHistBalanceFunctionShuffled->GetZaxis()->SetTitleOffset(1.3);
404 gHistBalanceFunctionShuffled->GetXaxis()->SetTitle("#Delta #eta");
405 gHistBalanceFunctionShuffled->GetYaxis()->SetTitle("#Delta #varphi (deg.)");
15dd45a0 406 gHistBalanceFunctionShuffled->GetZaxis()->SetTitle("B(#Delta #eta, #Delta #varphi)");
eb63b883 407
408 //Mixed balance function
409 TH1D *gHistBalanceFunctionMixed = dynamic_cast<TH1D *>(f->Get("gHistBalanceFunctionMixed"));
410 gHistBalanceFunctionMixed->SetStats(kFALSE);
411 gHistBalanceFunctionMixed->GetXaxis()->SetNdivisions(10);
412 gHistBalanceFunctionMixed->GetYaxis()->SetNdivisions(10);
413 gHistBalanceFunctionMixed->GetZaxis()->SetNdivisions(10);
414 gHistBalanceFunctionMixed->GetXaxis()->SetTitleOffset(1.3);
415 gHistBalanceFunctionMixed->GetYaxis()->SetTitleOffset(1.3);
416 gHistBalanceFunctionMixed->GetZaxis()->SetTitleOffset(1.3);
417 gHistBalanceFunctionMixed->GetXaxis()->SetTitle("#Delta #eta");
418 gHistBalanceFunctionMixed->GetYaxis()->SetTitle("#Delta #varphi (deg.)");
15dd45a0 419 gHistBalanceFunctionMixed->GetZaxis()->SetTitle("B(#Delta #eta, #Delta #varphi)");
eb63b883 420
421 //Subtracted balance function
422 TH1D *gHistBalanceFunctionSubtracted = dynamic_cast<TH1D *>(f->Get("gHistBalanceFunctionSubtracted"));
423 gHistBalanceFunctionSubtracted->SetStats(kFALSE);
424 gHistBalanceFunctionSubtracted->GetXaxis()->SetNdivisions(10);
425 gHistBalanceFunctionSubtracted->GetYaxis()->SetNdivisions(10);
426 gHistBalanceFunctionSubtracted->GetZaxis()->SetNdivisions(10);
427 gHistBalanceFunctionSubtracted->GetXaxis()->SetTitleOffset(1.3);
428 gHistBalanceFunctionSubtracted->GetYaxis()->SetTitleOffset(1.3);
429 gHistBalanceFunctionSubtracted->GetZaxis()->SetTitleOffset(1.3);
430 gHistBalanceFunctionSubtracted->GetXaxis()->SetTitle("#Delta #eta");
431 gHistBalanceFunctionSubtracted->GetYaxis()->SetTitle("#Delta #varphi (deg.)");
15dd45a0 432 gHistBalanceFunctionSubtracted->GetZaxis()->SetTitle("B(#Delta #eta, #Delta #varphi)");
6acdbcb2 433
eb63b883 434 TString pngName;
435
436 TString centralityLatex = "Centrality: ";
437 centralityLatex += centralityArray[gCentrality-1];
438 centralityLatex += "%";
439
440 TString psiLatex;
441 if((psiMin == -0.5)&&(psiMax == 0.5))
442 psiLatex = " -7.5^{o} < #varphi - #Psi_{2} < 7.5^{o}";
443 else if((psiMin == 0.5)&&(psiMax == 1.5))
444 psiLatex = " 37.5^{o} < #varphi - #Psi_{2} < 52.5^{o}";
445 else if((psiMin == 1.5)&&(psiMax == 2.5))
446 psiLatex = " 82.5^{o} < #varphi - #Psi_{2} < 97.5^{o}";
447 else
448 psiLatex = " 0^{o} < #varphi - #Psi_{2} < 180^{o}";
449
450 TString pttLatex = Form("%.1f",ptTriggerMin);
451 pttLatex += " < p_{T}^{t} < "; pttLatex += Form("%.1f",ptTriggerMax);
452 pttLatex += " GeV/c";
453
454 TString ptaLatex = Form("%.1f",ptAssociatedMin);
455 ptaLatex += " < p_{T}^{a} < "; ptaLatex += Form("%.1f",ptAssociatedMax);
456 ptaLatex += " GeV/c";
457
458 TLatex *latexInfo1 = new TLatex();
459 latexInfo1->SetNDC();
15dd45a0 460 latexInfo1->SetTextSize(0.045);
eb63b883 461 latexInfo1->SetTextColor(1);
462
463 //Draw the results
464 TCanvas *c1 = new TCanvas("c1","Raw balance function 2D",0,0,600,500);
465 c1->SetFillColor(10); c1->SetHighLightColor(10);
466 c1->SetLeftMargin(0.17); c1->SetTopMargin(0.05);
467 gHistBalanceFunction->SetTitle("Raw balance function");
468 gHistBalanceFunction->GetYaxis()->SetTitleOffset(1.4);
469 gHistBalanceFunction->GetYaxis()->SetNdivisions(10);
470 gHistBalanceFunction->GetXaxis()->SetNdivisions(10);
471 gHistBalanceFunction->DrawCopy("lego2");
472
15dd45a0 473 latexInfo1->DrawLatex(0.64,0.88,centralityLatex.Data());
474 latexInfo1->DrawLatex(0.64,0.82,psiLatex.Data());
475 latexInfo1->DrawLatex(0.64,0.76,pttLatex.Data());
476 latexInfo1->DrawLatex(0.64,0.70,ptaLatex.Data());
eb63b883 477
478 TCanvas *c2 = new TCanvas("c2","Shuffled balance function 2D",100,100,600,500);
479 c2->SetFillColor(10); c2->SetHighLightColor(10);
480 c2->SetLeftMargin(0.17); c2->SetTopMargin(0.05);
481 gHistBalanceFunctionShuffled->SetTitle("Shuffled events");
482 gHistBalanceFunctionShuffled->GetYaxis()->SetTitleOffset(1.4);
483 gHistBalanceFunctionShuffled->GetYaxis()->SetNdivisions(10);
484 gHistBalanceFunctionShuffled->GetXaxis()->SetNdivisions(10);
485 gHistBalanceFunctionShuffled->DrawCopy("lego2");
486
15dd45a0 487 latexInfo1->DrawLatex(0.64,0.88,centralityLatex.Data());
488 latexInfo1->DrawLatex(0.64,0.82,psiLatex.Data());
489 latexInfo1->DrawLatex(0.64,0.76,pttLatex.Data());
490 latexInfo1->DrawLatex(0.64,0.70,ptaLatex.Data());
eb63b883 491
492 TCanvas *c3 = new TCanvas("c3","Mixed balance function 2D",200,200,600,500);
493 c3->SetFillColor(10); c3->SetHighLightColor(10);
494 c3->SetLeftMargin(0.17); c3->SetTopMargin(0.05);
495 gHistBalanceFunctionMixed->SetTitle("Mixed events");
496 gHistBalanceFunctionMixed->GetYaxis()->SetTitleOffset(1.4);
497 gHistBalanceFunctionMixed->GetYaxis()->SetNdivisions(10);
498 gHistBalanceFunctionMixed->GetXaxis()->SetNdivisions(10);
499 gHistBalanceFunctionMixed->DrawCopy("lego2");
6acdbcb2 500
15dd45a0 501 latexInfo1->DrawLatex(0.64,0.88,centralityLatex.Data());
502 latexInfo1->DrawLatex(0.64,0.82,psiLatex.Data());
503 latexInfo1->DrawLatex(0.64,0.76,pttLatex.Data());
504 latexInfo1->DrawLatex(0.64,0.70,ptaLatex.Data());
eb63b883 505
506 TCanvas *c4 = new TCanvas("c4","Subtracted balance function 2D",300,300,600,500);
507 c4->SetFillColor(10); c4->SetHighLightColor(10);
508 c4->SetLeftMargin(0.17); c4->SetTopMargin(0.05);
509 gHistBalanceFunctionSubtracted->SetTitle("Subtracted balance function");
510 gHistBalanceFunctionSubtracted->GetYaxis()->SetTitleOffset(1.4);
511 gHistBalanceFunctionSubtracted->GetYaxis()->SetNdivisions(10);
512 gHistBalanceFunctionSubtracted->GetXaxis()->SetNdivisions(10);
513 gHistBalanceFunctionSubtracted->DrawCopy("lego2");
514
15dd45a0 515 latexInfo1->DrawLatex(0.64,0.88,centralityLatex.Data());
516 latexInfo1->DrawLatex(0.64,0.82,psiLatex.Data());
517 latexInfo1->DrawLatex(0.64,0.76,pttLatex.Data());
518 latexInfo1->DrawLatex(0.64,0.70,ptaLatex.Data());
6acdbcb2 519}