Skip to content
Open
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
22 changes: 11 additions & 11 deletions PWGHF/HFC/TableProducer/correlatorDplusDplusReduced.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -114,21 +114,21 @@ struct HfCorrelatorDplusDplusReduced {
collision.posZ());
}

template <typename Coll, bool doMc = false, bool doMl = false, typename T>
template <typename Coll, bool DoMc = false, bool DoMl = false, typename T>
void fillCandidateTable(const T& candidate, int localEvIdx = -1, int sign = 1)
{
int8_t flagMc = 0;
int8_t originMc = 0;
int8_t channelMc = 0;

if constexpr (doMc) {
if constexpr (DoMc) {
flagMc = candidate.flagMcMatchRec();
originMc = candidate.originMcRec();
channelMc = candidate.flagMcDecayChanRec();
}

std::vector<float> outputMl = {-999., -999.};
if constexpr (doMl) {
if constexpr (DoMl) {
for (unsigned int iclass = 0; iclass < classMlIndexes->size(); iclass++) {
outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMlIndexes->at(iclass)];
}
Expand Down Expand Up @@ -283,7 +283,7 @@ struct HfCorrelatorDplusDplusReduced {
}
}

void processData(aod::Collisions const& collisions, SelectedCandidates const& candidates, aod::Tracks const&)
void processData(aod::Collisions const& collisions, SelectedCandidates const& candidates, aod::Tracks const&, aod::BCsWithTimestamps const&)
{
static int lastRunNumber = -1;
// reserve memory
Expand Down Expand Up @@ -315,16 +315,16 @@ struct HfCorrelatorDplusDplusReduced {
continue;
fillEvent(collision);
for (const auto& candidate : candidatesInThisCollision) {
auto prong_candidate = candidate.prong1_as<aod::Tracks>();
auto candidate_sign = prong_candidate.sign();
fillCandidateTable<aod::Collisions>(candidate, rowCandidateFullEvents.lastIndex(), candidate_sign);
auto prongCandidate = candidate.prong1_as<aod::Tracks>();
auto candidateSign = -prongCandidate.sign();
fillCandidateTable<aod::Collisions>(candidate, rowCandidateFullEvents.lastIndex(), candidateSign);
}
}
}
PROCESS_SWITCH(HfCorrelatorDplusDplusReduced, processData, "Process data per collision", false);

void processMcRec(aod::Collisions const& collisions,
SelectedCandidatesMc const& candidates)
SelectedCandidatesMc const& candidates, aod::Tracks const&)
{
// reserve memory
rowCandidateFullEvents.reserve(collisions.size());
Expand All @@ -342,9 +342,9 @@ struct HfCorrelatorDplusDplusReduced {
continue;
fillEvent(collision);
for (const auto& candidate : candidatesInThisCollision) {
auto prong_candidate = candidate.prong1_as<aod::Tracks>();
auto candidate_sign = prong_candidate.sign();
fillCandidateTable<aod::Collisions, true>(candidate, rowCandidateFullEvents.lastIndex(), candidate_sign);
auto prongCandidate = candidate.prong1_as<aod::Tracks>();
auto candidateSign = -prongCandidate.sign();
fillCandidateTable<aod::Collisions, true>(candidate, rowCandidateFullEvents.lastIndex(), candidateSign);
}
}
}
Expand Down
18 changes: 15 additions & 3 deletions PWGHF/HFC/Tasks/taskCorrelationDplusDplusReduced.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ struct HfTaskCorrelationDplusDplusReduced {
void init(InitContext const&)
{
registry.add("hMassDplus", "D+ candidates;inv. mass (#pi#pi K) (GeV/#it{c}^{2}))", {HistType::kTH1F, {{120, 1.5848, 2.1848}}});
registry.add("hMassDminus", "D- candidates;inv. mass (#pi#pi K) (GeV/#it{c}^{2}))", {HistType::kTH1F, {{120, 1.5848, 2.1848}}});
registry.add("hMassDplusMatched", "D+ matched candidates;inv. mass (#pi#pi K) (GeV/#it{c}^{2}))", {HistType::kTH1F, {{120, 1.5848, 2.1848}}});
registry.add("hMassDminusMatched", "D- matched candidates;inv. mass (#pi#pi K) (GeV/#it{c}^{2}))", {HistType::kTH1F, {{120, 1.5848, 2.1848}}});
registry.add("hMassDplusminusPair", "D plus-minus pair candidates;inv. mass (#pi K) (GeV/#it{c}^{2});inv. mass (#pi K) (GeV/#it{c}^{2})", {HistType::kTH2F, {{120, 1.5848, 2.1848}, {120, 1.5848, 2.1848}}});
registry.add("hMassDplusPair", "D plus pair candidates;inv. mass (#pi K) (GeV/#it{c}^{2});inv. mass (#pi K) (GeV/#it{c}^{2})", {HistType::kTH2F, {{120, 1.5848, 2.1848}, {120, 1.5848, 2.1848}}});
registry.add("hMassDminusPair", "D minus pair candidates;inv. mass (#pi K) (GeV/#it{c}^{2});inv. mass (#pi K) (GeV/#it{c}^{2})", {HistType::kTH2F, {{120, 1.5848, 2.1848}, {120, 1.5848, 2.1848}}});
Expand All @@ -72,7 +74,11 @@ struct HfTaskCorrelationDplusDplusReduced {
auto sign1 = 1;
if (cand1.pt() < 0) {
sign1 = -1;
registry.fill(HIST("hMassDminus"), mass1);
} else {
registry.fill(HIST("hMassDplus"), mass1);
}

for (auto cand2 = cand1 + 1; cand2 != localCandidates.end(); ++cand2) {
auto mass2 = cand2.m();
auto sign2 = 1;
Expand Down Expand Up @@ -100,9 +106,15 @@ struct HfTaskCorrelationDplusDplusReduced {

for (const auto& cand1 : localCandidates) {
auto mass1 = cand1.m();
registry.fill(HIST("hMassDplus"), mass1);
if (std::abs(cand1.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi)
registry.fill(HIST("hMassDplusMatched"), mass1);
if (cand1.pt() < 0) {
registry.fill(HIST("hMassDminus"), mass1);
if (std::abs(cand1.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi)
registry.fill(HIST("hMassDminusMatched"), mass1);
} else {
registry.fill(HIST("hMassDplus"), mass1);
if (std::abs(cand1.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi)
registry.fill(HIST("hMassDplusMatched"), mass1);
}
}
}
PROCESS_SWITCH(HfTaskCorrelationDplusDplusReduced, processLocalDataMcRec, "Process local MC data", false);
Expand Down
Loading