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