Skip to content

Commit cab539f

Browse files
authored
[Trigger,PWGHF] Add mass vs ct histogram also for Xic0 (#16226)
1 parent 2ca27eb commit cab539f

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
@@ -249,7 +249,8 @@ struct HfFilter { // Main struct for HF triggers
249249
std::array<std::shared_ptr<TH1>, kNCharmParticles> hBDTScorePrompt{};
250250
std::array<std::shared_ptr<TH1>, kNCharmParticles> hBDTScoreNonPrompt{};
251251
std::array<std::shared_ptr<TH2>, kNV0> hArmPod{};
252-
std::shared_ptr<TH2> hV0Selected, hMassVsCtCharmBaryonToXiPiPi;
252+
std::shared_ptr<TH2> hV0Selected;
253+
std::array<std::shared_ptr<TH2>, 2> hMassVsCtCharmBaryonToXi{};
253254
std::array<std::shared_ptr<TH2>, 2> hMassXi{}; // not tracked and tracked
254255
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hCpaVsPtB{};
255256
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hDecayLengthVsPtB{};
@@ -390,7 +391,8 @@ struct HfFilter { // Main struct for HF triggers
390391
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]});
391392
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]});
392393
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]});
393-
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]});
394+
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]});
395+
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]});
394396
// JPsi
395397
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]});
396398
// Lc resonances
@@ -1949,10 +1951,10 @@ struct HfFilter { // Main struct for HF triggers
19491951
bool isSelXiBach{false};
19501952
if (requireStrangenessTracking->get(0u, 0u) > 0) {
19511953
if (hasStrangeTrack) {
1952-
isSelXiBach = helper.isSelectedXiBach(trackParCascTrack, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16]);
1954+
isSelXiBach = helper.isSelectedXiBach(trackParCascTrack, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16], hMassVsCtCharmBaryonToXi[0]);
19531955
}
19541956
} else {
1955-
isSelXiBach = helper.isSelectedXiBach(trackParCasc, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16]);
1957+
isSelXiBach = helper.isSelectedXiBach(trackParCasc, trackParBachelor, isSelBachelor, collision, dfStrangeness, activateQA, hMassVsPtC[kNCharmParticles + 15], hMassVsPtC[kNCharmParticles + 16], hMassVsCtCharmBaryonToXi[0]);
19561958
}
19571959
if (isSelXiBach) {
19581960
keepEvent[kCharmBarToXiBach] = true;
@@ -1992,10 +1994,10 @@ struct HfFilter { // Main struct for HF triggers
19921994
bool isSelXiBachBach{false};
19931995
if (requireStrangenessTracking->get(0u, 1u) > 0) {
19941996
if (hasStrangeTrack) {
1995-
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
1997+
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXi[1]);
19961998
}
19971999
} else { // vertex with only the two bachelors
1998-
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
2000+
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXi[1]);
19992001
}
20002002
if (isSelXiBachBach) {
20012003
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)