@@ -105,6 +105,8 @@ struct hadronnucleicorrelation {
105105 // Mixing parameters
106106 Configurable<int > _vertexNbinsToMix{" vertexNbinsToMix" , 10 , " Number of vertexZ bins for the mixing" };
107107 Configurable<int > _multNsubBins{" multSubBins" , 10 , " number of sub-bins to perform the mixing within" };
108+ Configurable<float > maxmultmix{" maxmultmix" , 20 , " maximum multiplicity to mix" };
109+
108110
109111 // pT/A bins
110112 Configurable<std::vector<double >> pTBins{" pTBins" , {0 .6f , 1 .0f , 1 .2f , 2 .f }, " p_{T} bins" };
@@ -1814,6 +1816,28 @@ struct hadronnucleicorrelation {
18141816 continue ;
18151817 }
18161818
1819+ int vertexBinToMix = std::floor ((collision.posZ () + cutzvertex) / (2 * cutzvertex / _vertexNbinsToMix));
1820+ int centBinToMix = std::floor (collision.mult () / (maxmultmix / _multNsubBins));
1821+
1822+ if (collision.mult ()>maxmultmix) centBinToMix=_multNsubBins-1 ; // to avoid overflow in centrality bin
1823+ if (centBinToMix<0 ) centBinToMix=0 ; // to avoid underflow in centrality bin
1824+
1825+ if (selectedparticlesMC_antid.find (collision1.globalIndex ()) != selectedparticlesMC_antid.end ()) {
1826+ mixbinsMC_antid[std::pair<int , float >{vertexBinToMix, centBinToMix}].push_back (std::make_shared<decltype (collision1)>(collision1));
1827+ }
1828+
1829+ if (selectedparticlesMC_d.find (collision1.globalIndex ()) != selectedparticlesMC_d.end ()) {
1830+ mixbinsMC_d[std::pair<int , float >{vertexBinToMix, centBinToMix}].push_back (std::make_shared<decltype (collision1)>(collision1));
1831+ }
1832+
1833+ if (selectedparticlesMC_antip.find (collision1.globalIndex ()) != selectedparticlesMC_antip.end ()) {
1834+ mixbinsMC_antip[std::pair<int , float >{vertexBinToMix, centBinToMix}].push_back (std::make_shared<decltype (collision1)>(collision1));
1835+ }
1836+
1837+ if (selectedparticlesMC_p.find (collision1.globalIndex ()) != selectedparticlesMC_p.end ()) {
1838+ mixbinsMC_p[std::pair<int , float >{vertexBinToMix, centBinToMix}].push_back (std::make_shared<decltype (collision1)>(collision1));
1839+ }
1840+
18171841 // anti-d - anti-p correlation
18181842 if (selectedparticlesMC_antid.find (collision1.globalIndex ()) != selectedparticlesMC_antid.end ()) {
18191843 if (selectedparticlesMC_antip.find (collision1.globalIndex ()) != selectedparticlesMC_antip.end ()) {
0 commit comments