Skip to content
Merged
34 changes: 19 additions & 15 deletions PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -256,8 +256,8 @@ struct HfCandidateCreatorXic0Omegac0 {
template <o2::hf_centrality::CentralityEstimator centEstimator, int decayChannel, typename Coll, typename Hist>
void runXic0Omegac0Creator(Coll const&,
aod::BCsWithTimestamps const& /*bcWithTimeStamps*/,
TracksWCovDca const&,
MyLFTracksWCov const&,
MyLFTracksWCov const& lfTracks,
TracksWCovDca const& tracks,
MyCascTable const&, CascadesLinked const&,
aod::HfCascLf2Prongs const& candidates,
Hist& hInvMassCharmBaryon,
Expand Down Expand Up @@ -309,7 +309,8 @@ struct HfCandidateCreatorXic0Omegac0 {
}
df.setBz(magneticField);

auto trackCharmBachelor = cand.prong0_as<TracksWCovDca>();
auto trackCharmBachelorId = cand.prong0Id();
auto trackCharmBachelor = tracks.rawIteratorAt(trackCharmBachelorId);

auto cascAodElement = cand.cascade_as<aod::CascadesLinked>();
hCascadesCounter->Fill(0);
Expand All @@ -319,9 +320,12 @@ struct HfCandidateCreatorXic0Omegac0 {
}
auto casc = cascAodElement.cascData_as<MyCascTable>();
hCascadesCounter->Fill(1);
auto trackCascDauCharged = casc.bachelor_as<MyLFTracksWCov>(); // pion <- xi track
auto trackV0Dau0 = casc.posTrack_as<MyLFTracksWCov>(); // V0 positive daughter track
auto trackV0Dau1 = casc.negTrack_as<MyLFTracksWCov>(); // V0 negative daughter track
auto trackCascDauChargedId = casc.bachelorId(); // pion <- xi track
auto trackV0Dau0Id = casc.posTrackId(); // V0 positive daughter track
auto trackV0Dau1Id = casc.negTrackId(); // V0 negative daughter track
auto trackCascDauCharged = lfTracks.rawIteratorAt(trackCascDauChargedId); // pion <- xi track
auto trackV0Dau0 = lfTracks.rawIteratorAt(trackV0Dau0Id); // V0 positive daughter track
auto trackV0Dau1 = lfTracks.rawIteratorAt(trackV0Dau1Id); // V0 negative daughter track

//-------------------------- V0 info---------------------------
// pseudorapidity
Expand Down Expand Up @@ -1005,7 +1009,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processNoCentToXiPi, "Run candidate creator w/o centrality selections for xi pi decay channel", true);

Expand All @@ -1017,7 +1021,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processNoCentToOmegaPi, "Run candidate creator w/o centrality selections for omega pi decay channel", false);

Expand All @@ -1040,7 +1044,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
runXic0Omegac0Creator<CentralityEstimator::None, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processNoCentToOmegaK, "Run candidate creator w/o centrality selections for omega K decay channel", false);

Expand All @@ -1053,7 +1057,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0CToXiPi, "Run candidate creator w/ centrality selection on FT0C for xi pi channel", false);

Expand All @@ -1065,7 +1069,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0CToOmegaPi, "Run candidate creator w/ centrality selection on FT0C for omega pi channel", false);

Expand All @@ -1077,7 +1081,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
runXic0Omegac0Creator<CentralityEstimator::FT0C, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0CToOmegaK, "Run candidate creator w/ centrality selection on FT0C for omega K channel", false);

Expand All @@ -1090,7 +1094,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToXiPi, hFitterStatusToXiPi, hCandidateCounterToXiPi, hCascadesCounterToXiPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0MToXiPi, "Run candidate creator w/ centrality selection on FT0M for xi pi channel", false);

Expand All @@ -1102,7 +1106,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaPi, hFitterStatusToOmegaPi, hCandidateCounterToOmegaPi, hCascadesCounterToOmegaPi);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0MToOmegaPi, "Run candidate creator w/ centrality selection on FT0M for omega pi channel", false);

