@@ -428,6 +428,11 @@ struct Lambda1520analysisinpp {
428428 histos.add (" Result/MC/h3lambda1520Recoinvmass" , " Invariant mass of Reconstructed MC #Lambda(1520)0" , kTHnSparseF , {axisMult, axisPt, axisMassLambda1520});
429429 histos.add (" Result/MC/h3antilambda1520Recoinvmass" , " Invariant mass of Reconstructed MC Anti-#Lambda(1520)0" , kTHnSparseF , {axisMult, axisPt, axisMassLambda1520});
430430 }
431+ if (doprocessdummy) {
432+ histos.add (" Result/dummy/Genprotonpt" , " pT distribution of True MC Proton" , kTH3F , {axisMClabel, axisPt, axisMult});
433+ histos.add (" Result/dummy/Genlambdapt" , " pT distribution of True MC #Lambda(1520)" , kTH3F , {axisMClabel, axisPt, axisMult});
434+ histos.add (" Result/dummy/Genxipt" , " pT distribution of True MC #Xi(1520)" , kTH3F , {axisMClabel, axisPt, axisMult});
435+ }
431436
432437 // Print output histograms statistics
433438 LOG (info) << " Size of the histograms in Lambda1520analysisinpp:" ;
@@ -1284,6 +1289,119 @@ struct Lambda1520analysisinpp {
12841289 }
12851290 }
12861291 PROCESS_SWITCH (Lambda1520analysisinpp, processME, " Process EventMixing light without partition" , false );
1292+
1293+ void processdummy (MCEventCandidates::iterator const & collision, aod::McCollisions const &, aod::McParticles const & mcParticles)
1294+ {
1295+ bool isInAfterAllCuts = colCuts.isSelected (collision, false );
1296+ bool inVtx10 = (std::abs (collision.mcCollision ().posZ ()) > configEvents.cfgEvtZvtx ) ? false : true ;
1297+ bool isTriggerTVX = collision.selection_bit (aod::evsel::kIsTriggerTVX );
1298+ bool isSel8 = collision.sel8 ();
1299+
1300+ auto mcPartsAll = mcParticles.sliceBy (perMcCollision, collision.mcCollision ().globalIndex ());
1301+
1302+ bool isTrueINELgt0 = pwglf::isINELgt0mc (mcPartsAll, pdg);
1303+ // bool isTrueINELgt0 = collision.isInelGt0();
1304+
1305+ auto centrality = centEst (collision);
1306+
1307+ auto computePtL = [&](float pt, float m_ref) {
1308+ float ptL2 = pt * pt + m_ref * m_ref - MassLambda1520 * MassLambda1520;
1309+ return (ptL2 > 0 ) ? std::sqrt (ptL2) : -1 .f ;
1310+ };
1311+
1312+ for (auto & part : mcPartsAll) {
1313+
1314+ if (!part.isPhysicalPrimary ())
1315+ continue ;
1316+
1317+ float pt = part.pt ();
1318+
1319+ if (cUseRapcutMC && std::abs (part.y ()) > configTracks.cfgCutRapidity ) // rapidity cut
1320+ continue ;
1321+
1322+ if (std::abs (part.pdgCode ()) == kProton ) {
1323+
1324+ float ptL = computePtL (pt, massPr);
1325+ if (ptL < 0 )
1326+ continue ;
1327+
1328+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 0 , ptL, centrality);
1329+
1330+ if (inVtx10) // vtx10
1331+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 1 , ptL, centrality);
1332+
1333+ if (inVtx10 && isSel8) // vtx10, sel8
1334+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 2 , ptL, centrality);
1335+
1336+ if (inVtx10 && isTriggerTVX) // vtx10, TriggerTVX
1337+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 3 , ptL, centrality);
1338+
1339+ if (inVtx10 && isTrueINELgt0) // vtx10, INEL>0
1340+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 4 , ptL, centrality);
1341+
1342+ if (isInAfterAllCuts) // after all event selection
1343+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 5 , ptL, centrality);
1344+
1345+ if (isInAfterAllCuts && isTrueINELgt0) // after all event selection && INEL>0
1346+ histos.fill (HIST (" Result/dummy/Genprotonpt" ), 6 , ptL, centrality);
1347+ }
1348+
1349+ if (std::abs (part.pdgCode ()) == kLambda0 ) {
1350+
1351+ float ptL = computePtL (pt, MassLambda0);
1352+ if (ptL < 0 )
1353+ continue ;
1354+
1355+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 0 , ptL, centrality);
1356+
1357+ if (inVtx10) // vtx10
1358+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 1 , ptL, centrality);
1359+
1360+ if (inVtx10 && isSel8) // vtx10, sel8
1361+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 2 , ptL, centrality);
1362+
1363+ if (inVtx10 && isTriggerTVX) // vtx10, TriggerTVX
1364+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 3 , ptL, centrality);
1365+
1366+ if (inVtx10 && isTrueINELgt0) // vtx10, INEL>0
1367+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 4 , ptL, centrality);
1368+
1369+ if (isInAfterAllCuts) // after all event selection
1370+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 5 , ptL, centrality);
1371+
1372+ if (isInAfterAllCuts && isTrueINELgt0) // after all event selection && INEL>0
1373+ histos.fill (HIST (" Result/dummy/Genlambdapt" ), 6 , ptL, centrality);
1374+ }
1375+
1376+ if (std::abs (part.pdgCode ()) == PDG_t::kXiMinus ) {
1377+
1378+ float ptL = computePtL (pt, MassXiMinus);
1379+ if (ptL < 0 )
1380+ continue ;
1381+
1382+ histos.fill (HIST (" Result/dummy/Genxipt" ), 0 , ptL, centrality);
1383+
1384+ if (inVtx10) // vtx10
1385+ histos.fill (HIST (" Result/dummy/Genxipt" ), 1 , ptL, centrality);
1386+
1387+ if (inVtx10 && isSel8) // vtx10, sel8
1388+ histos.fill (HIST (" Result/dummy/Genxipt" ), 2 , ptL, centrality);
1389+
1390+ if (inVtx10 && isTriggerTVX) // vtx10, TriggerTVX
1391+ histos.fill (HIST (" Result/dummy/Genxipt" ), 3 , ptL, centrality);
1392+
1393+ if (inVtx10 && isTrueINELgt0) // vtx10, INEL>0
1394+ histos.fill (HIST (" Result/dummy/Genxipt" ), 4 , ptL, centrality);
1395+
1396+ if (isInAfterAllCuts) // after all event selection
1397+ histos.fill (HIST (" Result/dummy/Genxipt" ), 5 , ptL, centrality);
1398+
1399+ if (isInAfterAllCuts && isTrueINELgt0) // after all event selection && INEL>0
1400+ histos.fill (HIST (" Result/dummy/Genxipt" ), 6 , ptL, centrality);
1401+ }
1402+ }
1403+ }
1404+ PROCESS_SWITCH (Lambda1520analysisinpp, processdummy, " Process dummy" , false );
12871405};
12881406
12891407WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments