1 //=======================================================================//
2 //Macro to draw the main results of the charge fluctuation analysis:
3 //=======================================================================//
5 //+++++++++++++++++++++GLOBAL VARIABLES+++++++++++++++++++++//
6 const Int_t nCentralityBins = 20;
8 Double_t gNParticipants[nCentralityBins] = {382.646,329.213,280.911,238.617,201.81,169.339,141.067,116.208,94.2515,75.4558,59.4054,45.7565,34.4839,25.3127,18.0293,12.6535,8.84139,6.16348,4.37454,3.06182};
9 Double_t gNParticipantsError[nCentralityBins] = {16.9428,18.0505,17.0971,16.2076,15.5418,14.9458,14.3174,13.9067,13.2661,12.6134,11.8133,11.0495,10.0939,8.99737,7.7884,6.48725,5.21602,3.91988,2.78741,1.75066};
10 //Double_t gNParticipants[nCentralityBins] = {356.132,260.175,185.76,128.428,84.5666,52.3432,29.7072,15.2207,7.47192,3.71973};//10 bins
11 //Double_t gNParticipantsError[nCentralityBins] = {31.8228,26.9093,22.3767,18.8802,15.9735,13.3103,10.5806,7.62745,4.78538,2.41942};//10 bins
13 //================================ALICE================================//
14 Double_t gNuDynALICEData[nCentralityBins] = {10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.};
15 Double_t gNuDynALICEDataError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
16 Double_t gNetChargeALICEData[nCentralityBins] = {10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.};
17 Double_t gNetChargeALICEDataError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
18 Double_t gNetChargeRmsALICEData[nCentralityBins] = {10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.,10.};
19 Double_t gNetChargeRmsALICEDataError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
20 //================================ALICE================================//
21 //+++++++++++++++++++++END OF VARIABLES+++++++++++++++++++++//
23 //_____________________________________________________//
24 void drawScaledNpartDependence(const char*resultPath = "../LHC10h/Pass1_4Plus/20CentralityBins/") {
25 //Draws the nu_dyn vs centrality percentile
26 SetDataPoints(resultPath);
27 //================================================//
28 //ALICE PbPb @ 2.76 TeV
29 TGraphErrors *grALICEDataNudyn = new TGraphErrors(nCentralityBins,
33 gNuDynALICEDataError);
34 grALICEDataNudyn->SetMarkerStyle(20);
35 grALICEDataNudyn->SetMarkerColor(2);
37 TGraphErrors *grALICEDataNetCharge = new TGraphErrors(nCentralityBins,
41 gNetChargeALICEDataError);
42 grALICEDataNetCharge->SetMarkerStyle(20);
43 grALICEDataNetCharge->SetMarkerColor(2);
45 TGraphErrors *grALICEDataNetChargeRms = new TGraphErrors(nCentralityBins,
47 gNetChargeRmsALICEData,
49 gNetChargeRmsALICEDataError);
50 grALICEDataNetChargeRms->SetMarkerStyle(20);
51 grALICEDataNetChargeRms->SetMarkerColor(2);
53 //_____________________________________________________//
55 //_____________________________________________________//
56 TLatex *latex = new TLatex();
57 latex->SetTextSize(0.035);
59 //====================================//
60 //Results vs centrality
61 TH2F *gEmpty1 = new TH2F("gEmpty1",
63 100,0,400,10000,-2.,1.);
64 gEmpty1->SetStats(kFALSE);
65 gEmpty1->GetYaxis()->SetTitleOffset(1.5);
66 gEmpty1->GetXaxis()->SetTitleOffset(1.5);
67 gEmpty1->GetYaxis()->SetNdivisions(10);
68 gEmpty1->GetXaxis()->SetNdivisions(10);
70 TF1 *f1 = new TF1("f1","0",0,1000);
71 f1->SetLineColor(1); f1->SetLineStyle(3); f1->SetLineWidth(2);
73 //============================================================//
75 TCanvas *c1 = new TCanvas("c1","Centrality dependence: nu_dyn",
77 c1->SetFillColor(10); c1->SetHighLightColor(10);
78 c1->SetLeftMargin(0.15); c1->SetBottomMargin(0.15);
79 c1->SetGridx(); c1->SetGridy();
80 gEmpty1->GetYaxis()->SetRangeUser(-2.,0.0);
81 gEmpty1->GetYaxis()->SetTitle("#nu_{dyn.} #times N_{part.}");
84 grALICEDataNudyn->Draw("P");
86 DrawMarker(40., 0.0043, 20, 1.6, 2);
87 latex->DrawLatex(50.,0.0033,"PbPb @ #sqrt{s_{NN}} = 2.76 TeV");
89 c1->SaveAs("scaledNparticipantsDependenceNuDyn.png");
91 //============================================================//
93 TCanvas *c2 = new TCanvas("c2","Centrality dependence: net charge",
95 c2->SetFillColor(10); c2->SetHighLightColor(10);
96 c2->SetLeftMargin(0.15); c2->SetBottomMargin(0.15);
97 c2->SetGridx(); c2->SetGridy();
98 gEmpty1->GetYaxis()->SetRangeUser(0.0,0.05);
99 gEmpty1->GetYaxis()->SetTitle("#LT #Delta Q = N_{+} - N_{-}#GT/N_{part.}");
101 grALICEDataNetCharge->Draw("P");
103 DrawMarker(40., 8.3, 20, 1.6, 2);
104 latex->DrawLatex(50.,8.1,"PbPb @ #sqrt{s_{NN}} = 2.76 TeV");
106 c2->SaveAs("scaledNparticipantsDependenceNetCharge.png");
108 //============================================================//
110 TCanvas *c3 = new TCanvas("c3","Centrality dependence: net charge rms",
112 c3->SetFillColor(10); c3->SetHighLightColor(10);
113 c3->SetLeftMargin(0.15); c3->SetBottomMargin(0.15);
114 c3->SetGridx(); c3->SetGridy();
115 gEmpty1->GetYaxis()->SetRangeUser(0.0,0.6);
116 gEmpty1->GetYaxis()->SetTitle("#sigma_{#Delta Q}/N_{part.}");
118 grALICEDataNetChargeRms->Draw("P");
120 DrawMarker(40., 38., 20, 1.6, 2);
121 latex->DrawLatex(50.,37.,"PbPb @ #sqrt{s_{NN}} = 2.76 TeV");
123 c3->SaveAs("scaledNparticipantsDependenceNetChargeRms.png");
126 //_______________________________________________________________//
127 void SetDataPoints(const char* resultPath) {
128 //Calculate the mean and the statistical error of the data points
129 const Int_t nRuns = 7;
130 Double_t nuDyn[nRuns][nCentralityBins];
131 Double_t gNetCharge[nRuns][nCentralityBins];
132 Double_t gNetChargeRms[nRuns][nCentralityBins];
133 Double_t nuDyn[nRuns][nCentralityBins];
134 Int_t nEvents[nRuns][nCentralityBins];
135 Int_t nRunNumbers[nRuns] = {137161,137431,137549,
136 137595,137638,137639,137693};
138 Double_t netChargeValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
139 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
140 Double_t netChargeValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,
141 0.,0.,0.,0.,0.,0.,0.,0.,
143 Double_t netChargeRmsValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,
144 0.,0.,0.,0.,0.,0.,0.,
146 Double_t netChargeRmsValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,
147 0.,0.,0.,0.,0.,0.,0.,0.,
149 Double_t nuDynValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
150 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
151 Double_t nuDynValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
152 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
153 Double_t nEventsValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
154 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
156 TString inputFileName;
157 for(Int_t iRun = 0; iRun < nRuns; iRun++) {
159 Printf("Adding run %d",nRunNumbers[iRun]);
160 inputFileName = resultPath;
161 inputFileName += "/output."; inputFileName += nRunNumbers[iRun];
162 inputFileName += ".txt";
164 Printf("Filename: %s",inputFileName.Data());
165 inputAscii.open(inputFileName.Data());
166 for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
167 inputAscii>>gCentrality>>nuDyn[iRun][iCentrality]>>gNetCharge[iRun][iCentrality]>>gNetChargeRms[iRun][iCentrality]>>nEvents[iRun][iCentrality];
168 cout<<nuDyn[iRun][iCentrality]<<" "<<nEvents[iRun][iCentrality]<<endl;
173 Int_t nRunCounter = 0;
174 for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
175 for(Int_t iRun = 0; iRun < nRuns; iRun++) {
176 nuDynValues[iCentrality] += nuDyn[iRun][iCentrality]*nEvents[iRun][iCentrality];
177 netChargeValues[iCentrality] += gNetCharge[iRun][iCentrality]*nEvents[iRun][iCentrality];
178 netChargeRmsValues[iCentrality] += gNetChargeRms[iRun][iCentrality]*nEvents[iRun][iCentrality];
179 nEventsValues[iCentrality] += nEvents[iRun][iCentrality];
182 if(nEventsValues[iCentrality] != 0) {
185 netChargeValues[iCentrality] /= nEventsValues[iCentrality];
186 netChargeRmsValues[iCentrality] /= nEventsValues[iCentrality];
187 nuDynValues[iCentrality] /= nEventsValues[iCentrality];
190 netChargeValues[iCentrality] = 999.;
191 netChargeRmsValues[iCentrality] = 999.;
192 nuDynValues[iCentrality] = 999.;
195 gNetChargeALICEData[iCentrality] = netChargeValues[iCentrality]/gNParticipants[iCentrality];
196 gNetChargeRmsALICEData[iCentrality] = netChargeRmsValues[iCentrality]/gNParticipants[iCentrality];;
197 gNuDynALICEData[iCentrality] = nuDynValues[iCentrality]*gNParticipants[iCentrality];
200 for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
201 for(Int_t iRun = 0; iRun < nRuns; iRun++) {
202 netChargeValuesError[iCentrality] += TMath::Power((netChargeValues[iCentrality]-gNetCharge[iRun][iCentrality]),2);
203 netChargeRmsValuesError[iCentrality] += TMath::Power((netChargeRmsValues[iCentrality]-gNetChargeRms[iRun][iCentrality]),2);
204 nuDynValuesError[iCentrality] += TMath::Power((nuDynValues[iCentrality]-nuDyn[iRun][iCentrality]),2);
206 gNetChargeALICEDataError[iCentrality] = TMath::Sqrt(netChargeValuesError[iCentrality]/(nRunCounter*(nRunCounter-1)))/gNParticipants[iCentrality];
207 gNetChargeRmsALICEDataError[iCentrality] = TMath::Sqrt(netChargeRmsValuesError[iCentrality]/(nRunCounter*(nRunCounter-1)))/gNParticipants[iCentrality];
208 gNuDynALICEDataError[iCentrality] = TMath::Sqrt(nuDynValuesError[iCentrality]/(nRunCounter*(nRunCounter-1)));
209 Printf("Centrality: %d - nu_dyn: %lf +- %lf - Net charge: %lf +- %lf - RMS: %lf - %lf",iCentrality+1,
210 gNuDynALICEData[iCentrality],
211 gNuDynALICEDataError[iCentrality],
212 gNetChargeALICEData[iCentrality],
213 gNetChargeALICEDataError[iCentrality],
214 gNetChargeRmsALICEData[iCentrality],
215 gNetChargeRmsALICEDataError[iCentrality]);
221 //_______________________________________________________________//
222 void DrawMarker(Double_t x, Double_t y, Int_t style,
223 Double_t size, Int_t color) {
224 TMarker *m = new TMarker(x,y,style);
225 m->SetMarkerSize(size);
226 m->SetMarkerColor(color);