@@ -90,7 +90,7 @@ DECLARE_SOA_COLUMN(McJetHfDist, mcJetHfDist, float);
9090DECLARE_SOA_COLUMN (McJetPt, mcJetPt, float );
9191DECLARE_SOA_COLUMN (McJetEta, mcJetEta, float );
9292DECLARE_SOA_COLUMN (McJetPhi, mcJetPhi, float );
93- DECLARE_SOA_COLUMN (McJetNConst, mcJetNConst, float );
93+ DECLARE_SOA_COLUMN (McJetNConst, mcJetNConst, int );
9494DECLARE_SOA_COLUMN (McHfPt, mcHfPt, float );
9595DECLARE_SOA_COLUMN (McHfEta, mcHfEta, float );
9696DECLARE_SOA_COLUMN (McHfPhi, mcHfPhi, float );
@@ -348,15 +348,8 @@ struct HfFragmentationFunction {
348348 }
349349
350350 // reflection information for storage: D0 = +1, D0bar = -1, neither = 0
351- int matchedFrom = 0 ;
352- int decayChannel = o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK;
353351 int selectedAs = 0 ;
354352
355- if (mcdd0cand.flagMcMatchRec () == decayChannel) { // matched to D0 on truth level
356- matchedFrom = 1 ;
357- } else if (mcdd0cand.flagMcMatchRec () == -decayChannel) { // matched to D0bar on truth level
358- matchedFrom = -1 ;
359- }
360353 // bitwise AND operation: Checks whether BIT(i) is set, regardless of other bits
361354 if (mcdd0cand.candidateSelFlag () & BIT (0 )) { // CandidateSelFlag == BIT(0) -> selected as D0
362355 selectedAs = 1 ;
@@ -368,8 +361,8 @@ struct HfFragmentationFunction {
368361 mcddistJetTable (jetutilities::deltaR (mcdjet, mcdd0cand),
369362 mcdjet.pt (), mcdjet.eta (), mcdjet.phi (), mcdjet.tracks_as <aod::JetTracks>().size () + mcdjet.candidates_as <aod::CandidatesD0MCD>().size (), // detector level jet
370363 mcdd0cand.pt (), mcdd0cand.eta (), mcdd0cand.phi (), mcdd0cand.m (), mcdd0cand.y (), (mcdd0cand.originMcRec () == RecoDecay::OriginType::Prompt), // detector level D0 candidate
371- mcdjet.has_matchedJetCand (), mcdd0cand.mlScores ()[0 ], mcdd0cand.mlScores ()[1 ], mcdd0cand.mlScores ()[2 ], // // Machine Learning PID scores: background, prompt, non-prompt
372- matchedFrom , selectedAs); // D0 = +1, D0bar = -1, neither = 0
364+ mcdjet.has_matchedJetCand (), mcdd0cand.mlScores ()[0 ], mcdd0cand.mlScores ()[1 ], mcdd0cand.mlScores ()[2 ], // Machine Learning PID scores: background, prompt, non-prompt
365+ static_cast < int >(mcdd0cand. flagMcMatchRec ()) , selectedAs); // +1/-1 = D0(bar)→Kπ, ±2..5 = other D0 channels, 0 = no match
373366 }
374367 }
375368
@@ -442,21 +435,8 @@ struct HfFragmentationFunction {
442435 // obtain leading HF candidate in jet
443436 auto mcdcand = mcdjet.template candidates_first_as <TCandidatesMCD>();
444437
445- // reflection information for storage: HF = +1, HFbar = -1, neither = 0
446- int matchedFrom = 0 ;
447- int decayChannel = 0 ;
448- if (jethfutilities::isD0Table<TCandidatesMCD>()) {
449- decayChannel = o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK;
450- } else if (jethfutilities::isLcTable<TCandidatesMCD>()) {
451- decayChannel = o2::hf_decay::hf_cand_3prong::DecayChannelMain::LcToPKPi;
452- }
453438 int selectedAs = 0 ;
454439
455- if (mcdcand.flagMcMatchRec () == decayChannel) { // matched to HF on truth level
456- matchedFrom = 1 ;
457- } else if (mcdcand.flagMcMatchRec () == -decayChannel) { // matched to HFbar on truth level
458- matchedFrom = -1 ;
459- }
460440 // bitwise AND operation: Checks whether BIT(i) is set, regardless of other bits
461441 if (mcdcand.candidateSelFlag () & BIT (0 )) { // CandidateSelFlag == BIT(0) -> selected as HF
462442 selectedAs = 1 ;
@@ -467,19 +447,19 @@ struct HfFragmentationFunction {
467447 // store matched particle and detector level data in one single table (calculate angular distance in eta-phi plane on the fly)
468448 matchJetTable (jetutilities::deltaR (mcpjet, mcpcand), mcpjet.pt (), mcpjet.eta (), mcpjet.phi (), mcpjet.template tracks_as <aod::JetParticles>().size () + mcpjet.template candidates_as <TCandidatesMCP>().size (), // particle level jet
469449 mcpcand.pt (), mcpcand.eta (), mcpcand.phi (), mcpcand.y (), (mcpcand.originMcGen () == RecoDecay::OriginType::Prompt), // particle level HF
470- jetutilities::deltaR (mcdjet, mcdcand), mcdjet.pt (), mcdjet.eta (), mcdjet.phi (), mcdjet.template tracks_as <aod::JetTracks>().size () + + mcdjet.template candidates_as <TCandidatesMCD>().size (), // detector level jet
450+ jetutilities::deltaR (mcdjet, mcdcand), mcdjet.pt (), mcdjet.eta (), mcdjet.phi (), mcdjet.template tracks_as <aod::JetTracks>().size () + mcdjet.template candidates_as <TCandidatesMCD>().size (), // detector level jet
471451 mcdcand.pt (), mcdcand.eta (), mcdcand.phi (), mcdcand.m (), mcdcand.y (), (mcdcand.originMcRec () == RecoDecay::OriginType::Prompt), // detector level HF
472452 mcdcand.mlScores ()[0 ], mcdcand.mlScores ()[1 ], mcdcand.mlScores ()[2 ], // Machine Learning PID scores: background, prompt, non-prompt
473- matchedFrom , selectedAs); // HF = +1, HFbar = -1, neither = 0
453+ static_cast < int >(mcdcand. flagMcMatchRec ()) , selectedAs); // HF = +1, HFbar = -1, neither = 0
474454 }
475455 } else {
476456 // store matched particle and detector level data in one single table (calculate angular distance in eta-phi plane on the fly)
477- matchJetTable (jetutilities::deltaR (mcpjet, mcpcand), mcpjet.pt (), mcpjet.eta (), mcpjet.phi (), mcpjet.template tracks_as <aod::JetParticles>().size () + + mcpjet.template candidates_as <TCandidatesMCP>().size (), // particle level jet
478- mcpcand.pt (), mcpcand.eta (), mcpcand.phi (), mcpcand.y (), (mcpcand.originMcGen () == RecoDecay::OriginType::Prompt), // particle level HF
479- -2 , -2 , -2 , -2 , -2 , // detector level jet
480- -2 , -2 , -2 , -2 , -2 , -2 , // detector level HF
481- -2 , -2 , -2 , // Machine Learning PID scores: background, prompt, non-prompt
482- -2 , -2 ); // HF = +1, HFbar = -1, neither = 0
457+ matchJetTable (jetutilities::deltaR (mcpjet, mcpcand), mcpjet.pt (), mcpjet.eta (), mcpjet.phi (), mcpjet.template tracks_as <aod::JetParticles>().size () + mcpjet.template candidates_as <TCandidatesMCP>().size (), // particle level jet
458+ mcpcand.pt (), mcpcand.eta (), mcpcand.phi (), mcpcand.y (), (mcpcand.originMcGen () == RecoDecay::OriginType::Prompt), // particle level HF
459+ -2 , -2 , -2 , -2 , -2 , // no detector- level jet found
460+ -2 , -2 , -2 , -2 , -2 , -2 , // no detector- level jet found
461+ -2 , -2 , -2 , // no detector-level jet found
462+ -2 , -2 ); // no detector-level jet found
483463 }
484464 } // end of mcpjets loop
485465 } // end of mccollisions loop
0 commit comments