1 const Int_t numberOfCentralityBins = 9;
2 TString centralityArray[numberOfCentralityBins] = {"0-5","5-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80"};
3 Double_t gMinCentrality[numberOfCentralityBins] = {0.,5.,10.,20.,30.,40.,50.,60.,70.};
4 Double_t gMaxCentrality[numberOfCentralityBins] = {5.,10.,20.,30.,40.,50.,60.,70.,80.};
5 TString gAnalysisType[7] = {"y","eta","qlong","qout","qside","qinv","phi"};
7 const Int_t gRebin = 1;
8 void drawCorrelationFunctionPsi(const char* filename = "AnalysisResults.root",
9 Double_t psiMin = -0.5,
10 Double_t psiMax = 0.5,
11 Double_t ptTriggerMin = -1.,
12 Double_t ptTriggerMax = -1.,
13 Double_t ptAssociatedMin = -1.,
14 Double_t ptAssociatedMax = -1.) {
15 //Macro that draws the correlation functions from the balance function
16 //analysis vs the reaction plane
17 //Author: Panos.Christakoglou@nikhef.nl
18 //Load the PWG2ebye library
19 gSystem->Load("libANALYSIS.so");
20 gSystem->Load("libANALYSISalice.so");
21 gSystem->Load("libEventMixing.so");
22 gSystem->Load("libCORRFW.so");
23 gSystem->Load("libPWGTools.so");
24 gSystem->Load("libPWGCFebye.so");
26 //Prepare the objects and return them
27 TList *list = GetListOfObjects(filename);
29 Printf("The TList object was not created");
33 draw(list,psiMin,psiMax,
34 ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
37 //______________________________________________________//
38 TList *GetListOfObjects(const char* filename) {
39 //Get the TList objects (QA, bf, bf shuffled)
42 TList *listBFShuffling = 0x0;
45 TFile *f = TFile::Open(filename);
46 if((!f)||(!f->IsOpen())) {
47 Printf("The file %s is not found. Aborting...",filename);
52 TDirectoryFile *dir = dynamic_cast<TDirectoryFile *>(f->Get("PWGCFEbyE.outputBalanceFunctionPsiAnalysis"));
54 Printf("The TDirectoryFile is not found. Aborting...",filename);
59 TString listBFName = "listBFPsi";
60 listBF = dynamic_cast<TList *>(dir->Get(listBFName.Data()));
64 TString histoName = "fHistPV0M";
65 AliTHn *fHistP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
67 Printf("fHistP %s not found!!!",histoName.Data());
70 fHistP->FillParent(); fHistP->DeleteContainers();
72 histoName = "fHistNV0M";
73 AliTHn *fHistN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
75 Printf("fHistN %s not found!!!",histoName.Data());
78 fHistN->FillParent(); fHistN->DeleteContainers();
80 histoName = "fHistPNV0M";
81 AliTHn *fHistPN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
83 Printf("fHistPN %s not found!!!",histoName.Data());
86 fHistPN->FillParent(); fHistPN->DeleteContainers();
88 histoName = "fHistNPV0M";
89 AliTHn *fHistNP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
91 Printf("fHistNP %s not found!!!",histoName.Data());
94 fHistNP->FillParent(); fHistNP->DeleteContainers();
96 histoName = "fHistPPV0M";
97 AliTHn *fHistPP = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
99 Printf("fHistPP %s not found!!!",histoName.Data());
102 fHistPP->FillParent(); fHistPP->DeleteContainers();
104 histoName = "fHistNNV0M";
105 AliTHn *fHistNN = dynamic_cast<AliTHn *>(listBF->FindObject(histoName.Data()));
107 Printf("fHistNN %s not found!!!",histoName.Data());
110 fHistNN->FillParent(); fHistNN->DeleteContainers();
115 //______________________________________________________//
116 void draw(TList *list, Double_t psiMin, Double_t psiMax,
117 Double_t ptTriggerMin, Double_t ptTriggerMax,
118 Double_t ptAssociatedMin, Double_t ptAssociatedMax) {
119 //Draws the correlation functions for every centrality bin
120 //(+-), (-+), (++), (--)
121 gROOT->LoadMacro("~/SetPlotStyle.C");
123 gStyle->SetPalette(1,0);
132 hP = (AliTHn*) list->FindObject("fHistPV0M");
133 hN = (AliTHn*) list->FindObject("fHistNV0M");
134 hPN = (AliTHn*) list->FindObject("fHistPNV0M");
135 hNP = (AliTHn*) list->FindObject("fHistNPV0M");
136 hPP = (AliTHn*) list->FindObject("fHistPPV0M");
137 hNN = (AliTHn*) list->FindObject("fHistNNV0M");
139 //Create the AliBalancePsi object and fill it with the AliTHn objects
140 AliBalancePsi *b = new AliBalancePsi();
156 TString histoTitle, pngName;
157 //loop over the centrality bins
158 //for(Int_t iCentralityBin = 0; iCentralityBin < numberOfCentralityBins; iCentralityBin++) {
160 histoTitle = "(+-) | Centrality: ";
161 histoTitle += centralityArray[6];
163 histoTitle += " | "; histoTitle += psiMin;
164 histoTitle += " < #phi - #Psi_{2} < "; histoTitle += psiMax;
165 gHistPN = b->GetCorrelationFunctionPN(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
166 gHistPN->GetYaxis()->SetTitleOffset(1.5);
167 gHistPN->SetTitle(histoTitle.Data());
168 cPN = new TCanvas(histoTitle.Data(),"",0,0,400,400);
169 cPN->SetFillColor(10);
170 cPN->SetHighLightColor(10);
171 gHistPN->DrawCopy("lego2");
172 pngName = "DeltaPhiDeltaEta.Centrality";
173 pngName += centralityArray[6];
174 pngName += ".Psi"; pngName += psiMin; pngName += "To"; pngName += psiMax;
175 pngName += ".PositiveNegative.png";
176 cPN->SaveAs(pngName.Data());
178 histoTitle = "(-+) | Centrality: ";
179 histoTitle += centralityArray[6];
181 histoTitle += " | "; histoTitle += psiMin;
182 histoTitle += " < #phi - #Psi_{2} < "; histoTitle += psiMax;
183 gHistNP = b->GetCorrelationFunctionNP(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
184 gHistNP->GetYaxis()->SetTitleOffset(1.5);
185 gHistNP->SetTitle(histoTitle.Data());
186 cNP = new TCanvas(histoTitle.Data(),"",400,0,400,400);
187 cNP->SetFillColor(10);
188 cNP->SetHighLightColor(10);
189 gHistNP->DrawCopy("lego2");
190 pngName = "DeltaPhiDeltaEta.Centrality";
191 pngName += centralityArray[6];
192 pngName += ".Psi"; pngName += psiMin; pngName += "To"; pngName += psiMax;
193 pngName += ".NegativePositive.png";
194 cNP->SaveAs(pngName.Data());
196 histoTitle = "(++) | Centrality: ";
197 histoTitle += centralityArray[6];
199 histoTitle += " | "; histoTitle += psiMin;
200 histoTitle += " < #phi - #Psi_{2} < "; histoTitle += psiMax;
201 gHistPP = b->GetCorrelationFunctionPP(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
202 gHistPP->GetYaxis()->SetTitleOffset(1.5);
203 gHistPP->SetTitle(histoTitle.Data());
204 cPP = new TCanvas(histoTitle.Data(),"",0,400,400,400);
205 cPP->SetFillColor(10);
206 cPP->SetHighLightColor(10);
207 gHistPP->DrawCopy("lego2");
208 pngName = "DeltaPhiDeltaEta.Centrality";
209 pngName += centralityArray[6];
210 pngName += ".Psi"; pngName += psiMin; pngName += "To"; pngName += psiMax;
211 pngName += ".PositivePositive.png";
212 cPP->SaveAs(pngName.Data());
214 histoTitle = "(--) | Centrality: ";
215 histoTitle += centralityArray[6];
217 histoTitle += " | "; histoTitle += psiMin;
218 histoTitle += " < #phi - #Psi_{2} < "; histoTitle += psiMax;
219 gHistNN = b->GetCorrelationFunctionNN(psiMin,psiMax,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax);
220 gHistNN->GetYaxis()->SetTitleOffset(1.5);
221 gHistNN->SetTitle(histoTitle.Data());
222 cNN = new TCanvas(histoTitle.Data(),"",400,400,400,400);
223 cNN->SetFillColor(10);
224 cNN->SetHighLightColor(10);
225 gHistNN->DrawCopy("lego2");
226 pngName = "DeltaPhiDeltaEta.Centrality";
227 pngName += centralityArray[6];
228 pngName += ".Psi"; pngName += psiMin; pngName += "To"; pngName += psiMax;
229 pngName += ".NegativeNegative.png";
230 cNN->SaveAs(pngName.Data());
231 //}//end of loop over centralities