Rivet analyses referenceALICE_2021_I1891391$K_{S}^{0}$ - and (anti-)$\Lambda$-hadron correlations in pp collisions at $\sqrt{s} = 13$ TeVExperiment: ALICE (LHC) Inspire ID: 1891391 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV
$\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_CENT_PP","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}
|