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