Skip to content

Commit 98c5311

Browse files
author
Jinhyun Park
committed
[xic0xicp] Modified to match updated tables of Xicp workflow
1 parent db7d70f commit 98c5311

File tree

6 files changed

+142
-141
lines changed

6 files changed

+142
-141
lines changed

PWGHF/D2H/Tasks/taskXic0XicpToHadronic.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct HfTaskXic0XicpToHadronic {
4444
Configurable<float> yCandRecoMax{"yCandRecoMax", 0.8, "max. reco particle's rapidity"};
4545
Configurable<float> etaTrackMax{"etaTrackMax", 0.8, "max. track's pseudo-rapidity"};
4646
Configurable<float> ptTrackMin{"ptTrackMin", 0.1, "min. track's pT"};
47-
Configurable<std::vector<double>> binsPt{"binsPt", std::vector<double>{hf_cuts_xic0_xicp_to_hadronic::vecBinsPt}, "pT bin limits"};
47+
Configurable<std::vector<double>> binsPt{"binsPt", std::vector<double>{hf_cuts_xic0_xicp_to_hadronic::xic0::vecBinsPt}, "pT bin limits"};
4848
// MC checks
4949
Configurable<bool> checkDecayTypeMc{"checkDecayTypeMc", false, "Flag to enable Decaytype histogram"};
5050
// THnSparse for ML selection check

PWGHF/DataModel/CandidateReconstructionTables.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2236,7 +2236,6 @@ DECLARE_SOA_TABLE(HfCandXic0McGen, "AOD", "HFCANDXIC0MCGEN",
22362236
hf_cand_xic0_xicp_to_hadronic::FlagMcMatchGen,
22372237
hf_cand_xic0_xicp_to_hadronic::DebugMcGen,
22382238
hf_cand_xic0_xicp_to_hadronic::OriginGen)
2239-
>>>>>>> 966303b7b (Xic0XicpToHadronic : Xic0 workflow fully implemented)
22402239

22412240
// specific chic candidate properties
22422241
namespace hf_cand_chic
132 KB
Binary file not shown.
16 KB
Binary file not shown.

PWGHF/TableProducer/candidateCreatorXic0XicpToHadronic.cxx

Lines changed: 109 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,9 @@ struct HfCandidateCreatorXic0XicpToHadronic {
11931193

11941194
// get geometrical chi2 of XicPlus
11951195
float chi2GeoXicPlus = kfXicPlus.GetChi2() / kfXicPlus.GetNDF();
1196+
float chi2PrimXi = kfXicPlus.GetDeviationFromVertex(kfPv);
1197+
float chi2PrimPi0 = kfCharmBachelor0.GetDeviationFromVertex(kfPv);
1198+
float chi2PrimPi1 = kfCharmBachelor1.GetDeviationFromVertex(kfPv);
11961199

11971200
// topological constraint of Xic to PV
11981201
float chi2topoXicPlusToPVBeforeConstraint = kfXicPlus.GetDeviationFromVertex(kfPv);
@@ -1254,6 +1257,11 @@ struct HfCandidateCreatorXic0XicpToHadronic {
12541257
float cpaLambdaToXi = RecoDecay::cpa(vertexCasc, vertexV0, pVecV0);
12551258
float cpaXYLambdaToXi = RecoDecay::cpaXY(vertexCasc, vertexV0, pVecV0);
12561259

1260+
// get chi2 devuation of Pi0-Pi1, Pi0-Xi, Pi1-Xi
1261+
float chi2DevPi0Pi1 = kfCharmBachelor0.GetDeviationFromParticle(kfCharmBachelor1);
1262+
float chi2DevPi0Xi = kfCharmBachelor0.GetDeviationFromParticle(kfXi);
1263+
float chi2DevPi1Xi = kfCharmBachelor1.GetDeviationFromParticle(kfXi);
1264+
12571265
// get DCAs of Pi0-Pi1, Pi0-Xi, Pi1-Xi
12581266
float dcaXYPi0Pi1 = kfCharmBachelor0.GetDistanceFromParticleXY(kfCharmBachelor1);
12591267
float dcaXYPi0Xi = kfCharmBachelor0.GetDistanceFromParticleXY(kfXi);
@@ -1376,9 +1384,11 @@ struct HfCandidateCreatorXic0XicpToHadronic {
13761384
/*PID information*/
13771385
nSigTpcPiFromXicPlus0, nSigTpcPiFromXicPlus1, nSigTpcBachelorPi, nSigTpcPiFromLambda, nSigTpcPrFromLambda,
13781386
nSigTofPiFromXicPlus0, nSigTofPiFromXicPlus1, nSigTofBachelorPi, nSigTofPiFromLambda, nSigTofPrFromLambda);
1379-
cursors.rowCandXicpKF(casc.kfCascadeChi2(), casc.kfV0Chi2(),
1380-
kfDecayLength, kfDecayLengthNormalised, kfDecayLengthXY, kfDecayLengthXYNormalised,
1381-
chi2topoXicPlusToPVBeforeConstraint, chi2topoXicPlusToPV, chi2topoXiToXicPlusBeforeConstraint, chi2topoXiToXicPlus,
1387+
cursors.rowCandXicpKF(kfDecayLength, kfDecayLengthNormalised, kfDecayLengthXY, kfDecayLengthXYNormalised,
1388+
casc.kfCascadeChi2(), casc.kfV0Chi2(),
1389+
chi2topoXicPlusToPVBeforeConstraint, chi2topoXicPlusToPV, //chi2topoXiToXicPlusBeforeConstraint, chi2topoXiToXicPlus,
1390+
chi2PrimXi, chi2PrimPi0, chi2PrimPi1,
1391+
chi2DevPi0Pi1, chi2DevPi0Xi, chi2DevPi1Xi,
13821392
dcaXYPi0Pi1, dcaXYPi0Xi, dcaXYPi1Xi,
13831393
dcaPi0Pi1, dcaPi0Xi, dcaPi1Xi);
13841394

@@ -1481,14 +1491,16 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
14811491
Produces<aod::HfCandXic0McGen> rowCandXic0McGen;
14821492
Produces<aod::HfCandXicMcRec> rowCandXicpMcRec;
14831493
Produces<aod::HfCandXicMcGen> rowCandXicpMcGen;
1494+
Produces<aod::HfCandXicResid> rowCandXicpMcResid;
14841495

14851496
} cursors;
14861497

14871498
struct : ConfigurableGroup {
14881499

1489-
Configurable<bool> rejectBackground{"rejectBackground", true, "Reject particles from background events"};
1500+
Configurable<bool> rejectBackground{"rejectBackground", true, "Reject particles from background events"}; // -> Used for only Xic0
14901501
Configurable<bool> acceptTrackInteractionWithMaterial{"acceptTrackInteractionWithMaterial", false, "Accept candidates with final daughters interacting with materials"};
14911502
Configurable<bool> fillMcHistograms{"fillMcHistograms", true, "Fill validation plots"};
1503+
Configurable<bool> fillResidualTable{"fillResidualTable", true, "Fill table contaning residuals and pulls of PV and SV"};
14921504
Configurable<bool> matchDecayedPions{"matchedDecayedPions", true, "Match also candidates with daughter pion tracks that decay with kinked toploogy"};
14931505

14941506
} configs;
@@ -1735,6 +1747,13 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
17351747
std::array<int, NDaughtersResonant> arrXiResonance = {3324, kPiPlus}; // 3324: Ξ(1530)
17361748
// for non-prompt
17371749
std::vector<int> idxBhadMothers;
1750+
// residuals and pulls
1751+
std::array<float, 2> momentumResiduals{-9999.f};
1752+
std::array<float, 3> pvResiduals{-9999.f};
1753+
std::array<float, 3> pvPulls{-9999.f};
1754+
std::array<float, 3> svResiduals{-9999.f};
1755+
std::array<float, 3> svPulls{-9999.f};
1756+
17381757

17391758
// Match reconstructed candidates.
17401759
for (const auto& candidate : *rowCandXicpExt)
@@ -1745,6 +1764,13 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
17451764
nPionsDecayed = 0;
17461765
nInteractionsWithMaterial = 0;
17471766
arrDaughIndex.clear();
1767+
if (configs.fillResidualTable) {
1768+
momentumResiduals.fill(-9999.f);
1769+
pvResiduals.fill(-9999.f);
1770+
pvPulls.fill(-9999.f);
1771+
svResiduals.fill(-9999.f);
1772+
svPulls.fill(-9999.f);
1773+
}
17481774

17491775
auto arrayDaughters = std::array{candidate.pi0_as<aod::TracksWMc>(), // pi <- Xic
17501776
candidate.pi1_as<aod::TracksWMc>(), // pi <- Xic
@@ -1759,113 +1785,104 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
17591785
auto arrayDaughtersV0 = std::array{candidate.posTrack_as<aod::TracksWMc>(),
17601786
candidate.negTrack_as<aod::TracksWMc>()};
17611787

1762-
if (configs.fillMcHistograms)
1763-
{
1788+
if (configs.fillMcHistograms) {
17641789
registry.fill(HIST("hDebugRec"), TotalRec);
17651790
}
17661791

17671792
// 1. Xic → pi pi pi pi p
1768-
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1769-
{
1793+
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
17701794
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles, arrayDaughters, Pdg::kXiCPlus, std::array{+kPiPlus, +kPiPlus, +kPiMinus, +kProton, +kPiMinus}, true, &sign, 4, &nPionsDecayed, nullptr, &nInteractionsWithMaterial);
1771-
}
1772-
else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial)
1773-
{
1795+
} else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial) {
17741796
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles, arrayDaughters, Pdg::kXiCPlus, std::array{+kPiPlus, +kPiPlus, +kPiMinus, +kProton, +kPiMinus}, true, &sign, 4, &nPionsDecayed, nullptr, &nInteractionsWithMaterial);
1775-
}
1776-
1777-
else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1778-
{
1797+
} else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
17791798
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, true>(mcParticles, arrayDaughters, Pdg::kXiCPlus, std::array{+kPiPlus, +kPiPlus, +kPiMinus, +kProton, +kPiMinus}, true, &sign, 4, &nPionsDecayed, nullptr, &nInteractionsWithMaterial);
1780-
}
1781-
else
1782-
{
1799+
} else {
17831800
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, false>(mcParticles, arrayDaughters, Pdg::kXiCPlus, std::array{+kPiPlus, +kPiPlus, +kPiMinus, +kProton, +kPiMinus}, true, &sign, 4, &nPionsDecayed, nullptr, &nInteractionsWithMaterial);
17841801
}
17851802

