rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2016_I1419244

Anisotropic flow of charged particles in PbPb collisions at 5.02 TeV.
Experiment: ALICE (LHC)
Inspire ID: 1419244
Status: UNVALIDATED
Authors:
  • Christian Bierlich
References:
  • Phys.Rev.Lett.116(2016)132302,2016
  • DOI:10.1103/PhysRevLett.116.132302
  • arXiv: 1602.01119
Beams: 1000822080 1000822080
Beam energies: (522392.0, 522392.0) GeV
Run details:
  • PbPb minimum bias events.

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_PBPBCentrality", "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}