Skip to content

Commit e910b0c

Browse files
[PWGHF] Fix BC association in charm-hadron flow task (#18400)
1 parent 4083b57 commit e910b0c

1 file changed

Lines changed: 35 additions & 20 deletions

File tree

‎PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx‎

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ struct HfTaskFlowCharmHadrons {
182182
using CandXic0Data = soa::Filtered<soa::Join<aod::HfCandToXiPiKf, aod::HfSelToXiPiKf>>;
183183
using CandXic0DataWMl = soa::Filtered<soa::Join<aod::HfCandToXiPiKf, aod::HfSelToXiPiKf, aod::HfMlToXiPi>>;
184184
using CandD0DataWMl = soa::Filtered<soa::Join<aod::HfCand2Prong, aod::HfSelD0, aod::HfMlD0>>;
185-
using CollsWithSPQvecs = soa::Join<aod::Collisions, o2::aod::BCsWithTimestamps, aod::EvSels, aod::PVMults, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
186-
using CollsWithEsEQvecs = soa::Join<aod::Collisions, o2::aod::BCsWithTimestamps, aod::EvSels, aod::PVMults, aod::EseQvecPercs, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
187-
using CollsWithSPEsEQvecs = soa::Join<aod::Collisions, o2::aod::BCsWithTimestamps, aod::EvSels, aod::PVMults, aod::EseQvecPercs, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
185+
using CollsWithSPQvecs = soa::Join<aod::Collisions, aod::EvSels, aod::PVMults, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
186+
using CollsWithEsEQvecs = soa::Join<aod::Collisions, aod::EvSels, aod::PVMults, aod::EseQvecPercs, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
187+
using CollsWithSPEsEQvecs = soa::Join<aod::Collisions, aod::EvSels, aod::PVMults, aod::EseQvecPercs, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0CVariant2s>;
188188
using TracksWithExtra = soa::Join<aod::Tracks, aod::TracksExtra>;
189189

190190
Filter filterSelectDsCandidates = aod::hf_sel_candidate_ds::isSelDsToKKPi >= selectionFlag || aod::hf_sel_candidate_ds::isSelDsToPiKK >= selectionFlag;
@@ -621,11 +621,13 @@ struct HfTaskFlowCharmHadrons {
621621
float const amplRedQVec = qVecRedComps[2];
622622

623623
if (useOnlineResoCorrection) {
624+
// Access BC information through the collision's BC index.
625+
const auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
624626
// Per-run update
625-
if (collision.runNumber() != lastRunNumber) {
626-
LOG(info) << "Run number changed from " << lastRunNumber << " to " << collision.runNumber() << ". Updating resolution values.";
627-
qVecResoHelper.update(ccdb, ccdbResoHistPath, resoTripletPath.value, collision.timestamp(), collision.runNumber());
628-
lastRunNumber = collision.runNumber();
627+
if (bc.runNumber() != lastRunNumber) {
628+
LOG(info) << "Run number changed from " << lastRunNumber << " to " << bc.runNumber() << ". Updating resolution values.";
629+
qVecResoHelper.update(ccdb, ccdbResoHistPath, resoTripletPath.value, bc.timestamp(), bc.runNumber());
630+
lastRunNumber = bc.runNumber();
629631
}
630632
scalarProdReso = qVecResoHelper[static_cast<int>(cent - 0.5f)]; // Cent is given in X.5f format
631633
}
@@ -840,7 +842,8 @@ struct HfTaskFlowCharmHadrons {
840842
// Ds with ML
841843
void processDsMl(CollsWithSPQvecs::iterator const& collision,
842844
CandDsDataWMl const&,
843-
TracksWithExtra const& tracks)
845+
TracksWithExtra const& tracks,
846+
aod::BCsWithTimestamps const& /*bcs*/)
844847
{
845848
auto candsDsToKKPiWMl = selectedDsToKKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
846849
auto candsDsToPiKKWMl = selectedDsToPiKKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -852,7 +855,8 @@ struct HfTaskFlowCharmHadrons {
852855
// Ds with ML EsE
853856
void processDsEsEMl(CollsWithEsEQvecs::iterator const& collision,
854857
CandDsDataWMl const& /*candidatesDs*/,
855-
TracksWithExtra const& tracks)
858+
TracksWithExtra const& tracks,
859+
aod::BCsWithTimestamps const& /*bcs*/)
856860
{
857861
auto candsDsToKKPiWMl = selectedDsToKKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
858862
auto candsDsToPiKKWMl = selectedDsToPiKKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -864,7 +868,8 @@ struct HfTaskFlowCharmHadrons {
864868
// Ds with ML EsE and SP
865869
void processDsSPEsEMl(CollsWithSPEsEQvecs::iterator const& collision,
866870
CandDsDataWMl const& /*candidatesDs*/,
867-
TracksWithExtra const& tracks)
871+
TracksWithExtra const& tracks,
872+
aod::BCsWithTimestamps const& /*bcs*/)
868873
{
869874
auto candsDsToKKPiWMl = selectedDsToKKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
870875
auto candsDsToPiKKWMl = selectedDsToPiKKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -876,7 +881,8 @@ struct HfTaskFlowCharmHadrons {
876881
// Dplus with ML
877882
void processDplusMl(CollsWithSPQvecs::iterator const& collision,
878883
CandDplusDataWMl const& candidatesDplus,
879-
TracksWithExtra const& tracks)
884+
TracksWithExtra const& tracks,
885+
aod::BCsWithTimestamps const& /*bcs*/)
880886
{
881887
runFlowAnalysis<RunMode::kSP, DecayChannel::DplusToPiKPi>(collision, candidatesDplus, tracks);
882888
}
@@ -885,7 +891,8 @@ struct HfTaskFlowCharmHadrons {
885891
// Dplus with ML EsE
886892
void processDplusEsEMl(CollsWithEsEQvecs::iterator const& collision,
887893
CandDplusDataWMl const& candidatesDplus,
888-
TracksWithExtra const& tracks)
894+
TracksWithExtra const& tracks,
895+
aod::BCsWithTimestamps const& /*bcs*/)
889896
{
890897
runFlowAnalysis<RunMode::kEsE, DecayChannel::DplusToPiKPi>(collision, candidatesDplus, tracks);
891898
}
@@ -894,7 +901,8 @@ struct HfTaskFlowCharmHadrons {
894901
// Dplus with ML SP and EsE
895902
void processDplusSPEsEMl(CollsWithSPEsEQvecs::iterator const& collision,
896903
CandDplusDataWMl const& candidatesDplus,
897-
TracksWithExtra const& tracks)
904+
TracksWithExtra const& tracks,
905+
aod::BCsWithTimestamps const& /*bcs*/)
898906
{
899907
runFlowAnalysis<RunMode::kSPEsE, DecayChannel::DplusToPiKPi>(collision, candidatesDplus, tracks);
900908
}
@@ -903,7 +911,8 @@ struct HfTaskFlowCharmHadrons {
903911
// D0 with ML
904912
void processD0Ml(CollsWithSPQvecs::iterator const& collision,
905913
CandD0DataWMl const& /*candidatesD0*/,
906-
TracksWithExtra const& tracks)
914+
TracksWithExtra const& tracks,
915+
aod::BCsWithTimestamps const& /*bcs*/)
907916
{
908917
auto candsD0ToPiKWMl = selectedD0ToPiKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
909918
auto candsD0ToKPiWMl = selectedD0ToKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -915,7 +924,8 @@ struct HfTaskFlowCharmHadrons {
915924
// D0 with ML
916925
void processD0EsEMl(CollsWithEsEQvecs::iterator const& collision,
917926
CandD0DataWMl const& /*candidatesD0*/,
918-
TracksWithExtra const& tracks)
927+
TracksWithExtra const& tracks,
928+
aod::BCsWithTimestamps const& /*bcs*/)
919929
{
920930
auto candsD0ToPiKWMl = selectedD0ToPiKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
921931
auto candsD0ToKPiWMl = selectedD0ToKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -927,7 +937,8 @@ struct HfTaskFlowCharmHadrons {
927937
// D0 with ML
928938
void processD0SPEsEMl(CollsWithSPEsEQvecs::iterator const& collision,
929939
CandD0DataWMl const& /*candidatesD0*/,
930-
TracksWithExtra const& tracks)
940+
TracksWithExtra const& tracks,
941+
aod::BCsWithTimestamps const& /*bcs*/)
931942
{
932943
auto candsD0ToPiKWMl = selectedD0ToPiKWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
933944
auto candsD0ToKPiWMl = selectedD0ToKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -939,7 +950,8 @@ struct HfTaskFlowCharmHadrons {
939950
// Lc with ML
940951
void processLcMl(CollsWithSPQvecs::iterator const& collision,
941952
CandLcDataWMl const& /*candidatesLc*/,
942-
TracksWithExtra const& tracks)
953+
TracksWithExtra const& tracks,
954+
aod::BCsWithTimestamps const& /*bcs*/)
943955
{
944956
auto candsLcToPKPiWMl = selectedLcToPKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
945957
auto candsLcToPiKPWMl = selectedLcToPiKPWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -951,7 +963,8 @@ struct HfTaskFlowCharmHadrons {
951963
// Xic with ML
952964
void processXicMl(CollsWithSPQvecs::iterator const& collision,
953965
CandXicDataWMl const& /*candidatesXic*/,
954-
TracksWithExtra const& tracks)
966+
TracksWithExtra const& tracks,
967+
aod::BCsWithTimestamps const& /*bcs*/)
955968
{
956969
auto candsXicToPKPiWMl = selectedXicToPKPiWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
957970
auto candsXicToPiKPWMl = selectedXicToPiKPWMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
@@ -963,7 +976,8 @@ struct HfTaskFlowCharmHadrons {
963976
// Xic0 with ML
964977
void processXic0Ml(CollsWithSPQvecs::iterator const& collision,
965978
CandXic0DataWMl const& /*candidatesXic0*/,
966-
TracksWithExtra const& tracks)
979+
TracksWithExtra const& tracks,
980+
aod::BCsWithTimestamps const& /*bcs*/)
967981
{
968982
auto candsXic0WMl = selectedXic0WMl->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
969983
runFlowAnalysis<RunMode::kSP, DecayChannel::Xic0ToXiPi>(collision, candsXic0WMl, tracks);
@@ -973,7 +987,8 @@ struct HfTaskFlowCharmHadrons {
973987
// Xic0
974988
void processXic0(CollsWithSPQvecs::iterator const& collision,
975989
CandXic0Data const& /*candidatesXic0*/,
976-
TracksWithExtra const& tracks)
990+
TracksWithExtra const& tracks,
991+
aod::BCsWithTimestamps const& /*bcs*/)
977992
{
978993
auto candsXic0 = selectedXic0->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache);
979994
runFlowAnalysis<RunMode::kSP, DecayChannel::Xic0ToXiPi>(collision, candsXic0, tracks);

0 commit comments

Comments
 (0)