rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ALICE_2021_I1891391

$K_{S}^{0}$ - and (anti-)$\Lambda$-hadron correlations in pp collisions at $\sqrt{s} = 13$ TeV
Experiment: ALICE (LHC)
Inspire ID: 1891391
Status: VALIDATED
Authors:
  • Lucia Anna Tarasovicova
  • Daniel Gunther
References:
  • Eur.Phys.J.C 81 (2021) 10, 945
  • arXiv: 2107.11209
Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
    No run details listed

$\delta\varphi$ projections of two-particle correlation functions, triggered with charged hadrons, $K_S^0$, and $\Lambda$($\overline{\Lambda}$), per-trigger jet-like yields spectra extracted from these correlation functions on the near-side and away-side as a function of multiplicity class, $p_{\mathrm{T}}$ of the trigger particle, and $p_{\mathrm{T}}$ of the associated particle in pp collisions at $\sqrt{s} = 13$ TeV. The ratios of these yields to the yields from minimum bias collisions as well as the ratios of yields triggered with different particles are also included.

Source code: ALICE_2021_I1891391.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/PromptFinalState.hh"
  5#include "Rivet/Analyses/AliceCommon.hh"
  6#include "Rivet/Projections/ChargedFinalState.hh"
  7#include "Rivet/Projections/EventMixingFinalState.hh"
  8#include "Rivet/Projections/CentralityProjection.hh"
  9#include "YODA/Utils/sortedvector.h"
 10
 11namespace Rivet {
 12
 13
 14  /// @brief KS0 and (anti-)Lambda hadron correlations in pp collisions at 13 TeV
 15  class ALICE_2021_I1891391 : public Analysis {
 16  public:
 17
 18    /// Constructor
 19    RIVET_DEFAULT_ANALYSIS_CTOR(ALICE_2021_I1891391);
 20
 21
 22    /// @name Analysis methods
 23    /// @{
 24
 25    void fillbyparticles(Histo1DGroupPtr& _histo, const Particle& tp, const Particle& ap) {
 26      double dphi = (ap.phi() - tp.phi());
 27      if (dphi < -0.5*M_PI) dphi = dphi + 2*M_PI;
 28      if (dphi > 1.5*M_PI) dphi = dphi - 2*M_PI;
 29      double deta = (ap.eta() - tp.eta());
 30      _histo->fill(deta, dphi);
 31    }
 32
 33    void S2DProjectionY(Scatter2DPtr projection, Histo1DGroupPtr& hist2D) {
 34
 35      double phiValues[N_phibins];
 36      double phiValueserr[N_phibins];
 37
 38      vector<Point2D> points = projection->points();
 39      for (int i = 0; i < N_phibins; ++i) {
 40        phiValues[i]=0;
 41        phiValueserr[i]=0;
 42      }
 43
 44      for (const auto& hist : hist2D->bins()) {
 45        for (const auto& bin : hist->bins()) {
 46          phiValues[bin.index()-1] += bin.sumW();
 47          phiValueserr[bin.index()-1] +=bin.sumW2();
 48        }
 49      }
 50      projection->reset();
 51
 52      for (size_t idx = 0; idx < N_phibins; ++idx) {
 53        phiValueserr[idx] = sqrt(phiValueserr[idx]);
 54        phiValues[idx] = phiValues[idx];
 55        projection->addPoint(points[idx].x(),phiValues[idx],points[idx].xErrAvg(),phiValueserr[idx]);
 56      }
 57      return;
 58    }
 59
 60    pair<double, double> BackgEstimate(const Scatter2DPtr& hist) {
 61
 62      pair<double, double> backg;
 63      vector<Point2D> points = hist->points();
 64      backg.first = (points[1].y()+points[2].y()+points[3].y()+points[34].y()+points[35].y()+points[36].y())/6;
 65      backg.second= pow(points[1].yErrAvg(),2)+pow(points[2].yErrAvg(),2)+pow(points[3].yErrAvg(),2);
 66      backg.second+= pow(points[34].yErrAvg(),2)+pow(points[35].yErrAvg(),2)+pow(points[36].yErrAvg(),2);
 67
 68      backg.second=sqrt(backg.second)/6;
 69
 70      return backg;
 71    }
 72
 73    void ZYAM (Scatter2DPtr& hist_final, const Scatter2DPtr& hist) {
 74      vector<Point2D> points = hist->points();
 75      pair<double, double> backg = BackgEstimate(hist);
 76      hist_final->reset();
 77      for (size_t idx = 0; idx < N_phibins; ++idx) {
 78        hist_final->addPoint(points[idx].x() ,points[idx].y()-backg.first,points[idx].xErrAvg(),
 79                             sqrt(pow(points[idx].yErrAvg(),2)+pow(backg.second,2)));
 80      }
 81    }
 82
 83    Point2D IntegratePeak (Scatter2DPtr s, const pair<double, double>& PeakInterval) {
 84      Point2D PeakYield;
 85      pair<double, double> Errs{0,0};
 86      PeakYield.setY(0);
 87      PeakYield.setYErrs(Errs);
 88
 89      for (const auto& point : s->points()) {
 90        if (point.xMin() > PeakInterval.first && point.xMax() < PeakInterval.second) {
 91          PeakYield.setY(point.y() + PeakYield.y());
 92          Errs.first = sqrt(pow(point.yErrs().first,2) + pow(PeakYield.yErrs().first,2));
 93          Errs.second =  sqrt(pow(point.yErrs().second,2) + pow(PeakYield.yErrs().second,2));
 94          PeakYield.setYErrs(Errs);
 95        }
 96      }
 97
 98      PeakYield.setY(PeakYield.y()*2*M_PI/N_phibins);
 99      Errs.first = PeakYield.yErrs().first*2*M_PI/N_phibins;
100      Errs.second = PeakYield.yErrs().second*2*M_PI/N_phibins;
101      PeakYield.setYErrs(Errs);
102
103      return PeakYield;
104    }
105
106    void IntegratePeakByPT(Scatter2DPtr& s, Scatter2DPtr vs[8], pair<double,double> PeakInterval, int pt_interval) {
107
108      Point2D PeakYield;
109
110      double xval_trig[PT_ASSOC_BINS] = { 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 8., 10., 13., 17.5};
111      double xval_trigerr[PT_ASSOC_BINS] = { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1., 1., 2., 2.5};
112
113      s->reset();
114      int pt = 0;
115      for (int pTsel = 0; pTsel < pt_interval+2; ++pTsel) {
116        if(pt_interval==8){
117            pt=pTsel+2;
118            if(pTsel>7) continue;
119        }
120        else pt=pTsel;
121        PeakYield = IntegratePeak(vs[pTsel], PeakInterval);
122        s->addPoint(xval_trig[pt],PeakYield.y(),xval_trigerr[pt],PeakYield.yErrAvg());
123      }
124    }
125
126    void sdivide(Scatter2DPtr& V0hist, Scatter2DPtr& hhist, Scatter2DPtr& ratio_hist, int pt_interval, bool V0mult) {
127      vector<Point2D> V0h_points = V0hist->points();
128      vector<Point2D> hh_points = hhist->points();
129
130      double xval[PT_ASSOC_BINS] = { 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 8., 10., 13.,17.5};
131      double xval_err[PT_ASSOC_BINS] = { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1., 1., 2., 2.5};
132      double ratio,ratio_err;
133
134      if (V0mult) {
135        xval[6]=9;
136        xval[7]=15.5;
137        xval_err[6]=2;
138        xval_err[7]=4.5;
139      }
140      ratio_hist->reset();
141      int pt = 0;
142      for (int idx = 0; idx < pt_interval+2; ++idx) {
143        if (pt_interval>=7||V0mult) {
144          pt = idx+2;
145          if (idx>pt_interval-1) continue;
146        } else {
147          pt = idx;
148        }
149        if (V0mult&&idx>3) {
150          if (idx==4&&(hh_points[4].y()>0||hh_points[5].y())) {
151            ratio = (V0h_points[4].y()+V0h_points[5].y())/(hh_points[4].y()+hh_points[5].y());
152            ratio_err = sqrt(pow(V0h_points[4].yErrAvg()/(hh_points[4].y()+hh_points[5].y()),2) + pow(V0h_points[5].yErrAvg()/(hh_points[4].y()+hh_points[5].y()),2) +
153                             pow(((V0h_points[4].y()+V0h_points[5].y())*hh_points[4].yErrAvg())/(pow(hh_points[4].y()+hh_points[5].y(),2)),2) +
154                             pow(((V0h_points[4].y()+V0h_points[5].y())*hh_points[5].yErrAvg())/(pow(hh_points[4].y()+hh_points[5].y(),2)),2));
155          } else if (idx==5&&(hh_points[6].y()>0||hh_points[7].y())) {
156            ratio = (V0h_points[6].y()+V0h_points[7].y())/(hh_points[6].y()+hh_points[7].y());
157            ratio_err = sqrt(pow(V0h_points[6].yErrAvg()/(hh_points[6].y()+hh_points[7].y()),2) + pow(V0h_points[7].yErrAvg()/(hh_points[6].y()+hh_points[7].y()),2) +
158                             pow(((V0h_points[6].y()+V0h_points[7].y())*hh_points[6].yErrAvg())/(pow(hh_points[6].y()+hh_points[7].y(),2)),2) +
159                             pow(((V0h_points[6].y()+V0h_points[7].y())*hh_points[7].yErrAvg())/(pow(hh_points[6].y()+hh_points[7].y(),2)),2));
160          } else {
161            ratio = 1;
162            ratio_err = 0.02;
163          }
164        }
165        else if (hh_points[idx].y()>0) {
166          ratio = V0h_points[idx].y()/hh_points[idx].y();
167          ratio_err = sqrt(pow(V0h_points[idx].yErrAvg()/hh_points[idx].y(),2) +
168                           pow((V0h_points[idx].y()*hh_points[idx].yErrAvg())/(pow(hh_points[idx].y(),2)),2));
169        } else {
170          ratio = 10;
171          ratio_err = 1;
172        }
173        ratio_hist->addPoint(xval[pt], ratio, xval_err[pt], ratio_err);
174      }
175    }
176
177    int profileIndex(vector<double> cBins, double c) {
178      int index = 100;
179      for (size_t i = 0; i < cBins.size() - 1; ++i) {
180        if (c > cBins[i] && c <= cBins[i + 1]) {
181          index = i;
182          break;
183        }
184      }
185      return index;
186    }
187
188
189    /// Book histograms and initialise projections before the run
190    void init() {
191
192      // Projections
193      declareCentrality(ALICE::V0MMultiplicity(),"ALICE_2015_PPCentrality","V0M","V0M");
194
195      // Projections for trigger particles: charged, primary particles
196      // with |eta| < 0.8 and different pT bins
197      for (int ipt = 0; ipt < PT_TRIGG_BINS; ++ipt) {
198        Cut cut = Cuts::abseta < 0.8 && Cuts::abscharge > 0 &&
199          Cuts::ptIn(bins_pt_trigg[ipt]*GeV, bins_pt_trigg[ipt+1]*GeV);
200        declare(ALICE::PrimaryParticles(cut), "APRIMTrigg" + toString(ipt));
201      }
202
203      // Projections for trigger particles: neutral, primary particles
204      // with |y| < 0.5 and different pT bins
205      for (int ipt = 0; ipt < PT_TRIGG_BINS; ++ipt) {
206        Cut cut = Cuts::absrap < 0.5 && Cuts::abscharge == 0 &&
207          Cuts::ptIn(bins_pt_trigg[ipt]*GeV, bins_pt_trigg[ipt+1]*GeV);
208        declare(ALICE::PrimaryParticles(cut), "APRIMTrigg0" + toString(ipt));
209      }
210
211      // Projections for associated particles: charged, primary particles
212      // with |eta| < 0.8 and different pT bins
213      for (int ipt = 0; ipt < PT_ASSOC_BINS; ++ipt) {
214        Cut cut = Cuts::abseta < 0.8 && Cuts::abscharge > 0 &&
215          Cuts::ptIn(bins_pt_assoc[ipt]*GeV, bins_pt_assoc[ipt+1]*GeV);
216        declare(ALICE::PrimaryParticles(cut), "APRIMAssoc" + toString(ipt));
217      }
218      const ChargedFinalState cfs(Cuts::pT > 1*GeV && Cuts::abseta < 0.8);
219      declare(cfs, "CFS");
220      const EventMixingFinalState evmc(cfs, cfs, 5, 0, 100, 10, 1.0);
221      declare(evmc, "EVMc");
222
223      multiplicityBins = {0.,1.,3.,7.,15.,50,100.};
224
225      etabins.resize(39);
226      etabins[0] = -1.013333 - 2.666650e-02;
227      for (size_t i = 1; i < etabins.size(); ++i) {
228        etabins[i] = etabins[i-1] + (2*2.666650e-02);
229      }
230
231      // Histograms
232      const auto& ref = refData(2, 1, 1);
233      for (size_t imult = 0; imult < MULT_BINS; ++imult) {
234        for (size_t ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg) {
235
236          book(_hist_hh_2D_mult[imult][ipt_trigg], etabins);
237          book(_hist_K0h_2D_mult[imult][ipt_trigg], etabins);
238          book(_hist_Lamh_2D_mult[imult][ipt_trigg], etabins);
239          for (size_t i=0; i < _hist_hh_2D_mult[imult][ipt_trigg]->numBins(); ++i) {
240            const string suff = mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg]+to_string(i);
241            book(_hist_hh_2D_mult[imult][ipt_trigg]->bin(i+1), "TMP/ist_hh_2D_mult_"+suff, ref);
242            book(_hist_K0h_2D_mult[imult][ipt_trigg]->bin(i+1), "TMP/ist_K0h_2D_mult_"+suff, ref);
243            book(_hist_Lamh_2D_mult[imult][ipt_trigg]->bin(i+1), "TMP/ist_Lamh_2D_mult_"+suff, ref);
244          }
245
246          book(_counterChargedTriggers_mult[imult][ipt_trigg], "TMP/counterChargedTriggers_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg]);
247          book(_counterK0Triggers_mult[imult][ipt_trigg], "TMP/counterK0Triggers_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg]);
248          book(_counterLamTriggers_mult[imult][ipt_trigg], "TMP/counterLamTriggers_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg]);
249
250          book(_hist_dPhi_hh_mult[imult][ipt_trigg],"TMP/hist_dPhi_hh_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
251                                                     refData(2,1,1).mkScatter());
252          book(_hist_dPhi_K0h_mult[imult][ipt_trigg],"TMP/hist_dPhi_K0h_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
253                                                     refData(3,1,1).mkScatter());
254          book(_hist_dPhi_Lamh_mult[imult][ipt_trigg],"TMP/hist_dPhi_Lamh_mult_"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
255                                                      refData(4,1,1).mkScatter());
256
257          if (imult < 6 || (imult == 6 && !(ipt_trigg == 0 || ipt_trigg == 5))) {
258            book(_hist_dPhi_hh_mult_fin[imult][ipt_trigg],"TMP/hist_dPhi_hh_mult_fin"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
259                                                          refData(2,1,1).mkScatter());
260            book(_hist_dPhi_K0h_mult_fin[imult][ipt_trigg],"TMP/hist_dPhi_K0h_mult_fin"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
261                                                           refData(3,1,1).mkScatter());
262            book(_hist_dPhi_Lamh_mult_fin[imult][ipt_trigg],"TMP/hist_dPhi_Lamh_mult_fin"+mulsel_name[imult]+"_"+bins_pt_trigg_name[ipt_trigg],
263                                                            refData(4,1,1).mkScatter());
264          }
265        }
266      }
267      book(_hist_dPhi_hh_mult_fin[6][0],2,1,1);
268      book(_hist_dPhi_K0h_mult_fin[6][0],3,1,1);
269      book(_hist_dPhi_Lamh_mult_fin[6][0],4,1,1);
270
271      book(_hist_dPhi_hh_mult_fin[6][5],5,1,1);
272      book(_hist_dPhi_K0h_mult_fin[6][5],6,1,1);
273      book(_hist_dPhi_Lamh_mult_fin[6][5],7,1,1);
274
275      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg) {
276        for (int ipt_assoc = 0; ipt_assoc < PT_ASSOC_BINS; ++ipt_assoc) {
277
278          book(_hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc], etabins);
279          book(_hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc], etabins);
280          book(_hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc], etabins);
281          for (size_t i=0; i < _hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc]->numBins(); ++i) {
282            const string suff = bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc]+to_string(i);
283            book(_hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc]->bin(i+1), "TMP/ist_hh_2D_ptassoc_"+suff, ref);
284            book(_hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc]->bin(i+1), "TMP/ist_K0h_2D_ptassoc_"+suff, ref);
285            book(_hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc]->bin(i+1), "TMP/ist_Lamh_2D_ptassoc_"+suff, ref);
286          }
287
288          book(_hist_dPhi_hh_ptassoc[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_hh_ptassoc_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(2,1,1).mkScatter());
289          book(_hist_dPhi_K0h_ptassoc[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_K0h_ptassoc_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(3,1,1).mkScatter());
290          book(_hist_dPhi_Lamh_ptassoc[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_Lamh_ptassoc_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(4,1,1).mkScatter());
291
292          book(_hist_dPhi_hh_ptassoc_fin[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_hh_ptassoc_fin_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(2,1,1).mkScatter());
293          book(_hist_dPhi_K0h_ptassoc_fin[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_K0h_ptassoc_fin_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(3,1,1).mkScatter());
294          book(_hist_dPhi_Lamh_ptassoc_fin[ipt_trigg][ipt_assoc],"TMP/hist_dPhi_Lamh_ptassoc_fin_"+bins_pt_trigg_name[ipt_trigg]+bins_pt_assoc_name[ipt_assoc], refData(4,1,1).mkScatter());
295        }
296      }
297
298      for (int imult = 0; imult < MULT_BINS; ++imult) {
299        book(_hist_hh_NearSideYield_mult[imult],8,1,imult+1);
300        book(_hist_K0h_NearSideYield_mult[imult],9,1,imult+1);
301        book(_hist_Lamh_NearSideYield_mult[imult],10,1,imult+1);
302
303        book(_hist_hh_AwaySideYield_mult[imult],11,1,imult+1);
304        book(_hist_K0h_AwaySideYield_mult[imult],12,1,imult+1);
305        book(_hist_Lamh_AwaySideYield_mult[imult],13,1,imult+1);
306
307        if (imult<MULT_BINS-1) {
308          book(_hist_hh_NearSideYield_mult_ratio[imult],14,1,imult+1);
309          book(_hist_K0h_NearSideYield_mult_ratio[imult],15,1,imult+1);
310          book(_hist_Lamh_NearSideYield_mult_ratio[imult],16,1,imult+1);
311
312          book(_hist_hh_AwaySideYield_mult_ratio[imult],17,1,imult+1);
313          book(_hist_K0h_AwaySideYield_mult_ratio[imult],18,1,imult+1);
314          book(_hist_Lamh_AwaySideYield_mult_ratio[imult],19,1,imult+1);
315
316          book(_hist_K0h_NearSideYield_ratioTo_hh_mult[imult],imult+27,1,1);
317          book(_hist_Lamh_NearSideYield_ratioTo_hh_mult[imult],imult+34,1,1);
318          book(_hist_K0h_AwaySideYield_ratioTo_hh_mult[imult],imult+41,1,1);
319          book(_hist_Lamh_AwaySideYield_ratioTo_hh_mult[imult],imult+48,1,1);
320        } else {
321          book(_hist_K0h_NearSideYield_ratioTo_hh_mult[imult],26,1,1);
322          book(_hist_Lamh_NearSideYield_ratioTo_hh_mult[imult],33,1,1);
323          book(_hist_K0h_AwaySideYield_ratioTo_hh_mult[imult],40,1,1);
324          book(_hist_Lamh_AwaySideYield_ratioTo_hh_mult[imult],47,1,1);
325        }
326      }
327
328      for (int ipttrigg = 0; ipttrigg < PT_TRIGG_BINS; ++ipttrigg) {
329        book(_hist_hh_NearSideYield_ptassoc[ipttrigg],20,1,ipttrigg+1);
330        book(_hist_hh_AwaySideYield_ptassoc[ipttrigg],23,1,ipttrigg+1);
331
332        book(_hist_K0h_NearSideYield_ptassoc[ipttrigg],21,1,ipttrigg+1);
333        book(_hist_K0h_AwaySideYield_ptassoc[ipttrigg],24,1,ipttrigg+1);
334
335        if (ipttrigg<PT_TRIGG_BINS-1) {
336          book(_hist_Lamh_NearSideYield_ptassoc[ipttrigg],22,1,ipttrigg+1);
337          book(_hist_Lamh_AwaySideYield_ptassoc[ipttrigg],25,1,ipttrigg+1);
338
339          book(_hist_K0h_NearSideYield_ratioTo_hh_ptassoc[ipttrigg],ipttrigg+54,1,1);
340          book(_hist_Lamh_NearSideYield_ratioTo_hh_ptassoc[ipttrigg],ipttrigg+61,1,1);
341          book(_hist_K0h_AwaySideYield_ratioTo_hh_ptassoc[ipttrigg],ipttrigg+68,1,1);
342          book(_hist_Lamh_AwaySideYield_ratioTo_hh_ptassoc[ipttrigg],ipttrigg+75,1,1);
343        }
344      }
345
346      book(_hist_mix_hh, etabins);
347      book(_hist_mix_K0h, etabins);
348      book(_hist_mix_Lamh, etabins);
349      for (size_t i=0; i < _hist_mix_hh->numBins(); ++i) {
350        const string suff = to_string(i);
351        book(_hist_mix_hh->bin(i+1), "TMP/hist_mix_hh"+suff, ref);
352        book(_hist_mix_K0h->bin(i+1), "TMP/hist_mix_K0h"+suff, ref);
353        book(_hist_mix_Lamh->bin(i+1), "TMP/hist_mix_Lamh"+suff, ref);
354      }
355    }
356
357
358    /// Perform the per-event analysis
359    void analyze(const Event& event) {
360
361      //multiplicity block
362      const CentralityProjection& cent = apply<CentralityProjection>(event,"V0M");
363      double c  = cent();
364      int index = profileIndex(multiplicityBins,c);
365
366      //particle correlation block
367      // Get trigger particles, charged hadrons
368      Particles trigg_h_Particles[PT_TRIGG_BINS];
369      for (int ipt = 0; ipt < PT_TRIGG_BINS; ++ipt) {
370        string pname = "APRIMTrigg" + toString(ipt);
371        trigg_h_Particles[ipt] = apply<ALICE::PrimaryParticles>(event,pname).particles();
372      }
373      // Get trigger particles, neutral hadrons
374      Particles trigg_V0_Particles[PT_TRIGG_BINS];
375      for (int ipt = 0; ipt < PT_TRIGG_BINS; ++ipt) {
376        string pname = "APRIMTrigg0" + toString(ipt);
377        trigg_V0_Particles[ipt] = apply<ALICE::PrimaryParticles>(event,pname).particles();
378      }
379
380      // Get associated particles particles, charged hadrons
381      Particles assocParticles[PT_ASSOC_BINS];
382      for (int ipt = 0; ipt < PT_ASSOC_BINS; ++ipt) {
383        string pname = "APRIMAssoc" + toString(ipt);
384        assocParticles[ipt] = apply<ALICE::PrimaryParticles>(event,pname).particles();
385      }
386
387      //trigger = any charged particle
388      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg){
389          if(trigg_h_Particles[ipt_trigg].size()==0)continue;
390        for (const Particle& trigg : trigg_h_Particles[ipt_trigg]) {
391          _counterChargedTriggers_mult[6][ipt_trigg]->fill(1);
392          if(index>-1&&index<6)_counterChargedTriggers_mult[index][ipt_trigg]->fill(1);
393          for (int ipt_assoc = 0; ipt_assoc < PT_ASSOC_BINS; ++ipt_assoc){
394              if(assocParticles[ipt_assoc].size()==0)continue;
395            for(const Particle& assoc : assocParticles[ipt_assoc]){
396              if(assoc.pT() < trigg.pT()){
397                fillbyparticles(_hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc], trigg, assoc);
398                if(index>-1&&index<6)fillbyparticles(_hist_hh_2D_mult[index][ipt_trigg], trigg, assoc);
399                fillbyparticles(_hist_hh_2D_mult[6][ipt_trigg], trigg, assoc);
400              }
401            }
402          }
403        }
404      }
405
406      //trigger = V0
407      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg){
408          if(trigg_V0_Particles[ipt_trigg].size()==0)continue;
409        for (const Particle& triggV0 : trigg_V0_Particles[ipt_trigg]) {
410          const int pid = abs(triggV0.pid());
411          if(pid==310){
412            _counterK0Triggers_mult[6][ipt_trigg]->fill(1);
413            if(index>-1&&index<6)_counterK0Triggers_mult[index][ipt_trigg]->fill(1);
414          }
415          if(pid==3122){
416            _counterLamTriggers_mult[6][ipt_trigg]->fill(1);
417            if(index>-1&&index<6)_counterLamTriggers_mult[index][ipt_trigg]->fill(1);
418          }
419          for (int ipt_assoc = 0; ipt_assoc < PT_ASSOC_BINS; ++ipt_assoc){
420              if(assocParticles[ipt_assoc].size()==0)continue;
421            for(const Particle& assoc : assocParticles[ipt_assoc]){
422              if(assoc.pT() < triggV0.pT() && pid==310){
423                fillbyparticles(_hist_K0h_2D_mult[6][ipt_trigg], triggV0, assoc);
424                if(index>-1&&index<6)fillbyparticles(_hist_K0h_2D_mult[index][ipt_trigg], triggV0, assoc);
425                fillbyparticles(_hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc], triggV0, assoc);
426              }
427              if(assoc.pT() < triggV0.pT() && pid==3122){
428                fillbyparticles(_hist_Lamh_2D_mult[6][ipt_trigg], triggV0, assoc);
429                if(index>-1&&index<6)fillbyparticles(_hist_Lamh_2D_mult[index][ipt_trigg], triggV0, assoc);
430                fillbyparticles(_hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc], triggV0, assoc);
431              }
432            }
433          }
434        }
435      }
436      //end of particle correlation block
437
438      //mixed event block
439      const EventMixingFinalState& evmc = apply<EventMixingFinalState>(event, "EVMc");
440      if (!evmc.hasMixingEvents()) return;
441
442      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg){
443          if(trigg_h_Particles[ipt_trigg].size()==0)continue;
444        for (const Particle& trigg : trigg_h_Particles[ipt_trigg]) {
445            if(evmc.particles().size()==0)continue;
446          for (const Particle& assoc_mix : evmc.particles()){
447            if (assoc_mix.pT() < trigg.pT()) fillbyparticles(_hist_mix_hh, trigg, assoc_mix);
448          }
449        }
450      }
451      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg){
452          if(trigg_V0_Particles[ipt_trigg].size()==0)continue;
453        for (const Particle& triggV0 : trigg_V0_Particles[ipt_trigg]) {
454          const int pid = abs(triggV0.pid());
455          if(evmc.particles().size()==0)continue;
456          for (const Particle& assoc_mix : evmc.particles()){
457            if(assoc_mix.pT() < triggV0.pT() && pid==310) fillbyparticles(_hist_mix_K0h, triggV0, assoc_mix);
458            if(assoc_mix.pT() < triggV0.pT() && pid==3122) fillbyparticles(_hist_mix_Lamh, triggV0, assoc_mix);
459          }
460        }
461      }
462      //end of mixed event block
463    }
464
465
466    /// Finalize
467    void finalize() {
468
469      double mix_nomalisation_hh = (_hist_mix_hh->bin(0))->integral()/(_hist_mix_hh->bin(0))->numBins();
470      double mix_scaling_hh[38];
471      for (auto& b : _hist_mix_hh->bins()) {
472        mix_scaling_hh[b.index()-1] = b->integral()/b->numBins()/mix_nomalisation_hh;
473      }
474
475      double mix_nomalisation_K0h = (_hist_mix_K0h->bin(0))->integral()/(_hist_mix_K0h->bin(0))->numBins();
476      double mix_scaling_K0h[38];
477      for (auto& b : _hist_mix_K0h->bins()) {
478        mix_scaling_hh[b.index()-1] = b->integral()/b->numBins()/mix_nomalisation_K0h;
479      }
480
481      double mix_nomalisation_Lamh = (_hist_mix_Lamh->bin(0))->integral()/(_hist_mix_Lamh->bin(0))->numBins();
482      double mix_scaling_Lamh[38];
483      for (auto& b : _hist_mix_Lamh->bins()) {
484        mix_scaling_hh[b.index()-1] = b->integral()/b->numBins()/mix_nomalisation_Lamh;
485      }
486
487      size_t i_mix=0;
488      for (int imult = 0; imult < MULT_BINS; ++imult) {
489        for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg) {
490          //cor. scaling + mixing
491          if (_counterChargedTriggers_mult[imult][ipt_trigg]->sumW() > 0) {
492            scale(_hist_hh_2D_mult[imult][ipt_trigg], 1./_counterChargedTriggers_mult[imult][ipt_trigg]->sumW());
493          }
494          i_mix = 0;
495          for (auto& hist : _hist_hh_2D_mult[imult][ipt_trigg]->bins()) {
496            if (mix_scaling_hh[i_mix]>0) scale(hist, 1./mix_scaling_hh[i_mix]);
497            ++i_mix;
498          }
499          if (_counterK0Triggers_mult[imult][ipt_trigg]->sumW() > 0) {
500            for (auto& hist : _hist_K0h_2D_mult[imult][ipt_trigg]->bins()) {
501              scale(hist, 1./_counterK0Triggers_mult[imult][ipt_trigg]->sumW());
502            }
503          }
504          i_mix = 0;
505          for (auto& hist : _hist_K0h_2D_mult[imult][ipt_trigg]->bins()) {
506            if (mix_scaling_K0h[i_mix]>0) scale(hist, 1./mix_scaling_K0h[i_mix]);
507            ++i_mix;
508          }
509          if (_counterLamTriggers_mult[imult][ipt_trigg]->sumW() > 0) {
510            for (auto& hist : _hist_Lamh_2D_mult[imult][ipt_trigg]->bins()) {
511              scale(hist, 1./_counterLamTriggers_mult[imult][ipt_trigg]->sumW());
512            }
513          }
514          i_mix = 0;
515          for (auto& hist : _hist_Lamh_2D_mult[imult][ipt_trigg]->bins()) {
516            if (mix_scaling_Lamh[i_mix]>0) scale(hist, 1./mix_scaling_Lamh[i_mix]);
517            ++i_mix;
518          }
519
520          //integration by eta
521          S2DProjectionY(_hist_dPhi_hh_mult[imult][ipt_trigg], _hist_hh_2D_mult[imult][ipt_trigg]);
522          S2DProjectionY(_hist_dPhi_K0h_mult[imult][ipt_trigg], _hist_K0h_2D_mult[imult][ipt_trigg]);
523          S2DProjectionY(_hist_dPhi_Lamh_mult[imult][ipt_trigg], _hist_Lamh_2D_mult[imult][ipt_trigg]);
524          //ZYAM
525          ZYAM(_hist_dPhi_hh_mult_fin[imult][ipt_trigg], _hist_dPhi_hh_mult[imult][ipt_trigg]);
526          ZYAM(_hist_dPhi_K0h_mult_fin[imult][ipt_trigg], _hist_dPhi_K0h_mult[imult][ipt_trigg]);
527          ZYAM(_hist_dPhi_Lamh_mult_fin[imult][ipt_trigg], _hist_dPhi_Lamh_mult[imult][ipt_trigg]);
528        }
529      }
530
531      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg) {
532        for (int ipt_assoc = 0; ipt_assoc < PT_ASSOC_BINS; ++ipt_assoc) {
533          //cor. scaling + mixing
534          if (_counterChargedTriggers_mult[6][ipt_trigg]->sumW() >0) {
535            for (auto& hist : _hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
536              scale(hist,1./_counterChargedTriggers_mult[6][ipt_trigg]->sumW());
537            }
538          }
539          i_mix=0;
540          for (auto& hist : _hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
541            if (mix_scaling_hh[i_mix]>0) scale(hist,1./mix_scaling_hh[i_mix]);
542            ++i_mix;
543          }
544          if (_counterK0Triggers_mult[6][ipt_trigg]->sumW() >0) {
545            for (auto& hist : _hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
546              scale(hist,1./_counterK0Triggers_mult[6][ipt_trigg]->sumW());
547            }
548          }
549          i_mix=0;
550          for (auto& hist : _hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
551            if (mix_scaling_K0h[i_mix]>0)scale(hist,1./mix_scaling_K0h[i_mix]);
552            ++i_mix;
553          }
554          if (_counterLamTriggers_mult[6][ipt_trigg]->sumW() >0) {
555            for (auto& hist : _hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
556              scale(hist,1./_counterLamTriggers_mult[6][ipt_trigg]->sumW());
557            }
558          }
559          i_mix=0;
560          for (Histo1DPtr hist : _hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc]->bins()) {
561            if (mix_scaling_Lamh[i_mix]>0) scale(hist,1./mix_scaling_Lamh[i_mix]);
562            ++i_mix;
563          }
564
565          //integration by eta
566          S2DProjectionY(_hist_dPhi_hh_ptassoc[ipt_trigg][ipt_assoc], _hist_hh_2D_ptassoc[ipt_trigg][ipt_assoc]);
567          S2DProjectionY(_hist_dPhi_K0h_ptassoc[ipt_trigg][ipt_assoc], _hist_K0h_2D_ptassoc[ipt_trigg][ipt_assoc]);
568          S2DProjectionY(_hist_dPhi_Lamh_ptassoc[ipt_trigg][ipt_assoc], _hist_Lamh_2D_ptassoc[ipt_trigg][ipt_assoc]);
569          //Subtracting underlying event with the ZYAM method
570          ZYAM(_hist_dPhi_hh_ptassoc_fin[ipt_trigg][ipt_assoc], _hist_dPhi_hh_ptassoc[ipt_trigg][ipt_assoc]);
571          ZYAM(_hist_dPhi_K0h_ptassoc_fin[ipt_trigg][ipt_assoc], _hist_dPhi_K0h_ptassoc[ipt_trigg][ipt_assoc]);
572          ZYAM(_hist_dPhi_Lamh_ptassoc_fin[ipt_trigg][ipt_assoc], _hist_dPhi_Lamh_ptassoc[ipt_trigg][ipt_assoc]);
573        }
574      }
575
576      //PeakYield
577      pair<double,double> NearInterval={-0.9,0.9};
578      pair<double,double> AwayInterval={M_PI-1.4,M_PI+1.4};
579
580      for (int imult = MULT_BINS-1; imult > -1; --imult) {
581        //fig 3
582        IntegratePeakByPT(_hist_hh_NearSideYield_mult[imult],_hist_dPhi_hh_mult_fin[imult], NearInterval,8);
583        IntegratePeakByPT(_hist_K0h_NearSideYield_mult[imult],_hist_dPhi_K0h_mult_fin[imult], NearInterval,8);
584        IntegratePeakByPT(_hist_Lamh_NearSideYield_mult[imult],_hist_dPhi_Lamh_mult_fin[imult], NearInterval,8);
585
586        IntegratePeakByPT(_hist_hh_AwaySideYield_mult[imult],_hist_dPhi_hh_mult_fin[imult], AwayInterval,8);
587        IntegratePeakByPT(_hist_K0h_AwaySideYield_mult[imult],_hist_dPhi_K0h_mult_fin[imult], AwayInterval,8);
588        IntegratePeakByPT(_hist_Lamh_AwaySideYield_mult[imult],_hist_dPhi_Lamh_mult_fin[imult], AwayInterval,8);
589
590        //fig 4
591        if (imult<MULT_BINS-1) {
592          sdivide(_hist_hh_NearSideYield_mult[imult], _hist_hh_NearSideYield_mult[6], _hist_hh_NearSideYield_mult_ratio[imult],8,false);
593          sdivide(_hist_hh_AwaySideYield_mult[imult], _hist_hh_AwaySideYield_mult[6], _hist_hh_AwaySideYield_mult_ratio[imult],8,false);
594
595          sdivide(_hist_K0h_NearSideYield_mult[imult], _hist_K0h_NearSideYield_mult[6], _hist_K0h_NearSideYield_mult_ratio[imult],6,true);
596          sdivide(_hist_K0h_AwaySideYield_mult[imult], _hist_K0h_AwaySideYield_mult[6], _hist_K0h_AwaySideYield_mult_ratio[imult],6,true);
597          sdivide(_hist_Lamh_NearSideYield_mult[imult], _hist_Lamh_NearSideYield_mult[6], _hist_Lamh_NearSideYield_mult_ratio[imult],6,true);
598          if(imult==1)sdivide(_hist_Lamh_AwaySideYield_mult[imult], _hist_Lamh_AwaySideYield_mult[6], _hist_Lamh_AwaySideYield_mult_ratio[imult],5,true);
599          else sdivide(_hist_Lamh_AwaySideYield_mult[imult], _hist_Lamh_AwaySideYield_mult[6], _hist_Lamh_AwaySideYield_mult_ratio[imult],6,true);
600        }
601      }
602
603      //fig 5
604      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS; ++ipt_trigg) {
605        IntegratePeakByPT(_hist_hh_NearSideYield_ptassoc[ipt_trigg], _hist_dPhi_hh_ptassoc_fin[ipt_trigg], NearInterval,ipt_trigg);
606        IntegratePeakByPT(_hist_hh_AwaySideYield_ptassoc[ipt_trigg], _hist_dPhi_hh_ptassoc_fin[ipt_trigg], AwayInterval,ipt_trigg);
607        IntegratePeakByPT(_hist_K0h_NearSideYield_ptassoc[ipt_trigg], _hist_dPhi_K0h_ptassoc_fin[ipt_trigg], NearInterval,ipt_trigg);
608        IntegratePeakByPT(_hist_K0h_AwaySideYield_ptassoc[ipt_trigg], _hist_dPhi_K0h_ptassoc_fin[ipt_trigg], AwayInterval,ipt_trigg);
609        if(ipt_trigg<7)IntegratePeakByPT(_hist_Lamh_NearSideYield_ptassoc[ipt_trigg], _hist_dPhi_Lamh_ptassoc_fin[ipt_trigg], NearInterval,ipt_trigg);
610
611        if(ipt_trigg==6)IntegratePeakByPT(_hist_Lamh_AwaySideYield_ptassoc[ipt_trigg], _hist_dPhi_Lamh_ptassoc_fin[ipt_trigg], AwayInterval,2);
612        else if(ipt_trigg==7) continue;
613        else IntegratePeakByPT(_hist_Lamh_AwaySideYield_ptassoc[ipt_trigg], _hist_dPhi_Lamh_ptassoc_fin[ipt_trigg], AwayInterval,ipt_trigg);
614      }
615
616      //fig 8
617      for (int imult = 0; imult < MULT_BINS; ++imult) {
618        sdivide(_hist_K0h_NearSideYield_mult[imult], _hist_hh_NearSideYield_mult[imult], _hist_K0h_NearSideYield_ratioTo_hh_mult[imult],7,false);
619        sdivide(_hist_K0h_AwaySideYield_mult[imult], _hist_hh_AwaySideYield_mult[imult], _hist_K0h_AwaySideYield_ratioTo_hh_mult[imult],7,false);
620
621        sdivide(_hist_Lamh_NearSideYield_mult[imult], _hist_hh_NearSideYield_mult[imult], _hist_Lamh_NearSideYield_ratioTo_hh_mult[imult],7,false);
622        sdivide(_hist_Lamh_AwaySideYield_mult[imult], _hist_hh_AwaySideYield_mult[imult], _hist_Lamh_AwaySideYield_ratioTo_hh_mult[imult],7,false);
623      }
624
625      //fig 9
626      for (int ipt_trigg = 0; ipt_trigg < PT_TRIGG_BINS-1; ++ipt_trigg) {
627        sdivide(_hist_K0h_NearSideYield_ptassoc[ipt_trigg], _hist_hh_NearSideYield_ptassoc[ipt_trigg], _hist_K0h_NearSideYield_ratioTo_hh_ptassoc[ipt_trigg],ipt_trigg,false);
628        sdivide(_hist_K0h_AwaySideYield_ptassoc[ipt_trigg], _hist_hh_AwaySideYield_ptassoc[ipt_trigg], _hist_K0h_AwaySideYield_ratioTo_hh_ptassoc[ipt_trigg],ipt_trigg,false);
629
630        sdivide(_hist_Lamh_NearSideYield_ptassoc[ipt_trigg], _hist_hh_NearSideYield_ptassoc[ipt_trigg], _hist_Lamh_NearSideYield_ratioTo_hh_ptassoc[ipt_trigg],ipt_trigg,false);
631        if(ipt_trigg<6)sdivide(_hist_Lamh_AwaySideYield_ptassoc[ipt_trigg], _hist_hh_AwaySideYield_ptassoc[ipt_trigg], _hist_Lamh_AwaySideYield_ratioTo_hh_ptassoc[ipt_trigg],ipt_trigg,false);
632        else sdivide(_hist_Lamh_AwaySideYield_ptassoc[ipt_trigg], _hist_hh_AwaySideYield_ptassoc[ipt_trigg], _hist_Lamh_AwaySideYield_ratioTo_hh_ptassoc[ipt_trigg],2,false);
633      }
634    }
635
636    /// @}
637
638
639  private:
640
641    static const int PT_TRIGG_BINS = 8;
642    static const int PT_ASSOC_BINS = 10;
643    static const int MULT_BINS = 7;
644    static const int N_phibins = 72;
645
646    /// @name Histograms
647    /// @{
648
649    Histo1DGroupPtr _hist_mix_hh, _hist_mix_K0h, _hist_mix_Lamh;
650
651    CounterPtr _counterChargedTriggers_mult[MULT_BINS][PT_TRIGG_BINS];
652    CounterPtr _counterK0Triggers_mult[MULT_BINS][PT_TRIGG_BINS];
653    CounterPtr _counterLamTriggers_mult[MULT_BINS][PT_TRIGG_BINS];
654
655    Histo1DGroupPtr _hist_hh_2D_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
656    Histo1DGroupPtr _hist_K0h_2D_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
657    Histo1DGroupPtr _hist_Lamh_2D_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
658
659    Histo1DGroupPtr _hist_hh_2D_mult[MULT_BINS][PT_TRIGG_BINS];
660    Histo1DGroupPtr _hist_K0h_2D_mult[MULT_BINS][PT_TRIGG_BINS];
661    Histo1DGroupPtr _hist_Lamh_2D_mult[MULT_BINS][PT_TRIGG_BINS];
662
663    Scatter2DPtr _hist_dPhi_hh_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
664    Scatter2DPtr _hist_dPhi_K0h_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
665    Scatter2DPtr _hist_dPhi_Lamh_ptassoc[PT_TRIGG_BINS][PT_ASSOC_BINS];
666
667    Scatter2DPtr _hist_dPhi_hh_ptassoc_fin[PT_TRIGG_BINS][PT_ASSOC_BINS];
668    Scatter2DPtr _hist_dPhi_K0h_ptassoc_fin[PT_TRIGG_BINS][PT_ASSOC_BINS];
669    Scatter2DPtr _hist_dPhi_Lamh_ptassoc_fin[PT_TRIGG_BINS][PT_ASSOC_BINS];
670
671    Scatter2DPtr _hist_dPhi_hh_mult[MULT_BINS][PT_TRIGG_BINS];
672    Scatter2DPtr _hist_dPhi_K0h_mult[MULT_BINS][PT_TRIGG_BINS];
673    Scatter2DPtr _hist_dPhi_Lamh_mult[MULT_BINS][PT_TRIGG_BINS];
674
675    Scatter2DPtr _hist_dPhi_hh_mult_fin[MULT_BINS][PT_TRIGG_BINS];
676    Scatter2DPtr _hist_dPhi_K0h_mult_fin[MULT_BINS][PT_TRIGG_BINS];
677    Scatter2DPtr _hist_dPhi_Lamh_mult_fin[MULT_BINS][PT_TRIGG_BINS];
678
679    Scatter2DPtr _hist_K0h_NearSideYield_ratioTo_hh_mult[MULT_BINS];
680    Scatter2DPtr _hist_K0h_AwaySideYield_ratioTo_hh_mult[MULT_BINS];
681    Scatter2DPtr _hist_Lamh_NearSideYield_ratioTo_hh_mult[MULT_BINS];
682    Scatter2DPtr _hist_Lamh_AwaySideYield_ratioTo_hh_mult[MULT_BINS];
683
684    Scatter2DPtr _hist_K0h_NearSideYield_ratioTo_hh_ptassoc[PT_TRIGG_BINS-1];
685    Scatter2DPtr _hist_K0h_AwaySideYield_ratioTo_hh_ptassoc[PT_TRIGG_BINS-1];
686    Scatter2DPtr _hist_Lamh_NearSideYield_ratioTo_hh_ptassoc[PT_TRIGG_BINS-1];
687    Scatter2DPtr _hist_Lamh_AwaySideYield_ratioTo_hh_ptassoc[PT_TRIGG_BINS-1];
688
689    Scatter2DPtr _hist_hh_NearSideYield_mult[MULT_BINS];
690    Scatter2DPtr _hist_K0h_NearSideYield_mult[MULT_BINS];
691    Scatter2DPtr _hist_Lamh_NearSideYield_mult[MULT_BINS];
692    Scatter2DPtr _hist_hh_AwaySideYield_mult[MULT_BINS];
693    Scatter2DPtr _hist_K0h_AwaySideYield_mult[MULT_BINS];
694    Scatter2DPtr _hist_Lamh_AwaySideYield_mult[MULT_BINS];
695
696    Scatter2DPtr _hist_hh_NearSideYield_mult_ratio[MULT_BINS];
697    Scatter2DPtr _hist_K0h_NearSideYield_mult_ratio[MULT_BINS];
698    Scatter2DPtr _hist_Lamh_NearSideYield_mult_ratio[MULT_BINS];
699    Scatter2DPtr _hist_hh_AwaySideYield_mult_ratio[MULT_BINS];
700    Scatter2DPtr _hist_K0h_AwaySideYield_mult_ratio[MULT_BINS];
701    Scatter2DPtr _hist_Lamh_AwaySideYield_mult_ratio[MULT_BINS];
702
703    Scatter2DPtr _hist_hh_NearSideYield_ptassoc[PT_TRIGG_BINS];
704    Scatter2DPtr _hist_hh_AwaySideYield_ptassoc[PT_TRIGG_BINS];
705    Scatter2DPtr _hist_K0h_NearSideYield_ptassoc[PT_TRIGG_BINS];
706    Scatter2DPtr _hist_K0h_AwaySideYield_ptassoc[PT_TRIGG_BINS];
707    Scatter2DPtr _hist_Lamh_NearSideYield_ptassoc[PT_TRIGG_BINS-1];
708    Scatter2DPtr _hist_Lamh_AwaySideYield_ptassoc[PT_TRIGG_BINS-1];
709
710    vector<double> multiplicityBins;
711    vector<double> etabins;
712
713    vector<double> bins_pt_trigg = {3. ,4. ,5. ,6. ,7. ,9. ,11. ,15. ,20.};
714    vector<double> bins_pt_assoc = {1. ,2., 3. ,4. ,5. ,6. ,7. ,9. ,11. ,15., 20.};
715    vector<string> mulsel_name = {"000-001", "001-003", "003-007", "007-015", "015-050", "050-100", "MB"};
716    vector<string> bins_pt_trigg_name = {"3-4", "4-5", "5-6", "6-7", "7-9", "9-11", "11-15", "15-20"};
717    vector<string> bins_pt_assoc_name = {"_1-2","_2-3", "_3-4", "_4-5", "_5-6", "_6-7", "_7-9", "_9-11", "_11-15", "_15-20"};
718
719    /// @}
720
721  };
722
723
724  RIVET_DECLARE_PLUGIN(ALICE_2021_I1891391);
725
726}