17861803
indexRecXicPlus = indexRec;
17871804

1788-
if (indexRec > -1)
1789-
{
1790-
if (configs.fillMcHistograms)
1791-
{
1805+
if (indexRec > -1) {
1806+
if (configs.fillMcHistograms) {
17921807
registry.fill(HIST("hDebugRec"), XicToFinalState);
17931808
}
17941809
// 2. Xi- → pi pi p
1795-
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1796-
{
1810+
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
17971811
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles, arrayDaughtersCasc, +kXiMinus, std::array{+kPiMinus, +kProton, +kPiMinus}, true, nullptr, 2);
1798-
}
1799-
else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial)
1800-
{
1812+
} else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial) {
18011813
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles, arrayDaughtersCasc, +kXiMinus, std::array{+kPiMinus, +kProton, +kPiMinus}, true, nullptr, 2);
1802-
}
1803-
else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1804-
{
1814+
} else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
18051815
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, true>(mcParticles, arrayDaughtersCasc, +kXiMinus, std::array{+kPiMinus, +kProton, +kPiMinus}, true, nullptr, 2);
1806-
}
1807-
else
1808-
{
1816+
} else {
18091817
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, false>(mcParticles, arrayDaughtersCasc, +kXiMinus, std::array{+kPiMinus, +kProton, +kPiMinus}, true, nullptr, 2);
18101818
}
1811-
if (indexRec > -1)
1812-
{
1813-
if (configs.fillMcHistograms)
1814-
{
1819+
if (indexRec > -1) {
1820+
if (configs.fillMcHistograms) {
18151821
registry.fill(HIST("hDebugRec"), XiToPiPPi);
18161822
}
18171823
//3. Lambda → p pi
1818-
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1819-
{
1824+
if (configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
18201825
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles, arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true);
1821-
}
1822-
else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial)
1823-
{
1826+
} else if (configs.matchDecayedPions && !configs.acceptTrackInteractionWithMaterial) {
18241827
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles, arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true);
1825-
}
1826-
else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial)
1827-
{
1828+
} else if (!configs.matchDecayedPions && configs.acceptTrackInteractionWithMaterial) {
18281829
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, true>(mcParticles, arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true);
1829-
}
1830-
1831-
else
1832-
{
1830+
} else {
18331831
indexRec = RecoDecay::getMatchedMCRec<false, true, false, false, false>(mcParticles, arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true);
18341832
}
18351833