Expand All @@ -1114,7 +1118,7 @@ struct HfCandidateCreatorXic0Omegac0 {
CascadesLinked const& cascadeLinks,
aod::HfCascLf2Prongs const& candidates)
{
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, tracks, lfTracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
runXic0Omegac0Creator<CentralityEstimator::FT0M, hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK>(collisions, bcWithTimeStamps, lfTracks, tracks, cascades, cascadeLinks, candidates, hInvMassCharmBaryonToOmegaK, hFitterStatusToOmegaK, hCandidateCounterToOmegaK, hCascadesCounterToOmegaK);
}
PROCESS_SWITCH(HfCandidateCreatorXic0Omegac0, processCentFT0MToOmegaK, "Run candidate creator w/ centrality selection on FT0M for omega K channel", false);

Expand Down
20 changes: 12 additions & 8 deletions PWGHF/TableProducer/candidateSelectorOmegac0ToOmegaKa.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -195,19 +195,23 @@ struct HfCandidateSelectorToOmegaKa {
}

void process(aod::HfCandToOmegaK const& candidates,
TracksSel const&,
TracksSelLf const&)
TracksSel const& tracks,
TracksSelLf const& lfTracks)
{

// looping over charm baryon candidates
for (const auto& candidate : candidates) {

bool resultSelections = true; // True if the candidate passes all the selections, False otherwise

auto trackV0PosDau = candidate.posTrack_as<TracksSelLf>(); // positive V0 daughter
auto trackV0NegDau = candidate.negTrack_as<TracksSelLf>(); // negative V0 daughter
auto trackKaFromCasc = candidate.bachelor_as<TracksSelLf>(); // kaon <- cascade
auto trackKaFromCharm = candidate.bachelorFromCharmBaryon_as<TracksSel>(); // kaon <- charm baryon
auto trackV0PosDauId = candidate.posTrackId(); // positive V0 daughter
auto trackV0NegDauId = candidate.negTrackId(); // negative V0 daughter
auto trackKaFromCascId = candidate.bachelorId(); // kaon <- cascade
auto trackKaFromCharmId = candidate.bachelorFromCharmBaryonId(); // pion <- charm baryon
auto trackV0PosDau = lfTracks.rawIteratorAt(trackV0PosDauId);
auto trackV0NegDau = lfTracks.rawIteratorAt(trackV0NegDauId);
auto trackKaFromCasc = lfTracks.rawIteratorAt(trackKaFromCascId);
auto trackKaFromCharm = tracks.rawIteratorAt(trackKaFromCharmId);

auto trackPiFromLam = trackV0NegDau;
auto trackPrFromLam = trackV0PosDau;
Expand Down Expand Up @@ -304,15 +308,15 @@ struct HfCandidateSelectorToOmegaKa {
}

// dcaXY v0 daughters to PV cut
if (candidate.dcaXYToPvV0Dau0() < dcaPosToPvMin || candidate.dcaXYToPvV0Dau1() < dcaNegToPvMin) {
if (std::abs(candidate.dcaXYToPvV0Dau0()) < dcaPosToPvMin || std::abs(candidate.dcaXYToPvV0Dau1()) < dcaNegToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 0);
} else {
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 1);
}

// dcaXY ka <-- cascade to PV cut
if (candidate.dcaXYToPvCascDau() < dcaBachToPvMin) {
if (std::abs(candidate.dcaXYToPvCascDau()) < dcaBachToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvKaFromCasc"), 0);
} else {
Expand Down
20 changes: 12 additions & 8 deletions PWGHF/TableProducer/candidateSelectorOmegac0ToOmegaPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -195,18 +195,22 @@ struct HfCandidateSelectorToOmegaPi {
}

void process(aod::HfCandToOmegaPi const& candidates,
TracksSel const&,
TracksSelLf const&)
TracksSel const& tracks,
TracksSelLf const& lfTracks)
{
// looping over charm baryon candidates
for (const auto& candidate : candidates) {

bool resultSelections = true; // True if the candidate passes all the selections, False otherwise

auto trackV0PosDau = candidate.posTrack_as<TracksSelLf>(); // positive V0 daughter
auto trackV0NegDau = candidate.negTrack_as<TracksSelLf>(); // negative V0 daughter
auto trackKaFromCasc = candidate.bachelor_as<TracksSelLf>(); // kaon <- cascade
auto trackPiFromCharm = candidate.bachelorFromCharmBaryon_as<TracksSel>(); // pion <- charm baryon
auto trackV0PosDauId = candidate.posTrackId(); // positive V0 daughter
auto trackV0NegDauId = candidate.negTrackId(); // negative V0 daughter
auto trackKaFromCascId = candidate.bachelorId(); // kaon <- cascade
auto trackPiFromCharmId = candidate.bachelorFromCharmBaryonId(); // pion <- charm baryon
auto trackV0PosDau = lfTracks.rawIteratorAt(trackV0PosDauId);
auto trackV0NegDau = lfTracks.rawIteratorAt(trackV0NegDauId);
auto trackKaFromCasc = lfTracks.rawIteratorAt(trackKaFromCascId);
auto trackPiFromCharm = tracks.rawIteratorAt(trackPiFromCharmId);

auto trackPiFromLam = trackV0NegDau;
auto trackPrFromLam = trackV0PosDau;
Expand Down Expand Up @@ -303,15 +307,15 @@ struct HfCandidateSelectorToOmegaPi {
}

// dcaXY v0 daughters to PV cut
if (candidate.dcaXYToPvV0Dau0() < dcaPosToPvMin || candidate.dcaXYToPvV0Dau1() < dcaNegToPvMin) {
if (std::abs(candidate.dcaXYToPvV0Dau0()) < dcaPosToPvMin || std::abs(candidate.dcaXYToPvV0Dau1()) < dcaNegToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 0);
} else {
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 1);
}

// dcaXY ka <-- cascade to PV cut
if (candidate.dcaXYToPvCascDau() < dcaBachToPvMin) {
if (std::abs(candidate.dcaXYToPvCascDau()) < dcaBachToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvKaFromCasc"), 0);
} else {
Expand Down
20 changes: 12 additions & 8 deletions PWGHF/TableProducer/candidateSelectorToXiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ struct HfCandidateSelectorToXiPi {
}

void process(aod::HfCandToXiPi const& candidates,
TracksSel const&,
TracksSelLf const&)
TracksSel const& tracks,
TracksSelLf const& lfTracks)
{

double massLambdaFromPDG = o2::constants::physics::MassLambda0;
Expand All @@ -189,10 +189,14 @@ struct HfCandidateSelectorToXiPi {

bool resultSelections = true; // True if the candidate passes all the selections, False otherwise

auto trackV0PosDau = candidate.posTrack_as<TracksSelLf>(); // positive V0 daughter
auto trackV0NegDau = candidate.negTrack_as<TracksSelLf>(); // negative V0 daughter
auto trackPiFromCasc = candidate.bachelor_as<TracksSelLf>(); // pion <- cascade
auto trackPiFromCharm = candidate.bachelorFromCharmBaryon_as<TracksSel>(); // pion <- charm baryon
auto trackV0PosDauId = candidate.posTrackId(); // positive V0 daughter
auto trackV0NegDauId = candidate.negTrackId(); // negative V0 daughter
auto trackPiFromCascId = candidate.bachelorId(); // pion <- cascade
auto trackPiFromCharmId = candidate.bachelorFromCharmBaryonId(); // pion <- charm baryon
auto trackV0PosDau = lfTracks.rawIteratorAt(trackV0PosDauId);
auto trackV0NegDau = lfTracks.rawIteratorAt(trackV0NegDauId);
auto trackPiFromCasc = lfTracks.rawIteratorAt(trackPiFromCascId);
auto trackPiFromCharm = tracks.rawIteratorAt(trackPiFromCharmId);

auto trackPiFromLam = trackV0NegDau;
auto trackPrFromLam = trackV0PosDau;
Expand Down Expand Up @@ -289,15 +293,15 @@ struct HfCandidateSelectorToXiPi {
}

// dcaXY v0 daughters to PV cut
if (candidate.dcaXYToPvV0Dau0() < dcaPosToPvMin || candidate.dcaXYToPvV0Dau1() < dcaNegToPvMin) {
if (std::abs(candidate.dcaXYToPvV0Dau0()) < dcaPosToPvMin || std::abs(candidate.dcaXYToPvV0Dau1()) < dcaNegToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 0);
} else {
registry.fill(HIST("hSelDcaXYToPvV0Daughters"), 1);
}

// dcaXY pi <-- cascade to PV cut
if (candidate.dcaXYToPvCascDau() < dcaBachToPvMin) {
if (std::abs(candidate.dcaXYToPvCascDau()) < dcaBachToPvMin) {
resultSelections = false;
registry.fill(HIST("hSelDcaXYToPvPiFromCasc"), 0);
} else {
Expand Down