Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
152 changes: 141 additions & 11 deletions PWGHF/Core/SelectorCuts.h
Original file line number Diff line number Diff line change
Expand Up @@ -721,16 +721,146 @@ constexpr double binsPt[nBinsPt + 1] = {
auto vecBinsPt = std::vector<double>{binsPt, binsPt + nBinsPt + 1};

// default values for the cuts m ptXi ptPi0 ptPi1 chi2PCA dL dLXY cosp cospXY impParXY Xi Pi0 Pi1
constexpr double cuts[nBinsPt][nCutVars] = {{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 0 < pT < 1 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 1 < pT < 2 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 2 < pT < 3 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 3 < pT < 4 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 4 < pT < 5 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 5 < pT < 6 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 6 < pT < 8 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 8 < pT < 12 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}, /* 12 < pT < 24 */
{0.400, 0.4, 0.4, 0.4, 1e-5, 0.005, 0.005, 0.8, 0.8, 0.1, 0.1, 0.1,}}; /* 24 < pT < 36 */
constexpr double cuts[nBinsPt][nCutVars] = {{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 0 < pT < 1 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 1 < pT < 2 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 2 < pT < 3 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 3 < pT < 4 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 4 < pT < 5 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 5 < pT < 6 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 6 < pT < 8 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 8 < pT < 12 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}, /* 12 < pT < 24 */
{
0.400,
0.4,
0.4,
0.4,
1e-5,
0.005,
0.005,
0.8,
0.8,
0.1,
0.1,
0.1,
}}; /* 24 < pT < 36 */

// row labels
static const std::vector<std::string> labelsPt = {
Expand All @@ -746,7 +876,7 @@ static const std::vector<std::string> labelsPt = {
"pT bin 9"};

// column labels
static const std::vector<std::string> labelsCutVar = {"m", "pT Xi", "pT Pi0", "pT Pi1", "chi2PCA", "max decay length", "max decay length XY", "cos pointing angle", "cos pointing angle XY", "max impParXY Xi", "max impParXY Pi0", "max impParXY Pi1"};
static const std::vector<std::string> labelsCutVar = {"m", "pT Xi", "pT Pi0", "pT Pi1", "chi2PCA", "max decay length", "max decay length XY", "cos pointing angle", "cos pointing angle XY", "max impParXY Xi", "max impParXY Pi0", "max impParXY Pi1"};
} // namespace hf_cuts_xic_to_xi_pi_pi

namespace hf_cuts_xicc_to_p_k_pi_pi
Expand Down
8 changes: 4 additions & 4 deletions PWGHF/D2H/Tasks/taskXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ struct HfTaskXicToXiPiPi {
void init(InitContext const&)
{
static const AxisSpec axisMassXic = {300, 1.8, 3.0, "inv. mass (GeV/#it{c}^{2})"};
static const AxisSpec axisMassXiRes= {300, 1.0,2.0, "inv. mass (GeV/#it{c}^{2})"};
static const AxisSpec axisMassXiRes = {300, 1.0, 2.0, "inv. mass (GeV/#it{c}^{2})"};
static const AxisSpec axisPt = {(std::vector<double>)binsPt, "#it{p}_{T} (GeV/#it{c})"};

registry.add("hEta", "#Xi^{#plus}_{c} candidates;#Xi^{#plus}_{c} candidate #it{#eta};entries", {HistType::kTH2F, {{100, -2., 2.}, axisPt}});
Expand Down Expand Up @@ -219,8 +219,8 @@ struct HfTaskXicToXiPiPi {
aod::TracksWMc const&)
{
std::vector<int> arrDaughIndex;
int pdgCodeXiMinus = kXiMinus; // 3312
int pdgCodePiPlus = kPiPlus; // 211
int pdgCodeXiMinus = kXiMinus; // 3312
int pdgCodePiPlus = kPiPlus; // 211

// MC rec
for (const auto& candidate : candidates) {
Expand Down Expand Up @@ -287,7 +287,7 @@ struct HfTaskXicToXiPiPi {
registry.fill(HIST("hCPALambdaRecBg"), candidate.cosPaLambda(), ptCandXic);
registry.fill(HIST("hCPAxyLambdaRecBg"), candidate.cosPaLambda(), ptCandXic);
}

if (checkDecayTypeMc) {
if (TESTBIT(flagMcMatchRecXic, hf_cand_xictoxipipi::DecayType::XicToXiPiPi)) {
registry.fill(HIST("hDecayTypeMc"), 1 + hf_cand_xictoxipipi::DecayType::XicToXiPiPi, candidate.invMassXic(), ptCandXic);
Expand Down
4 changes: 2 additions & 2 deletions PWGHF/DataModel/CandidateReconstructionTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -1357,7 +1357,7 @@ DECLARE_SOA_COLUMN(DebugMcGen, debugMcGen, int8_t);
DECLARE_SOA_COLUMN(OriginRec, originRec, int8_t);
DECLARE_SOA_COLUMN(OriginGen, originGen, int8_t);
// mapping of decay types
enum DecayType { XicToXiPiPi=0,
enum DecayType { XicToXiPiPi = 0,
XicToXiResPiToXiPiPi,
NDecayType };
} // end of namespace hf_cand_xictoxipipi
Expand Down Expand Up @@ -1418,7 +1418,7 @@ DECLARE_SOA_EXTENDED_TABLE_USER(HfCandXicExt, HfCandXicBase, "HFCANDXICEXT",
using HfCandXic = HfCandXicExt;

DECLARE_SOA_TABLE(HfCandXicKF, "AOD", "HFCANDXICKF",
cascdata::KFCascadeChi2, cascdata::KFV0Chi2,
cascdata::KFCascadeChi2, cascdata::KFV0Chi2,
hf_cand_xictoxipipi::DcaPi0Pi1, hf_cand_xictoxipipi::DcaPi0Xi, hf_cand_xictoxipipi::DcaPi1Xi);

// table with results of reconstruction level MC matching
Expand Down
4 changes: 2 additions & 2 deletions PWGHF/DataModel/CandidateSelectionTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,15 +307,15 @@ DECLARE_SOA_COLUMN(IsSelXicToPiKP, isSelXicToPiKP, int); //!
DECLARE_SOA_COLUMN(MlProbXicToPKPi, mlProbXicToPKPi, std::vector<float>); //!
DECLARE_SOA_COLUMN(MlProbXicToPiKP, mlProbXicToPiKP, std::vector<float>); //!
// XicPlus to Xi Pi Pi
DECLARE_SOA_COLUMN(IsSelXicToXiPiPi, isSelXicToXiPiPi, int); //!
DECLARE_SOA_COLUMN(IsSelXicToXiPiPi, isSelXicToXiPiPi, int); //!
DECLARE_SOA_COLUMN(MlProbXicToXiPiPi, mlProbXicToXiPiPi, std::vector<float>); //!
} // namespace hf_sel_candidate_xic

DECLARE_SOA_TABLE(HfSelXicToPKPi, "AOD", "HFSELXIC", //!
hf_sel_candidate_xic::IsSelXicToPKPi, hf_sel_candidate_xic::IsSelXicToPiKP);
DECLARE_SOA_TABLE(HfMlXicToPKPi, "AOD", "HFMLXIC", //!
hf_sel_candidate_xic::MlProbXicToPKPi, hf_sel_candidate_xic::MlProbXicToPiKP);
// XicPlus to Xi Pi Pi
// XicPlus to Xi Pi Pi
DECLARE_SOA_TABLE(HfSelXicToXiPiPi, "AOD", "HFSELXICTOXI2PI", //!
hf_sel_candidate_xic::IsSelXicToXiPiPi);
DECLARE_SOA_TABLE(HfMlXicToXiPiPi, "AOD", "HFMLXICTOXIPIPI", //!
Expand Down
36 changes: 18 additions & 18 deletions PWGHF/TableProducer/candidateCreatorXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ struct HfCandidateCreatorXic {
try {
kfXiPi0.Construct(kfXiResonanceDaughtersPi0, 2);
massXiPi0 = kfXiPi0.GetMass();
} catch(...) {
} catch (...) {
LOG(info) << "Failed to construct Xi(1530) with Pi 0";
}

Expand All @@ -451,7 +451,7 @@ struct HfCandidateCreatorXic {
try {
kfXiPi1.Construct(kfXiResonanceDaughtersPi1, 2);
massXiPi1 = kfXiPi1.GetMass();
} catch(...){
} catch (...) {
LOG(info) << "Failed to construct Xi(1530) with Pi 1";
}

Expand Down Expand Up @@ -526,12 +526,12 @@ struct HfCandidateCreatorXicExpressions {
std::array<int, 2> arrPDGDaugh;

std::array<int, 2> arrXiResonance = {3324, kPiPlus}; // 3324: Ξ(1530)
int pdgCodeXicPlus = Pdg::kXiCPlus; // 4232
int pdgCodeXiMinus = kXiMinus; // 3312
int pdgCodeLambda = kLambda0; // 3122
int pdgCodePiPlus = kPiPlus; // 211
int pdgCodePiMinus = kPiMinus; // -211
int pdgCodeProton = kProton; // 2212
int pdgCodeXicPlus = Pdg::kXiCPlus; // 4232
int pdgCodeXiMinus = kXiMinus; // 3312
int pdgCodeLambda = kLambda0; // 3122
int pdgCodePiPlus = kPiPlus; // 211
int pdgCodePiMinus = kPiMinus; // -211
int pdgCodeProton = kProton; // 2212

// Match reconstructed candidates.
for (const auto& candidate : *rowCandidateXic) {
Expand Down Expand Up @@ -621,16 +621,16 @@ struct HfCandidateCreatorXicExpressions {
RecoDecay::getDaughters(particle, &arrDaughIndex, std::array{0}, 1);
if (arrDaughIndex.size() == 2) {
for (auto iProng = 0u; iProng < arrDaughIndex.size(); ++iProng) {
auto daughI = mcParticles.rawIteratorAt(arrDaughIndex[iProng]);
arrPDGDaugh[iProng] = std::abs(daughI.pdgCode());
}
if ((arrPDGDaugh[0] == arrXiResonance[0] && arrPDGDaugh[1] == arrXiResonance[1]) || (arrPDGDaugh[0] == arrXiResonance[1] && arrPDGDaugh[1] == arrXiResonance[0])) {
flag = sign * (1 << aod::hf_cand_xictoxipipi::DecayType::XicToXiResPiToXiPiPi);
} else {
debug = 4;
}
auto daughI = mcParticles.rawIteratorAt(arrDaughIndex[iProng]);
arrPDGDaugh[iProng] = std::abs(daughI.pdgCode());
}
if ((arrPDGDaugh[0] == arrXiResonance[0] && arrPDGDaugh[1] == arrXiResonance[1]) || (arrPDGDaugh[0] == arrXiResonance[1] && arrPDGDaugh[1] == arrXiResonance[0])) {
flag = sign * (1 << aod::hf_cand_xictoxipipi::DecayType::XicToXiResPiToXiPiPi);
} else {
debug = 4;
}
} else {
flag = sign * (1 << aod::hf_cand_xictoxipipi::DecayType::XicToXiPiPi);
flag = sign * (1 << aod::hf_cand_xictoxipipi::DecayType::XicToXiPiPi);
}
}
}
Expand All @@ -643,7 +643,7 @@ struct HfCandidateCreatorXicExpressions {

rowMcMatchGen(flag, debug, origin);
} // close loop over generated particles
} // close process
} // close process
PROCESS_SWITCH(HfCandidateCreatorXicExpressions, processMc, "Process MC", false);
}; // close struct

Expand Down
5 changes: 2 additions & 3 deletions PWGHF/TableProducer/candidateSelectorXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ struct HfCandidateSelectorXicToXiPiPi {
registry.get<TH2>(HIST("hSelections"))->GetXaxis()->SetBinLabel(iBin + 1, labels[iBin].data());
}
}

}

/// Conjugate-independent topological cuts
Expand Down Expand Up @@ -151,8 +150,8 @@ struct HfCandidateSelectorXicToXiPiPi {
}

// cut on daughter pT
if (hfCandXic.ptProng0() < cuts->get(pTBin, "pT Xi") ||
hfCandXic.ptProng1() < cuts->get(pTBin, "pT Pi0") ||
if (hfCandXic.ptProng0() < cuts->get(pTBin, "pT Xi") ||
hfCandXic.ptProng1() < cuts->get(pTBin, "pT Pi0") ||
hfCandXic.ptProng2() < cuts->get(pTBin, "pT Pi1")) {
return false;
}
Expand Down
Loading