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/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}