Skip to content

[PWGHF] Add Lc->pK0s channel in polarization task.#15635

Draft
XXL-2025 wants to merge 2 commits intoAliceO2Group:masterfrom
XXL-2025:Lcpk0spPolarisation
Draft

[PWGHF] Add Lc->pK0s channel in polarization task.#15635
XXL-2025 wants to merge 2 commits intoAliceO2Group:masterfrom
XXL-2025:Lcpk0spPolarisation

Conversation

@XXL-2025
Copy link
Copy Markdown

@XXL-2025 XXL-2025 commented Apr 2, 2026

@github-actions github-actions bot added the pwghf PWG-HF label Apr 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

O2 linter results: ❌ 0 errors, ⚠️ 0 warnings, 🔕 5 disabled

@vkucera
Copy link
Copy Markdown
Collaborator

vkucera commented Apr 2, 2026

@XXL-2025 Who are you?

@XXL-2025 XXL-2025 force-pushed the Lcpk0spPolarisation branch from a72b372 to 4c9e4f8 Compare April 2, 2026 17:17
@XXL-2025
Copy link
Copy Markdown
Author

XXL-2025 commented Apr 2, 2026

@vkucera I am a new analyzer from China, and I’m currently learning the analysis from Mattia.

@mfaggin
Copy link
Copy Markdown
Collaborator

mfaggin commented Apr 7, 2026

hi @vkucera, Xianxian is a student working with me. He is trying to implement the Lambdac->pK0s channel in the polarization task in O2Physics to do the analysis.
I asked him to open the PR as a draft on purpose not to trigger any notification to the reviewers because I wanted to check it first, and secondly I'd have introduced Xianxian once the PR would have been released for the review.

@mfaggin
Copy link
Copy Markdown
Collaborator

mfaggin commented Apr 7, 2026

now we do not manage to reopen the PR anymore, is it maybe because you @vkucera should act somehow? Can you please let us know? Thank you

@XXL-2025 XXL-2025 reopened this Apr 7, 2026
@XXL-2025 XXL-2025 force-pushed the Lcpk0spPolarisation branch from 4c9e4f8 to 28c7967 Compare April 7, 2026 07:58
@mfaggin
Copy link
Copy Markdown
Collaborator

mfaggin commented Apr 7, 2026

we understood how to reopen it, I'll review it later

Copy link
Copy Markdown
Collaborator

@mfaggin mfaggin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @XXL-2025 for the development. There are some adjustments to be done, please address my comments and test locally your code in both data and MC.

Comment on lines 96 to 101
enum MassHyposLcToPK0S : uint8_t {
PK0S = 0,
K0SP,
NMassHypoLcToPK0S
};
enum QvecEstimator : uint8_t {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove it, this is not necessary for Lc->pK0s decays, it is a peculiarity of the Lc->pKpi decays.

As we discussed, for real Lc->pKpi decays you always have 3 tracks: one of them has an opposite charge compared to the candidate Lc, and it is identified as the kaon; the other two tracks have the same electric charge of the candidate Lc and they might be either a proton or a pion, and depending on the selections you have to consider the correct mass hypothesis. More explicitly:

