@@ -116,8 +116,8 @@ struct HfCorrelatorFlowCharmHadronsReduced {
116116
117117 int poolBins{0 };
118118
119- using SameEvtPairsChHad = soa::Filtered<soa::Join<aod::HfcRedSEBases, aod::HfcRedTrigCharms , aod::HfcRedAssTracks>>;
120- using SameEvtPairsHadHad = soa::Filtered<soa::Join<aod::HfcRedSEBases, aod::HfcRedTrigTracks , aod::HfcRedAssTracks>>;
119+ using SameEvtPairsChHad = soa::Filtered<soa::Join<aod::HfcRedSEChBases , aod::HfcRedAssTracks>>;
120+ using SameEvtPairsHadHad = soa::Filtered<soa::Join<aod::HfcRedSEHadBases , aod::HfcRedAssTracks>>;
121121 using AssocTracks = soa::Filtered<soa::Join<aod::HfcRedAssBases, aod::HfcRedAssTracks>>;
122122 using TrigCharmCands = soa::Join<aod::HfcRedTrigBases, aod::HfcRedTrigCharms>;
123123
@@ -261,14 +261,15 @@ struct HfCorrelatorFlowCharmHadronsReduced {
261261 // / \param trigCands are the selected trigger candidates
262262 // / \param assocTracks are the selected associated tracks
263263 // / \param binPolicy is the binning policy for the correlation
264- template <bool fillSparses, bool fillTables, typename TPair, typename TBinningType>
264+ template <bool fillSparses, bool fillTables, typename TPair, typename TTrigCand, typename TBinningType>
265265 void fillSameEvent (TPair const & pair,
266+ TTrigCand const & trigCand,
266267 TBinningType binPolicy)
267268 {
268269 auto collision = pair.template hfcRedCorrColl_as <o2::aod::HfcRedCorrColls>();
269- double ptTrig = pair .ptTrig ();
270- if constexpr (requires { pair .bdtScore0Trig (); }) { // ML selection on bkg score for Charm-Had case
271- if (!isSelBdtBkgScoreCut (pair , ptTrig)) {
270+ double ptTrig = trigCand .ptTrig ();
271+ if constexpr (requires { trigCand .bdtScore0Trig (); }) { // ML selection on bkg score for Charm-Had case
272+ if (!isSelBdtBkgScoreCut (trigCand , ptTrig)) {
272273 return ;
273274 }
274275 }
@@ -282,21 +283,21 @@ struct HfCorrelatorFlowCharmHadronsReduced {
282283 registry.fill (HIST (" hPoolBinTrigSE" ), poolBin);
283284 registry.fill (HIST (" hPoolBinAssocSE" ), poolBin);
284285 if constexpr (fillTables) {
285- if constexpr (requires { pair .bdtScore0Trig (); }) { // Separate Charm-Had and Had-Had cases
286+ if constexpr (requires { trigCand .bdtScore0Trig (); }) { // Separate Charm-Had and Had-Had cases
286287 rowPairSECharmHads (poolBin, ptTrig, pair.ptAssoc (), pair.deltaEta (), pair.deltaPhi (),
287- pair .invMassTrig (), pair .bdtScore0Trig (), pair .bdtScore1Trig (),
288+ trigCand .invMassTrig (), trigCand .bdtScore0Trig (), trigCand .bdtScore1Trig (),
288289 pair.nTpcCrossedRowsAssoc (), pair.itsClsMapAssoc (), pair.itsNClsAssoc (), pair.dcaXYAssoc (), pair.dcaZAssoc ());
289290 } else {
290291 rowPairSEHadHads (poolBin, ptTrig, pair.ptAssoc (), pair.deltaEta (), pair.deltaPhi (),
291- pair .nTpcCrossedRowsTrig (), pair .itsClsMapTrig (), pair .itsNClsTrig (), pair .dcaXYTrig (), pair .dcaZTrig (),
292+ trigCand .nTpcCrossedRowsTrig (), trigCand .itsClsMapTrig (), trigCand .itsNClsTrig (), trigCand .dcaXYTrig (), trigCand .dcaZTrig (),
292293 pair.nTpcCrossedRowsAssoc (), pair.itsClsMapAssoc (), pair.itsNClsAssoc (), pair.dcaXYAssoc (), pair.dcaZAssoc ());
293294 }
294295 rowCollInfos (collision.multiplicity (), collision.numPvContrib (), collision.centrality ());
295296 }
296297 if constexpr (fillSparses) {
297- if constexpr (requires { pair .bdtScore0Trig (); }) { // Separate Charm-Had and Had-Had cases
298+ if constexpr (requires { trigCand .bdtScore0Trig (); }) { // Separate Charm-Had and Had-Had cases
298299 registry.fill (HIST (" hSparseCorrelationsSECharmHad" ), poolBin, ptTrig, pair.ptAssoc (), pair.deltaEta (),
299- pair.deltaPhi (), pair .invMassTrig (), pair .bdtScore0Trig (), pair .bdtScore1Trig ());
300+ pair.deltaPhi (), trigCand .invMassTrig (), trigCand .bdtScore0Trig (), trigCand .bdtScore1Trig ());
300301 } else {
301302 registry.fill (HIST (" hSparseCorrelationsSEHadHad" ), poolBin, ptTrig, pair.ptAssoc (), pair.deltaEta (), pair.deltaPhi ());
302303 }
@@ -370,53 +371,61 @@ struct HfCorrelatorFlowCharmHadronsReduced {
370371 }
371372
372373 void processSameEventCharmHadWMultMix (SameEvtPairsChHad::iterator const & pair,
374+ aod::HfcRedTrigCharms const &,
373375 aod::HfcRedCorrColls const &)
374376 {
377+ auto trigCand = pair.template hfcRedTrigCharm_as <aod::HfcRedTrigCharms>();
375378 if (fillSparses && fillTables) {
376- fillSameEvent<true , true >(pair, binPolicyPosZMult);
379+ fillSameEvent<true , true >(pair, trigCand, binPolicyPosZMult);
377380 } else if (fillSparses) {
378- fillSameEvent<true , false >(pair, binPolicyPosZMult);
381+ fillSameEvent<true , false >(pair, trigCand, binPolicyPosZMult);
379382 } else if (fillTables) {
380- fillSameEvent<false , true >(pair, binPolicyPosZMult);
383+ fillSameEvent<false , true >(pair, trigCand, binPolicyPosZMult);
381384 }
382385 }
383386 PROCESS_SWITCH (HfCorrelatorFlowCharmHadronsReduced, processSameEventCharmHadWMultMix, " Process Same Event for Charm-Had with multiplicity pools" , true );
384387
385388 void processSameEventHadHadWMultMix (SameEvtPairsHadHad::iterator const & pair,
389+ aod::HfcRedTrigTracks const &,
386390 aod::HfcRedCorrColls const &)
387391 {
392+ auto trigCand = pair.template hfcRedTrigTrack_as <aod::HfcRedTrigTracks>();
388393 if (fillSparses && fillTables) {
389- fillSameEvent<true , true >(pair, binPolicyPosZMult);
394+ fillSameEvent<true , true >(pair, trigCand, binPolicyPosZMult);
390395 } else if (fillSparses) {
391- fillSameEvent<true , false >(pair, binPolicyPosZMult);
396+ fillSameEvent<true , false >(pair, trigCand, binPolicyPosZMult);
392397 } else if (fillTables) {
393- fillSameEvent<false , true >(pair, binPolicyPosZMult);
398+ fillSameEvent<false , true >(pair, trigCand, binPolicyPosZMult);
394399 }
395400 }
396401 PROCESS_SWITCH (HfCorrelatorFlowCharmHadronsReduced, processSameEventHadHadWMultMix, " Process Same Event for Had-Had with multiplicity pools" , false );
397402
398403 void processSameEventCharmHadWCentMix (SameEvtPairsChHad::iterator const & pair,
404+ aod::HfcRedTrigCharms const &,
399405 aod::HfcRedCorrColls const &)
400406 {
407+ auto trigCand = pair.template hfcRedTrigCharm_as <aod::HfcRedTrigCharms>();
401408 if (fillSparses && fillTables) {
402- fillSameEvent<true , true >(pair, binPolicyPosZCent);
409+ fillSameEvent<true , true >(pair, trigCand, binPolicyPosZCent);
403410 } else if (fillSparses) {
404- fillSameEvent<true , false >(pair, binPolicyPosZCent);
411+ fillSameEvent<true , false >(pair, trigCand, binPolicyPosZCent);
405412 } else if (fillTables) {
406- fillSameEvent<false , true >(pair, binPolicyPosZCent);
413+ fillSameEvent<false , true >(pair, trigCand, binPolicyPosZCent);
407414 }
408415 }
409416 PROCESS_SWITCH (HfCorrelatorFlowCharmHadronsReduced, processSameEventCharmHadWCentMix, " Process Same Event for Charm-Had with centrality pools" , true );
410417
411418 void processSameEventHadHadWCentMix (SameEvtPairsHadHad::iterator const & pair,
419+ aod::HfcRedTrigTracks const &,
412420 aod::HfcRedCorrColls const &)
413421 {
422+ auto trigCand = pair.template hfcRedTrigTrack_as <aod::HfcRedTrigTracks>();
414423 if (fillSparses && fillTables) {
415- fillSameEvent<true , true >(pair, binPolicyPosZCent);
424+ fillSameEvent<true , true >(pair, trigCand, binPolicyPosZCent);
416425 } else if (fillSparses) {
417- fillSameEvent<true , false >(pair, binPolicyPosZCent);
426+ fillSameEvent<true , false >(pair, trigCand, binPolicyPosZCent);
418427 } else if (fillTables) {
419- fillSameEvent<false , true >(pair, binPolicyPosZCent);
428+ fillSameEvent<false , true >(pair, trigCand, binPolicyPosZCent);
420429 }
421430 }
422431 PROCESS_SWITCH (HfCorrelatorFlowCharmHadronsReduced, processSameEventHadHadWCentMix, " Process Same Event for Had-Had with centrality pools" , false );
0 commit comments