Skip to content

Commit a108119

Browse files
authored
[Trigger,PWGHF] Add Xic ct QA histogram to HFFilter task (#16224)
1 parent 0c387ef commit a108119

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

EventFiltering/PWGHF/HFFilter.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ 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;
252+
std::shared_ptr<TH2> hV0Selected, hMassVsCtCharmBaryonToXiPiPi;
253253
std::array<std::shared_ptr<TH2>, 2> hMassXi{}; // not tracked and tracked
254254
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hCpaVsPtB{};
255255
std::array<std::shared_ptr<TH2>, kNBeautyParticles> hDecayLengthVsPtB{};
@@ -390,6 +390,7 @@ struct HfFilter { // Main struct for HF triggers
390390
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]});
391391
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]});
392392
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]});
393394
// JPsi
394395
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]});
395396
// Lc resonances
@@ -1991,10 +1992,10 @@ struct HfFilter { // Main struct for HF triggers
19911992
bool isSelXiBachBach{false};
19921993
if (requireStrangenessTracking->get(0u, 1u) > 0) {
19931994
if (hasStrangeTrack) {
1994-
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17]);
1995+
isSelXiBachBach = helper.isSelectedXiBachBach<3>(trackParCascTrack, {trackParBachelor, trackParBachelorSecond}, collision, dfStrangeness3, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
19951996
}
19961997
} else { // vertex with only the two bachelors
1997-
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17]);
1998+
isSelXiBachBach = helper.isSelectedXiBachBach<2>(trackParCasc, {trackParBachelor, trackParBachelorSecond}, collision, df2, activateQA, hMassVsPtC[kNCharmParticles + 17], hMassVsCtCharmBaryonToXiPiPi);
19981999
}
19992000
if (isSelXiBachBach) {
20002001
keepEvent[kCharmBarToXi2Bach] = true;

EventFiltering/PWGHF/HFFilterHelpers.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ constexpr float massJPsi = o2::constants::physics::MassJPsi;
288288

289289
static const o2::framework::AxisSpec ptAxis{50, 0.f, 50.f};
290290
static const o2::framework::AxisSpec pAxis{50, 0.f, 10.f};
291+
static const o2::framework::AxisSpec ctAxis{300, 0.f, 0.3f};
291292
static const o2::framework::AxisSpec kstarAxis{200, 0.f, 2.f};
292293
static const o2::framework::AxisSpec etaAxis{30, -1.5f, 1.5f};
293294
static const o2::framework::AxisSpec nSigmaAxis{100, -10.f, 10.f};
@@ -718,7 +719,7 @@ class HfFilterHelper
718719
template <typename T, typename C, typename H2>
719720
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);
720721
template <int Nprongs, typename T, typename C, typename H2>
721-
bool isSelectedXiBachBach(T const& trackParCasc, std::array<T, 2> const& trackParBachelor, C const& collision, o2::vertexing::DCAFitterN<Nprongs>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPiPi);
722+
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);
722723
template <bool is4ThetaC = false, typename T>
723724
bool isSelectedProtonFromLcResoOrThetaC(const T& track);
724725
// helpers
@@ -2506,8 +2507,9 @@ inline bool HfFilterHelper::isSelectedXiBach(T const& trackParCasc, T const& tra
25062507
/// \param dcaFitter is the DCAFitter
25072508
/// \param activateQA is the flag to activate the QA
25082509
/// \param hMassVsPtXiPiPi is the 2D histogram with pT vs mass(XiPiPi)
2510+
/// \param hMassVsCtXiPiPi is the 2D histogram with ct vs mass(XiPiPi)
25092511
template <int Nprongs, typename T, typename C, typename H2>
2510-
inline bool HfFilterHelper::isSelectedXiBachBach(T const& trackParCasc, std::array<T, 2> const& trackParBachelor, C const& collision, o2::vertexing::DCAFitterN<Nprongs>& dcaFitter, const int& activateQA, H2 hMassVsPtXiPiPi)
2512+
inline bool HfFilterHelper::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)
25112513
{
25122514
// compute pT
25132515
std::array<float, 3> pVecBachelorFirst{}, pVecBachelorSecond{}, pVecCascade{};
@@ -2570,13 +2572,15 @@ inline bool HfFilterHelper::isSelectedXiBachBach(T const& trackParCasc, std::arr
25702572
if (RecoDecay::cpa(primVtx, std::array{vtx[0], vtx[1], vtx[2]}, momXiBachBach) < mCosPaMinXiBach[1]) {
25712573
return false;
25722574
}
2573-
2574-
if (RecoDecay::distance(primVtx, vtx) < mDecLenMinXiBach[1]) {
2575+
auto decLenXiBachBach = RecoDecay::distance(primVtx, vtx);
2576+
if (decLenXiBachBach < mDecLenMinXiBach[1]) {
25752577
return false;
25762578
}
25772579

2580+
auto ctXiBachBach = RecoDecay::ct(momXiBachBach, decLenXiBachBach, massXic);
25782581
if (activateQA) {
25792582
hMassVsPtXiPiPi->Fill(ptXiBachBach, massXiPiPi);
2583+
hMassVsCtXiPiPi->Fill(ctXiBachBach, massXiPiPi);
25802584
}
25812585
}
25822586

0 commit comments

Comments
 (0)