]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/Fluctuations/macro/compareRHIC.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / Fluctuations / macro / compareRHIC.C
1 //=======================================================================//
2 //Macro to draw the main results of the charge fluctuation analysis:
3 //=======================================================================//
4
5 //+++++++++++++++++++++GLOBAL VARIABLES+++++++++++++++++++++//
6 const Int_t nCentralityBins = 20;
7
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
12
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 //================================ALICE================================//
17
18 //================================ALICE================================//
19 Double_t gNParticipants200[nCentralityBins] = {352.,299.,235.,167.,116.,77.,47.,27.,14.};
20 Double_t gNParticipants200Error[nCentralityBins] = {4.,7.,9.,10.,10.,9.,8.,6.,4.};
21 Double_t gNuDynSTARData200[nCentralityBins] = {-0.002308,-0.002821,-0.003567,-0.004950,-0.007078,-0.010419,-0.010419,-0.016410,-0.028150,-0.056151};
22 Double_t gNuDynSTARData200Error[nCentralityBins] = {2e-06,2e-06,2e-06,2e-06,2e-06,2e-06,2e-06,2e-06,3e-06};
23
24 Double_t gNParticipants130[nCentralityBins] = {352.,298.,234.,166.,115.,76.,47.,27.,14.};
25 Double_t gNParticipants130Error[nCentralityBins] = {4.,7.,9.,10.,10.,9.,8.,5.,4.};
26 Double_t gNuDynSTARData130[nCentralityBins] = {-0.0023,-0.0029,-0.0036,-0.0051,-0.0070,-0.0103,-0.0103,-0.0154,-0.0274,-0.0547};
27 Double_t gNuDynSTARData130Error[nCentralityBins] = {0.0003,0.0002,0.0001,0.0001,0.0002,0.0002,0.0002,0.0002,0.0002};
28
29 Double_t gNParticipants62[nCentralityBins] = {347.,293.,229.,162.,112.,74.,46.,26.,13.};
30 Double_t gNParticipants62Error[nCentralityBins] = {4.,7.,9.,10.,10.,9.,7.,6.,3.};
31 Double_t gNuDynSTARData62[nCentralityBins] = {-0.002954,-0.003582,-0.004628,-0.006292,-0.008876,-0.013046,-0.020570,-0.035563,-0.071856};
32 Double_t gNuDynSTARData62Error[nCentralityBins] = {10e-06,8e-06,6e-06,6e-06,6e-06,6e-06,7e-06,7e-06,7e-06};
33 //================================ALICE================================//
34 //+++++++++++++++++++++END OF VARIABLES+++++++++++++++++++++//
35
36 //_____________________________________________________//
37 void compareRHIC(const char*resultPath = "../LHC10h/Pass1_4Plus/10CentralityBins/") {
38   //Draws the nu_dyn vs centrality percentile
39   SetDataPoints(resultPath);
40   //================================================//
41   //ALICE PbPb @ 2.76 TeV
42   TGraphErrors *grALICEDataNudyn = new TGraphErrors(nCentralityBins,
43                                                     gNParticipants,
44                                                     gNuDynALICEData,
45                                                     gNParticipantsError,
46                                                     gNuDynALICEDataError);
47   grALICEDataNudyn->SetMarkerStyle(20);
48   grALICEDataNudyn->SetMarkerColor(2);
49
50   //================================================//
51   //STAR AuAu @ 200 GeV
52   TGraphErrors *grSTARData200Nudyn = new TGraphErrors(9,
53                                                       gNParticipants,
54                                                       gNuDynSTARData200,
55                                                       gNParticipantsError,
56                                                       gNuDynSTARData200Error);
57   grSTARData200Nudyn->SetMarkerStyle(25);
58   grSTARData200Nudyn->SetMarkerColor(1);
59
60   //================================================//
61   //STAR AuAu @ 130 GeV
62   TGraphErrors *grSTARData130Nudyn = new TGraphErrors(9,
63                                                       gNParticipants,
64                                                       gNuDynSTARData130,
65                                                       gNParticipantsError,
66                                                       gNuDynSTARData130Error);
67   grSTARData130Nudyn->SetMarkerStyle(26);
68   grSTARData130Nudyn->SetMarkerColor(3);
69   grSTARData130Nudyn->SetMarkerSize(1.4);
70
71   //================================================//
72   //STAR AuAu @ 62 GeV
73   TGraphErrors *grSTARData62Nudyn = new TGraphErrors(9,
74                                                      gNParticipants,
75                                                      gNuDynSTARData62,
76                                                      gNParticipantsError,
77                                                      gNuDynSTARData62Error);
78   grSTARData62Nudyn->SetMarkerStyle(30);
79   grSTARData62Nudyn->SetMarkerColor(4);
80   grSTARData62Nudyn->SetMarkerSize(1.6);
81   
82   //_____________________________________________________//
83   //Draw the results
84   //_____________________________________________________//
85   TLatex *latex = new TLatex();
86   latex->SetTextSize(0.035);
87
88   //====================================//
89   //Results vs centrality
90   TH2F *gEmpty1 = new TH2F("gEmpty1",
91                            ";N_{part.};",
92                            100,0,400,10000,-0.1,0.01);
93   gEmpty1->SetStats(kFALSE);
94   gEmpty1->GetYaxis()->SetTitleOffset(1.5);
95   gEmpty1->GetXaxis()->SetTitleOffset(1.5);
96   gEmpty1->GetYaxis()->SetNdivisions(10);
97   gEmpty1->GetXaxis()->SetNdivisions(10);
98
99   TF1 *f1 = new TF1("f1","0",0,1000);
100   f1->SetLineColor(1); f1->SetLineStyle(3); f1->SetLineWidth(2);
101
102   //============================================================//
103   //nu_{dyn.}
104   TCanvas *c1 = new TCanvas("c1","Centrality dependence: nu_dyn",
105                             0,0,500,500);
106   c1->SetFillColor(10); c1->SetHighLightColor(10);
107   c1->SetLeftMargin(0.15); c1->SetBottomMargin(0.15);
108   c1->SetGridx(); c1->SetGridy();
109   gEmpty1->GetYaxis()->SetRangeUser(-0.08,0.01);
110   gEmpty1->GetYaxis()->SetTitle("#nu_{dyn.}");
111   gEmpty1->DrawCopy();
112   f1->Draw("same");
113   grSTARData200Nudyn->Draw("P");
114   grSTARData130Nudyn->Draw("P");
115   grSTARData62Nudyn->Draw("P");
116   grALICEDataNudyn->Draw("P");
117
118   DrawMarker(140., -0.043, 20, 1.6, 2);
119   latex->DrawLatex(150.,-0.0445,"ALICE PbPb @ #sqrt{s_{NN}} = 2.76 TeV");
120   DrawMarker(140., -0.05, 25, 1.6, 1);
121   latex->DrawLatex(150.,-0.0515,"STAR AuAu @ #sqrt{s_{NN}} = 200 GeV");
122   DrawMarker(140., -0.057, 26, 1.6, 3);
123   latex->DrawLatex(150.,-0.0585,"STAR AuAu @ #sqrt{s_{NN}} = 200 GeV");
124   DrawMarker(140., -0.064, 30, 1.6, 4);
125   latex->DrawLatex(150.,-0.0655,"STAR AuAu @ #sqrt{s_{NN}} = 200 GeV");
126
127   c1->SaveAs("comparisonRHICNparticipantsDependenceNuDyn.png");
128 }
129
130 //_______________________________________________________________//
131 void SetDataPoints(const char* resultPath) {
132   //Calculate the mean and the statistical error of the data points
133   const Int_t nRuns = 7;
134   Double_t nuDyn[nRuns][nCentralityBins];
135   Double_t gNetCharge[nRuns][nCentralityBins];
136   Double_t gNetChargeRms[nRuns][nCentralityBins];
137   Double_t nuDyn[nRuns][nCentralityBins];
138   Int_t nEvents[nRuns][nCentralityBins];
139   Int_t nRunNumbers[nRuns] = {137161,137431,137549,
140                               137595,137638,137639,137693};
141   Int_t gCentrality;
142   Double_t netChargeValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
143                                            0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
144   Double_t netChargeValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,
145                                                     0.,0.,0.,0.,0.,0.,0.,0.,
146                                                     0.,0.,0.,0.};
147   Double_t netChargeRmsValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,
148                                                   0.,0.,0.,0.,0.,0.,0.,
149                                                   0.,0.,0.,0.,0.,0.};
150   Double_t netChargeRmsValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,
151                                                        0.,0.,0.,0.,0.,0.,0.,0.,
152                                                     0.,0.,0.,0.};
153   Double_t nuDynValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
154                                            0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
155   Double_t nuDynValuesError[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
156                                                 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
157   Double_t nEventsValues[nCentralityBins] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
158                                              0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
159
160   TString inputFileName;
161   for(Int_t iRun = 0; iRun < nRuns; iRun++) {
162     ifstream inputAscii;
163     Printf("Adding run %d",nRunNumbers[iRun]);
164     inputFileName = resultPath;
165     inputFileName += "/output."; inputFileName += nRunNumbers[iRun];
166     inputFileName += ".txt";
167
168     Printf("Filename: %s",inputFileName.Data());
169     inputAscii.open(inputFileName.Data());
170     for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
171       inputAscii>>gCentrality>>nuDyn[iRun][iCentrality]>>gNetCharge[iRun][iCentrality]>>gNetChargeRms[iRun][iCentrality]>>nEvents[iRun][iCentrality];
172       cout<<nuDyn[iRun][iCentrality]<<" "<<nEvents[iRun][iCentrality]<<endl;
173     }
174     inputAscii.close();
175   }
176
177   Int_t nRunCounter = 0;
178   for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
179     for(Int_t iRun = 0; iRun < nRuns; iRun++) {
180       nuDynValues[iCentrality] += nuDyn[iRun][iCentrality]*nEvents[iRun][iCentrality];
181       netChargeValues[iCentrality] += gNetCharge[iRun][iCentrality]*nEvents[iRun][iCentrality];
182       netChargeRmsValues[iCentrality] += gNetChargeRms[iRun][iCentrality]*nEvents[iRun][iCentrality];
183       nEventsValues[iCentrality] += nEvents[iRun][iCentrality];
184     }
185
186     if(nEventsValues[iCentrality] != 0) {
187       nRunCounter += 1;
188
189       netChargeValues[iCentrality] /= nEventsValues[iCentrality];
190       netChargeRmsValues[iCentrality] /= nEventsValues[iCentrality];
191       nuDynValues[iCentrality] /= nEventsValues[iCentrality];
192     }
193     else {
194       netChargeValues[iCentrality] = 999.;
195       netChargeRmsValues[iCentrality] = 999.;
196       nuDynValues[iCentrality] = 999.;
197     }
198
199     gNuDynALICEData[iCentrality] = nuDynValues[iCentrality];
200   }
201
202   for(Int_t iCentrality = 0; iCentrality < nCentralityBins; iCentrality++) {
203     for(Int_t iRun = 0; iRun < nRuns; iRun++) {
204       netChargeValuesError[iCentrality] += TMath::Power((netChargeValues[iCentrality]-gNetCharge[iRun][iCentrality]),2);
205       netChargeRmsValuesError[iCentrality] += TMath::Power((netChargeRmsValues[iCentrality]-gNetChargeRms[iRun][iCentrality]),2);
206       nuDynValuesError[iCentrality] += TMath::Power((nuDynValues[iCentrality]-nuDyn[iRun][iCentrality]),2);
207     }
208     gNuDynALICEDataError[iCentrality] = TMath::Sqrt(nuDynValuesError[iCentrality]/(nRunCounter*(nRunCounter-1)));
209     Printf("Centrality: %d - nu_dyn: %lf +- %lf ",iCentrality+1,
210            gNuDynALICEData[iCentrality],
211            gNuDynALICEDataError[iCentrality]);
212   }
213
214 }
215
216
217 //_______________________________________________________________//
218 void DrawMarker(Double_t x, Double_t y, Int_t style, 
219                 Double_t size, Int_t color) {
220   TMarker *m = new TMarker(x,y,style);
221   m->SetMarkerSize(size);
222   m->SetMarkerColor(color);
223   m->Draw();
224 }