Skip to content

Commit 9bc68bf

Browse files
committed
add upc selection into HF framework
1 parent a1d46d0 commit 9bc68bf

18 files changed

+418
-332
lines changed

PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx

Lines changed: 48 additions & 47 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx

Lines changed: 47 additions & 46 deletions
Large diffs are not rendered by default.

PWGHF/D2H/Tasks/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ o2physics_add_dpl_workflow(task-dstar-to-d0-pi
7676

7777
o2physics_add_dpl_workflow(task-flow-charm-hadrons
7878
SOURCES taskFlowCharmHadrons.cxx
79-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
79+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils O2Physics::SGCutParHolder
8080
COMPONENT_NAME Analysis)
8181

8282
o2physics_add_dpl_workflow(task-lb

PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx

Lines changed: 47 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ struct HfTaskFlowCharmHadrons {
106106
using CandD0DataWMl = soa::Filtered<soa::Join<aod::HfCand2Prong, aod::HfSelD0, aod::HfMlD0>>;
107107
using CandD0Data = soa::Filtered<soa::Join<aod::HfCand2Prong, aod::HfSelD0>>;
108108
using CollsWithQvecs = soa::Join<aod::Collisions, aod::EvSels, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
109+
using BCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
109110

110111
Filter filterSelectDsCandidates = aod::hf_sel_candidate_ds::isSelDsToKKPi >= selectionFlag || aod::hf_sel_candidate_ds::isSelDsToPiKK >= selectionFlag;
111112
Filter filterSelectDplusCandidates = aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= selectionFlag;
@@ -378,11 +379,11 @@ struct HfTaskFlowCharmHadrons {
378379
/// \return true if the collision is selected, false otherwise
379380
template <o2::hf_centrality::CentralityEstimator centEstimator>
380381
bool isCollSelected(CollsWithQvecs::iterator const& collision,
381-
aod::BCsWithTimestamps const&,
382+
BCs const& bcs,
382383
float& centrality)
383384
{
384385
float occupancy = getOccupancyColl(collision, occEstimator);
385-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, centEstimator, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
386+
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, centEstimator, BCs>(collision, centrality, ccdb, registry, bcs);
386387
centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator);
387388

388389
/// monitor the satisfied event selections
@@ -442,9 +443,10 @@ struct HfTaskFlowCharmHadrons {
442443
/// Compute the scalar product
443444
/// \param collision is the collision with the Q vector information and event plane
444445
/// \param candidates are the selected candidates
445-
template <DecayChannel channel, typename T1>
446+
template <DecayChannel channel, typename T1, typename BCs>
446447
void runFlowAnalysis(CollsWithQvecs::iterator const& collision,
447-
T1 const& candidates)
448+
T1 const& candidates,
449+
BCs const& bcs)
448450
{
449451
float cent = o2::hf_centrality::getCentralityColl(collision, centEstimator);
450452
if (cent < centralityMin || cent > centralityMax) {
@@ -455,7 +457,7 @@ struct HfTaskFlowCharmHadrons {
455457
if (occEstimator != 0) {
456458
occupancy = getOccupancyColl(collision, occEstimator);
457459
registry.fill(HIST("trackOccVsFT0COcc"), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
458-
hfevflag = hfEvSel.getHfCollisionRejectionMask<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, cent, ccdb, registry);
460+
hfevflag = hfEvSel.getHfCollisionRejectionMask<true, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, cent, ccdb, registry, bcs);
459461
}
460462

461463
std::vector<float> qVecs = getQvec(collision);
@@ -581,111 +583,121 @@ struct HfTaskFlowCharmHadrons {
581583

582584
// Ds with ML
583585
void processDsMl(CollsWithQvecs::iterator const& collision,
584-
CandDsDataWMl const&)
586+
CandDsDataWMl const&,
587+
BCs const& bcs)
585588
{
586589
auto candsDsToKKPiWMl = selectedDsToKKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
587590
auto candsDsToPiKKWMl = selectedDsToPiKKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
588-
runFlowAnalysis<DecayChannel::DsToKKPi>(collision, candsDsToKKPiWMl);
589-
runFlowAnalysis<DecayChannel::DsToPiKK>(collision, candsDsToPiKKWMl);
591+
runFlowAnalysis<DecayChannel::DsToKKPi>(collision, candsDsToKKPiWMl, bcs);
592+
runFlowAnalysis<DecayChannel::DsToPiKK>(collision, candsDsToPiKKWMl, bcs);
590593
}
591594
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processDsMl, "Process Ds candidates with ML", false);
592595

593596
// Ds with rectangular cuts
594597
void processDs(CollsWithQvecs::iterator const& collision,
595-
CandDsData const&)
598+
CandDsData const&,
599+
BCs const& bcs)
596600
{
597601
auto candsDsToKKPi = selectedDsToKKPi->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
598602
auto candsDsToPiKK = selectedDsToPiKK->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
599-
runFlowAnalysis<DecayChannel::DsToKKPi>(collision, candsDsToKKPi);
600-
runFlowAnalysis<DecayChannel::DsToPiKK>(collision, candsDsToPiKK);
603+
runFlowAnalysis<DecayChannel::DsToKKPi>(collision, candsDsToKKPi, bcs);
604+
runFlowAnalysis<DecayChannel::DsToPiKK>(collision, candsDsToPiKK, bcs);
601605
}
602606
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processDs, "Process Ds candidates", false);
603607

604608
// Dplus with ML
605609
void processDplusMl(CollsWithQvecs::iterator const& collision,
606-
CandDplusDataWMl const& candidatesDplus)
610+
CandDplusDataWMl const& candidatesDplus,
611+
BCs const& bcs)
607612
{
608-
runFlowAnalysis<DecayChannel::DplusToPiKPi>(collision, candidatesDplus);
613+
runFlowAnalysis<DecayChannel::DplusToPiKPi>(collision, candidatesDplus, bcs);
609614
}
610615
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processDplusMl, "Process Dplus candidates with ML", false);
611616

612617
// Dplus with rectangular cuts
613618
void processDplus(CollsWithQvecs::iterator const& collision,
614-
CandDplusData const& candidatesDplus)
619+
CandDplusData const& candidatesDplus,
620+
BCs const& bcs)
615621
{
616-
runFlowAnalysis<DecayChannel::DplusToPiKPi>(collision, candidatesDplus);
622+
runFlowAnalysis<DecayChannel::DplusToPiKPi>(collision, candidatesDplus, bcs);
617623
}
618624
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processDplus, "Process Dplus candidates", true);
619625

