Skip to content
Merged
Changes from 2 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
64 changes: 38 additions & 26 deletions PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,8 @@ struct HfTaskCorrelationDsHadrons {
int const trackTpcCrossedRows = pairEntry.trackTPCNClsCrossedRows();
int const poolBin = pairEntry.poolBin();
int const ptBinD = o2::analysis::findBin(binsPtD, std::abs(ptD));
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;
Comment thread
vkucera marked this conversation as resolved.
Outdated

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -540,9 +542,9 @@ struct HfTaskCorrelationDsHadrons {

// in signal region
if (massD > signalRegionInner->at(ptBinD) && massD < signalRegionOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSignalRegion"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -552,9 +554,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband left region
if (massD > sidebandLeftOuter->at(ptBinD) && massD < sidebandLeftInner->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandLeft"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -564,9 +566,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband right region
if (massD > sidebandRightInner->at(ptBinD) && massD < sidebandRightOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandRight"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand Down Expand Up @@ -631,6 +633,8 @@ struct HfTaskCorrelationDsHadrons {
int const statusPromptHadron = pairEntry.trackOrigin();
int const ptBinD = o2::analysis::findBin(binsPtD, std::abs(ptD));
bool const isPhysicalPrimary = pairEntry.isPhysicalPrimary();
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -655,9 +659,9 @@ struct HfTaskCorrelationDsHadrons {
registry.fill(HIST("hDeltaPhiPtIntSignalRegionMcRec"), deltaPhi, efficiencyWeight);
registry.fill(HIST("hCorrel2DVsPtSignalRegionMcRec"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
if (isPhysicalPrimary) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRecLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRecULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
} else { // default case
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRec"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
Expand Down Expand Up @@ -698,27 +702,29 @@ struct HfTaskCorrelationDsHadrons {
int const poolBin = pairEntry.poolBin();
int const statusPromptHadron = pairEntry.trackOrigin();
bool const isDsPrompt = pairEntry.isPrompt();
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;

registry.fill(HIST("hCorrel2DVsPtMcGen"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
registry.fill(HIST("hDeltaEtaPtIntMcGen"), deltaEta);
registry.fill(HIST("hDeltaPhiPtIntMcGen"), deltaPhi);
if (isDsPrompt) {
registry.fill(HIST("hCorrel2DVsPtMcGenPrompt"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
if (doULSpair) {
Comment thread
vkucera marked this conversation as resolved.
if (doULSpair && haveOppositeSign) {
registry.fill(HIST("hCorrel2DVsPtMcGenPromptULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
}
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) {
if (doLSpair && haveSameSign) {
registry.fill(HIST("hCorrel2DVsPtMcGenPromptLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
}
if (statusPromptHadron == RecoDecay::OriginType::Prompt) {
registry.fill(HIST("hCorrel2DVsPtMcGenPromptDsPromptHadron"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
}
} else {
registry.fill(HIST("hCorrel2DVsPtMcGenNonPrompt"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
if (doULSpair) {
if (doULSpair && haveOppositeSign) {
registry.fill(HIST("hCorrel2DVsPtMcGenNonPromptULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
}
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) {
if (doLSpair && haveSameSign) {
registry.fill(HIST("hCorrel2DVsPtMcGenNonPromptLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin);
}
if (statusPromptHadron == RecoDecay::OriginType::NonPrompt) {
Expand Down Expand Up @@ -746,6 +752,8 @@ struct HfTaskCorrelationDsHadrons {
int const trackTpcCrossedRows = pairEntry.trackTPCNClsCrossedRows();
int const poolBin = pairEntry.poolBin();
int const ptBinD = o2::analysis::findBin(binsPtD, std::abs(ptD));
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -764,9 +772,9 @@ struct HfTaskCorrelationDsHadrons {

// in signal region
if (massD > signalRegionInner->at(ptBinD) && massD < signalRegionOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSignalRegion"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -776,9 +784,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband left region
if (massD > sidebandLeftOuter->at(ptBinD) && massD < sidebandLeftInner->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandLeft"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -788,9 +796,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband right region
if (massD > sidebandRightInner->at(ptBinD) && massD < sidebandRightOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandRight"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -814,6 +822,8 @@ struct HfTaskCorrelationDsHadrons {
int multPvContrib = pairEntry.numPvContrib();
int const poolBin = pairEntry.poolBin();
int const ptBinD = o2::analysis::findBin(binsPtD, std::abs(ptD));
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;

double efficiencyWeight = 1.;
if (useHighDimHistoForEff) {
Expand All @@ -824,9 +834,9 @@ struct HfTaskCorrelationDsHadrons {

// in signal region
if (massD > signalRegionInner->at(ptBinD) && massD < signalRegionOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSignalRegionULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSignalRegion"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -836,9 +846,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband left region
if (massD > sidebandLeftOuter->at(ptBinD) && massD < sidebandLeftInner->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandLeftULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandLeft"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand All @@ -848,9 +858,9 @@ struct HfTaskCorrelationDsHadrons {
}
// in sideband right region
if (massD > sidebandRightInner->at(ptBinD) && massD < sidebandRightOuter->at(ptBinD)) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtSidebandRightULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
} else if (fillHistoData) { // default case
registry.fill(HIST("hCorrel2DVsPtSidebandRight"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), poolBin, efficiencyWeight);
Expand Down Expand Up @@ -883,6 +893,8 @@ struct HfTaskCorrelationDsHadrons {
int const statusPromptHadron = pairEntry.trackOrigin();
int const ptBinD = o2::analysis::findBin(binsPtD, std::abs(ptD));
bool const isPhysicalPrimary = pairEntry.isPhysicalPrimary();
const bool haveSameSign = ptD * ptHadron > 0.;
const bool haveOppositeSign = ptD * ptHadron < 0.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -907,9 +919,9 @@ struct HfTaskCorrelationDsHadrons {
registry.fill(HIST("hDeltaPhiPtIntSignalRegionMcRec"), deltaPhi, efficiencyWeight);
registry.fill(HIST("hCorrel2DVsPtSignalRegionMcRec"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
if (isPhysicalPrimary) {
if (doLSpair && ((ptD > 0. && ptHadron > 0.) || (ptD < 0. && ptHadron < 0.))) { // like-sign pairs
if (doLSpair && haveSameSign) { // like-sign pairs
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRecLS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
} else if (doULSpair && ((ptD > 0. && ptHadron < 0.) || (ptD < 0. && ptHadron > 0.))) { // unlike-sign pairs
} else if (doULSpair && haveOppositeSign) { // unlike-sign pairs
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRecULS"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
} else { // default case
registry.fill(HIST("hCorrel2DVsPtPhysicalPrimaryMcRec"), deltaPhi, deltaEta, std::abs(ptD), std::abs(ptHadron), statusDsPrompt, poolBin, efficiencyWeight);
Expand Down
Loading