Skip to content

Commit 84f2f24

Browse files
committed
[Trigger,PWGHF] Add mass vs ct histogram also for Xic0 (#16226)
1 parent ec2d29d commit 84f2f24

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

EventFiltering/PWGHF/HFFilter.cxx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ struct HfFilter { // Main struct for HF triggers
248248
std::array<std::shared_ptr<TH1>, kNCharmParticles> hBDTScorePrompt{};
249249
std::array<std::shared_ptr<TH1>, kNCharmParticles> hBDTScoreNonPrompt{};
250250
std::array<std::shared_ptr<TH2>, kNV0> hArmPod{};
251-
std::shared_ptr<TH2> hV0Selected, hMassVsCtCharmBaryonToXiPiPi;
251+
std::shared_ptr<TH2> hV0Selected;
252+
std::array<std::shared_ptr<TH2>, 2> hMassVsCtCharmBaryonToXi{};
252253
std::array<std::shared_ptr<TH2>, 2> hMassXi{}; // not tracked and tracked
253254
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hCpaVsPtB{};
254255
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hDecayLengthVsPtB{};
@@ -389,7 +390,8 @@ struct HfFilter { // Main struct for HF triggers
389390
hMassVsPtC[kNCharmParticles + 15] = registry.add<TH2>("fMassVsPtCharmBaryonToXiPi", "#it{M} vs. #it{p}_{T} distribution of triggered #Xi+#pi candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ptAxis, massAxisC[kNCharmParticles + 15]});
390391
hMassVsPtC[kNCharmParticles + 16] = registry.add<TH2>("fMassVsPtCharmBaryonToXiKa", "#it{M} vs. #it{p}_{T} distribution of triggered #Xi+K candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ptAxis, massAxisC[kNCharmParticles + 16]});
391392
hMassVsPtC[kNCharmParticles + 17] = registry.add<TH2>("fMassVsPtCharmBaryonToXiPiPi", "#it{M} vs. #it{p}_{T} distribution of triggered #Xi+#pi+#pi candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ptAxis, massAxisC[kNCharmParticles + 17]});
392-
hMassVsCtCharmBaryonToXiPiPi = registry.add<TH2>("fMassVsCtCharmBaryonToXiPiPi", "#it{M} vs. ct distribution of triggered #Xi+#pi+#pi candidates;ct (cm);#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ctAxis, massAxisC[kNCharmParticles + 17]});
393+
hMassVsCtCharmBaryonToXi[0] = registry.add<TH2>("fMassVsCtCharmBaryonToXiPi", "#it{M} vs. ct distribution of triggered #Xi+#pi candidates;ct (cm);#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ctAxis, massAxisC[kNCharmParticles + 15]});
394+
hMassVsCtCharmBaryonToXi[1] = registry.add<TH2>("fMassVsCtCharmBaryonToXiPiPi", "#it{M} vs. ct distribution of triggered #Xi+#pi+#pi candidates;ct (cm);#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ctAxis, massAxisC[kNCharmParticles + 17]});
393395
// JPsi
394396
hMassVsPtC[kNCharmParticles + 18] = registry.add<TH2>("fMassVsPtJPsiToMuMu", "#it{M} vs. #it{p}_{T} distribution of triggered J/#psi to #mu#mu candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts", HistType::kTH2D, {ptAxis, massAxisC[kNCharmParticles + 18]});
395397
// Lc resonances
@@ -1948,10 +1950,10 @@ struct HfFilter { // Main struct for HF triggers
19481950
bool isSelXiBach{false};
19491951
if (requireStrangenessTracking->get(0u, 0u) > 0) {
19501952
if (hasStrangeTrack) {
1951-
isSelXiBach = helper.isSelectedXiBach(trackParCascTrack, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16]);
1953+
isSelXiBach = helper.isSelectedXiBach(trackParCascTrack, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16], hMassVsCtCharmBaryonToXi[0]);
19521954
}
19531955
} else {
1954-
isSelXiBach = helper.isSelectedXiBach(trackParCasc, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16]);
1956+
isSelXiBach = helper.isSelectedXiBach(trackParCasc, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16], hMassVsCtCharmBaryonToXi[0]);
19551957
}
19561958
if (isSelXiBach) {
19571959
keepEvent[kCharmBarToXiBach] = true;
@@ -1991,10 +1993,10 @@ struct HfFilter { // Main struct for HF triggers
19911993
bool isSelXiBachBach{false};
19921994
if (requireStrangenessTracking->get(0u, 1u) > 0) {
19931995
if (hasStrangeTrack) {
1994-
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
1996+
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXi[1]);
19951997
}
19961998
} else { // vertex with only the two bachelors
1997-
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
1999+
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXi[1]);
19982000
}
19992001
if (isSelXiBachBach) {
20002002
keepEvent[kCharmBarToXi2Bach] = true;

EventFiltering/PWGHF/HFFilterHelpers.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ constexpr float massDPlus = o2::constants::physics::MassDPlus;
274274
constexpr float massDs = o2::constants::physics::MassDS;
275275
constexpr float massLc = o2::constants::physics::MassLambdaCPlus;
276276
constexpr float massXic = o2::constants::physics::MassXiCPlus;
277+
constexpr float massXic0 = o2::constants::physics::MassXiC0;
277278
constexpr float massDStar = o2::constants::physics::MassDStar;
278279
constexpr float massBPlus = o2::constants::physics::MassBPlus;
279280
constexpr float massB0 = o2::constants::physics::MassB0;
@@ -717,7 +718,7 @@ class HfFilterHelper
717718
template <typename T1>
718719
bool isCharmHadronMassInSbRegions(T1 const& massHypo1, T1 const& massHypo2, const float& lowLimitSB, const float& upLimitSB);
719720
template <typename T, typename C, typename H2>
720-
bool isSelectedXiBach(T const& trackParCasc, T const& trackParBachelor, int8_t isSelBachelor, C const& collision, o2::vertexing::DCAFitterN<2>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPi, H2 hMassVsPtXiKa);
721+
bool isSelectedXiBach(T const& trackParCasc, T const& trackParBachelor, int8_t isSelBachelor, C const& collision, o2::vertexing::DCAFitterN<2>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPi, H2 hMassVsPtXiKa, H2 hMassVsCtXiPi);
721722
template <int Nprongs, typename T, typename C, typename H2>
722723
bool isSelectedXiBachBach(T const& trackParCasc, std::array<T, 2> const& trackParBachelor, C const& collision, o2::vertexing::DCAFitterN<Nprongs>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPiPi, H2 hMassVsCtXiPiPi);
723724
template <bool is4ThetaC = false, typename T>
@@ -2423,8 +2424,9 @@ inline bool HfFilterHelper::isCharmHadronMassInSbRegions(T1 const& massHypo1, T1
24232424
/// \param activateQA is the flag to activate the QA
24242425
/// \param hMassVsPtXiPi is the 2D histogram with pT vs mass(XiPi)
24252426
/// \param hMassVsPtXiKa is the 2D histogram with pT vs mass(XiKa)
2427+
/// \param hMassVsCtXiPi is the 2D histogram with ct vs mass(XiPi)
24262428
template <typename T, typename C, typename H2>
2427-
inline bool HfFilterHelper::isSelectedXiBach(T const& trackParCasc, T const& trackParBachelor, int8_t isSelBachelor, C const& collision, o2::vertexing::DCAFitterN<2>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPi, H2 hMassVsPtXiKa)
2429+
inline bool HfFilterHelper::isSelectedXiBach(T const& trackParCasc, T const& trackParBachelor, int8_t isSelBachelor, C const& collision, o2::vertexing::DCAFitterN<2>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPi, H2 hMassVsPtXiKa, H2 hMassVsCtXiPi)
24282430
{
24292431
bool isSelectedXiPi{false}, isSelectedXiKa{false};
24302432

@@ -2483,13 +2485,16 @@ inline bool HfFilterHelper::isSelectedXiBach(T const& trackParCasc, T const& tra
24832485
return false;
24842486
}
24852487

2486-
if (RecoDecay::distance(primVtx, vtx) < mDecLenMinXiBach[0]) {
2488+
auto decLenXiBach = RecoDecay::distance(primVtx, vtx);
2489+
if (decLenXiBach < mDecLenMinXiBach[0]) {
24872490
return false;
24882491
}
24892492

24902493
if (activateQA) {
24912494
if (isSelectedXiPi) {
2495+
auto ctXiBach = RecoDecay::ct(momXiBach, decLenXiBach, massXic0);
24922496
hMassVsPtXiPi->Fill(ptXiBach, massXiPi);
2497+
hMassVsCtXiPi->Fill(ctXiBach, massXiPi);
24932498
}
24942499
if (isSelectedXiKa) {
24952500
hMassVsPtXiKa->Fill(ptXiBach, massXiKa);

0 commit comments

Comments
 (0)