Rivet analyses referenceALICE_2016_I1419244Anisotropic flow of charged particles in PbPb collisions at 5.02 TeV.Experiment: ALICE (LHC) Inspire ID: 1419244 Status: UNVALIDATED Authors:
Beam energies: (522392.0, 522392.0) GeV Run details:
Anisotropic flow of charged particles in PbPb collisions at 5.02 TeV. The analysis calculates flow coefficients using Generic Framework, integrated and differential in pT, as function of centrality. Only results for 5.02 TeV are calculated in the analysis, even though the HepData record also includes results for 2.76 TeV. Those results should be validated through a separate analysis referring to the primary citation. For this reason also ratios between flow coefficients at two energies are excluded. Source code: ALICE_2016_I1419244.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Tools/Correlators.hh"
5#include "Rivet/Tools/AliceCommon.hh"
6#include "Rivet/Projections/AliceCommon.hh"
7
8namespace Rivet {
9
10
11 /// @brief Multiparticle azimuthal correlations PbPb 5TeV.
12 class ALICE_2016_I1419244 : public CumulantAnalysis {
13 public:
14
15 /// Constructor
16 ALICE_2016_I1419244()
17 : CumulantAnalysis("ALICE_2016_I1419244") {
18 }
19
20 /// @name Analysis methods
21 //@{
22
23 /// Book histograms and initialise projections before the run
24 void init() {
25
26 // Initialise and register projections
27 // Declare the trigger projection.
28 declare<ALICE::V0AndTrigger>(ALICE::V0AndTrigger(),"V0-AND");
29 // Centrality projection.
30 declareCentrality(ALICE::V0MMultiplicity(), "ALICE_2015_PBPBCentrality", "V0M","V0M");
31
32 // The full central charged final state.
33 const ChargedFinalState& cfs = ChargedFinalState(Cuts::abseta < 0.8 &&
34 Cuts::pT > 0.2*GeV && Cuts::pT < 5.0*GeV);
35 declare(cfs, "CFS");
36
37 // The positive eta side used for rapidity gap.
38 const ChargedFinalState& cfsp = ChargedFinalState(Cuts::eta > 0.5 &&
39 Cuts::eta < 0.8 && Cuts::pT > 0.2*GeV && Cuts::pT < 5.0*GeV);
40 declare(cfsp, "CFSP");
41 // ..negative ditto.
42 const ChargedFinalState& cfsn = ChargedFinalState(Cuts::eta < -0.5 &&
43 Cuts::eta > -0.8 && Cuts::pT > 0.2*GeV && Cuts::pT < 5.0*GeV);
44 declare(cfsn, "CFSN");
45
46 // Book histograms before booking the correlators
47 // to have access to bin edges.
48 book(h_v22gap, 1, 1, 1, true);
49 book(h_v24, 1, 1, 2, true);
50 book(h_v26, 1, 1, 3, true);
51 book(h_v28, 1, 1, 4, true);
52 book(h_v32gap, 2, 1, 1, true);
53 book(h_v42gap, 2, 1, 2, true);
54 book(h_v22gappT, 8, 1, 1, true);
55 book(h_v32gappT, 8, 1, 2, true);
56 book(h_v42gappT, 8, 1, 3, true);
57 book(h_v24pT10, 9, 1, 1, true);
58 book(h_v24pT20, 9, 1, 2, true);
59 book(h_v24pT30, 9, 1, 3, true);
60
61 book(h_c22gap, "_c22gap", refData(1, 1, 1));
62 book(h_c24, "_c24", refData(1, 1, 2));
63 book(h_c26, "_c26", refData(1, 1, 3));
64 book(h_c28, "_c28", refData(1, 1, 4));
65 book(h_c32gap, "_c32gap", refData(8, 1, 2));
66 book(h_c42gap, "_c24gap", refData(8, 1, 3));
67
68 book(h_ec22gap, "_ec22gap", refData(1, 1, 1));
69 book(h_ec22, "_ec22", refData(1, 1, 2));
70 book(h_ec24, "_ec24", refData(1, 1, 2));
71 book(h_ec26, "_ec26", refData(1, 1, 3));
72 book(h_ec28, "_ec28", refData(1, 1, 4));
73
74 // Corresponding event averaged correlators.
75 // Integrated, with gap.
76 ec22gap = bookECorrelatorGap<2,2>("ec22gap",refData(1,1,1));
77 ec32gap = bookECorrelatorGap<3,2>("ec32gap",refData(2,1,1));
78 ec42gap = bookECorrelatorGap<4,2>("ec42gap",refData(2,1,2));
79
80 // Integrated, no gap.
81 ec22 = bookECorrelator<2,2>("ec22",refData(1,1,2));
82 ec24 = bookECorrelator<2,4>("ec24",refData(1,1,2));
83 ec26 = bookECorrelator<2,6>("ec26",refData(1,1,3));
84 ec28 = bookECorrelator<2,8>("ec28",refData(1,1,4));
85
86 // pT differential, no gap, three centralities.
87 ec22pT10 = bookECorrelator<2,2>("ec22pT10",refData(9,1,1));
88 ec24pT10 = bookECorrelator<2,4>("ec24pT10",refData(9,1,1));
89
90 ec22pT20 = bookECorrelator<2,2>("ec22pT20",refData(9,1,2));
91 ec24pT20 = bookECorrelator<2,4>("ec24pT20",refData(9,1,2));
92
93 ec22pT30 = bookECorrelator<2,2>("ec22pT30",refData(9,1,3));
94 ec24pT30 = bookECorrelator<2,4>("ec24pT30",refData(9,1,3));
95
96 // pT differential, with gap, 30-40% centrality.
97 ec22gappT = bookECorrelatorGap<2,2>("ec22gappT",refData(8,1,1));
98 ec32gappT = bookECorrelatorGap<3,2>("ec32gappT",refData(8,1,2));
99 ec42gappT = bookECorrelatorGap<4,2>("ec42gappT",refData(8,1,3));
100
101 pair<int, int> max = getMaxValues();
102 // Declare correlator projections.
103 declare(Correlators(cfs, max.first, max.second, refData(8,1,1)),
104 "Correlators");
105 declare(Correlators(cfsp, max.first, max.second, refData(8,1,1)),
106 "CorrelatorsPos");
107 declare(Correlators(cfsn, max.first, max.second, refData(8,1,1)),
108 "CorrelatorsNeg");
109
110 }
111
112
113 /// Perform the per-event analysis
114 void analyze(const Event& event) {
115
116 // Event trigger.
117 if (!apply<ALICE::V0AndTrigger>(event, "V0-AND")() ) vetoEvent;
118
119 // The centrality projection.
120 const CentralityProjection& centProj =
121 apply<CentralityProjection>(event,"V0M");
122
123 // The centrality.
124 const double cent = centProj();
125
126 // The correlators projections.
127 const Correlators& c = applyProjection<Correlators>(event,"Correlators");
128 const Correlators& cp =
129 applyProjection<Correlators>(event,"CorrelatorsPos");
130 const Correlators& cn =
131 applyProjection<Correlators>(event,"CorrelatorsNeg");
132
133 ec22gap->fill(cent, cp, cn);
134 ec32gap->fill(cent, cp, cn);
135 ec42gap->fill(cent, cp, cn);
136
137 ec22->fill(cent, c);
138 ec24->fill(cent, c);
139 ec26->fill(cent, c);
140 ec28->fill(cent, c);
141
142 if (cent < 10.) ec22pT10->fill(c), ec24pT10->fill(c);
143 else if (cent < 20.) ec22pT20->fill(c), ec24pT20->fill(c);
144 else if (cent < 30.) ec22pT30->fill(c), ec24pT30->fill(c);
145 else if (cent < 40.) {
146 ec22gappT->fill(cp, cn);
147 ec32gappT->fill(cp, cn);
148 ec42gappT->fill(cp, cn);
149 }
150 }
151
152
153 /// Normalise histograms etc., after the run
154 void finalize() {
155 // Filling test histos.
156 cnTwoInt(h_c22gap, ec22gap);
157 cnTwoInt(h_c32gap, ec32gap);
158 cnTwoInt(h_c42gap, ec42gap);
159 cnFourInt(h_c24, ec22, ec24);
160 cnSixInt(h_c26, ec22, ec24, ec26);
161 cnEightInt(h_c28, ec22, ec24, ec26, ec28);
162
163 corrPlot(h_ec22gap, ec22gap);
164 corrPlot(h_ec22, ec22);
165 corrPlot(h_ec24, ec24);
166 corrPlot(h_ec26, ec26);
167 corrPlot(h_ec28, ec28);
168
169 vnTwoInt(h_v22gap, ec22gap);
170 vnTwoInt(h_v32gap, ec32gap);
171 vnTwoInt(h_v42gap, ec42gap);
172
173 vnFourInt(h_v24, ec22, ec24);
174 vnSixInt(h_v26, ec22, ec24, ec26);
175 vnEightInt(h_v28, ec22, ec24, ec26, ec28);
176
177 vnTwoDiff(h_v22gappT, ec22gappT);
178 vnTwoDiff(h_v32gappT, ec32gappT);
179 vnTwoDiff(h_v42gappT, ec42gappT);
180
181 vnFourDiff(h_v24pT10, ec22pT10, ec24pT10);
182 vnFourDiff(h_v24pT20, ec22pT20, ec24pT20);
183 vnFourDiff(h_v24pT30, ec22pT30, ec24pT30);
184 }
185
186
187 //@}
188
189
190 /// @name Histograms
191 //@{
192 // The integrated centrality dependent v2{n}.
193 Scatter2DPtr h_v22gap;
194 Scatter2DPtr h_v24;
195 Scatter2DPtr h_v26;
196 Scatter2DPtr h_v28;
197 // The integrated, centrality dependent v3,4{2} gapped.
198 Scatter2DPtr h_v32gap;
199 Scatter2DPtr h_v42gap;
200 // The pT differential, v2{2} gapped for 30-40% centrality
201 Scatter2DPtr h_v22gappT;
202 // ...v3{2} ditto.
203 Scatter2DPtr h_v32gappT;
204 // ... v4{2} ditto.
205 Scatter2DPtr h_v42gappT;
206 // The pT differential, centrality dependent v2{4}
207 Scatter2DPtr h_v24pT10;
208 Scatter2DPtr h_v24pT20;
209 Scatter2DPtr h_v24pT30;
210
211 // Test histograms -- cumulants
212 Scatter2DPtr h_c22gap;
213 Scatter2DPtr h_c24;
214 Scatter2DPtr h_c26;
215 Scatter2DPtr h_c28;
216 Scatter2DPtr h_c32gap;
217 Scatter2DPtr h_c42gap;
218
219 // Test histograms -- correlators.
220 Scatter2DPtr h_ec22gap;
221 Scatter2DPtr h_ec22;
222 Scatter2DPtr h_ec24;
223 Scatter2DPtr h_ec26;
224 Scatter2DPtr h_ec28;
225
226
227 // The all event averaged correlators.
228 // Integrated with gap.
229 ECorrPtr ec22gap;
230 ECorrPtr ec32gap;
231 ECorrPtr ec42gap;
232
233 // Integrated without gap.
234 ECorrPtr ec22;
235 ECorrPtr ec24;
236 ECorrPtr ec26;
237 ECorrPtr ec28;
238
239 // pT dependent, 2 particle, gapped, 30-40% centrality
240 ECorrPtr ec22gappT;
241 ECorrPtr ec32gappT;
242 ECorrPtr ec42gappT;
243
244 // pT dependent, 4 particle, three centralities.
245 ECorrPtr ec22pT10;
246 ECorrPtr ec24pT10;
247
248 ECorrPtr ec22pT20;
249 ECorrPtr ec24pT20;
250
251 ECorrPtr ec22pT30;
252 ECorrPtr ec24pT30;
253
254
255 //@}
256
257
258 };
259
260
261 // The hook for the plugin system
262 RIVET_DECLARE_PLUGIN(ALICE_2016_I1419244);
263
264
265}
|