1836-
if (indexRec > -1)
1837-
{
1838-
if (configs.fillMcHistograms)
1839-
{
1834+
if (indexRec > -1) {
1835+
if (configs.fillMcHistograms) {
18401836
registry.fill(HIST("hDebugRec"), LambdaToPPi);
18411837
}
1842-
RecoDecay::getDaughters(mcParticles.rawIteratorAt(indexRecXicPlus), &arrDaughIndex, std::array{0}, 1);
1843-
if (arrDaughIndex.size() == NDaughtersResonant)
1844-
{
1845-
for (auto iProng = 0u; iProng < NDaughtersResonant; ++iProng)
1846-
{
1838+
auto particleXicPlus = mcParticles.rawIteratorAt(indexRecXicPlus);
1839+
1840+
// Check whether XicPlus decays via resonant decay
1841+
RecoDecay::getDaughters(particleXicPlus, &arrDaughIndex, std::array{0}, 1);
1842+
if (arrDaughIndex.size() == NDaughtersResonant) {
1843+
for (auto iProng = 0u; iProng < NDaughtersResonant; ++iProng) {
18471844
auto daughI = mcParticles.rawIteratorAt(arrDaughIndex[iProng]);
18481845
arrPDGDaugh[iProng] = std::abs(daughI.pdgCode());
18491846
}
18501847
if ((arrPDGDaugh[0] == arrXiResonance[0] && arrPDGDaugh[1] == arrXiResonance[1]) || (arrPDGDaugh[0] == arrXiResonance[1] && arrPDGDaugh[1] == arrXiResonance[0])) {
18511848
flag = sign * (1 << aod::hf_cand_xic_to_xi_pi_pi::DecayType::XicToXiResPiToXiPiPi);
18521849
}
1853-
}
1854-
else
1855-
{
1850+
} else {
18561851
flag = sign * (1 << aod::hf_cand_xic_to_xi_pi_pi::DecayType::XicToXiPiPi);
18571852
}
1853+
// Check whether the charm baryon is non-prompt (from a b quark).
1854+
if (flag != 0) {
1855+
auto particle = mcParticles.rawIteratorAt(indexRecXicPlus);
1856+
origin = RecoDecay::getCharmHadronOrigin(mcParticles, particleXicPlus, false);
1857+
}
1858+
// Calculate residuals and pulls
1859+
if (flag!=0 && configs.fillResidualTable) {
1860+
auto mcCollision = particleXicPlus.template mcCollision_as<McCollisions>();
1861+
auto particleDaughter0 = mcParticles.rawIteratorAt(arrDaughIndex[0]);
1862+
1863+
momentumResiduals[0] = candidate.p() - particleXicPlus.p();
1864+
momentumResiduals[1] = candidate.pt() - particleXicPlus.pt();
1865+
pvResiduals[0] = candidate.posX() - mcCollision.posX();
1866+
pvResiduals[1] = candidate.posY() - mcCollision.posY();
1867+
pvResiduals[2] = candidate.posZ() - mcCollision.posZ();
1868+
svResiduals[0] = candidate.xSecondaryVertex() - particleDaughter0.vx();
1869+
svResiduals[1] = candidate.ySecondaryVertex() - particleDaughter0.vy();
1870+
svResiduals[2] = candidate.zSecondaryVertex() - particleDaughter0.vz();
1871+
try {
1872+
pvPulls[0] = pvResiduals[0]/candidate.xPvErr();
1873+
pvPulls[0] = pvResiduals[1]/candidate.yPvErr();
1874+
pvPulls[0] = pvResiduals[2]/candidate.zPvErr();
1875+
svPulls[0] = svResiduals[0]/candidate.xSvErr();
1876+
svPulls[0] = svResiduals[1]/candidate.ySvErr();
1877+
svPulls[0] = svResiduals[2]/candidate.zSvErr();
1878+
} catch (const std::runtime_error& error) {
1879+
LOG(info) << "Run time error found : " << error.what() << ". Set values of vertex pulls to -9999.9";
1880+
}
1881+
}
18581882
}
18591883
}
18601884
}
18611885

1862-
// Check whether the charm baryon is non-prompt (from a b quark).
1863-
if (flag != 0)
1864-
{
1865-
auto particle = mcParticles.rawIteratorAt(indexRecXicPlus);
1866-
origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false);
1867-
}
1868-
18691886
// Fill histograms
18701887
if (flag != 0 && configs.fillMcHistograms)
18711888
{
@@ -1875,42 +1892,41 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
18751892

18761893
// Fill table
18771894
cursors.rowCandXicpMcRec(flag, origin);
1895+
if (flag!=0 && configs.fillResidualTable) {
1896+
cursors.rowCandXicpMcResid(origin, momentumResiduals[0], momentumResiduals[1],
1897+
pvResiduals[0], pvResiduals[1], pvResiduals[2],
1898+
pvPulls[0], pvPulls[1], pvPulls[2],
1899+
svResiduals[0], svResiduals[1], svResiduals[2],
1900+
svPulls[0], svPulls[1], svPulls[2]);
1901+
}
18781902
} // close loop over candidates
18791903

18801904
// Match generated particles.
1881-
for (const auto& mcCollision : mcCollisions)
1882-
{
1905+
for (const auto& mcCollision : mcCollisions) {
18831906
// Slice the particles table to get the particles for the current MC collision
18841907
const auto mcParticlesPerMcColl = mcParticles.sliceBy(mcParticlesPerMcCollision, mcCollision.globalIndex());
18851908
// Slice the collisions table to get the collision info for the current MC collision
18861909
float centrality{-1.f};
18871910
uint16_t rejectionMask{0};
18881911
int nSplitColl = 0;
18891912

1890-
if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::FT0C)
1891-
{
1913+
if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::FT0C) {
18921914
const auto collSlice = collInfos.sliceBy(colPerMcCollisionFT0C, mcCollision.globalIndex());
18931915
rejectionMask = hfEvSelMc.getHfMcCollisionRejectionMask<BCsInfo, centEstimator>(mcCollision, collSlice, centrality);
1894-
}
1895-
else if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::FT0M)
1896-
{
1916+
} else if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::FT0M) {
18971917
const auto collSlice = collInfos.sliceBy(colPerMcCollisionFT0M, mcCollision.globalIndex());
18981918
nSplitColl = collSlice.size();
18991919
rejectionMask = hfEvSelMc.getHfMcCollisionRejectionMask<BCsInfo, centEstimator>(mcCollision, collSlice, centrality);
1900-
}
1901-
else if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::None)
1902-
{
1920+
} else if constexpr (centEstimator == o2::hf_centrality::CentralityEstimator::None) {
19031921
const auto collSlice = collInfos.sliceBy(colPerMcCollision, mcCollision.globalIndex());
19041922
rejectionMask = hfEvSelMc.getHfMcCollisionRejectionMask<BCsInfo, centEstimator>(mcCollision, collSlice, centrality);
19051923
}
19061924

