@@ -179,6 +179,8 @@ struct hadronnucleicorrelation {
179179 std::vector<std::shared_ptr<TH3>> hPIDEtaPhiGen_AntiDeAntiPr_ME;
180180 std::vector<std::shared_ptr<TH3>> hEtaPhiGen_AntiPrAntiPr_SE;
181181 std::vector<std::shared_ptr<TH3>> hEtaPhiGen_AntiPrAntiPr_ME;
182+ std::vector<std::shared_ptr<TH3>> hEtaPhiGen_AntiPrPr_SE;
183+ std::vector<std::shared_ptr<TH3>> hEtaPhiGen_AntiPrPr_ME;
182184
183185 int nBinspT;
184186 TH2F* hEffpTEta_proton;
@@ -264,6 +266,13 @@ struct hadronnucleicorrelation {
264266 auto htempMEGen_AntiPrAntiPr = registry.add <TH3>(Form (" hEtaPhiGen_AntiPrAntiPr_ME_pt%02.0f%02.0f" , pTBins.value .at (i) * 10 , pTBins.value .at (i + 1 ) * 10 ),
265267 Form (" Gen #Delta#eta#Delta#phi (%.1f<p_{T} #bar{p} <%.1f GeV/c)" , pTBins.value .at (i), pTBins.value .at (i + 1 )), {HistType::kTH3F , {DeltaEtaAxis, DeltaPhiAxis, ptBinnedAxis}});
266268 hEtaPhiGen_AntiPrAntiPr_ME.push_back (std::move (htempMEGen_AntiPrAntiPr));
269+
270+ auto htempSEGen_AntiPrPr = registry.add <TH3>(Form (" hEtaPhiGen_AntiPrPr_SE_pt%02.0f%02.0f" , pTBins.value .at (i) * 10 , pTBins.value .at (i + 1 ) * 10 ),
271+ Form (" Gen #Delta#eta#Delta#phi (%.1f<p_{T} p <%.1f GeV/c)" , pTBins.value .at (i), pTBins.value .at (i + 1 )), {HistType::kTH3F , {DeltaEtaAxis, DeltaPhiAxis, ptBinnedAxis}});
272+ hEtaPhiGen_AntiPrPr_SE.push_back (std::move (htempSEGen_AntiPrPr));
273+ auto htempMEGen_AntiPrPr = registry.add <TH3>(Form (" hEtaPhiGen_AntiPrPr_ME_pt%02.0f%02.0f" , pTBins.value .at (i) * 10 , pTBins.value .at (i + 1 ) * 10 ),
274+ Form (" Gen #Delta#eta#Delta#phi (%.1f<p_{T} p <%.1f GeV/c)" , pTBins.value .at (i), pTBins.value .at (i + 1 )), {HistType::kTH3F , {DeltaEtaAxis, DeltaPhiAxis, ptBinnedAxis}});
275+ hEtaPhiGen_AntiPrPr_ME.push_back (std::move (htempMEGen_AntiPrPr));
267276 }
268277 }
269278
@@ -713,7 +722,7 @@ struct hadronnucleicorrelation {
713722 }
714723
715724 template <int ME, typename Type>
716- void mixMCParticles (Type const & particles1, Type const & particles2)
725+ void mixMCParticles (Type const & particles1, Type const & particles2, bool ispap )
717726 {
718727 for (auto const & it1 : particles1) {
719728 for (auto const & it2 : particles2) {
@@ -726,9 +735,15 @@ struct hadronnucleicorrelation {
726735 if (it1->pt () >= pTBins.value .at (k) && it1->pt () < pTBins.value .at (k + 1 )) {
727736 // Use correct histogram based on ME flag
728737 if constexpr (ME) {
729- hEtaPhiGen_AntiDeAntiPr_ME[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
738+ if (ispap)
739+ hEtaPhiGen_AntiPrPr_ME[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
740+ else
741+ hEtaPhiGen_AntiDeAntiPr_ME[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
730742 } else {
731- hEtaPhiGen_AntiDeAntiPr_SE[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
743+ if (ispap)
744+ hEtaPhiGen_AntiPrPr_SE[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
745+ else
746+ hEtaPhiGen_AntiDeAntiPr_SE[k]->Fill (deltaEtaGen, deltaPhiGen, it2->pt ());
732747 }
733748 }
734749 }
@@ -1769,25 +1784,10 @@ struct hadronnucleicorrelation {
17691784 selectedparticlesMC_antid[particle.mcCollisionId ()].push_back (std::make_shared<decltype (particle)>(particle));
17701785 }
17711786 if (particle.pdgCode () == pdgProton) {
1772- if (!particle.has_daughters ()) {
1773- selectedparticlesMC_p[particle.mcCollisionId ()].push_back (std::make_shared<decltype (particle)>(particle));
1774- registry.fill (HIST (" Generated/hQAProtons" ), 3.5 );
1775- } else {
1776- bool isd = false ;
1777- for (auto & dau : particle.daughters_as <aod::McParticles>()) {
1778- if (dau.pdgCode () == pdgDeuteron) {
1779- isd = true ;
1780- }
1781- }
1782- if (isd) {
1783- registry.fill (HIST (" Generated/hQAProtons" ), 4.5 );
1784- }
1785- }
1787+ selectedparticlesMC_p[particle.mcCollisionId ()].push_back (std::make_shared<decltype (particle)>(particle));
17861788 }
17871789 if (particle.pdgCode () == -pdgProton) {
1788- if (!particle.has_daughters ()) {
1789- selectedparticlesMC_antip[particle.mcCollisionId ()].push_back (std::make_shared<decltype (particle)>(particle));
1790- }
1790+ selectedparticlesMC_antip[particle.mcCollisionId ()].push_back (std::make_shared<decltype (particle)>(particle));
17911791 }
17921792 }
17931793
@@ -1798,7 +1798,7 @@ struct hadronnucleicorrelation {
17981798 // anti-d - anti-p correlation
17991799 if (selectedparticlesMC_antid.find (collision1.globalIndex ()) != selectedparticlesMC_antid.end ()) {
18001800 if (selectedparticlesMC_antip.find (collision1.globalIndex ()) != selectedparticlesMC_antip.end ()) {
1801- mixMCParticles<0 >(selectedparticlesMC_antid[collision1.globalIndex ()], selectedparticlesMC_antip[collision1.globalIndex ()]); // mixing SE
1801+ mixMCParticles<0 >(selectedparticlesMC_antid[collision1.globalIndex ()], selectedparticlesMC_antip[collision1.globalIndex ()], 0 ); // mixing SE
18021802 }
18031803
18041804 int stop1 = 0 ;
@@ -1814,7 +1814,7 @@ struct hadronnucleicorrelation {
18141814 }
18151815
18161816 if (selectedparticlesMC_antip.find (collision2.globalIndex ()) != selectedparticlesMC_antip.end ()) {
1817- mixMCParticles<1 >(selectedparticlesMC_antid[collision1.globalIndex ()], selectedparticlesMC_antip[collision2.globalIndex ()]); // mixing ME
1817+ mixMCParticles<1 >(selectedparticlesMC_antid[collision1.globalIndex ()], selectedparticlesMC_antip[collision2.globalIndex ()], 0 ); // mixing ME
18181818 }
18191819
18201820 stop1++;
@@ -1825,7 +1825,7 @@ struct hadronnucleicorrelation {
18251825 if (domatterGen) {
18261826 if (selectedparticlesMC_d.find (collision1.globalIndex ()) != selectedparticlesMC_d.end ()) {
18271827 if (selectedparticlesMC_p.find (collision1.globalIndex ()) != selectedparticlesMC_p.end ()) {
1828- mixMCParticles<0 >(selectedparticlesMC_d[collision1.globalIndex ()], selectedparticlesMC_p[collision1.globalIndex ()]); // mixing SE
1828+ mixMCParticles<0 >(selectedparticlesMC_d[collision1.globalIndex ()], selectedparticlesMC_p[collision1.globalIndex ()], 0 ); // mixing SE
18291829 }
18301830
18311831 int stop2 = 0 ;
@@ -1841,7 +1841,7 @@ struct hadronnucleicorrelation {
18411841 }
18421842
18431843 if (selectedparticlesMC_p.find (collision2.globalIndex ()) != selectedparticlesMC_p.end ()) {
1844- mixMCParticles<1 >(selectedparticlesMC_d[collision1.globalIndex ()], selectedparticlesMC_p[collision2.globalIndex ()]); // mixing ME
1844+ mixMCParticles<1 >(selectedparticlesMC_d[collision1.globalIndex ()], selectedparticlesMC_p[collision2.globalIndex ()], 0 ); // mixing ME
18451845 }
18461846
18471847 stop2++;
@@ -1899,6 +1899,32 @@ struct hadronnucleicorrelation {
18991899 }
19001900 }
19011901 }
1902+
1903+ // p-antip correlation
1904+ if (selectedparticlesMC_p.find (collision1.globalIndex ()) != selectedparticlesMC_p.end ()) {
1905+ if (selectedparticlesMC_antip.find (collision1.globalIndex ()) != selectedparticlesMC_antip.end ()) {
1906+ mixMCParticles<0 >(selectedparticlesMC_p[collision1.globalIndex ()], selectedparticlesMC_antip[collision1.globalIndex ()], 1 ); // mixing SE
1907+ }
1908+
1909+ int stop5 = 0 ;
1910+
1911+ for (auto collision2 : mcCollisions) { // nested loop on collisions
1912+
1913+ if (collision1.globalIndex () == collision2.globalIndex ()) {
1914+ continue ;
1915+ }
1916+
1917+ if (stop5 > maxmixcollsGen) {
1918+ break ;
1919+ }
1920+
1921+ if (selectedparticlesMC_antip.find (collision2.globalIndex ()) != selectedparticlesMC_antip.end ()) {
1922+ mixMCParticles<1 >(selectedparticlesMC_p[collision1.globalIndex ()], selectedparticlesMC_antip[collision2.globalIndex ()], 1 ); // mixing ME
1923+ }
1924+
1925+ stop5++;
1926+ }
1927+ }
19021928 }
19031929
19041930 // clearing up
0 commit comments