Skip to content

Commit f79fcf1

Browse files
committed
Fix V0 rapidity check default behaviour
1 parent b029457 commit f79fcf1

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

PWGCF/Tasks/correlations.cxx

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ struct CorrelationTask {
122122
Filter collisionVertexTypeFilter = (aod::collision::flags & static_cast<uint16_t>(aod::collision::CollisionFlagsRun2::Run2VertexerTracks)) == static_cast<uint16_t>(aod::collision::CollisionFlagsRun2::Run2VertexerTracks);
123123

124124
// Track filters
125-
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPt) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true));
125+
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPt) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t)true));
126126
Filter cfTrackFilter = (nabs(aod::cftrack::eta) < cfgCutEta) && (aod::cftrack::pt > cfgCutPt) && ((aod::track::trackType & (uint8_t)cfgTrackBitMask) == (uint8_t)cfgTrackBitMask);
127127

128128
// MC filters
@@ -401,8 +401,23 @@ struct CorrelationTask {
401401
using HasPartDaugh1Id = decltype(std::declval<T&>().cfParticleDaugh1Id());
402402

403403
template <typename T>
404-
float getV0Rapidity(const T& track)
404+
std::tuple<bool, float> getV0Rapidity(const T& track)
405405
{
406+
if constexpr (!std::experimental::is_detected<HasDecay, T>::value)
407+
return {false, 0.0f}; // no decay type, return dummy rapidity
408+
const auto decayType = track.decay();
409+
float mass = 0.f;
410+
411+
if (decayType == aod::cf2prongtrack::K0stoPiPi) {
412+
mass = o2::constants::physics::MassK0Short;
413+
} else if (decayType == aod::cf2prongtrack::LambdatoPPi || decayType == aod::cf2prongtrack::AntiLambdatoPiP) {
414+
mass = o2::constants::physics::MassLambda;
415+
} else if (decayType == aod::cf2prongtrack::PhiToKK) {
416+
mass = o2::constants::physics::MassPhi;
417+
} else {
418+
return {false, 0.0f}; // unsupported decay type, return dummy rapidity
419+
}
420+
406421
const float pt = track.pt();
407422
const float eta = track.eta();
408423
const float phi = track.phi();
@@ -413,25 +428,8 @@ struct CorrelationTask {
413428

414429
const float p2 = px * px + py * py + pz * pz;
415430

416-
if constexpr (std::experimental::is_detected<HasDecay, T>::value) {
417-
const auto decayType = track.decay();
418-
float mass = 0.f;
419-
420-
if (decayType == aod::cf2prongtrack::K0stoPiPi) {
421-
mass = o2::constants::physics::MassK0Short;
422-
} else if (decayType == aod::cf2prongtrack::LambdatoPPi || decayType == aod::cf2prongtrack::AntiLambdatoPiP) {
423-
mass = o2::constants::physics::MassLambda;
424-
} else if (decayType == aod::cf2prongtrack::PhiToKK) {
425-
mass = o2::constants::physics::MassPhi;
426-
} else {
427-
return -999.f; // unsupported decay type, return dummy rapidity
428-
}
429-
430-
const float E = std::sqrt(p2 + mass * mass);
431-
return 0.5f * std::log((E + pz) / (E - pz));
432-
}
433-
434-
return -999.f; // no decay type, return dummy rapidity
431+
const float E = std::sqrt(p2 + mass * mass);
432+
return {true, 0.5f * std::log((E + pz) / (E - pz))};
435433
}
436434

437435
template <CorrelationContainer::CFStep step, typename TTarget, typename TTracks1, typename TTracks2>
@@ -484,10 +482,12 @@ struct CorrelationTask {
484482
if (cfgDecayParticleMask != 0 && (cfgDecayParticleMask & (1u << static_cast<uint32_t>(track1.decay()))) == 0u) {
485483
continue; // skip particles that do not match the decay mask
486484
}
487-
if (cfgV0RapidityMax > 0 && std::abs(getV0Rapidity(track1)) > cfgV0RapidityMax) {
488-
continue; // V0s are not allowed to be outside the rapidity range
485+
if (cfgV0RapidityMax > 0) {
486+
auto [t, y] = getV0Rapidity(track1);
487+
if (t && std::abs(y) > cfgV0RapidityMax)
488+
continue; // V0s are not allowed to be outside the rapidity range
489+
registry.fill(HIST("yvspt"), y, track1.pt());
489490
}
490-
registry.fill(HIST("yvspt"), getV0Rapidity(track1), track1.pt());
491491
}
492492

493493
if constexpr (std::experimental::is_detected<HasPartDaugh0Id, typename TTracks1::iterator>::value) {

0 commit comments

Comments
 (0)