[PWGHF] Add Lc->pK0s channel in polarization task.#15635
[PWGHF] Add Lc->pK0s channel in polarization task.#15635XXL-2025 wants to merge 2 commits intoAliceO2Group:masterfrom
Conversation
|
O2 linter results: ❌ 0 errors, |
|
@XXL-2025 Who are you? |
a72b372 to
4c9e4f8
Compare
|
@vkucera I am a new analyzer from China, and I’m currently learning the analysis from Mattia. |
|
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. |
|
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 |
4c9e4f8 to
28c7967
Compare
|
we understood how to reopen it, I'll review it later |
| enum MassHyposLcToPK0S : uint8_t { | ||
| PK0S = 0, | ||
| K0SP, | ||
| NMassHypoLcToPK0S | ||
| }; | ||
| enum QvecEstimator : uint8_t { |
There was a problem hiding this comment.
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:
- 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 - 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 - if the candidate survives the selections for both hypoteses, then you have to consider both cases in analysis.
ForLc->pK0syou do not have ambiguity between the proton and the neutral kaon.
|
|
||
| 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); | ||
|
|
There was a problem hiding this comment.
| 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
| /// 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 |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
You can remove it, you do not fill the background table for the Lc->pK0s case
| /// 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 |
There was a problem hiding this comment.
You never use it, remove it
| /// rotational background | ||
| for (int iRotation{1}; iRotation <= nBkgRotations; ++iRotation) { | ||
| runPolarisationAnalysis<charm_polarisation::DecayChannel::LcToPK0S, false, false>(lcCandidate, iRotation, numPvContributors, -1 /*MC particles*/, tracks); | ||
| } | ||
| } |
There was a problem hiding this comment.
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); | |||
|
|
|||
There was a problem hiding this comment.
| // Lc->pK0s with ML cuts |
| /// rotational background | ||
| for (int iRotation{1}; iRotation <= nBkgRotations; ++iRotation) { | ||
| runPolarisationAnalysis<charm_polarisation::DecayChannel::LcToPK0S, true, false>(lcCandidate, iRotation, numPvContributors, -1 /*MC particles*/, tracks); | ||
| } | ||
| } |
There was a problem hiding this comment.
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); | |||
|
|
|||
There was a problem hiding this comment.
| // 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); | |||
|
|
|||
There was a problem hiding this comment.
| // Lc->pK0s in MC with ML cuts |
@mfaggin