Skip to content

Commit 6f520e3

Browse files
committed
Add task for MC analysis without ML output
1 parent 51cca89 commit 6f520e3

1 file changed

Lines changed: 48 additions & 16 deletions

File tree

PWGHF/D2H/Tasks/taskCharmPolarisation.cxx

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,6 +1696,40 @@ struct HfTaskCharmPolarisation {
16961696
}
16971697
}
16981698
}
1699+
} else {
1700+
if (origin == RecoDecay::OriginType::Prompt) { // prompt
1701+
if constexpr (Channel == charm_polarisation::DecayChannel::DstarToDzeroPi) { // D*+
1702+
if (!isPartRecoDstar) {
1703+
if (activateTrackingSys) {
1704+
registry.fill(HIST("hRecoPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, numItsClsMin, numTpcClsMin, nMuons, centrality);
1705+
} else {
1706+
registry.fill(HIST("hRecoPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, nMuons, centrality);
1707+
}
1708+
} else {
1709+
if (activateTrackingSys) {
1710+
registry.fill(HIST("hPartRecoPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, numItsClsMin, numTpcClsMin, nMuons, centrality);
1711+
} else {
1712+
registry.fill(HIST("hPartRecoPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, nMuons, centrality);
1713+
}
1714+
}
1715+
}
1716+
} else { // non-prompt
1717+
if constexpr (Channel == charm_polarisation::DecayChannel::DstarToDzeroPi) { // D*+
1718+
if (!isPartRecoDstar) {
1719+
if (activateTrackingSys) {
1720+
registry.fill(HIST("hRecoNonPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, numItsClsMin, numTpcClsMin, nMuons, ptBhadMother, centrality);
1721+
} else {
1722+
registry.fill(HIST("hRecoNonPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, nMuons, ptBhadMother, centrality);
1723+
}
1724+
} else {
1725+
if (activateTrackingSys) {
1726+
registry.fill(HIST("hPartRecoNonPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, numItsClsMin, numTpcClsMin, nMuons, ptBhadMother, centrality);
1727+
} else {
1728+
registry.fill(HIST("hPartRecoNonPromptEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, nMuons, ptBhadMother, centrality);
1729+
}
1730+
}
1731+
}
1732+
}
16991733
}
17001734
}
17011735
}
@@ -1945,7 +1979,7 @@ struct HfTaskCharmPolarisation {
19451979
template <charm_polarisation::DecayChannel Channel, bool WithMl, bool DoMc, bool StudyLcPkPiBkgMc = false, bool WithEp = false, typename Cand, typename Part, typename Trk, typename T, typename QVecs = void>
19461980
bool runPolarisationAnalysis(Cand const& candidate, int bkgRotationId, T numPvContributors, Part const& particles, Trk const& /*tracks*/, float centrality = -999.f, QVecs const* qVecs = nullptr)
19471981
{
1948-
if constexpr (WithEp) {
1982+
if constexpr (WithEp && !DoMc) {
19491983
assert(qVecs && "EP analysis requested but qVecs == nullptr");
19501984
assert(centrality && "EP analysis requested but centrality == nullptr");
19511985
}
@@ -2303,23 +2337,21 @@ struct HfTaskCharmPolarisation {
23032337
nMuons = 0;
23042338
}
23052339
}
2306-
2307-
if constexpr (WithEp) {
2308-
if (!DoMc) {
2309-
/// EP analysis
2340+
2341+
if (activateTHnSparseCosThStarEP) {
2342+
if constexpr (WithEp && !DoMc) {
2343+
// EP analysis for data
23102344
float const xQvec = (*qVecs).at(0);
23112345
float const yQvec = (*qVecs).at(1);
23122346
ROOT::Math::XYZVector const qVecNorm = ROOT::Math::XYZVector(yQvec, -xQvec, 0.f);
23132347
ROOT::Math::XYZVector const qVec = ROOT::Math::XYZVector(xQvec, yQvec, 0.);
2314-
2315-
if (activateTHnSparseCosThStarEP) {
2316-
// EP
2317-
ROOT::Math::XYZVector threeVecDauCMXY = ROOT::Math::XYZVector(threeVecDauCM.X(), threeVecDauCM.Y(), 0.);
2318-
float const phiEP = qVec.Dot(threeVecDauCMXY) / std::sqrt(threeVecDauCMXY.Mag2()) / std::sqrt(qVec.Mag2());
2319-
float const cosThetaStarEP = qVecNorm.Dot(threeVecDauCM) / std::sqrt(threeVecDauCM.Mag2()) / std::sqrt(qVecNorm.Mag2());
2320-
fillRecoHistos<Channel, WithMl, DoMc, charm_polarisation::CosThetaStarType::EP>(invMassCharmHadForSparse, ptCharmHad, numPvContributors, rapidity, invMassD0, invMassKPiLc, cosThetaStarEP, phiEP, outputMl, isRotatedCandidate, origin, ptBhadMother, resoChannelLc, absEtaTrackMin, numItsClsMin, numTpcClsMin, charge, nMuons, partRecoDstar, centrality);
2321-
}
2322-
} else {
2348+
ROOT::Math::XYZVector threeVecDauCMXY = ROOT::Math::XYZVector(threeVecDauCM.X(), threeVecDauCM.Y(), 0.);
2349+
float const phiEP = qVec.Dot(threeVecDauCMXY) / std::sqrt(threeVecDauCMXY.Mag2()) / std::sqrt(qVec.Mag2());
2350+
float const cosThetaStarEP = qVecNorm.Dot(threeVecDauCM) / std::sqrt(threeVecDauCM.Mag2()) / std::sqrt(qVecNorm.Mag2());
2351+
fillRecoHistos<Channel, WithMl, DoMc, charm_polarisation::CosThetaStarType::EP>(invMassCharmHadForSparse, ptCharmHad, numPvContributors, rapidity, invMassD0, invMassKPiLc, cosThetaStarEP, phiEP, outputMl, isRotatedCandidate, origin, ptBhadMother, resoChannelLc, absEtaTrackMin, numItsClsMin, numTpcClsMin, charge, nMuons, partRecoDstar, centrality);
2352+
}
2353+
if (DoMc) {
2354+
//EP analysis for MC
23232355
double const deltaPhi = sampleDeltaPhi(ptCharmHad);
23242356
double psi = candidate.phi() - deltaPhi;
23252357
ROOT::Math::XYZVector qVecNorm = ROOT::Math::XYZVector(-std::sin(psi), std::cos(psi), 0.f);
@@ -2907,7 +2939,7 @@ struct HfTaskCharmPolarisation {
29072939

29082940
for (const auto& dstarCandidate : groupedDstarCandidates) {
29092941
nCands++;
2910-
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, false, true, false, true>(dstarCandidate, 0, (occEstimator > 0) ? occupancy : numPvContributors, -1 /*MC particles*/, tracks, centrality)) {
2942+
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, false, true>(dstarCandidate, 0, (occEstimator > 0) ? occupancy : numPvContributors, -1 /*MC particles*/, tracks, centrality)) {
29112943
nCandsInSignalRegion++;
29122944
}
29132945
}
@@ -2949,7 +2981,7 @@ struct HfTaskCharmPolarisation {
29492981

29502982
for (const auto& dstarCandidate : groupedDstarCandidates) {
29512983
nCands++;
2952-
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true, true, false, true>(dstarCandidate, 0, (occEstimator > 0) ? occupancy : numPvContributors, -1 /*MC particles*/, tracks, centrality)) {
2984+
if (runPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true, true>(dstarCandidate, 0, (occEstimator > 0) ? occupancy : numPvContributors, -1 /*MC particles*/, tracks, centrality)) {
29532985
nCandsInSignalRegion++;
29542986
}
29552987
}

0 commit comments

Comments
 (0)