@@ -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