diff --git a/Analysis/DataModel/include/AnalysisDataModel/HFSecondaryVertex.h b/Analysis/DataModel/include/AnalysisDataModel/HFSecondaryVertex.h index a45c184044966..c9499bd575786 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/HFSecondaryVertex.h +++ b/Analysis/DataModel/include/AnalysisDataModel/HFSecondaryVertex.h @@ -155,7 +155,9 @@ DECLARE_SOA_COLUMN(FlagMCMatchRec, flagMCMatchRec, int8_t); // reconstruction le DECLARE_SOA_COLUMN(FlagMCMatchGen, flagMCMatchGen, int8_t); // generator level // mapping of decay types -enum DecayType { D0ToPiK = 1 }; +enum DecayType { D0ToPiK = 0, + JpsiToEE, + N2ProngDecays }; //always keep N2ProngDecays at the end // functions for specific particles @@ -289,8 +291,10 @@ DECLARE_SOA_COLUMN(FlagMCMatchRec, flagMCMatchRec, int8_t); // reconstruction le DECLARE_SOA_COLUMN(FlagMCMatchGen, flagMCMatchGen, int8_t); // generator level // mapping of decay types -enum DecayType { DPlusToPiKPi = 1, - LcToPKPi }; +enum DecayType { DPlusToPiKPi = 0, + LcToPKPi, + DsToPiKK, + N3ProngDecays }; //always keep N3ProngDecays at the end // functions for specific particles diff --git a/Analysis/Tasks/PWGHF/HFD0CandidateSelector.cxx b/Analysis/Tasks/PWGHF/HFD0CandidateSelector.cxx index 59d11b4291eac..3b3c2fe38e95c 100644 --- a/Analysis/Tasks/PWGHF/HFD0CandidateSelector.cxx +++ b/Analysis/Tasks/PWGHF/HFD0CandidateSelector.cxx @@ -324,11 +324,17 @@ struct HFD0CandidateSelector { for (auto& hfCandProng2 : hfCandProng2s) { //looping over 2 prong candidates + statusD0 = 0; + statusD0bar = 0; + + if (!(hfCandProng2.hfflag() & 1 << D0ToPiK)) { + hfSelD0Candidate(statusD0, statusD0bar); + continue; + } + auto trackPos = hfCandProng2.index0_as(); //positive daughter auto trackNeg = hfCandProng2.index1_as(); //negative daughter - statusD0 = 0; - statusD0bar = 0; topolD0 = true; topolD0bar = true; pidD0 = -1; diff --git a/Analysis/Tasks/PWGHF/HFLcCandidateSelector.cxx b/Analysis/Tasks/PWGHF/HFLcCandidateSelector.cxx index d4fe99f1cb21f..daf4acccef213 100644 --- a/Analysis/Tasks/PWGHF/HFLcCandidateSelector.cxx +++ b/Analysis/Tasks/PWGHF/HFLcCandidateSelector.cxx @@ -287,9 +287,8 @@ struct HFLcCandidateSelector { statusLcpKpi = 0; statusLcpiKp = 0; - int LcFlag = hfCandProng3.hfflag(); - if (!(LcFlag & 1 << 1)) { + if (!(hfCandProng3.hfflag() & 1 << LcToPKPi)) { hfSelLcCandidate(statusLcpKpi, statusLcpiKp); continue; } diff --git a/Analysis/Tasks/PWGHF/taskD0.cxx b/Analysis/Tasks/PWGHF/taskD0.cxx index 54ae5fcb5afa6..5019da9352c15 100644 --- a/Analysis/Tasks/PWGHF/taskD0.cxx +++ b/Analysis/Tasks/PWGHF/taskD0.cxx @@ -64,6 +64,9 @@ struct TaskD0 { { //Printf("Candidates: %d", candidates.size()); for (auto& candidate : candidates) { + if (!(candidate.hfflag() & 1 << D0ToPiK)) { + continue; + } if (cutEtaCandMax >= 0. && std::abs(candidate.eta()) > cutEtaCandMax) { //Printf("Candidate: eta rejection: %g", candidate.eta()); continue; @@ -120,6 +123,9 @@ struct TaskD0MC { // MC rec. //Printf("MC Candidates: %d", candidates.size()); for (auto& candidate : candidates) { + if (!(candidate.hfflag() & 1 << D0ToPiK)) { + continue; + } if (cutEtaCandMax >= 0. && std::abs(candidate.eta()) > cutEtaCandMax) { //Printf("MC Rec.: eta rejection: %g", candidate.eta()); continue; diff --git a/Analysis/Tasks/PWGHF/taskLc.cxx b/Analysis/Tasks/PWGHF/taskLc.cxx index 877cb81fb563c..43b165c77755d 100644 --- a/Analysis/Tasks/PWGHF/taskLc.cxx +++ b/Analysis/Tasks/PWGHF/taskLc.cxx @@ -63,6 +63,9 @@ struct TaskLc { void process(soa::Filtered> const& candidates) { for (auto& candidate : candidates) { + if (!(candidate.hfflag() & 1 << LcToPKPi)) { + continue; + } if (cutEtaCandMax >= 0. && std::abs(candidate.eta()) > cutEtaCandMax) { //Printf("Candidate: eta rejection: %g", candidate.eta()); continue; @@ -120,6 +123,9 @@ struct TaskLcMC { // MC rec. //Printf("MC Candidates: %d", candidates.size()); for (auto& candidate : candidates) { + if (!(candidate.hfflag() & 1 << LcToPKPi)) { + continue; + } if (cutEtaCandMax >= 0. && std::abs(candidate.eta()) > cutEtaCandMax) { //Printf("MC Rec.: eta rejection: %g", candidate.eta()); continue;