19071925
hfEvSelMc.fillHistograms<centEstimator>(mcCollision, rejectionMask, nSplitColl);
19081926

1909-
if (rejectionMask != 0)
1910-
{
1927+
if (rejectionMask != 0) {
19111928
// at least one event selection not satisfied --> reject all particles from this collision
1912-
for (unsigned int i = 0; i < mcParticlesPerMcColl.size(); ++i)
1913-
{
1929+
for (unsigned int i = 0; i < mcParticlesPerMcColl.size(); ++i) {
19141930
cursors.rowCandXicpMcGen(-99, -99, -99);
19151931
}
19161932
continue;
@@ -1925,62 +1941,48 @@ struct HfCandidateCreatorXic0XicpToHadronicMc {
19251941
idxBhadMothers.clear();
19261942

19271943
// 4. Xic → Xi pi pi
1928-
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, particle, Pdg::kXiCPlus, std::array{+kXiMinus, +kPiPlus, +kPiPlus}, true, &sign, 2))
1929-
{
1944+
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, particle, Pdg::kXiCPlus, std::array{+kXiMinus, +kPiPlus, +kPiPlus}, true, &sign, 2)) {
19301945
// 5. Xi- -> Lambda pi
19311946
auto cascMC = mcParticles.rawIteratorAt(particle.daughtersIds().front());
19321947
// 6. Find Xi- from Xi(1530) -> Xi pi in case of resonant decay
19331948
RecoDecay::getDaughters(particle, &arrDaughIndex, std::array{0}, 1);
1934-
if (arrDaughIndex.size() == NDaughtersResonant)
1935-
{
1949+
if (arrDaughIndex.size() == NDaughtersResonant) {
19361950
auto cascStarMC = mcParticles.rawIteratorAt(particle.daughtersIds().front());
1937-
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, cascStarMC, +3324, std::array{+kXiMinus, +kPiPlus}, true))
1938-
{
1951+
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, cascStarMC, +3324, std::array{+kXiMinus, +kPiPlus}, true)) {
19391952
cascMC = mcParticles.rawIteratorAt(cascStarMC.daughtersIds().front());
19401953
}
19411954
}
19421955