620626
// D0 with ML
621627
void processD0Ml(CollsWithQvecs::iterator const& collision,
622-
CandD0DataWMl const&)
628+
CandD0DataWMl const&,
629+
BCs const& bcs)
623630
{
624631
auto candsD0ToPiKWMl = selectedD0ToPiKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
625632
auto candsD0ToKPiWMl = selectedD0ToKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
626-
runFlowAnalysis<DecayChannel::D0ToPiK>(collision, candsD0ToPiKWMl);
627-
runFlowAnalysis<DecayChannel::D0ToKPi>(collision, candsD0ToKPiWMl);
633+
runFlowAnalysis<DecayChannel::D0ToPiK>(collision, candsD0ToPiKWMl, bcs);
634+
runFlowAnalysis<DecayChannel::D0ToKPi>(collision, candsD0ToKPiWMl, bcs);
628635
}
629636
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processD0Ml, "Process D0 candidates with ML", false);
630637

631638
// D0 with rectangular cuts
632639
void processD0(CollsWithQvecs::iterator const& collision,
633-
CandD0Data const&)
640+
CandD0Data const&,
641+
BCs const& bcs)
634642
{
635643
auto candsD0ToPiK = selectedD0ToPiK->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
636644
auto candsD0ToKPi = selectedD0ToKPi->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
637-
runFlowAnalysis<DecayChannel::D0ToPiK>(collision, candsD0ToPiK);
638-
runFlowAnalysis<DecayChannel::D0ToKPi>(collision, candsD0ToKPi);
645+
runFlowAnalysis<DecayChannel::D0ToPiK>(collision, candsD0ToPiK, bcs);
646+
runFlowAnalysis<DecayChannel::D0ToKPi>(collision, candsD0ToKPi, bcs);
639647
}
640648
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processD0, "Process D0 candidates", false);
641649

