Skip to content
Merged
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
58 changes: 32 additions & 26 deletions PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,7 @@ 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.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -540,9 +541,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 && !haveSameSign) { // 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 +553,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 && !haveSameSign) { // 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 +565,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 && !haveSameSign) { // 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 +632,7 @@ 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.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -655,9 +657,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 && !haveSameSign) { // 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 +700,28 @@ struct HfTaskCorrelationDsHadrons {
int const poolBin = pairEntry.poolBin();
int const statusPromptHadron = pairEntry.trackOrigin();
bool const isDsPrompt = pairEntry.isPrompt();
const bool haveSameSign = 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) {
if (doULSpair && !haveSameSign) {
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 && !haveSameSign) {
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 +749,7 @@ 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.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -764,9 +768,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 && !haveSameSign) { // 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 +780,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 && !haveSameSign) { // 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 +792,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 && !haveSameSign) { // 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 +818,7 @@ 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.;

double efficiencyWeight = 1.;
if (useHighDimHistoForEff) {
Expand All @@ -824,9 +829,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 && !haveSameSign) { // 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 +841,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 && !haveSameSign) { // 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 +853,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 && !haveSameSign) { // 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 +888,7 @@ 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.;

if (!isSelectedCandidate(ptBinD, bdtScorePrompt, bdtScoreBkg)) {
continue;
Expand All @@ -907,9 +913,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 && !haveSameSign) { // 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