1943-
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, cascMC, +kXiMinus, std::array{+kLambda0, +kPiMinus}, true))
1944-
{
1956+
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, cascMC, +kXiMinus, std::array{+kLambda0, +kPiMinus}, true)) {
19451957
// 7. Lambda -> p pi
19461958
auto v0MC = mcParticles.rawIteratorAt(cascMC.daughtersIds().front());
1947-
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, v0MC, +kLambda0, std::array{+kProton, +kPiMinus}, true))
1948-
{
1949-
if (arrDaughIndex.size() == NDaughtersResonant)
1950-
{
1951-
for (auto iProng = 0u; iProng < NDaughtersResonant; ++iProng)
1952-
{
1959+
if (RecoDecay::isMatchedMCGen<false, true>(mcParticles, v0MC, +kLambda0, std::array{+kProton, +kPiMinus}, true)) {
1960+
if (arrDaughIndex.size() == NDaughtersResonant) {
1961+
for (auto iProng = 0u; iProng < NDaughtersResonant; ++iProng) {
19531962
auto daughI = mcParticles.rawIteratorAt(arrDaughIndex[iProng]);
19541963
arrPDGDaugh[iProng] = std::abs(daughI.pdgCode());
19551964
}
19561965

19571966
if ((arrPDGDaugh[0] == arrXiResonance[0] && arrPDGDaugh[1] == arrXiResonance[1]) || (arrPDGDaugh[0] == arrXiResonance[1] && arrPDGDaugh[1] == arrXiResonance[0])) {
19581967
flag = sign * (1 << aod::hf_cand_xic_to_xi_pi_pi::DecayType::XicToXiResPiToXiPiPi);
19591968
}
1960-
}
1961-
else
1962-
{
1969+
} else {
19631970
flag = sign * (1 << aod::hf_cand_xic_to_xi_pi_pi::DecayType::XicToXiPiPi);
19641971
}
19651972
}
19661973
}
19671974
}
19681975

19691976
// 8. Check whether the charm baryon is non-prompt (from a b quark).
1970-
if (flag != 0)
1971-
{
1977+
if (flag != 0) {
19721978
origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers);
19731979
}
19741980

19751981
// Fill table
1976-
if (origin == RecoDecay::OriginType::NonPrompt)
1977-
{
1982+
if (origin == RecoDecay::OriginType::NonPrompt) {
19781983
auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]);
19791984
cursors.rowCandXicpMcGen(flag, origin, bHadMother.pdgCode());
1980-
}
1981-
1982-
else
1983-
{
1985+
} else {
19841986
cursors.rowCandXicpMcGen(flag, origin, 0);
19851987
}
19861988

0 commit comments

Comments
 (0)