  1. if the selections tells you that the 1st track is a proton and the 3rd one a pion, the the correct mass hypothesis would be MassHyposLcToPKPi::PKPi
  2. if the selections tells you that the 1st track is a pion and the 3rd one a proton, the the correct mass hypothesis would be MassHyposLcToPKPi::PiKP
  3. if the candidate survives the selections for both hypoteses, then you have to consider both cases in analysis.
    For Lc->pK0s you do not have ambiguity between the proton and the neutral kaon.

Comment on lines +125 to +140

DECLARE_SOA_COLUMN(MassLcK0S, massLcK0S, float);
DECLARE_SOA_COLUMN(PtLcK0S, ptLcK0S, float);
DECLARE_SOA_COLUMN(RapidityLcK0S, rapidityLcK0S, float);
DECLARE_SOA_COLUMN(CosThetaStarK0S, cosThetaStarK0S, float);
DECLARE_SOA_COLUMN(PdgMotherProng0K0S, pdgMotherProng0K0S, int);
DECLARE_SOA_COLUMN(PdgMotherProng1K0S, pdgMotherProng1K0S, int);
DECLARE_SOA_COLUMN(MassK0S, massK0S, float);
DECLARE_SOA_COLUMN(BdtBkgScoreK0S, bdtBkgScoreK0S, float);
DECLARE_SOA_COLUMN(BdtNonPromptScoreK0S, bdtNonPromptScoreK0S, float);
DECLARE_SOA_COLUMN(IsRealPK0S, isRealPK0S, int8_t);
DECLARE_SOA_COLUMN(IsRealLcPK0S, isRealLcPK0S, int8_t);
DECLARE_SOA_COLUMN(IsReflectedK0S, isReflectedK0S, int8_t);
DECLARE_SOA_COLUMN(ChargeK0S, chargeK0S, int8_t);
DECLARE_SOA_COLUMN(OriginK0S, originK0S, int8_t);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
DECLARE_SOA_COLUMN(MassLcK0S, massLcK0S, float);
DECLARE_SOA_COLUMN(PtLcK0S, ptLcK0S, float);
DECLARE_SOA_COLUMN(RapidityLcK0S, rapidityLcK0S, float);
DECLARE_SOA_COLUMN(CosThetaStarK0S, cosThetaStarK0S, float);
DECLARE_SOA_COLUMN(PdgMotherProng0K0S, pdgMotherProng0K0S, int);
DECLARE_SOA_COLUMN(PdgMotherProng1K0S, pdgMotherProng1K0S, int);
DECLARE_SOA_COLUMN(MassK0S, massK0S, float);
DECLARE_SOA_COLUMN(BdtBkgScoreK0S, bdtBkgScoreK0S, float);
DECLARE_SOA_COLUMN(BdtNonPromptScoreK0S, bdtNonPromptScoreK0S, float);
DECLARE_SOA_COLUMN(IsRealPK0S, isRealPK0S, int8_t);
DECLARE_SOA_COLUMN(IsRealLcPK0S, isRealLcPK0S, int8_t);
DECLARE_SOA_COLUMN(IsReflectedK0S, isReflectedK0S, int8_t);
DECLARE_SOA_COLUMN(ChargeK0S, chargeK0S, int8_t);
DECLARE_SOA_COLUMN(OriginK0S, originK0S, int8_t);

You can remove them, you do not fill the background table for the Lc->pK0s case

Comment on lines 163 to 180
/// table to study the Lc->PK0S background

DECLARE_SOA_TABLE(HfLcK0SPolBkg, "AOD", "HFLCK0SPOLBKG",
charm_polarisation::MassLcK0S,
charm_polarisation::PtLcK0S,
charm_polarisation::RapidityLcK0S,
charm_polarisation::CosThetaStarK0S,
charm_polarisation::PdgMotherProng0K0S,
charm_polarisation::PdgMotherProng1K0S,
charm_polarisation::MassK0S,
charm_polarisation::BdtBkgScoreK0S,
charm_polarisation::BdtNonPromptScoreK0S,
charm_polarisation::IsRealPK0S,
charm_polarisation::IsRealLcPK0S,
charm_polarisation::IsReflectedK0S,
charm_polarisation::ChargeK0S,
charm_polarisation::OriginK0S);
} // namespace o2::aod
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove them, you do not fill the background table for the Lc->pK0s case

struct HfTaskCharmPolarisation {
Produces<o2::aod::HfLcPolBkg> rowCandLcBkg;

Produces<o2::aod::HfLcK0SPolBkg> rowCandLcK0SBkg;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove it, you do not fill the background table for the Lc->pK0s case

Comment on lines 217 to 219
/// table for Lc->pK0S background studies in MC.
Configurable<int> cosThStarAxisLcPK0SBkgMc{"cosThStarAxisLcPK0SBkgMc", 1, "cos(Theta*) axis for background studies (1 = helicity; 2 = production; 3 = beam; 4 = random)"};
/// veto conditions for Lc->pKpi analysis
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You never use it, remove it

Comment on lines +3005 to +3009
/// rotational background
for (int iRotation{1}; iRotation <= nBkgRotations; ++iRotation) {
runPolarisationAnalysis<charm_polarisation::DecayChannel::LcToPK0S, false, false>(lcCandidate, iRotation, numPvContributors, -1 /*MC particles*/, tracks);
}
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as already mentioned, remove the case with the rotational background

@@ -2574,6 +3040,31 @@ struct HfTaskCharmPolarisation {
}
PROCESS_SWITCH(HfTaskCharmPolarisation, processLcToPKPiWithMl, "Process Lc candidates with ML", false);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Lc->pK0s with ML cuts

Comment on lines +3058 to +3062
/// rotational background
for (int iRotation{1}; iRotation <= nBkgRotations; ++iRotation) {
runPolarisationAnalysis<charm_polarisation::DecayChannel::LcToPK0S, true, false>(lcCandidate, iRotation, numPvContributors, -1 /*MC particles*/, tracks);
}
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as already mentioned, remove the case with the rotational background

@@ -2607,6 +3098,37 @@ struct HfTaskCharmPolarisation {
}
PROCESS_SWITCH(HfTaskCharmPolarisation, processLcToPKPiMc, "Process Lc candidates in MC without ML", false);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Lc->pK0s in MC with rectangular cuts

@@ -2640,6 +3162,36 @@ struct HfTaskCharmPolarisation {
}
PROCESS_SWITCH(HfTaskCharmPolarisation, processLcToPKPiMcWithMl, "Process Lc candidates in MC with ML", false);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Lc->pK0s in MC with ML cuts

Copy link
Copy Markdown
Collaborator

@mfaggin mfaggin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @XXL-2025 for the development. There are some adjustments to be done, please address my comments and test locally your code in both data and MC.

@vkucera
Copy link
Copy Markdown
Collaborator

vkucera commented Apr 8, 2026

Hi @mfaggin @XXL-2025 , thanks for the clarification.
For the sake of transparent collaboration, I think that we should all show our names in our GitHub accounts and we should not accept pull requests from anonymous GitHub accounts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pwghf PWG-HF

Development

Successfully merging this pull request may close these issues.

3 participants