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
40 changes: 40 additions & 0 deletions PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ struct HfTaskCorrelationDsHadrons {
HfHelper hfHelper;
SliceCache cache;

using DsHadronPair = soa::Join<aod::DsHadronPair, aod::DsHadronRecoInfo>;
using DsHadronPairFull = soa::Join<aod::DsHadronPair, aod::DsHadronRecoInfo, aod::DsHadronGenInfo>;
using DsHadronPairWithMl = soa::Join<aod::DsHadronPair, aod::DsHadronRecoInfo, aod::DsHadronMlInfo, aod::TrackRecoInfo>;
using DsHadronPairFullWithMl = soa::Join<aod::DsHadronPair, aod::DsHadronRecoInfo, aod::DsHadronGenInfo, aod::DsHadronMlInfo, aod::TrackRecoInfo>;
Expand Down Expand Up @@ -471,6 +472,45 @@ struct HfTaskCorrelationDsHadrons {
}
PROCESS_SWITCH(HfTaskCorrelationDsHadrons, processDataME, "Process data ME", false);

void processDerivedDataME(DsHadronPair const& pairEntries)
{
for (const auto& pairEntry : pairEntries) {
// define variables for widely used quantities
float deltaPhi = pairEntry.deltaPhi();
float deltaEta = pairEntry.deltaEta();
float ptD = pairEntry.ptD();
float ptHadron = pairEntry.ptHadron();
float massD = pairEntry.mD();
int poolBin = pairEntry.poolBin();
int ptBinD = o2::analysis::findBin(binsPtD, ptD);

double efficiencyWeight = 1.;
if (applyEfficiency) {
efficiencyWeight = 1. / (efficiencyD->at(o2::analysis::findBin(binsPtEfficiencyD, ptD)) * efficiencyHad->at(o2::analysis::findBin(binsPtEfficiencyHad, ptHadron)));
}

// in signal region
if (massD > signalRegionInner->at(ptBinD) && massD < signalRegionOuter->at(ptBinD)) {
registry.fill(HIST("hCorrel2DVsPtSignalRegion"), deltaPhi, deltaEta, ptD, ptHadron, poolBin, efficiencyWeight);
registry.fill(HIST("hDeltaEtaPtIntSignalRegion"), deltaEta, efficiencyWeight);
registry.fill(HIST("hDeltaPhiPtIntSignalRegion"), deltaPhi, efficiencyWeight);
}
// in sideband left region
if (massD > sidebandLeftOuter->at(ptBinD) && massD < sidebandLeftInner->at(ptBinD)) {
registry.fill(HIST("hCorrel2DVsPtSidebandLeft"), deltaPhi, deltaEta, ptD, ptHadron, poolBin, efficiencyWeight);
registry.fill(HIST("hDeltaEtaPtIntSidebandLeft"), deltaEta, efficiencyWeight);
registry.fill(HIST("hDeltaPhiPtIntSidebandLeft"), deltaPhi, efficiencyWeight);
}
// in sideband right region
if (massD > sidebandRightInner->at(ptBinD) && massD < sidebandRightOuter->at(ptBinD)) {
registry.fill(HIST("hCorrel2DVsPtSidebandRight"), deltaPhi, deltaEta, ptD, ptHadron, poolBin, efficiencyWeight);
registry.fill(HIST("hDeltaEtaPtIntSidebandRight"), deltaEta, efficiencyWeight);
registry.fill(HIST("hDeltaPhiPtIntSidebandRight"), deltaPhi, efficiencyWeight);
}
}
}
PROCESS_SWITCH(HfTaskCorrelationDsHadrons, processDerivedDataME, "Process derived data ME", false);

/// D-Hadron correlation pair filling task, from pair tables - for MC reco-level analysis (candidates matched to true signal only, but also bkg sources are studied)
void processMcRecME(DsHadronPairFullWithMl const& pairEntries)
{
Expand Down
Loading