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