642650
// Lc with ML
643651
void processLcMl(CollsWithQvecs::iterator const& collision,
644-
CandLcDataWMl const&)
652+
CandLcDataWMl const&,
653+
BCs const& bcs)
645654
{
646655
auto candsLcToPKPiWMl = selectedLcToPKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
647656
auto candsLcToPiKPWMl = selectedLcToPiKPWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
648-
runFlowAnalysis<DecayChannel::LcToPKPi>(collision, candsLcToPKPiWMl);
649-
runFlowAnalysis<DecayChannel::LcToPiKP>(collision, candsLcToPiKPWMl);
657+
runFlowAnalysis<DecayChannel::LcToPKPi>(collision, candsLcToPKPiWMl, bcs);
658+
runFlowAnalysis<DecayChannel::LcToPiKP>(collision, candsLcToPiKPWMl, bcs);
650659
}
651660
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processLcMl, "Process Lc candidates with ML", false);
652661

653662
// Lc with rectangular cuts
654663
void processLc(CollsWithQvecs::iterator const& collision,
655-
CandLcData const&)
664+
CandLcData const&,
665+
BCs const& bcs)
656666
{
657667
auto candsLcToPKPi = selectedLcToPKPi->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
658668
auto candsLcToPiKP = selectedLcToPiKP->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
659-
runFlowAnalysis<DecayChannel::LcToPKPi>(collision, candsLcToPKPi);
660-
runFlowAnalysis<DecayChannel::LcToPiKP>(collision, candsLcToPiKP);
669+
runFlowAnalysis<DecayChannel::LcToPKPi>(collision, candsLcToPKPi, bcs);
670+
runFlowAnalysis<DecayChannel::LcToPiKP>(collision, candsLcToPiKP, bcs);
661671
}
662672
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processLc, "Process Lc candidates", false);
663673

664674
// Xic with ML
665675
void processXicMl(CollsWithQvecs::iterator const& collision,
666-
CandXicDataWMl const&)
676+
CandXicDataWMl const&,
677+
BCs const& bcs)
667678
{
668679
auto candsXicToPKPiWMl = selectedXicToPKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
669680
auto candsXicToPiKPWMl = selectedXicToPiKPWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
670-
runFlowAnalysis<DecayChannel::XicToPKPi>(collision, candsXicToPKPiWMl);
671-
runFlowAnalysis<DecayChannel::XicToPiKP>(collision, candsXicToPiKPWMl);
681+
runFlowAnalysis<DecayChannel::XicToPKPi>(collision, candsXicToPKPiWMl, bcs);
682+
runFlowAnalysis<DecayChannel::XicToPiKP>(collision, candsXicToPiKPWMl, bcs);
672683
}
673684
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processXicMl, "Process Xic candidates with ML", false);
674685

675686
// Xic with rectangular cuts
676687
void processXic(CollsWithQvecs::iterator const& collision,
677-
CandXicData const&)
688+
CandXicData const&,
689+
BCs const& bcs)
678690
{
679691
auto candsXicToPKPi = selectedXicToPKPi->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
680692
auto candsXicToPiKP = selectedXicToPiKP->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
681-
runFlowAnalysis<DecayChannel::XicToPKPi>(collision, candsXicToPKPi);
682-
runFlowAnalysis<DecayChannel::XicToPiKP>(collision, candsXicToPiKP);
693+
runFlowAnalysis<DecayChannel::XicToPKPi>(collision, candsXicToPKPi, bcs);
694+
runFlowAnalysis<DecayChannel::XicToPiKP>(collision, candsXicToPiKP, bcs);
683695
}
684696
PROCESS_SWITCH(HfTaskFlowCharmHadrons, processXic, "Process Xic candidates", false);
685697

