Skip to content

Commit 144555a

Browse files
authored
[PWGCF] Fix PV association option type and mode-dependent QA (#18473)
1 parent 76911ce commit 144555a

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

‎PWGCF/Flow/Tasks/pidFlowPtCorr.cxx‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "Common/CCDB/EventSelectionParams.h"
2222
#include "Common/CCDB/TriggerAliases.h"
2323
#include "Common/CCDB/ctpRateFetcher.h"
24+
#include "Common/Core/CollisionAssociation.h"
2425
#include "Common/Core/TableHelper.h"
2526
#include "Common/Core/TrackSelection.h"
2627
#include "Common/Core/TrackSelectionDefaults.h"
@@ -308,7 +309,8 @@ struct PidFlowChargedTimeProducer {
308309
bool timeUniformField = false;
309310
bool cfgRequireUniqueTimeAssociation = false;
310311
bool cfgTimeAssociationQA = true;
311-
bool timeUsePVAssociation = true;
312+
int timeUsePVAssociation = aod::track_association::PVContrReassocOpt::OnlySameBc;
313+
int timeMaxPvContributorsForLowMultReassoc = 10;
312314
float timeNSigma = 4.f;
313315
float timeMargin = 0.f;
314316
float cutEta = 0.8f;
@@ -331,7 +333,8 @@ struct PidFlowChargedTimeProducer {
331333
}
332334
cfgRequireUniqueTimeAssociation = timeAssociationOption<bool>(context, "pid-flow-pt-corr", "cfgRequireUniqueTimeAssociation");
333335
cfgTimeAssociationQA = timeAssociationOption<bool>(context, "pid-flow-pt-corr", "cfgTimeAssociationQA");
334-
timeUsePVAssociation = timeAssociationOption<bool>(context, "track-to-collision-association", "usePVAssociation");
336+
timeUsePVAssociation = timeAssociationOption<int>(context, "track-to-collision-association", "usePVAssociation");
337+
timeMaxPvContributorsForLowMultReassoc = timeAssociationOption<int>(context, "track-to-collision-association", "maxPvContributorsForLowMultReassoc");
335338
timeNSigma = timeAssociationOption<float>(context, "track-to-collision-association", "nSigmaForTimeCompat");
336339
timeMargin = timeAssociationOption<float>(context, "track-to-collision-association", "timeMargin");
337340
cutEta = timeAssociationOption<float>(context, "pid-flow-pt-corr", "trkQualityOpts.cfgCutEta");
@@ -380,7 +383,8 @@ struct PidFlowChargedTimeProducer {
380383
metadata += ";producer.nSigmaForTimeCompat=" + std::to_string(timeAssociationOption<float>(context, "track-to-collision-association", "nSigmaForTimeCompat"));
381384
metadata += ";producer.timeMargin=" + std::to_string(timeAssociationOption<float>(context, "track-to-collision-association", "timeMargin"));
382385
metadata += ";producer.bcWindowForOneSigma=" + std::to_string(timeAssociationOption<int>(context, "track-to-collision-association", "bcWindowForOneSigma"));
383-
metadata += ";producer.usePVAssociation=" + std::to_string(static_cast<int>(timeAssociationOption<bool>(context, "track-to-collision-association", "usePVAssociation")));
386+
metadata += ";producer.usePVAssociation=" + std::to_string(timeUsePVAssociation);
387+
metadata += ";producer.maxPvContributorsForLowMultReassoc=" + std::to_string(timeMaxPvContributorsForLowMultReassoc);
384388
metadata += ";producer.includeUnassigned=" + std::to_string(static_cast<int>(timeAssociationOption<bool>(context, "track-to-collision-association", "includeUnassigned")));
385389
chargedTimeAssociationConfig->SetTitle(metadata.c_str());
386390
LOG(info) << "Charged time association: " << metadata;
@@ -517,7 +521,11 @@ struct PidFlowChargedTimeProducer {
517521
originalTimeStatus = 5;
518522
if (collisionIndex >= 0 && collisionIndex < collisions.size()) {
519523
auto collision = collisions.rawIteratorAt(collisionIndex);
520-
const bool usePVTime = timeUsePVAssociation && track.isPVContributor();
524+
// Match the public associator's PV-time substitution, including mode 2.
525+
const bool usePVTime = track.isPVContributor() &&
526+
(timeUsePVAssociation == aod::track_association::PVContrReassocOpt::OnlySameBc ||
527+
(timeUsePVAssociation == aod::track_association::PVContrReassocOpt::SameBcAndLowMult &&
528+
collision.numContrib() > timeMaxPvContributorsForLowMultReassoc));
521529
const float trackTime = usePVTime ? collision.collisionTime() : track.trackTime();
522530
const float trackRes = usePVTime ? o2::constants::lhc::LHCBunchSpacingNS : track.trackTimeRes();
523531
const float collisionRes = collision.collisionTimeRes();

0 commit comments

Comments
 (0)