From f8e9c5bb049b03b4351a694aeae99bf9b343caf0 Mon Sep 17 00:00:00 2001 From: zhangbiao-phy Date: Tue, 29 Oct 2024 14:42:08 +0100 Subject: [PATCH 01/35] Adjust the Lc to pkpi task --- PWGHF/D2H/Tasks/taskLc.cxx | 455 +++++++++++++++++++++---------------- 1 file changed, 258 insertions(+), 197 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 55c8d852000..8c280f61b2b 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -55,18 +55,23 @@ struct HfTaskLc { HfHelper hfHelper; Filter filterSelectCandidates = aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc; - using Collisions = soa::Join::iterator; - using CollisionsMc = soa::Join::iterator; - using CollisionsWithFT0C = soa::Join::iterator; - using CollisionsMcWithFT0C = soa::Join::iterator; - using CollisionsWithFT0M = soa::Join::iterator; - using CollisionsMcWithFT0M = soa::Join::iterator; + using Collisions = soa::Join; + using CollisionsMc = soa::Join; + using CollisionsWithFT0C = soa::Join; + using CollisionsMcWithFT0C = soa::Join; + using CollisionsWithFT0M = soa::Join; + using CollisionsMcWithFT0M = soa::Join; using LcCandidates = soa::Filtered>; using LcCandidatesMl = soa::Filtered>; using LcCandidatesMc = soa::Filtered>; using LcCandidatesMlMc = soa::Filtered>; + using McParticles3ProngMatched = soa::Join; + + PresliceUnsorted perMCCollision = aod::mcparticle::mcCollisionId; + Preslice candLcPerCollision = aod::hf_cand::collisionId; + SliceCache cache; HistogramRegistry registry{ "registry", @@ -298,184 +303,26 @@ struct HfTaskLc { { return o2::hf_centrality::getCentralityColl(collision); } - - template - void processData(CollType const& collision, - CandType const& candidates, - aod::TracksWDca const& tracks) - { - int nTracks = 0; - if (collision.numContrib() > 1) { - for (const auto& track : tracks) { - if (std::abs(track.eta()) > 4.0) { - continue; - } - if (std::abs(track.dcaXY()) > 0.0025 || std::abs(track.dcaZ()) > 0.0025) { - continue; - } - nTracks++; - } - } - registry.fill(HIST("Data/hMultiplicity"), nTracks); - - for (const auto& candidate : candidates) { - if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { - continue; - } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { - continue; - } - auto pt = candidate.pt(); - auto ptProng0 = candidate.ptProng0(); - auto ptProng1 = candidate.ptProng1(); - auto ptProng2 = candidate.ptProng2(); - auto decayLength = candidate.decayLength(); - auto decayLengthXY = candidate.decayLengthXY(); - auto chi2PCA = candidate.chi2PCA(); - auto cpa = candidate.cpa(); - auto cpaXY = candidate.cpaXY(); - - if (candidate.isSelLcToPKPi() >= selectionFlagLc) { - registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPKPi(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, nTracks); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPKPi(candidate), pt); - } - if (candidate.isSelLcToPiKP() >= selectionFlagLc) { - registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPiKP(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, nTracks); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPiKP(candidate), pt); - } - registry.fill(HIST("Data/hPt"), pt); - registry.fill(HIST("Data/hPtProng0"), ptProng0); - registry.fill(HIST("Data/hPtProng1"), ptProng1); - registry.fill(HIST("Data/hPtProng2"), ptProng2); - registry.fill(HIST("Data/hd0Prong0"), candidate.impactParameter0()); - registry.fill(HIST("Data/hd0Prong1"), candidate.impactParameter1()); - registry.fill(HIST("Data/hd0Prong2"), candidate.impactParameter2()); - registry.fill(HIST("Data/hd0VsPtProng0"), candidate.impactParameter0(), pt); - registry.fill(HIST("Data/hd0VsPtProng1"), candidate.impactParameter1(), pt); - registry.fill(HIST("Data/hd0VsPtProng2"), candidate.impactParameter2(), pt); - registry.fill(HIST("Data/hDecLength"), decayLength); - registry.fill(HIST("Data/hDecLengthVsPt"), decayLength, pt); - registry.fill(HIST("Data/hDecLengthxy"), decayLengthXY); - registry.fill(HIST("Data/hDecLengthxyVsPt"), decayLengthXY, pt); - registry.fill(HIST("Data/hCt"), hfHelper.ctLc(candidate)); - registry.fill(HIST("Data/hCtVsPt"), hfHelper.ctLc(candidate), pt); - registry.fill(HIST("Data/hCPA"), cpa); - registry.fill(HIST("Data/hCPAVsPt"), cpa, pt); - registry.fill(HIST("Data/hCPAxy"), cpaXY); - registry.fill(HIST("Data/hCPAxyVsPt"), cpaXY, pt); - registry.fill(HIST("Data/hDca2"), chi2PCA); - registry.fill(HIST("Data/hDca2VsPt"), chi2PCA, pt); - registry.fill(HIST("Data/hEta"), candidate.eta()); - registry.fill(HIST("Data/hEtaVsPt"), candidate.eta(), pt); - registry.fill(HIST("Data/hPhi"), candidate.phi()); - registry.fill(HIST("Data/hPhiVsPt"), candidate.phi(), pt); - registry.fill(HIST("hSelectionStatus"), candidate.isSelLcToPKPi(), pt); - registry.fill(HIST("hSelectionStatus"), candidate.isSelLcToPiKP(), pt); - registry.fill(HIST("Data/hImpParErrProng0"), candidate.errorImpactParameter0(), pt); - registry.fill(HIST("Data/hImpParErrProng1"), candidate.errorImpactParameter1(), pt); - registry.fill(HIST("Data/hImpParErrProng2"), candidate.errorImpactParameter2(), pt); - registry.fill(HIST("Data/hDecLenErr"), candidate.errorDecayLength(), pt); - - if (enableTHn) { - float cent = evaluateCentralityColl(collision); - double massLc(-1); - double outputBkg(-1), outputPrompt(-1), outputFD(-1); - if (candidate.isSelLcToPKPi() >= selectionFlagLc) { - massLc = hfHelper.invMassLcToPKPi(candidate); - - if constexpr (fillMl) { - - if (candidate.mlProbLcToPKPi().size() == 3) { - - outputBkg = candidate.mlProbLcToPKPi()[0]; /// bkg score - outputPrompt = candidate.mlProbLcToPKPi()[1]; /// prompt score - outputFD = candidate.mlProbLcToPKPi()[2]; /// non-prompt score - } - /// Fill the ML outputScores and variables of candidate - registry.get(HIST("hnLcVarsWithBdt"))->Fill(massLc, pt, cent, outputBkg, outputPrompt, outputFD, 0); - } else { - registry.get(HIST("hnLcVars"))->Fill(massLc, pt, cent, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, 0); - } - } - if (candidate.isSelLcToPiKP() >= selectionFlagLc) { - massLc = hfHelper.invMassLcToPiKP(candidate); - - if constexpr (fillMl) { - - if (candidate.mlProbLcToPiKP().size() == 3) { - - outputBkg = candidate.mlProbLcToPiKP()[0]; /// bkg score - outputPrompt = candidate.mlProbLcToPiKP()[1]; /// prompt score - outputFD = candidate.mlProbLcToPiKP()[2]; /// non-prompt score - } - /// Fill the ML outputScores and variables of candidate - registry.get(HIST("hnLcVarsWithBdt"))->Fill(massLc, pt, cent, outputBkg, outputPrompt, outputFD, 0); - } else { - registry.get(HIST("hnLcVars"))->Fill(massLc, pt, cent, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, 0); - } - } - } - } - } - - void processDataStd(Collisions const& collision, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) - { - processData(collision, selectedLcCandidates, tracks); - } - PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); - - void processDataWithMl(Collisions const& collision, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) + /// Evaluate centrality/multiplicity percentile + /// \param candidate is candidate + /// \return centrality/multiplicity percentile of the collision associated to the candidate + template + float evaluateCentralityCand(const T1& candidate) { - processData(collision, selectedLcCandidatesMl, tracks); + return evaluateCentralityColl(candidate.template collision_as()); } - PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process Data with the ML method", false); - void processDataStdWithFT0C(CollisionsWithFT0C const& collision, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) + /// Fill MC histograms at reconstruction level + /// \param collision is collision + /// \param candidates is candidates + template + void fillMcRecHistosAndSparse(CollType collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { - processData(collision, selectedLcCandidates, tracks); - } - PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", true); - void processDataWithMlWithFT0C(CollisionsWithFT0C const& collision, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) - { - processData(collision, selectedLcCandidatesMl, tracks); - } - PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process Data with the ML method", false); + auto thisCollId = collision.globalIndex(); + auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); - void processDataStdWithFT0M(CollisionsWithFT0M const& collision, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) - { - processData(collision, selectedLcCandidates, tracks); - } - PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process Data with the standard method", true); - - void processDataWithMlWithFT0M(CollisionsWithFT0M const& collision, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) - { - processData(collision, selectedLcCandidatesMl, tracks); - } - PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process Data with the ML method", false); - - /// Fills MC histograms. - template - void processMc(CollType const& collision, - CandType const& candidates, - soa::Join const& mcParticles, - aod::TracksWMc const&) - { - for (const auto& candidate : candidates) { + for (const auto& candidate : groupedLcCandidates) { /// Select Lc if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { continue; @@ -624,6 +471,7 @@ struct HfTaskLc { registry.fill(HIST("MC/reconstructed/nonprompt/hImpParErrProng2SigNonPrompt"), candidate.errorImpactParameter2(), pt); registry.fill(HIST("MC/reconstructed/nonprompt/hDecLenErrSigNonPrompt"), candidate.errorDecayLength(), pt); } + if (enableTHn) { float cent = evaluateCentralityColl(collision); double massLc(-1); @@ -665,14 +513,21 @@ struct HfTaskLc { } } } - + } + /// Fill MC histograms at genernated level + /// \param mcParticles are particles in MC + template + void fillMcGenHistos(CandLcMcGen const& mcParticles) + { // MC gen. + for (const auto& particle : mcParticles) { if (std::abs(particle.flagMcMatchGen()) == 1 << aod::hf_cand_3prong::DecayType::LcToPKPi) { auto yGen = RecoDecay::y(particle.pVector(), o2::constants::physics::MassLambdaCPlus); if (yCandGenMax >= 0. && std::abs(yGen) > yCandGenMax) { continue; } + auto ptGen = particle.pt(); registry.fill(HIST("MC/generated/signal/hPtGen"), ptGen); registry.fill(HIST("MC/generated/signal/hEtaGen"), particle.eta()); @@ -704,57 +559,263 @@ struct HfTaskLc { } } + /// Fill MC histograms at reconstruction level + /// \param collision is collision + /// \param candidates is candidates + template + void fillDataHistosAndSparse(CollType collision, CandType const& candidates, TrackType const& tracks) + { + + auto thisCollId = collision.globalIndex(); + auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); + + int nTracks = 0; + if (collision.numContrib() > 1) { + for (const auto& track : tracks) { + if (std::abs(track.eta()) > 4.0) { + continue; + } + if (std::abs(track.dcaXY()) > 0.0025 || std::abs(track.dcaZ()) > 0.0025) { + continue; + } + nTracks++; + } + } + registry.fill(HIST("Data/hMultiplicity"), nTracks); + + for (const auto& candidate : groupedLcCandidates) { + if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { + continue; + } + if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { + continue; + } + auto pt = candidate.pt(); + auto ptProng0 = candidate.ptProng0(); + auto ptProng1 = candidate.ptProng1(); + auto ptProng2 = candidate.ptProng2(); + auto decayLength = candidate.decayLength(); + auto decayLengthXY = candidate.decayLengthXY(); + auto chi2PCA = candidate.chi2PCA(); + auto cpa = candidate.cpa(); + auto cpaXY = candidate.cpaXY(); + + if (candidate.isSelLcToPKPi() >= selectionFlagLc) { + registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPKPi(candidate)); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, nTracks); + registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPKPi(candidate), pt); + } + if (candidate.isSelLcToPiKP() >= selectionFlagLc) { + registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPiKP(candidate)); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, nTracks); + registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPiKP(candidate), pt); + } + registry.fill(HIST("Data/hPt"), pt); + registry.fill(HIST("Data/hPtProng0"), ptProng0); + registry.fill(HIST("Data/hPtProng1"), ptProng1); + registry.fill(HIST("Data/hPtProng2"), ptProng2); + registry.fill(HIST("Data/hd0Prong0"), candidate.impactParameter0()); + registry.fill(HIST("Data/hd0Prong1"), candidate.impactParameter1()); + registry.fill(HIST("Data/hd0Prong2"), candidate.impactParameter2()); + registry.fill(HIST("Data/hd0VsPtProng0"), candidate.impactParameter0(), pt); + registry.fill(HIST("Data/hd0VsPtProng1"), candidate.impactParameter1(), pt); + registry.fill(HIST("Data/hd0VsPtProng2"), candidate.impactParameter2(), pt); + registry.fill(HIST("Data/hDecLength"), decayLength); + registry.fill(HIST("Data/hDecLengthVsPt"), decayLength, pt); + registry.fill(HIST("Data/hDecLengthxy"), decayLengthXY); + registry.fill(HIST("Data/hDecLengthxyVsPt"), decayLengthXY, pt); + registry.fill(HIST("Data/hCt"), hfHelper.ctLc(candidate)); + registry.fill(HIST("Data/hCtVsPt"), hfHelper.ctLc(candidate), pt); + registry.fill(HIST("Data/hCPA"), cpa); + registry.fill(HIST("Data/hCPAVsPt"), cpa, pt); + registry.fill(HIST("Data/hCPAxy"), cpaXY); + registry.fill(HIST("Data/hCPAxyVsPt"), cpaXY, pt); + registry.fill(HIST("Data/hDca2"), chi2PCA); + registry.fill(HIST("Data/hDca2VsPt"), chi2PCA, pt); + registry.fill(HIST("Data/hEta"), candidate.eta()); + registry.fill(HIST("Data/hEtaVsPt"), candidate.eta(), pt); + registry.fill(HIST("Data/hPhi"), candidate.phi()); + registry.fill(HIST("Data/hPhiVsPt"), candidate.phi(), pt); + registry.fill(HIST("hSelectionStatus"), candidate.isSelLcToPKPi(), pt); + registry.fill(HIST("hSelectionStatus"), candidate.isSelLcToPiKP(), pt); + registry.fill(HIST("Data/hImpParErrProng0"), candidate.errorImpactParameter0(), pt); + registry.fill(HIST("Data/hImpParErrProng1"), candidate.errorImpactParameter1(), pt); + registry.fill(HIST("Data/hImpParErrProng2"), candidate.errorImpactParameter2(), pt); + registry.fill(HIST("Data/hDecLenErr"), candidate.errorDecayLength(), pt); + + if (enableTHn) { + float cent = evaluateCentralityColl(collision); + double massLc(-1); + double outputBkg(-1), outputPrompt(-1), outputFD(-1); + if (candidate.isSelLcToPKPi() >= selectionFlagLc) { + massLc = hfHelper.invMassLcToPKPi(candidate); + + if constexpr (fillMl) { + + if (candidate.mlProbLcToPKPi().size() == 3) { + + outputBkg = candidate.mlProbLcToPKPi()[0]; /// bkg score + outputPrompt = candidate.mlProbLcToPKPi()[1]; /// prompt score + outputFD = candidate.mlProbLcToPKPi()[2]; /// non-prompt score + } + /// Fill the ML outputScores and variables of candidate + registry.get(HIST("hnLcVarsWithBdt"))->Fill(massLc, pt, cent, outputBkg, outputPrompt, outputFD, 0); + } else { + registry.get(HIST("hnLcVars"))->Fill(massLc, pt, cent, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, 0); + } + } + if (candidate.isSelLcToPiKP() >= selectionFlagLc) { + massLc = hfHelper.invMassLcToPiKP(candidate); + + if constexpr (fillMl) { + + if (candidate.mlProbLcToPiKP().size() == 3) { + + outputBkg = candidate.mlProbLcToPiKP()[0]; /// bkg score + outputPrompt = candidate.mlProbLcToPiKP()[1]; /// prompt score + outputFD = candidate.mlProbLcToPiKP()[2]; /// non-prompt score + } + /// Fill the ML outputScores and variables of candidate + registry.get(HIST("hnLcVarsWithBdt"))->Fill(massLc, pt, cent, outputBkg, outputPrompt, outputFD, 0); + } else { + registry.get(HIST("hnLcVars"))->Fill(massLc, pt, cent, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, 0); + } + } + } + } + } + + template + void runDataAnalysisPerCollision(CollType const& collisions, + CandType const& candidates, + aod::TracksWDca const& tracks) + { + + for (const auto& collision : collisions) { + + fillDataHistosAndSparse(collision, candidates, tracks); + } + } + + void processDataStd(Collisions const& collision, + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); + + void processDataWithMl(Collisions const& collision, + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process Data with the ML method", false); + + void processDataStdWithFT0C(CollisionsWithFT0C const& collision, + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", false); + + void processDataWithMlWithFT0C(CollisionsWithFT0C const& collision, + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process Data with the ML method", false); + + void processDataStdWithFT0M(CollisionsWithFT0M const& collision, + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process Data with the standard method", false); + + void processDataWithMlWithFT0M(CollisionsWithFT0M const& collision, + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) + { + runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + } + PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process Data with the ML method", false); + + /// Fills MC histograms. + template + void runMcAnalysisPerCollision(CollType const& collisions, + CandType const& candidates, + CandLcMcGen const& mcParticles) + { + for (const auto& collision : collisions) { + // MC Rec. + fillMcRecHistosAndSparse(collision, candidates, mcParticles); + // MC gen. + auto mcParticles_per_coll = mcParticles.sliceBy(perMCCollision, collision.globalIndex()); + fillMcGenHistos(mcParticles_per_coll); + } + } void processMcStd(CollisionsMc const& collision, LcCandidatesMc const& selectedLcCandidatesMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStd, "Process MC with the standard method", false); void processMcWithMl(CollisionsMc const& collision, LcCandidatesMlMc const& selectedLcCandidatesMlMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMlMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method", false); void processMcStdWithFT0C(CollisionsMcWithFT0C const& collision, LcCandidatesMc const& selectedLcCandidatesMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0C, "Process MC with the standard method", false); void processMcWithMlWithFT0C(CollisionsMcWithFT0C const& collision, LcCandidatesMlMc const& selectedLcCandidatesMlMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMlMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method", false); void processMcStdWithFT0M(CollisionsMcWithFT0M const& collision, LcCandidatesMc const& selectedLcCandidatesMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method", false); void processMcWithMlWithFT0M(CollisionsMcWithFT0M const& collision, LcCandidatesMlMc const& selectedLcCandidatesMlMc, - soa::Join const& mcParticles, - aod::TracksWMc const& tracksWithMc) + McParticles3ProngMatched const& mcParticles, + aod::McCollisions const&, + aod::TracksWMc const&) { - processMc(collision, selectedLcCandidatesMlMc, mcParticles, tracksWithMc); + runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0M, "Process Mc with the ML method", false); }; From d45598cacc7786147047114d1f2e9637d55f6ea1 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:56:35 +0100 Subject: [PATCH 02/35] Update PWGHF/D2H/Tasks/taskLc.cxx Co-authored-by: Mattia Faggin --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 8c280f61b2b..6c1d444f8d0 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -759,7 +759,7 @@ struct HfTaskLc { fillMcGenHistos(mcParticles_per_coll); } } - void processMcStd(CollisionsMc const& collision, + void processMcStd(CollisionsMc const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, From 5029e72b1da76564d85d747c4559f6fdcd490007 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:56:45 +0100 Subject: [PATCH 03/35] Update PWGHF/D2H/Tasks/taskLc.cxx Co-authored-by: Mattia Faggin --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 6c1d444f8d0..57a563adfaf 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -769,7 +769,7 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processMcStd, "Process MC with the standard method", false); - void processMcWithMl(CollisionsMc const& collision, + void processMcWithMl(CollisionsMc const& collisions, LcCandidatesMlMc const& selectedLcCandidatesMlMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, From 2daf1a5c5012fa1184e61939e84721e16e9df5e0 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:57:03 +0100 Subject: [PATCH 04/35] Update PWGHF/D2H/Tasks/taskLc.cxx Co-authored-by: Mattia Faggin --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 57a563adfaf..86eb90be91e 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -799,7 +799,7 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method", false); - void processMcStdWithFT0M(CollisionsMcWithFT0M const& collision, + void processMcStdWithFT0M(CollisionsMcWithFT0M const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, From 7be1b38ee784e1409ff976af1b9e9722a6fcffdb Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:57:10 +0100 Subject: [PATCH 05/35] Update PWGHF/D2H/Tasks/taskLc.cxx Co-authored-by: Mattia Faggin --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 86eb90be91e..8b3e69d0a2c 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -809,7 +809,7 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method", false); - void processMcWithMlWithFT0M(CollisionsMcWithFT0M const& collision, + void processMcWithMlWithFT0M(CollisionsMcWithFT0M const& collisions, LcCandidatesMlMc const& selectedLcCandidatesMlMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, From d1c389eceab4824837c961c11a9cb20756af0459 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:57:20 +0100 Subject: [PATCH 06/35] Update PWGHF/D2H/Tasks/taskLc.cxx Co-authored-by: Mattia Faggin --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 8b3e69d0a2c..08664cf9041 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -779,7 +779,7 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method", false); - void processMcStdWithFT0C(CollisionsMcWithFT0C const& collision, + void processMcStdWithFT0C(CollisionsMcWithFT0C const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, From 772d2c7765588d7da441f590310a9a1d7740291a Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:03:52 +0100 Subject: [PATCH 07/35] Update taskLc.cxx based on Mattia's comments --- PWGHF/D2H/Tasks/taskLc.cxx | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 08664cf9041..5a82416a442 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -69,7 +69,7 @@ struct HfTaskLc { using LcCandidatesMlMc = soa::Filtered>; using McParticles3ProngMatched = soa::Join; - PresliceUnsorted perMCCollision = aod::mcparticle::mcCollisionId; + Preslice perMCCollision = aod::mcparticle::mcCollisionId; Preslice candLcPerCollision = aod::hf_cand::collisionId; SliceCache cache; @@ -303,14 +303,6 @@ struct HfTaskLc { { return o2::hf_centrality::getCentralityColl(collision); } - /// Evaluate centrality/multiplicity percentile - /// \param candidate is candidate - /// \return centrality/multiplicity percentile of the collision associated to the candidate - template - float evaluateCentralityCand(const T1& candidate) - { - return evaluateCentralityColl(candidate.template collision_as()); - } /// Fill MC histograms at reconstruction level /// \param collision is collision @@ -471,7 +463,6 @@ struct HfTaskLc { registry.fill(HIST("MC/reconstructed/nonprompt/hImpParErrProng2SigNonPrompt"), candidate.errorImpactParameter2(), pt); registry.fill(HIST("MC/reconstructed/nonprompt/hDecLenErrSigNonPrompt"), candidate.errorDecayLength(), pt); } - if (enableTHn) { float cent = evaluateCentralityColl(collision); double massLc(-1); @@ -520,14 +511,12 @@ struct HfTaskLc { void fillMcGenHistos(CandLcMcGen const& mcParticles) { // MC gen. - for (const auto& particle : mcParticles) { if (std::abs(particle.flagMcMatchGen()) == 1 << aod::hf_cand_3prong::DecayType::LcToPKPi) { auto yGen = RecoDecay::y(particle.pVector(), o2::constants::physics::MassLambdaCPlus); if (yCandGenMax >= 0. && std::abs(yGen) > yCandGenMax) { continue; } - auto ptGen = particle.pt(); registry.fill(HIST("MC/generated/signal/hPtGen"), ptGen); registry.fill(HIST("MC/generated/signal/hEtaGen"), particle.eta()); From a0add33be5a17de2f38f618eee7bb583ce14d412 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:46:50 +0100 Subject: [PATCH 08/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 5a82416a442..663f79917bd 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -686,51 +686,51 @@ struct HfTaskLc { } } - void processDataStd(Collisions const& collision, + void processDataStd(Collisions const& collisions, LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); - void processDataWithMl(Collisions const& collision, + void processDataWithMl(Collisions const& collisions, LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process Data with the ML method", false); - void processDataStdWithFT0C(CollisionsWithFT0C const& collision, + void processDataStdWithFT0C(CollisionsWithFT0C const& collisions, LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", false); - void processDataWithMlWithFT0C(CollisionsWithFT0C const& collision, + void processDataWithMlWithFT0C(CollisionsWithFT0C const& collisions, LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process Data with the ML method", false); - void processDataStdWithFT0M(CollisionsWithFT0M const& collision, + void processDataStdWithFT0M(CollisionsWithFT0M const& collisions, LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidates, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process Data with the standard method", false); - void processDataWithMlWithFT0M(CollisionsWithFT0M const& collision, + void processDataWithMlWithFT0M(CollisionsWithFT0M const& collisions, LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collision, selectedLcCandidatesMl, tracks); + runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process Data with the ML method", false); @@ -754,7 +754,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStd, "Process MC with the standard method", false); @@ -764,7 +764,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method", false); @@ -774,17 +774,17 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0C, "Process MC with the standard method", false); - void processMcWithMlWithFT0C(CollisionsMcWithFT0C const& collision, + void processMcWithMlWithFT0C(CollisionsMcWithFT0C const& collisions, LcCandidatesMlMc const& selectedLcCandidatesMlMc, McParticles3ProngMatched const& mcParticles, aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method", false); @@ -794,7 +794,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method", false); @@ -804,7 +804,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collision, selectedLcCandidatesMlMc, mcParticles); + runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0M, "Process Mc with the ML method", false); }; From 3815149357fa7c7ce98094773bcedca966777c71 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:42:46 +0100 Subject: [PATCH 09/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 663f79917bd..4b901e9b413 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -308,7 +308,7 @@ struct HfTaskLc { /// \param collision is collision /// \param candidates is candidates template - void fillMcRecHistosAndSparse(CollType collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) + void fillMcRecHistosAndSparse(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { auto thisCollId = collision.globalIndex(); From 7350e03142d83c6fb1e4ed46768274364b780d50 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:43:51 +0100 Subject: [PATCH 10/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 4b901e9b413..5947d9614ef 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -554,7 +554,6 @@ struct HfTaskLc { template void fillDataHistosAndSparse(CollType collision, CandType const& candidates, TrackType const& tracks) { - auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); From 75d026d6ce9ca61a18f2c2581f7d3e2fd22f3652 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:44:12 +0100 Subject: [PATCH 11/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 5947d9614ef..edae5bacdcc 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -699,7 +699,7 @@ struct HfTaskLc { { runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } - PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process Data with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process real data with the ML method and without centrality", false); void processDataStdWithFT0C(CollisionsWithFT0C const& collisions, LcCandidates const& selectedLcCandidates, From 25cc4b599a9f8eed7bbb8922e552ba2a39cb0f84 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:44:25 +0100 Subject: [PATCH 12/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index edae5bacdcc..37bcb5281de 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -715,7 +715,7 @@ struct HfTaskLc { { runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } - PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process Data with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process real data with the ML method and with FT0C centrality", false); void processDataStdWithFT0M(CollisionsWithFT0M const& collisions, LcCandidates const& selectedLcCandidates, From e6d049c2865c4a313ab4a3ec7af9f6420d0588cf Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:44:36 +0100 Subject: [PATCH 13/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 37bcb5281de..08196a4bc7c 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -723,7 +723,7 @@ struct HfTaskLc { { runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); } - PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process Data with the standard method", false); + PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process real data with the standard method and with FT0M centrality", false); void processDataWithMlWithFT0M(CollisionsWithFT0M const& collisions, LcCandidatesMl const& selectedLcCandidatesMl, From b8fde994cd6115b3ca3a90c0e319b2c5cc6444ef Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:44:47 +0100 Subject: [PATCH 14/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 08196a4bc7c..05d563e5d67 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -731,7 +731,7 @@ struct HfTaskLc { { runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); } - PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process Data with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); /// Fills MC histograms. template From 189ee88f49ab32e78443d99fa8ca0095f22e9b85 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:45:15 +0100 Subject: [PATCH 15/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 05d563e5d67..462b30f60e0 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -735,7 +735,7 @@ struct HfTaskLc { /// Fills MC histograms. template - void runMcAnalysisPerCollision(CollType const& collisions, + void runAnalysisPerCollisionMc(CollType const& collisions, CandType const& candidates, CandLcMcGen const& mcParticles) { From 8ae45f5a632c96a5a2699c0f4bd9b6235ce80de4 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:51:02 +0100 Subject: [PATCH 16/35] Update taskLc.cxx based on Vit --- PWGHF/D2H/Tasks/taskLc.cxx | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 462b30f60e0..2df3e57a4fc 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -53,7 +53,6 @@ struct HfTaskLc { ConfigurableAxis thnConfigAxisCanType{"thnConfigAxisCanType", {5, 0., 5.}, ""}; HfHelper hfHelper; - Filter filterSelectCandidates = aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc; using Collisions = soa::Join; using CollisionsMc = soa::Join; @@ -68,7 +67,7 @@ struct HfTaskLc { using LcCandidatesMc = soa::Filtered>; using LcCandidatesMlMc = soa::Filtered>; using McParticles3ProngMatched = soa::Join; - + Filter filterSelectCandidates = aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc; Preslice perMCCollision = aod::mcparticle::mcCollisionId; Preslice candLcPerCollision = aod::hf_cand::collisionId; SliceCache cache; @@ -471,9 +470,7 @@ struct HfTaskLc { massLc = hfHelper.invMassLcToPKPi(candidate); if constexpr (fillMl) { - if (candidate.mlProbLcToPKPi().size() == 3) { - outputBkg = candidate.mlProbLcToPKPi()[0]; /// bkg score outputPrompt = candidate.mlProbLcToPKPi()[1]; /// prompt score outputFD = candidate.mlProbLcToPKPi()[2]; /// non-prompt score @@ -488,9 +485,7 @@ struct HfTaskLc { massLc = hfHelper.invMassLcToPiKP(candidate); if constexpr (fillMl) { - if (candidate.mlProbLcToPiKP().size() == 3) { - outputBkg = candidate.mlProbLcToPiKP()[0]; /// bkg score outputPrompt = candidate.mlProbLcToPiKP()[1]; /// prompt score outputFD = candidate.mlProbLcToPiKP()[2]; /// non-prompt score @@ -639,9 +634,7 @@ struct HfTaskLc { massLc = hfHelper.invMassLcToPKPi(candidate); if constexpr (fillMl) { - if (candidate.mlProbLcToPKPi().size() == 3) { - outputBkg = candidate.mlProbLcToPKPi()[0]; /// bkg score outputPrompt = candidate.mlProbLcToPKPi()[1]; /// prompt score outputFD = candidate.mlProbLcToPKPi()[2]; /// non-prompt score @@ -656,9 +649,7 @@ struct HfTaskLc { massLc = hfHelper.invMassLcToPiKP(candidate); if constexpr (fillMl) { - if (candidate.mlProbLcToPiKP().size() == 3) { - outputBkg = candidate.mlProbLcToPiKP()[0]; /// bkg score outputPrompt = candidate.mlProbLcToPiKP()[1]; /// prompt score outputFD = candidate.mlProbLcToPiKP()[2]; /// non-prompt score @@ -753,7 +744,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStd, "Process MC with the standard method", false); @@ -763,7 +754,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method", false); @@ -773,7 +764,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0C, "Process MC with the standard method", false); @@ -783,7 +774,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method", false); @@ -793,7 +784,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method", false); @@ -803,7 +794,7 @@ struct HfTaskLc { aod::McCollisions const&, aod::TracksWMc const&) { - runMcAnalysisPerCollision(collisions, selectedLcCandidatesMlMc, mcParticles); + runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0M, "Process Mc with the ML method", false); }; From 9b547d35ef2685b9951e65f5a8020ed6a201195f Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:51:32 +0100 Subject: [PATCH 17/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 2df3e57a4fc..e67210afcc2 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -68,7 +68,7 @@ struct HfTaskLc { using LcCandidatesMlMc = soa::Filtered>; using McParticles3ProngMatched = soa::Join; Filter filterSelectCandidates = aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc; - Preslice perMCCollision = aod::mcparticle::mcCollisionId; + Preslice perMcCollision = aod::mcparticle::mcCollisionId; Preslice candLcPerCollision = aod::hf_cand::collisionId; SliceCache cache; From 3d54f49a1a79fe3116810331322fe1049124a580 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:51:59 +0100 Subject: [PATCH 18/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index e67210afcc2..817c7e1cb68 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -665,7 +665,7 @@ struct HfTaskLc { } template - void runDataAnalysisPerCollision(CollType const& collisions, + void runAnalysisPerCollisionData(CollType const& collisions, CandType const& candidates, aod::TracksWDca const& tracks) { From c792fec61e29e57a1946f19bad2682b87cbe61dc Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:52:12 +0100 Subject: [PATCH 19/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 817c7e1cb68..d3353ad12c2 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -547,7 +547,7 @@ struct HfTaskLc { /// \param collision is collision /// \param candidates is candidates template - void fillDataHistosAndSparse(CollType collision, CandType const& candidates, TrackType const& tracks) + void fillDataHistosAndSparse(CollType const& collision, CandType const& candidates, TrackType const& tracks) { auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); From 18df6e2e01b86cc171e22f83d7c691b285411e7f Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:53:46 +0100 Subject: [PATCH 20/35] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index d3353ad12c2..3bef3ce1317 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -500,10 +500,11 @@ struct HfTaskLc { } } } + /// Fill MC histograms at genernated level /// \param mcParticles are particles in MC template - void fillMcGenHistos(CandLcMcGen const& mcParticles) + void fillHistosMcGen(CandLcMcGen const& mcParticles) { // MC gen. for (const auto& particle : mcParticles) { @@ -626,7 +627,7 @@ struct HfTaskLc { registry.fill(HIST("Data/hImpParErrProng2"), candidate.errorImpactParameter2(), pt); registry.fill(HIST("Data/hDecLenErr"), candidate.errorDecayLength(), pt); - if (enableTHn) { + if (fillTHn) { float cent = evaluateCentralityColl(collision); double massLc(-1); double outputBkg(-1), outputPrompt(-1), outputFD(-1); @@ -734,8 +735,8 @@ struct HfTaskLc { // MC Rec. fillMcRecHistosAndSparse(collision, candidates, mcParticles); // MC gen. - auto mcParticles_per_coll = mcParticles.sliceBy(perMCCollision, collision.globalIndex()); - fillMcGenHistos(mcParticles_per_coll); + auto mcParticlesPerColl = mcParticles.sliceBy(perMCCollision, collision.globalIndex()); + fillMcGenHistos(mcParticlesPerColl); } } void processMcStd(CollisionsMc const& collisions, From 2627b4e796cb49abd13ca482aef4bfbcbbc529a5 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:00:38 +0100 Subject: [PATCH 21/35] Update taskLc.cxx based on Vit's comments --- PWGHF/D2H/Tasks/taskLc.cxx | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 3bef3ce1317..3d1292f345f 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -40,7 +40,7 @@ struct HfTaskLc { Configurable yCandRecoMax{"yCandRecoMax", 0.8, "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; // ThnSparse for ML outputScores and Vars - Configurable enableTHn{"enableTHn", false, "enable THn for Lc"}; + Configurable fillTHn{"fillTHn", false, "enable THn for Lc"}; ConfigurableAxis thnConfigAxisPt{"thnConfigAxisPt", {72, 0, 36}, ""}; ConfigurableAxis thnConfigAxisMass{"thnConfigAxisMass", {300, 1.98, 2.58}, ""}; ConfigurableAxis thnConfigAxisPtProng{"thnConfigAxisPtProng", {100, 0, 20}, ""}; @@ -271,7 +271,7 @@ struct HfTaskLc { registry.add("MC/reconstructed/prompt/hDecLenErrSigPrompt", "3-prong candidates (matched, prompt);decay length error (cm);entries", {HistType::kTH2F, {{100, 0., 1.}, {vbins, "#it{p}_{T} (GeV/#it{c})"}}}); registry.add("MC/reconstructed/nonprompt/hDecLenErrSigNonPrompt", "3-prong candidates (matched, non-prompt);decay length error (cm);entries", {HistType::kTH2F, {{100, 0., 1.}, {vbins, "#it{p}_{T} (GeV/#it{c})"}}}); - if (enableTHn) { + if (fillTHn) { const AxisSpec thnAxisMass{thnConfigAxisMass, "inv. mass (p K #pi) (GeV/#it{c}^{2})"}; const AxisSpec thnAxisPt{thnConfigAxisPt, "#it{p}_{T}(#Lambda_{c}^{+}) (GeV/#it{c})"}; const AxisSpec thnAxisPtProng0{thnConfigAxisPtProng, "#it{p}_{T}(prong0) (GeV/#it{c})"}; @@ -462,7 +462,7 @@ struct HfTaskLc { registry.fill(HIST("MC/reconstructed/nonprompt/hImpParErrProng2SigNonPrompt"), candidate.errorImpactParameter2(), pt); registry.fill(HIST("MC/reconstructed/nonprompt/hDecLenErrSigNonPrompt"), candidate.errorDecayLength(), pt); } - if (enableTHn) { + if (fillTHn) { float cent = evaluateCentralityColl(collision); double massLc(-1); double outputBkg(-1), outputPrompt(-1), outputFD(-1); @@ -681,7 +681,7 @@ struct HfTaskLc { LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); @@ -689,7 +689,7 @@ struct HfTaskLc { LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process real data with the ML method and without centrality", false); @@ -697,7 +697,7 @@ struct HfTaskLc { LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", false); @@ -705,7 +705,7 @@ struct HfTaskLc { LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process real data with the ML method and with FT0C centrality", false); @@ -713,7 +713,7 @@ struct HfTaskLc { LcCandidates const& selectedLcCandidates, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process real data with the standard method and with FT0M centrality", false); @@ -721,7 +721,7 @@ struct HfTaskLc { LcCandidatesMl const& selectedLcCandidatesMl, aod::TracksWDca const& tracks) { - runDataAnalysisPerCollision(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); @@ -735,8 +735,8 @@ struct HfTaskLc { // MC Rec. fillMcRecHistosAndSparse(collision, candidates, mcParticles); // MC gen. - auto mcParticlesPerColl = mcParticles.sliceBy(perMCCollision, collision.globalIndex()); - fillMcGenHistos(mcParticlesPerColl); + auto mcParticlesPerColl = mcParticles.sliceBy(perMcCollision, collision.globalIndex()); + fillHistosMcGen(mcParticlesPerColl); } } void processMcStd(CollisionsMc const& collisions, @@ -757,7 +757,7 @@ struct HfTaskLc { { runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } - PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processMcWithMl, "Process Mc with the ML method and without centrality", false); void processMcStdWithFT0C(CollisionsMcWithFT0C const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, @@ -767,7 +767,7 @@ struct HfTaskLc { { runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMc, mcParticles); } - PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0C, "Process MC with the standard method", false); + PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0C, "Process MC with the standard method with FT0C centrality", false); void processMcWithMlWithFT0C(CollisionsMcWithFT0C const& collisions, LcCandidatesMlMc const& selectedLcCandidatesMlMc, @@ -777,7 +777,7 @@ struct HfTaskLc { { runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } - PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0C, "Process Mc with the ML method with FT0C centrality", false); void processMcStdWithFT0M(CollisionsMcWithFT0M const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, @@ -787,7 +787,7 @@ struct HfTaskLc { { runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMc, mcParticles); } - PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method", false); + PROCESS_SWITCH(HfTaskLc, processMcStdWithFT0M, "Process MC with the standard method with FT0M centrality", false); void processMcWithMlWithFT0M(CollisionsMcWithFT0M const& collisions, LcCandidatesMlMc const& selectedLcCandidatesMlMc, @@ -797,7 +797,7 @@ struct HfTaskLc { { runAnalysisPerCollisionMc(collisions, selectedLcCandidatesMlMc, mcParticles); } - PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0M, "Process Mc with the ML method", false); + PROCESS_SWITCH(HfTaskLc, processMcWithMlWithFT0M, "Process Mc with the ML method with FT0M centrality", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) From a65c0182bd493602162bfbbe034e6877891dddcc Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:15:11 +0100 Subject: [PATCH 22/35] Update taskLc.cxx based on Vit's comments --- PWGHF/D2H/Tasks/taskLc.cxx | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 3d1292f345f..5e05fe94d69 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -100,7 +100,7 @@ struct HfTaskLc { {"MC/reconstructed/signal/hPtRecProng2Sig", "3-prong candidates (matched);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, {"MC/reconstructed/prompt/hPtRecProng2SigPrompt", "3-prong candidates (matched, prompt);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, {"MC/reconstructed/nonprompt/hPtRecProng2SigNonPrompt", "3-prong candidates (matched, non-prompt);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, - {"Data/hMultiplicity", "multiplicity;multiplicity;entries", {HistType::kTH1F, {{10000, 0., 10000.}}}}, + {"Data/hNPvContrib", "number of prim. vertex contributor;number of prim. vertex contributor;entries", {HistType::kTH1F, {{10000, 0., 10000.}}}}, /// DCAxy to prim. vertex prongs {"Data/hd0Prong0", "3-prong candidates;prong 0 DCAxy to prim. vertex (cm);entries", {HistType::kTH1F, {{600, -0.4, 0.4}}}}, {"MC/reconstructed/signal/hd0RecProng0Sig", "3-prong candidates (matched);prong 0 DCAxy to prim. vertex (cm);entries", {HistType::kTH1F, {{600, -0.4, 0.4}}}}, @@ -553,19 +553,8 @@ struct HfTaskLc { auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); - int nTracks = 0; - if (collision.numContrib() > 1) { - for (const auto& track : tracks) { - if (std::abs(track.eta()) > 4.0) { - continue; - } - if (std::abs(track.dcaXY()) > 0.0025 || std::abs(track.dcaZ()) > 0.0025) { - continue; - } - nTracks++; - } - } - registry.fill(HIST("Data/hMultiplicity"), nTracks); + int numPvContributors = collision.numContrib(); + registry.fill(HIST("Data/hNPvContrib"), numPvContributors); for (const auto& candidate : groupedLcCandidates) { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { From cd3381261999812cc4315cc38db11039b24c7b59 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:20:17 +0100 Subject: [PATCH 23/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 39 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 5e05fe94d69..5ce73f019a7 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -547,8 +547,8 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates - template - void fillDataHistosAndSparse(CollType const& collision, CandType const& candidates, TrackType const& tracks) + template + void fillDataHistosAndSparse(CollType const& collision, CandType const& candidates) { auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); @@ -656,61 +656,54 @@ struct HfTaskLc { template void runAnalysisPerCollisionData(CollType const& collisions, - CandType const& candidates, - aod::TracksWDca const& tracks) + CandType const& candidates) { for (const auto& collision : collisions) { - fillDataHistosAndSparse(collision, candidates, tracks); + fillDataHistosAndSparse(collision, candidates); } } void processDataStd(Collisions const& collisions, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) + LcCandidates const& selectedLcCandidates) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates); } PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); void processDataWithMl(Collisions const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) + LcCandidatesMl const& selectedLcCandidatesMl) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); } PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process real data with the ML method and without centrality", false); void processDataStdWithFT0C(CollisionsWithFT0C const& collisions, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) + LcCandidates const& selectedLcCandidates) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", false); void processDataWithMlWithFT0C(CollisionsWithFT0C const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) + LcCandidatesMl const& selectedLcCandidatesMl) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process real data with the ML method and with FT0C centrality", false); void processDataStdWithFT0M(CollisionsWithFT0M const& collisions, - LcCandidates const& selectedLcCandidates, - aod::TracksWDca const& tracks) + LcCandidates const& selectedLcCandidates) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidates); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process real data with the standard method and with FT0M centrality", false); void processDataWithMlWithFT0M(CollisionsWithFT0M const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl, - aod::TracksWDca const& tracks) + LcCandidatesMl const& selectedLcCandidatesMl) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); From 80bc6bdd4dde461c69ab06123a8702bce97f58be Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:26:23 +0100 Subject: [PATCH 24/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 5ce73f019a7..49a30145b9e 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -575,12 +575,12 @@ struct HfTaskLc { if (candidate.isSelLcToPKPi() >= selectionFlagLc) { registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPKPi(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, nTracks); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, numPvContributors); registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPKPi(candidate), pt); } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPiKP(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, nTracks); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, numPvContributors); registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPiKP(candidate), pt); } registry.fill(HIST("Data/hPt"), pt); From a3d0b5ba5ea7055b0569cd481d6ae46e4a1acd7b Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:21:24 +0100 Subject: [PATCH 25/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 49a30145b9e..70401cf5cae 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -40,7 +40,7 @@ struct HfTaskLc { Configurable yCandRecoMax{"yCandRecoMax", 0.8, "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; // ThnSparse for ML outputScores and Vars - Configurable fillTHn{"fillTHn", false, "enable THn for Lc"}; + Configurable fillTHn{"fillTHn", false, "fill THn"}; ConfigurableAxis thnConfigAxisPt{"thnConfigAxisPt", {72, 0, 36}, ""}; ConfigurableAxis thnConfigAxisMass{"thnConfigAxisMass", {300, 1.98, 2.58}, ""}; ConfigurableAxis thnConfigAxisPtProng{"thnConfigAxisPtProng", {100, 0, 20}, ""}; From 119db6564a694ef906880b21c48981010426f7b3 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:26:06 +0100 Subject: [PATCH 26/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 70401cf5cae..cd213ba37d9 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -684,7 +684,7 @@ struct HfTaskLc { { runAnalysisPerCollisionData(collisions, selectedLcCandidates); } - PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process Data with the standard method", false); + PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process real data with the standard method and with FT0C centrality", false); void processDataWithMlWithFT0C(CollisionsWithFT0C const& collisions, LcCandidatesMl const& selectedLcCandidatesMl) From 01f586ef362dce101399f1315eac8c621d7965ca Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:44:46 +0100 Subject: [PATCH 27/35] Update taskLc.cxx based on Vit's comments --- PWGHF/D2H/Tasks/taskLc.cxx | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index cd213ba37d9..dcc8f047c1a 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -307,7 +307,7 @@ struct HfTaskLc { /// \param collision is collision /// \param candidates is candidates template - void fillMcRecHistosAndSparse(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) + void fillHistosMcRec(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { auto thisCollId = collision.globalIndex(); @@ -548,7 +548,7 @@ struct HfTaskLc { /// \param collision is collision /// \param candidates is candidates template - void fillDataHistosAndSparse(CollType const& collision, CandType const& candidates) + void fillHistosData(CollType const& collision, CandType const& candidates) { auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); @@ -653,7 +653,7 @@ struct HfTaskLc { } } } - + /// Fills Data histograms. template void runAnalysisPerCollisionData(CollType const& collisions, CandType const& candidates) @@ -661,7 +661,22 @@ struct HfTaskLc { for (const auto& collision : collisions) { - fillDataHistosAndSparse(collision, candidates); + fillHistosData(collision, candidates); + } + } + + /// Fills Mc histograms. + template + void runAnalysisPerCollisionMc(CollType const& collisions, + CandType const& candidates, + CandLcMcGen const& mcParticles) + { + for (const auto& collision : collisions) { + // MC Rec. + fillHistosMcRec(collision, candidates, mcParticles); + // MC gen. + auto mcParticlesPerColl = mcParticles.sliceBy(perMcCollision, collision.globalIndex()); + fillHistosMcGen(mcParticlesPerColl); } } @@ -707,20 +722,7 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); - /// Fills MC histograms. - template - void runAnalysisPerCollisionMc(CollType const& collisions, - CandType const& candidates, - CandLcMcGen const& mcParticles) - { - for (const auto& collision : collisions) { - // MC Rec. - fillMcRecHistosAndSparse(collision, candidates, mcParticles); - // MC gen. - auto mcParticlesPerColl = mcParticles.sliceBy(perMcCollision, collision.globalIndex()); - fillHistosMcGen(mcParticlesPerColl); - } - } + void processMcStd(CollisionsMc const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, McParticles3ProngMatched const& mcParticles, From a82ec3b5caa98db44a36a5a92508455e1995b290 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:59:31 +0100 Subject: [PATCH 28/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 60 +++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index dcc8f047c1a..29a14e5ac5c 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -100,7 +100,7 @@ struct HfTaskLc { {"MC/reconstructed/signal/hPtRecProng2Sig", "3-prong candidates (matched);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, {"MC/reconstructed/prompt/hPtRecProng2SigPrompt", "3-prong candidates (matched, prompt);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, {"MC/reconstructed/nonprompt/hPtRecProng2SigNonPrompt", "3-prong candidates (matched, non-prompt);prong 2 #it{p}_{T} (GeV/#it{c});entries", {HistType::kTH1F, {{360, 0., 36.}}}}, - {"Data/hNPvContrib", "number of prim. vertex contributor;number of prim. vertex contributor;entries", {HistType::kTH1F, {{10000, 0., 10000.}}}}, + {"Data/hMultiplicity", "multiplicity;multiplicity;entries", {HistType::kTH1F, {{10000, 0., 10000.}}}}, /// DCAxy to prim. vertex prongs {"Data/hd0Prong0", "3-prong candidates;prong 0 DCAxy to prim. vertex (cm);entries", {HistType::kTH1F, {{600, -0.4, 0.4}}}}, {"MC/reconstructed/signal/hd0RecProng0Sig", "3-prong candidates (matched);prong 0 DCAxy to prim. vertex (cm);entries", {HistType::kTH1F, {{600, -0.4, 0.4}}}}, @@ -547,14 +547,25 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates - template - void fillHistosData(CollType const& collision, CandType const& candidates) + template + void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& tracks) { auto thisCollId = collision.globalIndex(); auto groupedLcCandidates = candidates.sliceBy(candLcPerCollision, thisCollId); - int numPvContributors = collision.numContrib(); - registry.fill(HIST("Data/hNPvContrib"), numPvContributors); + int nTracks = 0; + if (collision.numContrib() > 1) { + for (const auto& track : tracks) { + if (std::abs(track.eta()) > 4.0) { + continue; + } + if (std::abs(track.dcaXY()) > 0.0025 || std::abs(track.dcaZ()) > 0.0025) { + continue; + } + nTracks++; + } + } + registry.fill(HIST("Data/hMultiplicity"), nTracks); for (const auto& candidate : groupedLcCandidates) { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { @@ -575,12 +586,12 @@ struct HfTaskLc { if (candidate.isSelLcToPKPi() >= selectionFlagLc) { registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPKPi(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, numPvContributors); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPKPi(candidate), pt, nTracks); registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPKPi(candidate), pt); } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPiKP(candidate)); - registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, numPvContributors); + registry.fill(HIST("Data/hMassVsPtVsMult"), hfHelper.invMassLcToPiKP(candidate), pt, nTracks); registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPiKP(candidate), pt); } registry.fill(HIST("Data/hPt"), pt); @@ -656,12 +667,13 @@ struct HfTaskLc { /// Fills Data histograms. template void runAnalysisPerCollisionData(CollType const& collisions, - CandType const& candidates) + CandType const& candidates, + aod::TracksWDca const& tracks) { for (const auto& collision : collisions) { - fillHistosData(collision, candidates); + fillHistosData(collision, candidates, tracks); } } @@ -681,44 +693,50 @@ struct HfTaskLc { } void processDataStd(Collisions const& collisions, - LcCandidates const& selectedLcCandidates) + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStd, "Process Data with the standard method", true); void processDataWithMl(Collisions const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl) + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMl, "Process real data with the ML method and without centrality", false); void processDataStdWithFT0C(CollisionsWithFT0C const& collisions, - LcCandidates const& selectedLcCandidates) + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0C, "Process real data with the standard method and with FT0C centrality", false); void processDataWithMlWithFT0C(CollisionsWithFT0C const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl) + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0C, "Process real data with the ML method and with FT0C centrality", false); void processDataStdWithFT0M(CollisionsWithFT0M const& collisions, - LcCandidates const& selectedLcCandidates) + LcCandidates const& selectedLcCandidates, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidates); + runAnalysisPerCollisionData(collisions, selectedLcCandidates, tracks); } PROCESS_SWITCH(HfTaskLc, processDataStdWithFT0M, "Process real data with the standard method and with FT0M centrality", false); void processDataWithMlWithFT0M(CollisionsWithFT0M const& collisions, - LcCandidatesMl const& selectedLcCandidatesMl) + LcCandidatesMl const& selectedLcCandidatesMl, + aod::TracksWDca const& tracks) { - runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl); + runAnalysisPerCollisionData(collisions, selectedLcCandidatesMl, tracks); } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); From 08d1d3cdb6179188a019a4d91b35c1eeb0503e69 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 31 Oct 2024 16:00:03 +0000 Subject: [PATCH 29/35] Please consider the following formatting changes --- PWGHF/D2H/Tasks/taskLc.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 29a14e5ac5c..e450432809a 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -740,7 +740,6 @@ struct HfTaskLc { } PROCESS_SWITCH(HfTaskLc, processDataWithMlWithFT0M, "Process real data with the ML method and with FT0M centrality", false); - void processMcStd(CollisionsMc const& collisions, LcCandidatesMc const& selectedLcCandidatesMc, McParticles3ProngMatched const& mcParticles, From 2533206d3434b6e9de921be4c16769505491fa97 Mon Sep 17 00:00:00 2001 From: BiaoZhang <52267892+zhangbiao-phy@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:13:41 +0100 Subject: [PATCH 30/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index e450432809a..9984db381d6 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -306,6 +306,7 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates + /// \param mcParticles is mcParticles template void fillHistosMcRec(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { @@ -547,6 +548,7 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates + /// \param tracks is tracks template void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& tracks) { From 92e3b562e6cd6910d5b559841a5f154e9bbb540f Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 31 Oct 2024 16:14:06 +0000 Subject: [PATCH 31/35] Please consider the following formatting changes --- PWGHF/D2H/Tasks/taskLc.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 9984db381d6..d9f91c6821a 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -306,7 +306,7 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates - /// \param mcParticles is mcParticles + /// \param mcParticles is mcParticles template void fillHistosMcRec(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { @@ -548,7 +548,7 @@ struct HfTaskLc { /// Fill MC histograms at reconstruction level /// \param collision is collision /// \param candidates is candidates - /// \param tracks is tracks + /// \param tracks is tracks template void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& tracks) { From 644084c108a223949e91d62292f7e255fea7fdde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 1 Nov 2024 21:54:27 +0100 Subject: [PATCH 32/35] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updated based on Vit's suggestions Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index d9f91c6821a..0de8030cc47 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -304,9 +304,7 @@ struct HfTaskLc { } /// Fill MC histograms at reconstruction level - /// \param collision is collision - /// \param candidates is candidates - /// \param mcParticles is mcParticles + /// \tparam fillMl switch to fill ML histograms template void fillHistosMcRec(CollType const& collision, CandLcMcRec const& candidates, CandLcMcGen const& mcParticles) { @@ -502,8 +500,8 @@ struct HfTaskLc { } } - /// Fill MC histograms at genernated level - /// \param mcParticles are particles in MC + /// Fill MC histograms at generated level + /// \tparam fillMl switch to fill ML histograms template void fillHistosMcGen(CandLcMcGen const& mcParticles) { @@ -666,7 +664,9 @@ struct HfTaskLc { } } } - /// Fills Data histograms. + + /// Run the analysis on real data + /// \tparam fillMl switch to fill ML histograms template void runAnalysisPerCollisionData(CollType const& collisions, CandType const& candidates, @@ -674,12 +674,12 @@ struct HfTaskLc { { for (const auto& collision : collisions) { - fillHistosData(collision, candidates, tracks); } } - /// Fills Mc histograms. + /// Run the analysis on MC data + /// \tparam fillMl switch to fill ML histograms template void runAnalysisPerCollisionMc(CollType const& collisions, CandType const& candidates, From 56300a4ba41cc485d12c4aa44aa25a5b35564804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 1 Nov 2024 22:19:54 +0100 Subject: [PATCH 33/35] Update taskLc.cxx --- PWGHF/D2H/Tasks/taskLc.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 0de8030cc47..0f95131e121 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -18,6 +18,8 @@ /// \author Annalena Kalteyer , GSI Darmstadt /// \author Biao Zhang , Heidelberg University +#include // std::vector + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" From 2100d0eb2dc4c00ea45569d4f294cce7047aafe7 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 1 Nov 2024 21:20:23 +0000 Subject: [PATCH 34/35] Please consider the following formatting changes --- PWGHF/D2H/Tasks/taskLc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 0f95131e121..6893bcaadd8 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -18,7 +18,7 @@ /// \author Annalena Kalteyer , GSI Darmstadt /// \author Biao Zhang , Heidelberg University -#include // std::vector +#include // std::vector #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" From 565856e9fa5e17b5a3d3b8fbfda756c4ab8f6ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 1 Nov 2024 22:43:15 +0100 Subject: [PATCH 35/35] Update PWGHF/D2H/Tasks/taskLc.cxx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/D2H/Tasks/taskLc.cxx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 6893bcaadd8..4ae21f78a27 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -545,10 +545,8 @@ struct HfTaskLc { } } - /// Fill MC histograms at reconstruction level - /// \param collision is collision - /// \param candidates is candidates - /// \param tracks is tracks + /// Fill histograms for real data + /// \tparam fillMl switch to fill ML histograms template void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& tracks) {