686698
// Resolution
687699
void processResolution(CollsWithQvecs::iterator const& collision,
688-
aod::BCsWithTimestamps const& bcs)
700+
BCs const& bcs)
689701
{
690702
float centrality{-1.f};
691703
float xQVecFT0a = collision.qvecFT0ARe();
@@ -708,7 +720,7 @@ struct HfTaskFlowCharmHadrons {
708720
float occupancy{-1.f};
709721
occupancy = getOccupancyColl(collision, occEstimator);
710722
registry.fill(HIST("trackOccVsFT0COcc"), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
711-
uint16_t hfevflag = hfEvSel.getHfCollisionRejectionMask<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
723+
uint16_t hfevflag = hfEvSel.getHfCollisionRejectionMask<true, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, centrality, ccdb, registry, bcs);
712724
std::vector<int> evtSelFlags = getEventSelectionFlags(hfevflag);
713725
registry.fill(HIST("spReso/hSparseReso"), centrality, xQVecFT0c * xQVecFV0a + yQVecFT0c * yQVecFV0a,
714726
xQVecFT0c * xQVecBTot + yQVecFT0c * yQVecBTot,

PWGHF/D2H/Utils/utilsRedDataFormat.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ namespace o2::hf_evsel
3434
/// \tparam centEstimator centrality estimator
3535
/// \param collision collision to test against the selection criteria
3636
template <bool useEvSel, o2::hf_centrality::CentralityEstimator centEstimator, typename BCs, typename Coll>
37-
void checkEvSel(Coll const& collision, o2::hf_evsel::HfEventSelection& hfEvSel, int& zvtxColl, int& sel8Coll, int& zvtxAndSel8Coll, int& zvtxAndSel8CollAndSoftTrig, int& allSelColl, o2::framework::Service<o2::ccdb::BasicCCDBManager> const& ccdb, o2::framework::HistogramRegistry& registry)
37+
void checkEvSel(Coll const& collision, o2::hf_evsel::HfEventSelection& hfEvSel, int& zvtxColl, int& sel8Coll, int& zvtxAndSel8Coll, int& zvtxAndSel8CollAndSoftTrig, int& allSelColl, o2::framework::Service<o2::ccdb::BasicCCDBManager> const& ccdb, o2::framework::HistogramRegistry& registry, BCs const& bcs)
3838
{
3939
float centrality{-1.f};
40-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<useEvSel, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, centrality, ccdb, registry);
40+
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<useEvSel, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, centrality, ccdb, registry, bcs);
4141
if (!TESTBIT(rejectionMask, o2::hf_evsel::EventRejection::Trigger)) {
4242
sel8Coll++;
4343
}

PWGHF/HFC/TableProducer/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,5 @@ o2physics_add_dpl_workflow(correlator-lc-sc-hadrons
7171

7272
o2physics_add_dpl_workflow(femto-dream-producer
7373
SOURCES femtoDreamProducer.cxx
74-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils O2Physics::MLCore
74+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils O2Physics::MLCore O2Physics::SGCutParHolder
7575
COMPONENT_NAME Analysis)

PWGHF/HFC/TableProducer/femtoDreamProducer.cxx

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,8 @@ struct HfFemtoDreamProducer {
159159
using FemtoHFTrack = FemtoHFTracks::iterator;
160160
using FemtoHFMcTracks = soa::Join<aod::McTrackLabels, FemtoHFTracks>;
161161
using FemtoHFMcTrack = FemtoHFMcTracks::iterator;
162-
163162
using GeneratedMc = soa::Filtered<soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>;
164-
163+
using BCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
165164
Filter filterSelectCandidateLc = (aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc);
166165

167166
HistogramRegistry qaRegistry{"QAHistos", {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -236,7 +235,7 @@ struct HfFemtoDreamProducer {
236235
}
237236

238237
/// Function to retrieve the nominal magnetic field in kG (0.1T) and convert it directly to T
239-
void getMagneticFieldTesla(aod::BCsWithTimestamps::iterator bc)
238+
void getMagneticFieldTesla(BCs::iterator bc)
240239
{
241240
initCCDB(bc, runNumber, ccdb, !isRun3 ? ccdbPathGrp : ccdbPathGrpMag, lut, !isRun3);
242241
}
@@ -390,8 +389,8 @@ struct HfFemtoDreamProducer {
390389
return fIsTrackFilled;
391390
}
392391

393-
template <bool isMc, bool useCharmMl, typename TrackType, typename CollisionType, typename CandType>
394-
void fillCharmHadronTable(CollisionType const& col, TrackType const& tracks, CandType const& candidates)
392+
template <bool isMc, bool useCharmMl, typename TrackType, typename CollisionType, typename CandType, typename BCs>
393+
void fillCharmHadronTable(CollisionType const& col, TrackType const& tracks, CandType const& candidates, BCs const& bcs)
395394
{
396395
const auto vtxZ = col.posZ();
397396
const auto sizeCand = candidates.size();
@@ -410,7 +409,7 @@ struct HfFemtoDreamProducer {
410409
multNtr = col.multTracklets();
411410
}
412411

413-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::None, aod::BCsWithTimestamps>(col, mult, ccdb, qaRegistry);
412+
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::None, BCs>(col, mult, ccdb, qaRegistry, bcs);
414413

415414
qaRegistry.fill(HIST("hEventQA"), 1 + Event::All);
416415

@@ -573,57 +572,57 @@ struct HfFemtoDreamProducer {
573572
}
574573

575574
void processDataCharmHad(FemtoFullCollision const& col,
576-
aod::BCsWithTimestamps const&,
575+
BCs const& bcs,
577576
FemtoHFTracks const& tracks,
578577
soa::Filtered<CandidateLc> const& candidates)
579578
{
580579
// get magnetic field for run
581-
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
580+
getMagneticFieldTesla(col.bc_as<BCs>());
582581

583-
fillCharmHadronTable<false, false>(col, tracks, candidates);
582+
fillCharmHadronTable<false, false>(col, tracks, candidates, bcs);
584583
}
585584
PROCESS_SWITCH(HfFemtoDreamProducer, processDataCharmHad,
586585
"Provide experimental data for charm hadron femto", false);
587586

588587
void processDataCharmHadWithML(FemtoFullCollision const& col,
589-
aod::BCsWithTimestamps const&,
588+
BCs const& bcs,
590589
FemtoHFTracks const& tracks,
591590
soa::Filtered<soa::Join<CandidateLc,
592591
aod::HfMlLcToPKPi>> const& candidates)
593592
{
594593

595594
// get magnetic field for run
596-
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
595+
getMagneticFieldTesla(col.bc_as<BCs>());
597596

598-
fillCharmHadronTable<false, true>(col, tracks, candidates);
597+
fillCharmHadronTable<false, true>(col, tracks, candidates, bcs);
599598
}
600599
PROCESS_SWITCH(HfFemtoDreamProducer, processDataCharmHadWithML,
601600
"Provide experimental data for charm hadron femto with ml", false);
602601

603602
void processMcCharmHad(FemtoFullCollisionMc const& col,
604-
aod::BCsWithTimestamps const&,
603+
BCs const& bcs,
605604
FemtoHFMcTracks const& tracks,
606605
aod::McParticles const&,
607606
CandidateLcMc const& candidates)
608607
{
609608
// get magnetic field for run
610-
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
609+
getMagneticFieldTesla(col.bc_as<BCs>());
611610

612-
fillCharmHadronTable<true, false>(col, tracks, candidates);
611+
fillCharmHadronTable<true, false>(col, tracks, candidates, bcs);
613612
}
614613
PROCESS_SWITCH(HfFemtoDreamProducer, processMcCharmHad, "Provide Mc for charm hadron", false);
615614

616615
void processMcCharmHadWithML(FemtoFullCollisionMc const& col,
617-
aod::BCsWithTimestamps const&,
616+
BCs const& bcs,
618617
FemtoHFMcTracks const& tracks,
619618
aod::McParticles const&,
620619
soa::Join<CandidateLcMc,
621620
aod::HfMlLcToPKPi> const& candidates)
622621
{
623622
// get magnetic field for run
624-
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
623+
getMagneticFieldTesla(col.bc_as<BCs>());
625624

626-
fillCharmHadronTable<true, true>(col, tracks, candidates);
625+
fillCharmHadronTable<true, true>(col, tracks, candidates, bcs);
627626
}
628627
PROCESS_SWITCH(HfFemtoDreamProducer, processMcCharmHadWithML, "Provide Mc for charm hadron with ml", false);
629628

0 commit comments

Comments
 (0)