@@ -278,7 +278,7 @@ constexpr float massB0 = o2::constants::physics::MassB0;
278278constexpr float massBs = o2::constants::physics::MassBS;
279279constexpr float massLb = o2::constants::physics::MassLambdaB0;
280280constexpr float massXib = o2::constants::physics::MassXiB0;
281- constexpr float massBc = 6 . 2744700f ; // TODO add Bc mass to o2::constants::physics
281+ constexpr float massBc = o2::constants::physics::MassBCPlus;
282282constexpr float massSigmaCPlusPlus = o2::constants::physics::MassSigmaCPlusPlus;
283283constexpr float massSigmaC0 = o2::constants::physics::MassSigmaC0;
284284constexpr float massK0Star892 = o2::constants::physics::MassK0Star892;
@@ -601,6 +601,12 @@ class HfFilterHelper
601601
602602 void setNumSigmaForDeltaMassCharmHadCut (float nSigma) { mNumSigmaDeltaMassCharmHad = nSigma; }
603603
604+ void setPreselDsToKKPi (std::vector<double > ptBins, o2::framework::LabeledArray<double > preselections)
605+ {
606+ mPtBinsPreselDsToKKPi = ptBins;
607+ mPreselDsToKKPi = preselections;
608+ }
609+
604610 // helper functions for selections
605611 template <typename T>
606612 bool isSelectedHighPt2Prong (const T& pt);
@@ -790,6 +796,9 @@ class HfFilterHelper
790796 int mTpcPidCalibrationOption {0 }; // Option for TPC PID calibration (0 -> AO2D, 1 -> postcalibrations, 2 -> alternative bethe bloch parametrisation)
791797 std::array<TH3F*, 8 > mHistMapPiPrKaDe {}; // Map for TPC PID postcalibrations for pions, kaon, protons and deuterons
792798 std::array<std::vector<double >, 8 > mBetheBlochPiKaPrDe {}; // Bethe-Bloch parametrisations for pions, antipions, kaons, antikaons, protons, antiprotons, deuterons, antideuterons in TPC
799+ // Ds cuts from track-index-skim-creator
800+ std::vector<double > mPtBinsPreselDsToKKPi {}; // pT bins for pre-selections for Ds from track-index-skim-creator
801+ o2::framework::LabeledArray<double > mPreselDsToKKPi {}; // pre-selections for Ds from track-index-skim-creator
793802};
794803
795804// / Selection of high-pt 2-prong candidates
@@ -1071,13 +1080,20 @@ inline int8_t HfFilterHelper::isDsPreselected(const P& pTrackSameChargeFirst, co
10711080 }
10721081
10731082 // check delta-mass for phi resonance
1083+ auto ptDs = RecoDecay::pt (pTrackSameChargeFirst, pTrackSameChargeSecond, pTrackOppositeCharge);
1084+ auto ptBinDs = findBin (mPtBinsPreselDsToKKPi , ptDs);
1085+ if (ptBinDs == -1 ) {
1086+ return retValue;
1087+ }
1088+
10741089 auto invMassKKFirst = RecoDecay::m (std::array{pTrackSameChargeFirst, pTrackOppositeCharge}, std::array{massKa, massKa});
10751090 auto invMassKKSecond = RecoDecay::m (std::array{pTrackSameChargeSecond, pTrackOppositeCharge}, std::array{massKa, massKa});
10761091
1077- if (std::fabs (invMassKKFirst - massPhi) < 0.02 ) {
1092+ float cutValueMassKK = mPreselDsToKKPi .get (ptBinDs, 4u );
1093+ if (std::fabs (invMassKKFirst - massPhi) < cutValueMassKK) {
10781094 retValue |= BIT (0 );
10791095 }
1080- if (std::fabs (invMassKKSecond - massPhi) < 0.02 ) {
1096+ if (std::fabs (invMassKKSecond - massPhi) < cutValueMassKK ) {
10811097 retValue |= BIT (1 );
10821098 }
10831099
0 commit comments