Skip to content

Commit b3cf2b2

Browse files
committed
Update OmegaC QA task
1 parent bd07df0 commit b3cf2b2

1 file changed

Lines changed: 62 additions & 38 deletions

File tree

‎PWGHF/D2H/Tasks/taskOmegac0ToOmegaPiQa.cxx‎

Lines changed: 62 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ struct HfTaskOmegac0ToOmegaPiQa {
8282
using OmegaC0CandsMcKF = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfOmegacKf, aod::HfToOmegaPiMCRec>>;
8383
using Omegac0CandsMl = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfMlSelOmegacToOmegaPi>>;
8484
using Omegac0CandsMlKF = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfMlSelOmegacToOmegaPi, aod::HfOmegacKf>>;
85+
using Omegac0CandsMlMc = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfMlSelOmegacToOmegaPi, aod::HfToOmegaPiMCRec>>;
8586
using Omegac0CandsMlMcKF = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfMlSelOmegacToOmegaPi, aod::HfOmegacKf, aod::HfToOmegaPiMCRec>>;
8687

8788
using Omegac0Gen = soa::Filtered<soa::Join<aod::McParticles, aod::HfToOmegaPiMCGen>>;
@@ -99,7 +100,7 @@ struct HfTaskOmegac0ToOmegaPiQa {
99100

100101
Preslice<Omegac0Cands> candOmegacPerCollision = aod::hf_cand_xic0_omegac0::collisionId;
101102
Preslice<Omegac0CandsKF> candOmegacKFPerCollision = aod::hf_cand_xic0_omegac0::collisionId;
102-
// Preslice<Omegac0CandsMl> candOmegacMlPerCollision = aod::hf_cand_xic0_omegac0::collisionId; // Implementation still needed for ML DCAFitter
103+
Preslice<Omegac0CandsMl> candOmegacMlPerCollision = aod::hf_cand_xic0_omegac0::collisionId;
103104
Preslice<Omegac0CandsMlKF> candOmegacKFMlPerCollision = aod::hf_cand_xic0_omegac0::collisionId;
104105

105106
PresliceUnsorted<CollisionsWithMcLabels> colPerMcCollision = aod::mccollisionlabel::mcCollisionId;
@@ -117,10 +118,12 @@ struct HfTaskOmegac0ToOmegaPiQa {
117118

118119
void init(InitContext&)
119120
{
120-
std::array<bool, 15> doprocess{doprocessDataDCAFitter, doprocessDataDCAFitterFT0C, doprocessDataDCAFitterFT0M,
121+
std::array<bool, 20> doprocess{doprocessDataDCAFitter, doprocessDataDCAFitterMl, doprocessDataDCAFitterFT0C, doprocessDataDCAFitterMlFT0C,
122+
doprocessDataDCAFitterFT0M, doprocessDataDCAFitterMlFT0M,
121123
doprocessDataKFParticle, doprocessDataKFParticleMl, doprocessDataKFParticleFT0C, doprocessDataKFParticleMlFT0C,
122124
doprocessDataKFParticleFT0M, doprocessDataKFParticleMlFT0M,
123-
doprocessMcDCAFitter, doprocessMcDCAFitterFT0M,
125+
doprocessMcDCAFitter, doprocessMcDCAFitterMl,
126+
doprocessMcDCAFitterFT0M, doprocessMcDCAFitterMlFT0M,
124127
doprocessMcKFParticle, doprocessMcKFParticleMl,
125128
doprocessMcKFParticleFT0M, doprocessMcKFParticleMlFT0M};
126129
if ((std::accumulate(doprocess.begin(), doprocess.end(), 0)) != 1) {
@@ -141,23 +144,23 @@ struct HfTaskOmegac0ToOmegaPiQa {
141144
std::vector<AxisSpec> axes = {thnAxisMass, thnAxisPt, thnAxisY};
142145
std::vector<AxisSpec> axesMcGen = {thnAxisPt, thnAxisPtB, thnAxisY, thnAxisOrigin};
143146

144-
if (doprocessDataDCAFitterFT0C || doprocessDataDCAFitterFT0M || doprocessDataKFParticleFT0C || doprocessDataKFParticleMlFT0C || doprocessDataKFParticleFT0M || doprocessDataKFParticleMlFT0M) {
147+
if (doprocessDataDCAFitterFT0C || doprocessDataDCAFitterMlFT0C|| doprocessDataDCAFitterFT0M || doprocessDataDCAFitterMlFT0M || doprocessDataKFParticleFT0C || doprocessDataKFParticleMlFT0C || doprocessDataKFParticleFT0M || doprocessDataKFParticleMlFT0M) {
145148
axes.push_back(thnAxisCent);
146149
axes.emplace_back(thnConfigAxisNumPvContr);
147150
}
148151

149-
if (doprocessMcDCAFitterFT0M || doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
152+
if (doprocessMcDCAFitterFT0M || doprocessMcDCAFitterMlFT0M ||doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
150153
axes.push_back(thnAxisCentMc);
151154
axes.emplace_back(thnConfigAxisNumPvContr);
152155
axesMcGen.push_back(thnAxisCentMc);
153156
axesMcGen.emplace_back(thnConfigAxisNumPvContr);
154157
}
155158

156-
if (doprocessMcDCAFitter || doprocessMcDCAFitterFT0M || doprocessMcKFParticle || doprocessMcKFParticleMl || doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
159+
if (doprocessMcDCAFitter || doprocessMcDCAFitterMl || doprocessMcDCAFitterFT0M || doprocessMcDCAFitterMlFT0M || doprocessMcKFParticle || doprocessMcKFParticleMl || doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
157160
registry.add("hMcGen", "Gen. #Omega_{c}^{0} from charm and beauty", HistType::kTHnSparseD, axesMcGen);
158161
registry.get<THnSparse>(HIST("hMcGen"))->Sumw2();
159162

160-
if (doprocessMcDCAFitterFT0M || doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
163+
if (doprocessMcDCAFitterFT0M || doprocessMcDCAFitterMlFT0M || doprocessMcKFParticleFT0M || doprocessMcKFParticleMlFT0M) {
161164
registry.add("hMcGenWithRecoColl", "Gen. #Omega_{c}^{0} from charm and beauty (associated to a reco collision)", HistType::kTHnSparseD, axesMcGen);
162165
registry.add("hNumRecoCollPerMcColl", "Number of reco collisions associated to a mc collision;Num. reco. coll. per Mc coll.;", {HistType::kTH1D, {{10, -0.5, 9.5}}});
163166
registry.get<THnSparse>(HIST("hMcGenWithRecoColl"))->Sumw2();
@@ -168,7 +171,7 @@ struct HfTaskOmegac0ToOmegaPiQa {
168171
axes.push_back(thnAxisMatchFlag);
169172
}
170173

171-
if (doprocessDataKFParticleMl || doprocessDataKFParticleMlFT0C || doprocessDataKFParticleMlFT0M || doprocessMcKFParticleMl || doprocessMcKFParticleMlFT0M) {
174+
if (doprocessDataKFParticleMl || doprocessDataKFParticleMlFT0C || doprocessDataKFParticleMlFT0M || doprocessDataDCAFitterMl || doprocessDataDCAFitterMlFT0C || doprocessDataDCAFitterMlFT0M || doprocessMcKFParticleMl || doprocessMcKFParticleMlFT0M || doprocessMcDCAFitterMl || doprocessMcDCAFitterMlFT0M) {
172175
axes.push_back(thnAxisPromptScore);
173176
}
174177

@@ -205,34 +208,6 @@ struct HfTaskOmegac0ToOmegaPiQa {
205208
template <bool UseKfParticle, bool UseCentrality, bool ApplyMl, typename CandType, typename CollType>
206209
void processDataCent(const CandType& candidate, CollType const& collision)
207210
{
208-
// for (const auto& collision : collisions) {
209-
// auto thisCollId = collision.globalIndex();
210-
// auto groupedOmegacCandidates = ApplyMl ? candidates.sliceBy(candOmegacKFMlPerCollision, thisCollId) : candidates.sliceBy(candOmegacKFPerCollision, thisCollId);
211-
// auto numPvContributors = collision.numContrib();
212-
213-
// for (const auto& candidate : groupedOmegacCandidates) {
214-
// if (!(candidate.resultSelections() == true || (candidate.resultSelections() == false && !selectionFlagOmegac0))) {
215-
// continue;
216-
// }
217-
218-
// if (yCandRecoMax >= 0. && std::abs(candidate.kfRapOmegac()) > yCandRecoMax) {
219-
// continue;
220-
// }
221-
222-
// float const cent = o2::hf_centrality::getCentralityColl(collision);
223-
224-
// if constexpr (ApplyMl) {
225-
// registry.fill(HIST("hReco"), candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), candidate.kfRapOmegac(),
226-
// cent, numPvContributors, candidate.mlProbOmegac()[0]);
227-
// if (fillTree) {
228-
// kfCandMl(candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), candidate.kfptPiFromOmegac(), candidate.mlProbOmegac()[0], cent);
229-
// }
230-
// } else {
231-
// registry.fill(HIST("hReco"), candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), candidate.kfRapOmegac(),
232-
// cent, numPvContributors);
233-
// }
234-
// }
235-
// }
236211
if (!(candidate.resultSelections() == true || (candidate.resultSelections() == false && !selectionFlagOmegac0))) {
237212
return;
238213
}
@@ -254,8 +229,10 @@ struct HfTaskOmegac0ToOmegaPiQa {
254229
if constexpr (ApplyMl) {
255230
registry.fill(HIST("hReco"), candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), yOmegac,
256231
cent, numPvContributors, candidate.mlProbOmegac()[0]);
257-
if (fillTree) {
258-
kfCandMl(candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), candidate.kfptPiFromOmegac(), candidate.mlProbOmegac()[0], cent);
232+
if constexpr (UseKfParticle) {
233+
if (fillTree) {
234+
kfCandMl(candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), candidate.kfptPiFromOmegac(), candidate.mlProbOmegac()[0], cent);
235+
}
259236
}
260237
} else {
261238
registry.fill(HIST("hReco"), candidate.invMassCharmBaryon(), candidate.ptCharmBaryon(), yOmegac,
@@ -396,6 +373,12 @@ struct HfTaskOmegac0ToOmegaPiQa {
396373
}
397374
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitter, "process data with DCAFitter", false);
398375

376+
void processDataDCAFitterMl(Omegac0CandsMl const& candidates)
377+
{
378+
processData<false, true>(candidates);
379+
}
380+
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitterMl, "process data with DCAFitter, ML selections", false);
381+
399382
void processDataDCAFitterFT0C(Omegac0Cands const& candidates,
400383
CollisionsWithFT0C const& collisions)
401384
{
@@ -409,6 +392,19 @@ struct HfTaskOmegac0ToOmegaPiQa {
409392
}
410393
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitterFT0C, "process data with DCAFitter, FT0C centrality", false);
411394

395+
void processDataDCAFitterMlFT0C(Omegac0CandsMl const& candidates,
396+
CollisionsWithFT0C const& collisions)
397+
{
398+
for (const auto& collision : collisions) {
399+
auto groupedOmegacCandidates = candidates.sliceBy(candOmegacMlPerCollision, collision.globalIndex());
400+
401+
for (const auto& candidate : groupedOmegacCandidates) {
402+
processDataCent<false, true, true>(candidate, collision);
403+
}
404+
}
405+
}
406+
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitterMlFT0C, "process data with DCAFitter, ML selections, FT0C centrality", false);
407+
412408
void processDataDCAFitterFT0M(Omegac0Cands const& candidates,
413409
CollisionsWithFT0M const& collisions)
414410
{
@@ -421,6 +417,19 @@ struct HfTaskOmegac0ToOmegaPiQa {
421417
}
422418
}
423419
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitterFT0M, "process data with DCAFitter, FT0M centrality", false);
420+
421+
void processDataDCAFitterMlFT0M(Omegac0CandsMl const& candidates,
422+
CollisionsWithFT0M const& collisions)
423+
{
424+
for (const auto& collision : collisions) {
425+
auto groupedOmegacCandidates = candidates.sliceBy(candOmegacMlPerCollision, collision.globalIndex());
426+
427+
for (const auto& candidate : groupedOmegacCandidates) {
428+
processDataCent<false, true, true>(candidate, collision);
429+
}
430+
}
431+
}
432+
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processDataDCAFitterMlFT0M, "process data with DCAFitter, ML selections, FT0M centrality", false);
424433

425434
////////////////////////////////////
426435
/// Data with KFParticle //
@@ -501,6 +510,13 @@ struct HfTaskOmegac0ToOmegaPiQa {
501510
}
502511
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processMcDCAFitter, "Process MC with DCAFitter", false);
503512

513+
void processMcDCAFitterMl(Omegac0CandsMlMc const& omegac0CandidatesMlMc,
514+
Omegac0Gen const& mcParticles)
515+
{
516+
processMc<false, true>(omegac0CandidatesMlMc, mcParticles);
517+
}
518+
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processMcDCAFitterMl, "Process MC with DCAFitter, ML selections", false);
519+
504520
void processMcDCAFitterFT0M(Omegac0CandsMc const& omegaC0CandidatesMc,
505521
Omegac0Gen const& mcParticles,
506522
CollisionsWithMcLabels const& collisions,
@@ -510,6 +526,14 @@ struct HfTaskOmegac0ToOmegaPiQa {
510526
}
511527
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processMcDCAFitterFT0M, "Process MC with DCAFitter, FT0M centrality (from MC)", false);
512528

529+
void processMcDCAFitterMlFT0M(Omegac0CandsMlMc const& omegac0CandidatesMlMc,
530+
Omegac0Gen const& mcParticles,
531+
CollisionsWithMcLabels const& collisions,
532+
McCollisionsWithFT0M const& mcCollisions)
533+
{
534+
processMcCent<false, true>(omegac0CandidatesMlMc, mcParticles, collisions, mcCollisions);
535+
}
536+
PROCESS_SWITCH(HfTaskOmegac0ToOmegaPiQa, processMcDCAFitterMlFT0M, "Process MC with DCAFitter, ML selections, FT0M centrality (from MC)", false);
513537

514538
////////////////////////////////////
515539
/// MC with KFParticle //

0 commit comments

Comments
 (0)