Skip to content

Commit 4f12307

Browse files
authored
[PWGLF] nuclei-proton correlation, avoid autocorrelations (#9955)
1 parent 9e3fe6b commit 4f12307

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

PWGLF/Tasks/Nuspex/hadronnucleicorrelation.cxx

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ struct hadronnucleicorrelation {
6161
Configurable<bool> isMC{"isMC", false, "is MC"};
6262
Configurable<bool> isMCGen{"isMCGen", false, "is isMCGen"};
6363
Configurable<bool> isPrim{"isPrim", true, "is isPrim"};
64+
Configurable<bool> domatterGen{"domatterGen", true, "domatterGen"};
6465
Configurable<bool> mcCorrelation{"mcCorrelation", false, "true: build the correlation function only for SE"};
6566
Configurable<bool> docorrection{"docorrection", false, "do efficiency correction"};
6667

@@ -1303,10 +1304,14 @@ struct hadronnucleicorrelation {
13031304
selectedparticlesMC_antid[particle.mcCollisionId()].push_back(std::make_shared<decltype(particle)>(particle));
13041305
}
13051306
if (particle.pdgCode() == pdgProton) {
1306-
selectedparticlesMC_p[particle.mcCollisionId()].push_back(std::make_shared<decltype(particle)>(particle));
1307+
if (!particle.has_daughters()) {
1308+
selectedparticlesMC_p[particle.mcCollisionId()].push_back(std::make_shared<decltype(particle)>(particle));
1309+
}
13071310
}
13081311
if (particle.pdgCode() == -pdgProton) {
1309-
selectedparticlesMC_antip[particle.mcCollisionId()].push_back(std::make_shared<decltype(particle)>(particle));
1312+
if (!particle.has_daughters()) {
1313+
selectedparticlesMC_antip[particle.mcCollisionId()].push_back(std::make_shared<decltype(particle)>(particle));
1314+
}
13101315
}
13111316
}
13121317

@@ -1341,28 +1346,30 @@ struct hadronnucleicorrelation {
13411346
}
13421347

13431348
// d - p correlation
1344-
if (selectedparticlesMC_d.find(collision1.globalIndex()) != selectedparticlesMC_d.end()) {
1345-
if (selectedparticlesMC_p.find(collision1.globalIndex()) != selectedparticlesMC_p.end()) {
1346-
mixMCParticles<0>(selectedparticlesMC_d[collision1.globalIndex()], selectedparticlesMC_p[collision1.globalIndex()]); // mixing SE
1347-
}
1349+
if (domatterGen) {
1350+
if (selectedparticlesMC_d.find(collision1.globalIndex()) != selectedparticlesMC_d.end()) {
1351+
if (selectedparticlesMC_p.find(collision1.globalIndex()) != selectedparticlesMC_p.end()) {
1352+
mixMCParticles<0>(selectedparticlesMC_d[collision1.globalIndex()], selectedparticlesMC_p[collision1.globalIndex()]); // mixing SE
1353+
}
13481354

1349-
int stop2 = 0;
1355+
int stop2 = 0;
13501356

1351-
for (auto collision2 : mcCollisions) { // nested loop on collisions
1357+
for (auto collision2 : mcCollisions) { // nested loop on collisions
13521358

1353-
if (collision1.globalIndex() == collision2.globalIndex()) {
1354-
continue;
1355-
}
1359+
if (collision1.globalIndex() == collision2.globalIndex()) {
1360+
continue;
1361+
}
13561362

1357-
if (stop2 > maxmixcollsGen) {
1358-
break;
1359-
}
1363+
if (stop2 > maxmixcollsGen) {
1364+
break;
1365+
}
13601366

1361-
if (selectedparticlesMC_p.find(collision2.globalIndex()) != selectedparticlesMC_p.end()) {
1362-
mixMCParticles<1>(selectedparticlesMC_d[collision1.globalIndex()], selectedparticlesMC_p[collision2.globalIndex()]); // mixing ME
1363-
}
1367+
if (selectedparticlesMC_p.find(collision2.globalIndex()) != selectedparticlesMC_p.end()) {
1368+
mixMCParticles<1>(selectedparticlesMC_d[collision1.globalIndex()], selectedparticlesMC_p[collision2.globalIndex()]); // mixing ME
1369+
}
13641370

1365-
stop2++;
1371+
stop2++;
1372+
}
13661373
}
13671374
}
13681375
}

0 commit comments

Comments
 (0)