Skip to content

Commit 6eaed6a

Browse files
author
Henrik Fribert
committed
Fix: Use epsilon and reco decay + add PhiAtPv in KinkFilters
1 parent 5b0cace commit 6eaed6a

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

‎PWGCF/Femto/Core/femtoUtils.h‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#ifndef PWGCF_FEMTO_CORE_FEMTOUTILS_H_
1717
#define PWGCF_FEMTO_CORE_FEMTOUTILS_H_
1818

19+
#include "Common/Core/RecoDecay.h"
1920
#include "Common/Core/TableHelper.h"
2021

2122
#include <CommonConstants/MathConstants.h>
@@ -180,15 +181,10 @@ concept HasEventShape = HasEventShapeRow<std::decay_t<T>> || (requires { typenam
180181
/// phiPV = 2*phiChord - phiDecay (independent of polarity).
181182
inline float phiAtPrimaryVertex(float phiDecay, float xDecay, float yDecay)
182183
{
183-
constexpr float TwoPi = o2::constants::math::TwoPI;
184-
if (xDecay == 0.f && yDecay == 0.f) {
184+
if (std::abs(xDecay) < o2::constants::math::Epsilon && std::abs(yDecay) < o2::constants::math::Epsilon) {
185185
return phiDecay;
186186
}
187-
float phi = std::fmod(2.f * std::atan2(yDecay, xDecay) - phiDecay, TwoPi);
188-
if (phi < 0.f) {
189-
phi += TwoPi;
190-
}
191-
return phi;
187+
return RecoDecay::constrainAngle(2.f * std::atan2(yDecay, xDecay) - phiDecay);
192188
}
193189

194190
/// Recalculate the pT of a kink mother from its direction and the charged daughter momentum

‎PWGCF/Femto/Core/kinkBuilder.h‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ enum KinkFilters {
235235
kPhiMax,
236236
kMassMin,
237237
kMassMax,
238+
kPhiAtPv,
238239
kMlScoreMin,
239240
kKinkFiltersMax
240241
};
@@ -251,6 +252,7 @@ const std::unordered_map<KinkFilters, std::string> kinkFilterNames = {
251252
{kPhiMax, "phiMax"},
252253
{kMassMin, "massMin"},
253254
{kMassMax, "massMax"},
255+
{kPhiAtPv, "kinkPhiAtPv"},
254256
{kMlScoreMin, "mlScoreMin"}};
255257

256258
/// \class KinkCuts
@@ -319,6 +321,7 @@ class KinkSelection : public baseselection::BaseSelection<float, o2::analysis::f
319321
{kinkFilterNames.at(kPhiMax), mPhiMax},
320322
{kinkFilterNames.at(kMassMin), mMassSigmaLowerLimit},
321323
{kinkFilterNames.at(kMassMax), mMassSigmaUpperLimit},
324+
{kinkFilterNames.at(kPhiAtPv), static_cast<float>(mKinkPhiAtPv)},
322325
});
323326
}
324327
if constexpr (modes::isEqual(kinkType, modes::Kink::kSigmaPlus)) {
@@ -333,6 +336,7 @@ class KinkSelection : public baseselection::BaseSelection<float, o2::analysis::f
333336
{kinkFilterNames.at(kPhiMax), mPhiMax},
334337
{kinkFilterNames.at(kMassMin), mMassSigmaPlusLowerLimit},
335338
{kinkFilterNames.at(kMassMax), mMassSigmaPlusUpperLimit},
339+
{kinkFilterNames.at(kPhiAtPv), static_cast<float>(mKinkPhiAtPv)},
336340
});
337341
}
338342
};
@@ -473,6 +477,8 @@ class KinkSelection : public baseselection::BaseSelection<float, o2::analysis::f
473477
this->template fillFilter<FilterHistName>(kPhiMax, p);
474478
pass &= p;
475479

480+
this->template fillFilter<FilterHistName>(kPhiAtPv, mKinkPhiAtPv);
481+
476482
if constexpr (modes::isEqual(kinkType, modes::Kink::kSigma)) {
477483
float sigmaMass = kinkCand.mSigmaMinus();
478484

@@ -859,6 +865,7 @@ class SigmaPlusPcmSelection : public baseselection::BaseSelection<float, o2::ana
859865
{kinkFilterNames.at(kPhiMax), mPhiMax},
860866
{kinkFilterNames.at(kMassMin), mMassLowerLimit},
861867
{kinkFilterNames.at(kMassMax), mMassUpperLimit},
868+
{kinkFilterNames.at(kPhiAtPv), static_cast<float>(mPhiAtPv)},
862869
{kinkFilterNames.at(kMlScoreMin), mMlScoreMin},
863870
});
864871
};
@@ -907,6 +914,8 @@ class SigmaPlusPcmSelection : public baseselection::BaseSelection<float, o2::ana
907914
this->template fillFilter<FilterHistName>(kPhiMax, p);
908915
pass &= p;
909916

917+
this->template fillFilter<FilterHistName>(kPhiAtPv, mPhiAtPv);
918+
910919
p = mMass > mMassLowerLimit;
911920
this->template fillFilter<FilterHistName>(kMassMin, p);
912921
pass &= p;

0 commit comments

Comments
 (0)