diff --git a/PWGHF/ALICE3/TableProducer/candidateCreatorChic.cxx b/PWGHF/ALICE3/TableProducer/candidateCreatorChic.cxx index e01b4fe0a6a..117fc633098 100644 --- a/PWGHF/ALICE3/TableProducer/candidateCreatorChic.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateCreatorChic.cxx @@ -15,8 +15,12 @@ /// /// \author Alessandro De Falco , Cagliari University -#include -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/ECAL.h" +#include "Common/Core/trackUtilities.h" #include "CommonConstants/PhysicsConstants.h" #include "DCAFitter/DCAFitterN.h" @@ -24,12 +28,8 @@ #include "ReconstructionDataFormats/DCA.h" #include "ReconstructionDataFormats/V0.h" -#include "ALICE3/DataModel/ECAL.h" -#include "Common/Core/trackUtilities.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include +#include using namespace o2; using namespace o2::analysis; @@ -67,7 +67,6 @@ struct HfCandidateCreatorChic { Configurable yCandMax{"yCandMax", -1., "max. cand. rapidity"}; o2::vertexing::DCAFitterN<2> df2; // 2-prong vertex fitter (to rebuild Jpsi vertex) - HfHelper hfHelper; double massJpsi{0.}; double massJpsiGamma{0.}; @@ -109,14 +108,14 @@ struct HfCandidateCreatorChic { if (!(jpsiCand.hfflag() & 1 << hf_cand_2prong::DecayType::JpsiToEE) && !(jpsiCand.hfflag() & 1 << hf_cand_2prong::DecayType::JpsiToMuMu)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yJpsi(jpsiCand)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yJpsi(jpsiCand)) > yCandMax) { continue; } if (jpsiCand.isSelJpsiToEE() > 0) { - hMassJpsiToEE->Fill(hfHelper.invMassJpsiToEE(jpsiCand)); + hMassJpsiToEE->Fill(HfHelper::invMassJpsiToEE(jpsiCand)); } if (jpsiCand.isSelJpsiToMuMu() > 0) { - hMassJpsiToMuMu->Fill(hfHelper.invMassJpsiToMuMu(jpsiCand)); + hMassJpsiToMuMu->Fill(HfHelper::invMassJpsiToMuMu(jpsiCand)); } hPtJpsi->Fill(jpsiCand.pt()); hCPAJpsi->Fill(jpsiCand.cpa()); @@ -189,7 +188,7 @@ struct HfCandidateCreatorChic { impactParameter0.getY(), 0.f, // impactParameter1.getY(), std::sqrt(impactParameter0.getSigmaY2()), 0.f, // std::sqrt(impactParameter1.getSigmaY2()), jpsiCand.globalIndex(), ecal.globalIndex(), - hfFlag, hfHelper.invMassJpsiToMuMu(jpsiCand)); + hfFlag, HfHelper::invMassJpsiToMuMu(jpsiCand)); // calculate invariant mass auto arrayMomenta = std::array{pvecJpsi, pvecGamma}; @@ -201,9 +200,9 @@ struct HfCandidateCreatorChic { hMassChicToJpsiToMuMuGamma->Fill(massJpsiGamma); } } // ecal loop - } // Jpsi loop - } // process -}; // struct + } // Jpsi loop + } // process +}; // struct /// Extends the base table with expression columns. struct HfCandidateCreatorChicExpressions { @@ -217,8 +216,6 @@ struct HfCandidateCreatorChicMc { Produces rowMcMatchRec; Produces rowMcMatchGen; - HfHelper hfHelper; - OutputObj hMassJpsiToMuMuMatched{TH1F("hMassChicToJpsiToMuMuMatched", "2-prong candidates;inv. mass (J/#psi (#rightarrow #mu+ #mu-)) (GeV/#it{c}^{2});entries", 500, 0., 5.)}; OutputObj hMassEMatched{TH1F("hMassEMatched", "2-prong candidates;inv. mass (J/#psi (#rightarrow #mu+ #mu-)) (GeV/#it{c}^{2});entries", 500, 0., 5.)}; OutputObj hEphotonMatched{TH1F("hEphotonMatched", "2-prong candidates;inv. mass (J/#psi (#rightarrow #mu+ #mu-)) (GeV/#it{c}^{2});entries", 500, 0., 5.)}; @@ -249,7 +246,7 @@ struct HfCandidateCreatorChicMc { // chi_c → J/ψ gamma indexRec = RecoDecay::getMatchedMCRec(mcParticles, arrayJpsiDaughters, Pdg::kJPsi, std::array{+kMuonPlus, -kMuonPlus}, true); if (indexRec > -1) { - hMassJpsiToMuMuMatched->Fill(hfHelper.invMassJpsiToMuMu(candidate.prong0())); + hMassJpsiToMuMuMatched->Fill(HfHelper::invMassJpsiToMuMu(candidate.prong0())); int indexMother = RecoDecay::getMother(mcParticles, mcParticles.rawIteratorAt(indexRec), Pdg::kChiC1); int indexMotherGamma = RecoDecay::getMother(mcParticles, mcParticles.rawIteratorAt(candidate.prong1().mcparticleId()), Pdg::kChiC1); @@ -262,7 +259,7 @@ struct HfCandidateCreatorChicMc { RecoDecay::getDaughters(particleMother, &arrAllDaughtersIndex, std::array{static_cast(kGamma), static_cast(Pdg::kJPsi)}, 1); if (arrAllDaughtersIndex.size() == 2) { flag = 1 << hf_cand_chic::DecayType::ChicToJpsiToMuMuGamma; - hMassChicToJpsiToMuMuGammaMatched->Fill(hfHelper.invMassChicToJpsiGamma(candidate)); + hMassChicToJpsiToMuMuGammaMatched->Fill(HfHelper::invMassChicToJpsiGamma(candidate)); } } } @@ -299,8 +296,8 @@ struct HfCandidateCreatorChicMc { rowMcMatchGen(flag, origin, channel); } // candidate loop - } // process -}; // struct + } // process +}; // struct WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { diff --git a/PWGHF/ALICE3/TableProducer/candidateCreatorX.cxx b/PWGHF/ALICE3/TableProducer/candidateCreatorX.cxx index 2e3477dab99..ee6317aaa27 100644 --- a/PWGHF/ALICE3/TableProducer/candidateCreatorX.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateCreatorX.cxx @@ -16,8 +16,11 @@ /// \author Rik Spijkers , Utrecht University /// \author Luca Micheletti , INFN -#include -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "Common/Core/trackUtilities.h" #include "CommonConstants/PhysicsConstants.h" #include "DCAFitter/DCAFitterN.h" @@ -25,11 +28,8 @@ #include "ReconstructionDataFormats/DCA.h" #include "ReconstructionDataFormats/V0.h" -#include "Common/Core/trackUtilities.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include +#include using namespace o2; using namespace o2::analysis; @@ -67,7 +67,6 @@ struct HfCandidateCreatorX { o2::vertexing::DCAFitterN<2> df2; // 2-prong vertex fitter (to rebuild Jpsi vertex) o2::vertexing::DCAFitterN<3> df3; // 3-prong vertex fitter - HfHelper hfHelper; double massPi{0.}; double massJpsi{0.}; @@ -119,20 +118,20 @@ struct HfCandidateCreatorX { if (!(jpsiCand.hfflag() & 1 << hf_cand_2prong::DecayType::JpsiToEE) && !(jpsiCand.hfflag() & 1 << hf_cand_2prong::DecayType::JpsiToMuMu)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yJpsi(jpsiCand)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yJpsi(jpsiCand)) > yCandMax) { continue; } if (jpsiCand.isSelJpsiToEE() > 0) { - if (std::abs(hfHelper.invMassJpsiToEE(jpsiCand) - massJpsi) > diffMassJpsiMax) { + if (std::abs(HfHelper::invMassJpsiToEE(jpsiCand) - massJpsi) > diffMassJpsiMax) { continue; } - hMassJpsiToEE->Fill(hfHelper.invMassJpsiToEE(jpsiCand)); + hMassJpsiToEE->Fill(HfHelper::invMassJpsiToEE(jpsiCand)); } if (jpsiCand.isSelJpsiToMuMu() > 0) { - if (std::abs(hfHelper.invMassJpsiToMuMu(jpsiCand) - massJpsi) > diffMassJpsiMax) { + if (std::abs(HfHelper::invMassJpsiToMuMu(jpsiCand) - massJpsi) > diffMassJpsiMax) { continue; } - hMassJpsiToMuMu->Fill(hfHelper.invMassJpsiToMuMu(jpsiCand)); + hMassJpsiToMuMu->Fill(HfHelper::invMassJpsiToMuMu(jpsiCand)); } hPtJpsi->Fill(jpsiCand.pt()); @@ -255,10 +254,10 @@ struct HfCandidateCreatorX { hMassXToJpsiToMuMuPiPi->Fill(massJpsiPiPi); } } // pi- loop - } // pi+ loop - } // Jpsi loop - } // process -}; // struct + } // pi+ loop + } // Jpsi loop + } // process +}; // struct /// Extends the base table with expression columns. struct HfCandidateCreatorXExpressions { @@ -363,8 +362,8 @@ struct HfCandidateCreatorXMc { rowMcMatchGen(flag, origin, channel); } // candidate loop - } // process -}; // struct + } // process +}; // struct WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorChicToJpsiGamma.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorChicToJpsiGamma.cxx index 5160a2ba99c..fab70fd5eb5 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorChicToJpsiGamma.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorChicToJpsiGamma.cxx @@ -15,16 +15,16 @@ /// /// \author Alessandro De Falco , Università/INFN Cagliari -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/Core/SelectorCuts.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/Core/SelectorCuts.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::aod; @@ -50,8 +50,6 @@ struct HfCandidateSelectorChicToJpsiGamma { Configurable> binsPt{"binsPt", std::vector{hf_cuts_chic_to_jpsi_gamma::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_chic_to_jpsi_gamma::Cuts[0], hf_cuts_chic_to_jpsi_gamma::NBinsPt, hf_cuts_chic_to_jpsi_gamma::NCutVars, hf_cuts_chic_to_jpsi_gamma::labelsPt, hf_cuts_chic_to_jpsi_gamma::labelsCutVar}, "Jpsi candidate selection per pT bin"}; - HfHelper hfHelper; - /// Selection on goodness of daughter tracks /// \note should be applied at candidate selection /// \param track is daughter track @@ -80,7 +78,7 @@ struct HfCandidateSelectorChicToJpsiGamma { } auto mchic = o2::constants::physics::MassChiC1; // chi_c1(1p) - if (std::abs(hfHelper.invMassChicToJpsiGamma(hfCandChic) - mchic) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassChicToJpsiGamma(hfCandChic) - mchic) > cuts->get(pTBin, "m")) { // LOGF(debug, "Chic topol selection failed at mass diff check"); return false; // check that mass difference is within bounds } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Barrel.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Barrel.cxx index 705deeeaff2..0de3e010c44 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Barrel.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Barrel.cxx @@ -15,18 +15,18 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/RICH.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "ALICE3/DataModel/RICH.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include +#include using namespace o2; using namespace o2::analysis; @@ -70,8 +70,6 @@ struct HfCandidateSelectorD0Alice3Barrel { Configurable> binsPt{"binsPt", std::vector{hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_d0_to_pi_k::Cuts[0], hf_cuts_d0_to_pi_k::NBinsPt, hf_cuts_d0_to_pi_k::NCutVars, hf_cuts_d0_to_pi_k::labelsPt, hf_cuts_d0_to_pi_k::labelsCutVar}, "D0 candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Conjugate-independent topological cuts @@ -147,11 +145,11 @@ struct HfCandidateSelectorD0Alice3Barrel { // invariant-mass cut if (trackPion.sign() > 0) { - if (std::abs(hfHelper.invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } @@ -168,11 +166,11 @@ struct HfCandidateSelectorD0Alice3Barrel { // cut on cos(theta*) if (trackPion.sign() > 0) { - if (std::abs(hfHelper.cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } else { - if (std::abs(hfHelper.cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Forward.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Forward.cxx index a213c3edd04..00ef9b7d673 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Forward.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorD0Alice3Forward.cxx @@ -15,18 +15,18 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/RICH.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "ALICE3/DataModel/RICH.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include +#include using namespace o2; using namespace o2::analysis; @@ -70,8 +70,6 @@ struct HfCandidateSelectorD0Alice3Forward { Configurable> binsPt{"binsPt", std::vector{hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_d0_to_pi_k::Cuts[0], hf_cuts_d0_to_pi_k::NBinsPt, hf_cuts_d0_to_pi_k::NCutVars, hf_cuts_d0_to_pi_k::labelsPt, hf_cuts_d0_to_pi_k::labelsCutVar}, "D0 candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Conjugate-independent topological cuts @@ -147,11 +145,11 @@ struct HfCandidateSelectorD0Alice3Forward { // invariant-mass cut if (trackPion.sign() > 0) { - if (std::abs(hfHelper.invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } @@ -168,11 +166,11 @@ struct HfCandidateSelectorD0Alice3Forward { // cut on cos(theta*) if (trackPion.sign() > 0) { - if (std::abs(hfHelper.cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } else { - if (std::abs(hfHelper.cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorD0ParametrizedPid.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorD0ParametrizedPid.cxx index 6a46231b0c2..7a8d6111ee0 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorD0ParametrizedPid.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorD0ParametrizedPid.cxx @@ -15,18 +15,18 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/RICH.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "ALICE3/DataModel/RICH.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include +#include using namespace o2; using namespace o2::analysis; @@ -70,8 +70,6 @@ struct HfCandidateSelectorD0ParametrizedPid { Configurable> binsPt{"binsPt", std::vector{hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_d0_to_pi_k::Cuts[0], hf_cuts_d0_to_pi_k::NBinsPt, hf_cuts_d0_to_pi_k::NCutVars, hf_cuts_d0_to_pi_k::labelsPt, hf_cuts_d0_to_pi_k::labelsCutVar}, "D0 candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Conjugate-independent topological cuts @@ -147,11 +145,11 @@ struct HfCandidateSelectorD0ParametrizedPid { // invariant-mass cut if (trackPion.sign() > 0) { - if (std::abs(hfHelper.invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { return false; } } @@ -168,11 +166,11 @@ struct HfCandidateSelectorD0ParametrizedPid { // cut on cos(theta*) if (trackPion.sign() > 0) { - if (std::abs(hfHelper.cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } else { - if (std::abs(hfHelper.cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorJpsi.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorJpsi.cxx index 391aba49da0..5ca50181673 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorJpsi.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorJpsi.cxx @@ -16,18 +16,18 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include - -#include "CommonConstants/PhysicsConstants.h" -#include "Framework/AnalysisTask.h" +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "ALICE3/DataModel/MID.h" #include "ALICE3/DataModel/RICH.h" #include "Common/Core/TrackSelectorPID.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include "CommonConstants/PhysicsConstants.h" +#include "Framework/AnalysisTask.h" + +#include using namespace o2; using namespace o2::analysis; @@ -86,7 +86,6 @@ struct HfCandidateSelectorJpsi { Configurable> binsPt{"binsPt", std::vector{hf_cuts_jpsi_to_e_e::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_jpsi_to_e_e::Cuts[0], hf_cuts_jpsi_to_e_e::NBinsPt, hf_cuts_jpsi_to_e_e::NCutVars, hf_cuts_jpsi_to_e_e::labelsPt, hf_cuts_jpsi_to_e_e::labelsCutVar}, "Jpsi candidate selection per pT bin"}; - HfHelper hfHelper; TrackSelectorEl selectorElectron; TrackSelectorMu selectorMuon; @@ -126,12 +125,12 @@ struct HfCandidateSelectorJpsi { } // cut on e+ e− invariant mass - if (std::abs(hfHelper.invMassJpsiToEE(candidate) - o2::constants::physics::MassJPsi) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassJpsiToEE(candidate) - o2::constants::physics::MassJPsi) > cuts->get(pTBin, "m")) { selEE = 0; } // cut on μ+ μ− invariant mass - if (std::abs(hfHelper.invMassJpsiToMuMu(candidate) - o2::constants::physics::MassJPsi) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassJpsiToMuMu(candidate) - o2::constants::physics::MassJPsi) > cuts->get(pTBin, "m")) { selMuMu = 0; } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorLcAlice3.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorLcAlice3.cxx index c9abeedad39..509ba9bb813 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorLcAlice3.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorLcAlice3.cxx @@ -16,17 +16,17 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/RICH.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "ALICE3/DataModel/RICH.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::analysis; @@ -71,8 +71,6 @@ struct HfCandidateSelectorLcAlice3 { Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_lc_to_p_k_pi::Cuts[0], hf_cuts_lc_to_p_k_pi::NBinsPt, hf_cuts_lc_to_p_k_pi::NCutVars, hf_cuts_lc_to_p_k_pi::labelsPt, hf_cuts_lc_to_p_k_pi::labelsCutVar}, "Lc candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Conjugate-independent topological cuts @@ -136,11 +134,11 @@ struct HfCandidateSelectorLcAlice3 { } if (trackProton.globalIndex() == candidate.prong0Id()) { - if (std::abs(hfHelper.invMassLcToPKPi(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassLcToPKPi(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassLcToPiKP(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassLcToPiKP(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { return false; } } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorLcParametrizedPid.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorLcParametrizedPid.cxx index 0a3210a63f6..6bcc7fc438c 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorLcParametrizedPid.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorLcParametrizedPid.cxx @@ -16,17 +16,17 @@ /// \author Nima Zardoshti , CERN /// \author Vít Kučera , CERN -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + +#include "ALICE3/DataModel/RICH.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "ALICE3/DataModel/RICH.h" - -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::analysis; @@ -72,8 +72,6 @@ struct HfCandidateSelectorLcParametrizedPid { Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_lc_to_p_k_pi::Cuts[0], hf_cuts_lc_to_p_k_pi::NBinsPt, hf_cuts_lc_to_p_k_pi::NCutVars, hf_cuts_lc_to_p_k_pi::labelsPt, hf_cuts_lc_to_p_k_pi::labelsCutVar}, "Lc candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Conjugate-independent topological cuts @@ -137,11 +135,11 @@ struct HfCandidateSelectorLcParametrizedPid { } if (trackProton.globalIndex() == candidate.prong0Id()) { - if (std::abs(hfHelper.invMassLcToPKPi(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassLcToPKPi(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassLcToPiKP(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassLcToPiKP(candidate) - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "m")) { return false; } } diff --git a/PWGHF/ALICE3/TableProducer/candidateSelectorXToJpsiPiPi.cxx b/PWGHF/ALICE3/TableProducer/candidateSelectorXToJpsiPiPi.cxx index bff87d84e70..222d8261259 100644 --- a/PWGHF/ALICE3/TableProducer/candidateSelectorXToJpsiPiPi.cxx +++ b/PWGHF/ALICE3/TableProducer/candidateSelectorXToJpsiPiPi.cxx @@ -16,16 +16,16 @@ /// \author Rik Spijkers , Utrecht University /// \author Luca Micheletti , INFN -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/Core/SelectorCuts.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/Core/SelectorCuts.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::aod; @@ -51,8 +51,6 @@ struct HfCandidateSelectorXToJpsiPiPi { Configurable> binsPt{"binsPt", std::vector{hf_cuts_x_to_jpsi_pi_pi::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_x_to_jpsi_pi_pi::Cuts[0], hf_cuts_x_to_jpsi_pi_pi::NBinsPt, hf_cuts_x_to_jpsi_pi_pi::NCutVars, hf_cuts_x_to_jpsi_pi_pi::labelsPt, hf_cuts_x_to_jpsi_pi_pi::labelsCutVar}, "Jpsi candidate selection per pT bin"}; - HfHelper hfHelper; - using TracksSel = soa::Join; /// Selection on goodness of daughter tracks @@ -86,7 +84,7 @@ struct HfCandidateSelectorXToJpsiPiPi { return false; // check that the candidate pT is within the analysis range } - if (std::abs(hfHelper.invMassXToJpsiPiPi(hfCandX) - o2::constants::physics::MassX3872) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassXToJpsiPiPi(hfCandX) - o2::constants::physics::MassX3872) > cuts->get(pTBin, "m")) { // LOGF(debug, "X topol selection failed at mass diff check"); return false; // check that mass difference is within bounds } diff --git a/PWGHF/ALICE3/TableProducer/treeCreatorChicToJpsiGamma.cxx b/PWGHF/ALICE3/TableProducer/treeCreatorChicToJpsiGamma.cxx index 1b164a0fc0e..33af9544284 100644 --- a/PWGHF/ALICE3/TableProducer/treeCreatorChicToJpsiGamma.cxx +++ b/PWGHF/ALICE3/TableProducer/treeCreatorChicToJpsiGamma.cxx @@ -18,14 +18,14 @@ /// \author Alessandro De Falco , Università/INFN Cagliari /// \author Luca Micheletti , INFN -#include "CommonConstants/PhysicsConstants.h" -#include "Framework/AnalysisTask.h" -#include "Framework/runDataProcessing.h" - #include "PWGHF/Core/HfHelper.h" #include "PWGHF/DataModel/CandidateReconstructionTables.h" #include "PWGHF/DataModel/CandidateSelectionTables.h" +#include "CommonConstants/PhysicsConstants.h" +#include "Framework/AnalysisTask.h" +#include "Framework/runDataProcessing.h" + using namespace o2; using namespace o2::aod; using namespace o2::framework; @@ -122,8 +122,6 @@ struct HfTreeCreatorChicToJpsiGamma { Produces rowCandidateFullEvents; Produces rowCandidateFullParticles; - HfHelper hfHelper; - void init(InitContext const&) { } @@ -203,8 +201,8 @@ struct HfTreeCreatorChicToJpsiGamma { candidate.originMcRec()); } }; - fillTable(0, candidate.isSelChicToJpsiToMuMuGamma(), hfHelper.invMassChicToJpsiGamma(candidate), hfHelper.ctChic(candidate), hfHelper.yChic(candidate)); - // fillTable(1, candidate.isSelChicToJpsiToEEGamma(), hfHelper.invMassChicToJpsiGamma(candidate), hfHelper.ctChic(candidate), hfHelper.yChic(candidate)); + fillTable(0, candidate.isSelChicToJpsiToMuMuGamma(), HfHelper::invMassChicToJpsiGamma(candidate), HfHelper::ctChic(candidate), HfHelper::yChic(candidate)); + // fillTable(1, candidate.isSelChicToJpsiToEEGamma(), HfHelper::invMassChicToJpsiGamma(candidate), HfHelper::ctChic(candidate), HfHelper::yChic(candidate)); } // Filling particle properties diff --git a/PWGHF/ALICE3/TableProducer/treeCreatorXToJpsiPiPi.cxx b/PWGHF/ALICE3/TableProducer/treeCreatorXToJpsiPiPi.cxx index 7a981b35798..b4ebf84eac2 100644 --- a/PWGHF/ALICE3/TableProducer/treeCreatorXToJpsiPiPi.cxx +++ b/PWGHF/ALICE3/TableProducer/treeCreatorXToJpsiPiPi.cxx @@ -17,13 +17,13 @@ /// /// \author Luca Micheletti , INFN -#include "Framework/AnalysisTask.h" -#include "Framework/runDataProcessing.h" - #include "PWGHF/Core/HfHelper.h" #include "PWGHF/DataModel/CandidateReconstructionTables.h" #include "PWGHF/DataModel/CandidateSelectionTables.h" +#include "Framework/AnalysisTask.h" +#include "Framework/runDataProcessing.h" + using namespace o2; using namespace o2::aod; using namespace o2::framework; @@ -144,8 +144,6 @@ struct HfTreeCreatorXToJpsiPiPi { Produces rowCandidateFullEvents; Produces rowCandidateFullParticles; - HfHelper hfHelper; - using TracksWPid = soa::Join; void init(InitContext const&) @@ -236,7 +234,7 @@ struct HfTreeCreatorXToJpsiPiPi { } }; - fillTable(0, candidate.isSelXToJpsiToMuMuPiPi(), hfHelper.invMassXToJpsiPiPi(candidate), hfHelper.ctX(candidate), hfHelper.yX(candidate), hfHelper.qX(candidate), hfHelper.dRX(candidate, 1), hfHelper.dRX(candidate, 2), hfHelper.balancePtPionsX(candidate)); + fillTable(0, candidate.isSelXToJpsiToMuMuPiPi(), HfHelper::invMassXToJpsiPiPi(candidate), HfHelper::ctX(candidate), HfHelper::yX(candidate), HfHelper::qX(candidate), HfHelper::dRX(candidate, 1), HfHelper::dRX(candidate, 2), HfHelper::balancePtPionsX(candidate)); } // Filling particle properties diff --git a/PWGHF/ALICE3/Tasks/taskChic.cxx b/PWGHF/ALICE3/Tasks/taskChic.cxx index f8cb85454a1..f7331b7d417 100644 --- a/PWGHF/ALICE3/Tasks/taskChic.cxx +++ b/PWGHF/ALICE3/Tasks/taskChic.cxx @@ -15,16 +15,16 @@ /// \author Gian Michele Innocenti , CERN /// \author Alessandro De Falco , Cagliari University -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/Core/SelectorCuts.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/Core/SelectorCuts.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::aod; @@ -47,8 +47,6 @@ struct HfTaskChic { Configurable modeChicToJpsiToMuMuGamma{"modeChicToJpsiToMuMuGamma", true, "Perform Jpsi to mu+mu- analysis"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_chic_to_jpsi_gamma::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_chic::isSelChicToJpsiToEEGamma >= selectionFlagChic || aod::hf_sel_candidate_chic::isSelChicToJpsiToMuMuGamma >= selectionFlagChic); HistogramRegistry registry{ @@ -80,12 +78,12 @@ struct HfTaskChic { if (!(candidate.hfflag() & 1 << decayMode)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yChic(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yChic(candidate)) > yCandMax) { continue; } - registry.fill(HIST("hMass"), hfHelper.invMassChicToJpsiGamma(candidate), candidate.pt()); - registry.fill(HIST("hDeltaMass"), hfHelper.invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi, candidate.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassChicToJpsiGamma(candidate), candidate.pt()); + registry.fill(HIST("hDeltaMass"), HfHelper::invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi, candidate.pt()); registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -101,8 +99,8 @@ struct HfTaskChic { registry.fill(HIST("hDecLenXYErr"), candidate.errorDecayLengthXY(), candidate.pt()); // registry.fill(HIST("hEGamma"), candidate.prong1().e()); } // candidate loop - } // process -}; // struct + } // process +}; // struct struct HfTaskChicMc { Configurable selectionFlagChic{"selectionFlagChic", 1, "Selection Flag for Chic"}; @@ -110,8 +108,6 @@ struct HfTaskChicMc { Configurable modeChicToJpsiToMuMuGamma{"modeChicToJpsiToMuMuGamma", true, "Perform Jpsi to mu+mu- analysis"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_chic_to_jpsi_gamma::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_chic::isSelChicToJpsiToEEGamma >= selectionFlagChic || aod::hf_sel_candidate_chic::isSelChicToJpsiToMuMuGamma >= selectionFlagChic); HistogramRegistry registry{ @@ -165,7 +161,7 @@ struct HfTaskChicMc { if (!(candidate.hfflag() & 1 << decayMode)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yChic(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yChic(candidate)) > yCandMax) { continue; } if (candidate.flagMcMatchRec() == 1 << decayMode) { @@ -177,29 +173,29 @@ struct HfTaskChicMc { registry.fill(HIST("hCPARecSig"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEtaRecSig"), candidate.eta(), candidate.pt()); registry.fill(HIST("hDecLengthRecSig"), candidate.decayLength(), candidate.pt()); - registry.fill(HIST("hDeltaMassRecSig"), hfHelper.invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi), candidate.pt(); - registry.fill(HIST("hMassRecSig"), hfHelper.invMassChicToJpsiGamma(candidate), candidate.pt()); + registry.fill(HIST("hDeltaMassRecSig"), HfHelper::invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi), candidate.pt(); + registry.fill(HIST("hMassRecSig"), HfHelper::invMassChicToJpsiGamma(candidate), candidate.pt()); registry.fill(HIST("hd0Prong0RecSig"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1RecSig"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hPtProng0RecSig"), candidate.ptProng0(), candidate.pt()); registry.fill(HIST("hPtProng1RecSig"), candidate.ptProng1(), candidate.pt()); registry.fill(HIST("hChi2PCARecSig"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtRecSig"), hfHelper.ctChic(candidate), candidate.pt()); - registry.fill(HIST("hYRecSig"), hfHelper.yChic(candidate), candidate.pt()); + registry.fill(HIST("hCtRecSig"), HfHelper::ctChic(candidate), candidate.pt()); + registry.fill(HIST("hYRecSig"), HfHelper::yChic(candidate), candidate.pt()); } else { registry.fill(HIST("hPtRecBg"), candidate.pt()); registry.fill(HIST("hCPARecBg"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEtaRecBg"), candidate.eta(), candidate.pt()); registry.fill(HIST("hDecLengthRecBg"), candidate.decayLength(), candidate.pt()); - registry.fill(HIST("hDeltaMassRecBg"), hfHelper.invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi), candidate.pt(); - registry.fill(HIST("hMassRecBg"), hfHelper.invMassChicToJpsiGamma(candidate), candidate.pt()); + registry.fill(HIST("hDeltaMassRecBg"), HfHelper::invMassChicToJpsiGamma(candidate) - candidate.jpsiToMuMuMass() + o2::constants::physics::MassJPsi), candidate.pt(); + registry.fill(HIST("hMassRecBg"), HfHelper::invMassChicToJpsiGamma(candidate), candidate.pt()); registry.fill(HIST("hd0Prong0RecBg"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1RecBg"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hPtProng0RecBg"), candidate.ptProng0(), candidate.pt()); registry.fill(HIST("hPtProng1RecBg"), candidate.ptProng1(), candidate.pt()); registry.fill(HIST("hChi2PCARecBg"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtRecBg"), hfHelper.ctChic(candidate), candidate.pt()); - registry.fill(HIST("hYRecBg"), hfHelper.yChic(candidate), candidate.pt()); + registry.fill(HIST("hCtRecBg"), HfHelper::ctChic(candidate), candidate.pt()); + registry.fill(HIST("hYRecBg"), HfHelper::yChic(candidate), candidate.pt()); } } // rec // MC gen. @@ -225,8 +221,8 @@ struct HfTaskChicMc { registry.fill(HIST("hPtProng1Gen"), ptProngs[1], particle.pt()); } } // gen - } // process -}; // struct + } // process +}; // struct WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { diff --git a/PWGHF/ALICE3/Tasks/taskD0Alice3Barrel.cxx b/PWGHF/ALICE3/Tasks/taskD0Alice3Barrel.cxx index da86e77a06b..546d7946394 100644 --- a/PWGHF/ALICE3/Tasks/taskD0Alice3Barrel.cxx +++ b/PWGHF/ALICE3/Tasks/taskD0Alice3Barrel.cxx @@ -15,15 +15,15 @@ /// \author Gian Michele Innocenti , CERN /// \author Vít Kučera , CERN +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" - using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; @@ -33,8 +33,6 @@ struct HfTaskD0Alice3Barrel { // Configurable centralitySelectionMin{"centralitySelectionMin", 0.0, "Lower boundary of centrality selection"}; // Configurable centralitySelectionMax{"centralitySelectionMax", 0.0, "Higher boundary of centrality selection"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_d0_alice3_barrel::isSelHfFlag >= 1); HistogramRegistry registry{ @@ -73,14 +71,14 @@ struct HfTaskD0Alice3Barrel { if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (std::abs(hfHelper.yD0(candidate)) > 4.0) { + if (std::abs(HfHelper::yD0(candidate)) > 4.0) { continue; } - auto massD0 = hfHelper.invMassD0ToPiK(candidate); - auto massD0bar = hfHelper.invMassD0barToKPi(candidate); + auto massD0 = HfHelper::invMassD0ToPiK(candidate); + auto massD0bar = HfHelper::invMassD0barToKPi(candidate); auto ptCandidate = candidate.pt(); - auto rapidityCandidate = std::abs(hfHelper.yD0(candidate)); + auto rapidityCandidate = std::abs(HfHelper::yD0(candidate)); if (candidate.isSelD0NoPid() >= 1) { registry.fill(HIST("hMassSigBkgD0NoPid"), massD0, ptCandidate, rapidityCandidate); diff --git a/PWGHF/ALICE3/Tasks/taskD0Alice3Forward.cxx b/PWGHF/ALICE3/Tasks/taskD0Alice3Forward.cxx index dea53a20d70..a43dc94d436 100644 --- a/PWGHF/ALICE3/Tasks/taskD0Alice3Forward.cxx +++ b/PWGHF/ALICE3/Tasks/taskD0Alice3Forward.cxx @@ -15,15 +15,15 @@ /// \author Gian Michele Innocenti , CERN /// \author Vít Kučera , CERN +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" - using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; @@ -32,8 +32,6 @@ using namespace o2::framework::expressions; struct HfTaskD0Alice3Forward { Filter filterSelectCandidates = (aod::hf_sel_candidate_d0_alice3_forward::isSelHfFlag >= 1); - HfHelper hfHelper; - HistogramRegistry registry{ "registry", {{"hMassGen", "2-prong candidates (generated); #it{p}_{T}; #it{y}", {HistType::kTH2F, {{150, 0., 30.}, {8, 0, 4.0}}}}, @@ -49,14 +47,14 @@ struct HfTaskD0Alice3Forward { if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (std::abs(hfHelper.yD0(candidate)) > 4.0) { + if (std::abs(HfHelper::yD0(candidate)) > 4.0) { continue; } - auto massD0 = hfHelper.invMassD0ToPiK(candidate); - // auto massD0bar = hfHelper.invMassD0barToKPi(candidate); + auto massD0 = HfHelper::invMassD0ToPiK(candidate); + // auto massD0bar = HfHelper::invMassD0barToKPi(candidate); auto ptCandidate = candidate.pt(); - auto rapidityCandidate = std::abs(hfHelper.yD0(candidate)); + auto rapidityCandidate = std::abs(HfHelper::yD0(candidate)); if (candidate.isSelD0FRichPid() >= 1) { registry.fill(HIST("hMassSigBkgD0ForwardRICHPID"), massD0, ptCandidate, rapidityCandidate); diff --git a/PWGHF/ALICE3/Tasks/taskD0ParametrizedPid.cxx b/PWGHF/ALICE3/Tasks/taskD0ParametrizedPid.cxx index 3fe2487b2f3..46387f053a6 100644 --- a/PWGHF/ALICE3/Tasks/taskD0ParametrizedPid.cxx +++ b/PWGHF/ALICE3/Tasks/taskD0ParametrizedPid.cxx @@ -15,15 +15,15 @@ /// \author Gian Michele Innocenti , CERN /// \author Vít Kučera , CERN +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" - using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; @@ -33,8 +33,6 @@ struct HfTaskD0ParametrizedPid { // Configurable centralitySelectionMin{"centralitySelectionMin", 0.0, "Lower boundary of centrality selection"}; // Configurable centralitySelectionMax{"centralitySelectionMax", 30000.0, "Higher boundary of centrality selection"}; - HfHelper hfHelper; - using McParticlesHf = soa::Join; Filter filterSelectCandidates = (aod::hf_sel_candidate_d0_parametrized_pid::isSelD0NoPid >= 1 || aod::hf_sel_candidate_d0_parametrized_pid::isSelD0barNoPid >= 1); @@ -71,14 +69,14 @@ struct HfTaskD0ParametrizedPid { if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (std::abs(hfHelper.yD0(candidate)) > 4.0) { + if (std::abs(HfHelper::yD0(candidate)) > 4.0) { continue; } - auto massD0 = hfHelper.invMassD0ToPiK(candidate); - // auto massD0bar = hfHelper.invMassD0barToKPi(candidate); + auto massD0 = HfHelper::invMassD0ToPiK(candidate); + // auto massD0bar = HfHelper::invMassD0barToKPi(candidate); auto ptCandidate = candidate.pt(); - auto rapidityCandidate = std::abs(hfHelper.yD0(candidate)); + auto rapidityCandidate = std::abs(HfHelper::yD0(candidate)); if (candidate.isSelD0NoPid() >= 1) { registry.fill(HIST("hMassSigBkgD0NoPid"), massD0, ptCandidate, rapidityCandidate); diff --git a/PWGHF/ALICE3/Tasks/taskJpsi.cxx b/PWGHF/ALICE3/Tasks/taskJpsi.cxx index a9210ccca86..9a20f6f42e9 100644 --- a/PWGHF/ALICE3/Tasks/taskJpsi.cxx +++ b/PWGHF/ALICE3/Tasks/taskJpsi.cxx @@ -16,15 +16,15 @@ /// \author Vít Kučera , CERN /// \author Biao Zhang , CCNU -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::analysis; @@ -50,8 +50,6 @@ struct HfTaskJpsi { Configurable selectedMid{"selectedMid", false, "select MID for Jpsi to mu+mu-"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_jpsi_to_e_e::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_jpsi::isSelJpsiToEETopol >= selectionFlagJpsi || aod::hf_sel_candidate_jpsi::isSelJpsiToMuMuTopol >= selectionFlagJpsi); HistogramRegistry registry{ @@ -111,14 +109,14 @@ struct HfTaskJpsi { } } } - if (yCandMax >= 0. && std::abs(hfHelper.yJpsi(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yJpsi(candidate)) > yCandMax) { continue; } if (modeJpsiToMuMu) { - registry.fill(HIST("hMass"), hfHelper.invMassJpsiToMuMu(candidate), candidate.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassJpsiToMuMu(candidate), candidate.pt()); } else { - registry.fill(HIST("hMass"), hfHelper.invMassJpsiToEE(candidate), candidate.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassJpsiToEE(candidate), candidate.pt()); } registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); @@ -149,8 +147,6 @@ struct HfTaskJpsiMc { Configurable selectedMid{"selectedMid", false, "select MID for Jpsi to mu+mu-"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_jpsi_to_e_e::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - using McParticlesHf = soa::Join; Filter filterSelectCandidates = (aod::hf_sel_candidate_jpsi::isSelJpsiToEETopol >= selectionFlagJpsi || aod::hf_sel_candidate_jpsi::isSelJpsiToMuMuTopol >= selectionFlagJpsi); @@ -234,7 +230,7 @@ struct HfTaskJpsiMc { } } - if (yCandMax >= 0. && std::abs(hfHelper.yJpsi(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yJpsi(candidate)) > yCandMax) { continue; } if (candidate.flagMcMatchRec() == 1 << decayMode) { @@ -246,9 +242,9 @@ struct HfTaskJpsiMc { registry.fill(HIST("hCPARecSig"), candidate.cpa()); registry.fill(HIST("hEtaRecSig"), candidate.eta()); if (modeJpsiToMuMu) { - registry.fill(HIST("hMassSig"), hfHelper.invMassJpsiToMuMu(candidate), candidate.pt()); + registry.fill(HIST("hMassSig"), HfHelper::invMassJpsiToMuMu(candidate), candidate.pt()); } else { - registry.fill(HIST("hMassSig"), hfHelper.invMassJpsiToEE(candidate), candidate.pt()); + registry.fill(HIST("hMassSig"), HfHelper::invMassJpsiToEE(candidate), candidate.pt()); } registry.fill(HIST("hDecLengthSig"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("hDecLengthXYSig"), candidate.decayLengthXY(), candidate.pt()); @@ -256,8 +252,8 @@ struct HfTaskJpsiMc { registry.fill(HIST("hd0Prong1Sig"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0d0Sig"), candidate.impactParameterProduct(), candidate.pt()); registry.fill(HIST("hChi2PCASig"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtSig"), hfHelper.ctJpsi(candidate), candidate.pt()); - registry.fill(HIST("hYSig"), hfHelper.yJpsi(candidate), candidate.pt()); + registry.fill(HIST("hCtSig"), HfHelper::ctJpsi(candidate), candidate.pt()); + registry.fill(HIST("hYSig"), HfHelper::yJpsi(candidate), candidate.pt()); registry.fill(HIST("hYGenSig"), RecoDecay::y(particleMother.pVector(), o2::constants::physics::MassJPsi), particleMother.pt()); } else { @@ -265,9 +261,9 @@ struct HfTaskJpsiMc { registry.fill(HIST("hCPARecBg"), candidate.cpa()); registry.fill(HIST("hEtaRecBg"), candidate.eta()); if (modeJpsiToMuMu) { - registry.fill(HIST("hMassBg"), hfHelper.invMassJpsiToMuMu(candidate), candidate.pt()); + registry.fill(HIST("hMassBg"), HfHelper::invMassJpsiToMuMu(candidate), candidate.pt()); } else { - registry.fill(HIST("hMassBg"), hfHelper.invMassJpsiToEE(candidate), candidate.pt()); + registry.fill(HIST("hMassBg"), HfHelper::invMassJpsiToEE(candidate), candidate.pt()); } registry.fill(HIST("hDecLengthBg"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("hDecLengthxyBg"), candidate.decayLengthXY(), candidate.pt()); @@ -275,8 +271,8 @@ struct HfTaskJpsiMc { registry.fill(HIST("hd0Prong1Bg"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0d0Bg"), candidate.impactParameterProduct(), candidate.pt()); registry.fill(HIST("hChi2PCABg"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtBg"), hfHelper.ctJpsi(candidate), candidate.pt()); - registry.fill(HIST("hYBg"), hfHelper.yJpsi(candidate), candidate.pt()); + registry.fill(HIST("hCtBg"), HfHelper::ctJpsi(candidate), candidate.pt()); + registry.fill(HIST("hYBg"), HfHelper::yJpsi(candidate), candidate.pt()); } } // MC gen. diff --git a/PWGHF/ALICE3/Tasks/taskLcAlice3.cxx b/PWGHF/ALICE3/Tasks/taskLcAlice3.cxx index 9bbfdaf91e5..ec32c52976c 100644 --- a/PWGHF/ALICE3/Tasks/taskLcAlice3.cxx +++ b/PWGHF/ALICE3/Tasks/taskLcAlice3.cxx @@ -15,15 +15,15 @@ /// \author Gian Michele Innocenti , CERN /// \author Vít Kučera , CERN +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" - using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; @@ -32,8 +32,6 @@ using namespace o2::framework::expressions; struct HfTaskLcAlice3 { Filter filterSelectCandidates = (aod::hf_sel_candidate_lc_alice3::isSelLcToPKPiNoPid == 1 || aod::hf_sel_candidate_lc_alice3::isSelLcToPiKPNoPid == 1); - HfHelper hfHelper; - HistogramRegistry registry{ "registry", {{"hMassGen", "3-prong candidates (generated); #it{p}_{T}; #it{y}", {HistType::kTH2F, {{150, 0., 30.}, {8, 0, 4.0}}}}, @@ -58,14 +56,14 @@ struct HfTaskLcAlice3 { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { continue; } - if (std::abs(hfHelper.yLc(candidate)) > 4.0) { + if (std::abs(HfHelper::yLc(candidate)) > 4.0) { continue; } - auto massLc = hfHelper.invMassLcToPKPi(candidate); - auto massLcSwap = hfHelper.invMassLcToPiKP(candidate); + auto massLc = HfHelper::invMassLcToPKPi(candidate); + auto massLcSwap = HfHelper::invMassLcToPiKP(candidate); auto ptCandidate = candidate.pt(); - auto rapidityCandidate = std::abs(hfHelper.yLc(candidate)); + auto rapidityCandidate = std::abs(HfHelper::yLc(candidate)); if (candidate.isSelLcToPKPiNoPid() == 1) { registry.fill(HIST("hMassSigBkgLcNoPid"), massLc, ptCandidate, rapidityCandidate); diff --git a/PWGHF/ALICE3/Tasks/taskLcParametrizedPid.cxx b/PWGHF/ALICE3/Tasks/taskLcParametrizedPid.cxx index 8936c56e2c1..b22c531e621 100644 --- a/PWGHF/ALICE3/Tasks/taskLcParametrizedPid.cxx +++ b/PWGHF/ALICE3/Tasks/taskLcParametrizedPid.cxx @@ -15,22 +15,21 @@ /// \author Gian Michele Innocenti , CERN /// \author Vít Kučera , CERN +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" + #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" #include "Framework/runDataProcessing.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" - using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; /// Fills MC histograms. struct HfTaskLcParametrizedPid { - HfHelper hfHelper; Filter filterSelectCandidates = (aod::hf_sel_candidate_lc_parametrized_pid::isSelLcToPKPiNoPid == 1 || aod::hf_sel_candidate_lc_parametrized_pid::isSelLcToPiKPNoPid == 1); @@ -55,14 +54,14 @@ struct HfTaskLcParametrizedPid { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { continue; } - if (std::abs(hfHelper.yLc(candidate)) > 4.0) { + if (std::abs(HfHelper::yLc(candidate)) > 4.0) { continue; } - auto massLc = hfHelper.invMassLcToPKPi(candidate); - auto massLcSwap = hfHelper.invMassLcToPiKP(candidate); + auto massLc = HfHelper::invMassLcToPKPi(candidate); + auto massLcSwap = HfHelper::invMassLcToPiKP(candidate); auto ptCandidate = candidate.pt(); - auto rapidityCandidate = std::abs(hfHelper.yLc(candidate)); + auto rapidityCandidate = std::abs(HfHelper::yLc(candidate)); if (candidate.isSelLcToPKPiNoPid() == 1) { registry.fill(HIST("hMassSigBkgLcNoPid"), massLc, ptCandidate, rapidityCandidate); diff --git a/PWGHF/ALICE3/Tasks/taskX.cxx b/PWGHF/ALICE3/Tasks/taskX.cxx index f090eb57876..2be307e0f92 100644 --- a/PWGHF/ALICE3/Tasks/taskX.cxx +++ b/PWGHF/ALICE3/Tasks/taskX.cxx @@ -16,16 +16,16 @@ /// \author Rik Spijkers , Utrecht University /// \author Luca Micheletti , INFN -#include +#include "PWGHF/Core/HfHelper.h" +#include "PWGHF/Core/SelectorCuts.h" +#include "PWGHF/DataModel/CandidateReconstructionTables.h" +#include "PWGHF/DataModel/CandidateSelectionTables.h" #include "CommonConstants/PhysicsConstants.h" #include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" -#include "PWGHF/Core/HfHelper.h" -#include "PWGHF/Core/SelectorCuts.h" -#include "PWGHF/DataModel/CandidateReconstructionTables.h" -#include "PWGHF/DataModel/CandidateSelectionTables.h" +#include using namespace o2; using namespace o2::aod; @@ -48,8 +48,6 @@ struct HfTaskX { Configurable modeXToJpsiToMuMuPiPi{"modeXToJpsiToMuMuPiPi", false, "Perform Jpsi to mu+mu- analysis"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_x_to_jpsi_pi_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_x::isSelXToJpsiToEEPiPi >= selectionFlagX || aod::hf_sel_candidate_x::isSelXToJpsiToMuMuPiPi >= selectionFlagX); HistogramRegistry registry{ @@ -81,11 +79,11 @@ struct HfTaskX { if (!(candidate.hfflag() & 1 << decayMode)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yX(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yX(candidate)) > yCandMax) { continue; } - registry.fill(HIST("hMass"), hfHelper.invMassXToJpsiPiPi(candidate), candidate.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassXToJpsiPiPi(candidate), candidate.pt()); registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -102,8 +100,8 @@ struct HfTaskX { registry.fill(HIST("hDecLenErr"), candidate.errorDecayLength(), candidate.pt()); registry.fill(HIST("hDecLenXYErr"), candidate.errorDecayLengthXY(), candidate.pt()); } // candidate loop - } // process -}; // struct + } // process +}; // struct struct HfTaskXMc { Configurable selectionFlagX{"selectionFlagX", 1, "Selection Flag for X"}; @@ -111,8 +109,6 @@ struct HfTaskXMc { Configurable modeXToJpsiToMuMuPiPi{"modeXToJpsiToMuMuPiPi", false, "Perform Jpsi to mu+mu- analysis"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_x_to_jpsi_pi_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_x::isSelXToJpsiToEEPiPi >= selectionFlagX || aod::hf_sel_candidate_x::isSelXToJpsiToMuMuPiPi >= selectionFlagX); HistogramRegistry registry{ @@ -169,7 +165,7 @@ struct HfTaskXMc { if (!(candidate.hfflag() & 1 << decayMode)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yX(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yX(candidate)) > yCandMax) { continue; } if (candidate.flagMcMatchRec() == 1 << decayMode) { @@ -181,7 +177,7 @@ struct HfTaskXMc { registry.fill(HIST("hEtaRecSig"), candidate.eta(), candidate.pt()); registry.fill(HIST("hDeclengthRecSig"), candidate.decayLength(), candidate.pt()); - registry.fill(HIST("hMassRecSig"), hfHelper.invMassXToJpsiPiPi(candidate), candidate.pt()); + registry.fill(HIST("hMassRecSig"), HfHelper::invMassXToJpsiPiPi(candidate), candidate.pt()); registry.fill(HIST("hd0Prong0RecSig"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1RecSig"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0Prong2RecSig"), candidate.impactParameter2(), candidate.pt()); @@ -189,15 +185,15 @@ struct HfTaskXMc { registry.fill(HIST("hPtProng1RecSig"), candidate.ptProng1(), candidate.pt()); registry.fill(HIST("hPtProng2RecSig"), candidate.ptProng2(), candidate.pt()); registry.fill(HIST("hChi2PCASig"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtSig"), hfHelper.ctX(candidate), candidate.pt()); - registry.fill(HIST("hYSig"), hfHelper.yX(candidate), candidate.pt()); + registry.fill(HIST("hCtSig"), HfHelper::ctX(candidate), candidate.pt()); + registry.fill(HIST("hYSig"), HfHelper::yX(candidate), candidate.pt()); } else { registry.fill(HIST("hPtRecBg"), candidate.pt()); registry.fill(HIST("hCPARecBg"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEtaRecBg"), candidate.eta(), candidate.pt()); registry.fill(HIST("hDeclengthRecBg"), candidate.decayLength(), candidate.pt()); - registry.fill(HIST("hMassRecBg"), hfHelper.invMassXToJpsiPiPi(candidate), candidate.pt()); + registry.fill(HIST("hMassRecBg"), HfHelper::invMassXToJpsiPiPi(candidate), candidate.pt()); registry.fill(HIST("hd0Prong0RecBg"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1RecBg"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0Prong2RecBg"), candidate.impactParameter2(), candidate.pt()); @@ -205,8 +201,8 @@ struct HfTaskXMc { registry.fill(HIST("hPtProng1RecBg"), candidate.ptProng1(), candidate.pt()); registry.fill(HIST("hPtProng2RecBg"), candidate.ptProng2(), candidate.pt()); registry.fill(HIST("hChi2PCABg"), candidate.chi2PCA(), candidate.pt()); - registry.fill(HIST("hCtBg"), hfHelper.ctX(candidate), candidate.pt()); - registry.fill(HIST("hYBg"), hfHelper.yX(candidate), candidate.pt()); + registry.fill(HIST("hCtBg"), HfHelper::ctX(candidate), candidate.pt()); + registry.fill(HIST("hYBg"), HfHelper::yX(candidate), candidate.pt()); } } // rec // MC gen. @@ -230,8 +226,8 @@ struct HfTaskXMc { registry.fill(HIST("hPtGenProng2"), ptProngs[2], particle.pt()); } } // gen - } // process -}; // struct + } // process +}; // struct WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { diff --git a/PWGHF/Core/HfHelper.h b/PWGHF/Core/HfHelper.h index 9bbae7b2617..419360c00be 100644 --- a/PWGHF/Core/HfHelper.h +++ b/PWGHF/Core/HfHelper.h @@ -52,43 +52,43 @@ class HfHelper // D0(bar) → π± K∓ template - auto ctD0(const T& candidate) + static auto ctD0(const T& candidate) { return candidate.ct(o2::constants::physics::MassD0); } template - auto yD0(const T& candidate) + static auto yD0(const T& candidate) { return candidate.y(o2::constants::physics::MassD0); } template - auto eD0(const T& candidate) + static auto eD0(const T& candidate) { return candidate.e(o2::constants::physics::MassD0); } template - auto invMassD0ToPiK(const T& candidate) + static auto invMassD0ToPiK(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus}); } template - auto invMassD0barToKPi(const T& candidate) + static auto invMassD0barToKPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto cosThetaStarD0(const T& candidate) + static auto cosThetaStarD0(const T& candidate) { return candidate.cosThetaStar(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus}, o2::constants::physics::MassD0, 1); } template - auto cosThetaStarD0bar(const T& candidate) + static auto cosThetaStarD0bar(const T& candidate) { return candidate.cosThetaStar(std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}, o2::constants::physics::MassD0, 0); } @@ -96,33 +96,33 @@ class HfHelper // J/ψ template - auto ctJpsi(const T& candidate) + static auto ctJpsi(const T& candidate) { return candidate.ct(o2::constants::physics::MassJPsi); } template - auto yJpsi(const T& candidate) + static auto yJpsi(const T& candidate) { return candidate.y(o2::constants::physics::MassJPsi); } template - auto eJpsi(const T& candidate) + static auto eJpsi(const T& candidate) { return candidate.e(o2::constants::physics::MassJPsi); } // J/ψ → e+ e− template - auto invMassJpsiToEE(const T& candidate) + static auto invMassJpsiToEE(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron}); } // J/ψ → μ+ μ− template - auto invMassJpsiToMuMu(const T& candidate) + static auto invMassJpsiToMuMu(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassMuonPlus, o2::constants::physics::MassMuonMinus}); } @@ -130,25 +130,25 @@ class HfHelper // hf_cand_casc template - auto invMassLcToK0sP(const T& candidate) + static auto invMassLcToK0sP(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassProton, o2::constants::physics::MassK0Short}); // first daughter is bachelor } template - auto invMassGammaToEE(const T& candidate) + static auto invMassGammaToEE(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron}); } template - auto ctV0K0s(const T& candidate) + static auto ctV0K0s(const T& candidate) { return candidate.ctV0(o2::constants::physics::MassK0Short); } template - auto ctV0Lambda(const T& candidate) + static auto ctV0Lambda(const T& candidate) { return candidate.ctV0(o2::constants::physics::MassLambda0); } @@ -156,37 +156,37 @@ class HfHelper // B± → D0bar(D0) π± template - auto ctBplus(const T& candidate) + static auto ctBplus(const T& candidate) { return candidate.ct(o2::constants::physics::MassBPlus); } template - auto yBplus(const T& candidate) + static auto yBplus(const T& candidate) { return candidate.y(o2::constants::physics::MassBPlus); } template - auto eBplus(const T& candidate) + static auto eBplus(const T& candidate) { return candidate.e(o2::constants::physics::MassBPlus); } template - auto invMassBplusToD0Pi(const T& candidate) + static auto invMassBplusToD0Pi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassD0, o2::constants::physics::MassPiPlus}); } template - auto invMassBplusToJpsiK(const T& candidate) + static auto invMassBplusToJpsiK(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassMuon, o2::constants::physics::MassMuon, o2::constants::physics::MassKPlus}); } template - auto cosThetaStarBplus(const T& candidate) + static auto cosThetaStarBplus(const T& candidate) { return candidate.cosThetaStar(std::array{o2::constants::physics::MassD0, o2::constants::physics::MassPiPlus}, o2::constants::physics::MassBPlus, 1); } @@ -196,31 +196,31 @@ class HfHelper // D± → π± K∓ π± template - auto ctDplus(const T& candidate) + static auto ctDplus(const T& candidate) { return candidate.ct(o2::constants::physics::MassDPlus); } template - auto yDplus(const T& candidate) + static auto yDplus(const T& candidate) { return candidate.y(o2::constants::physics::MassDPlus); } template - auto eDplus(const T& candidate) + static auto eDplus(const T& candidate) { return candidate.e(o2::constants::physics::MassDPlus); } template - auto invMassDplusToPiKPi(const T& candidate) + static auto invMassDplusToPiKPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassDplusToPiKPi(const T& pVec0, const T& pVec1, const T& pVec2) + static auto invMassDplusToPiKPi(const T& pVec0, const T& pVec1, const T& pVec2) { return RecoDecay::m(std::array{pVec0, pVec1, pVec2}, std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); @@ -229,55 +229,55 @@ class HfHelper // Ds± → K± K∓ π± template - auto ctDs(const T& candidate) + static auto ctDs(const T& candidate) { return candidate.ct(o2::constants::physics::MassDS); } template - auto yDs(const T& candidate) + static auto yDs(const T& candidate) { return candidate.y(o2::constants::physics::MassDS); } template - auto eDs(const T& candidate) + static auto eDs(const T& candidate) { return candidate.e(o2::constants::physics::MassDS); } template - auto invMassDsToKKPi(const T& candidate) + static auto invMassDsToKKPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassDsToPiKK(const T& candidate) + static auto invMassDsToPiKK(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus}); } template - auto massKKPairDsToKKPi(const T& candidate) + static auto massKKPairDsToKKPi(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng1()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus}); } template - auto massKKPairDsToPiKK(const T& candidate) + static auto massKKPairDsToPiKK(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng1(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus}); } template - auto deltaMassPhiDsToKKPi(const T& candidate) + static auto deltaMassPhiDsToKKPi(const T& candidate) { return std::abs(massKKPairDsToKKPi(candidate) - o2::constants::physics::MassPhi); } template - auto deltaMassPhiDsToPiKK(const T& candidate) + static auto deltaMassPhiDsToPiKK(const T& candidate) { return std::abs(massKKPairDsToPiKK(candidate) - o2::constants::physics::MassPhi); } @@ -287,7 +287,7 @@ class HfHelper /// \param option mass hypothesis considered: 0 = KKPi, 1 = PiKK /// \return cosine of pion-kaon angle in the phi rest frame template - auto cosPiKPhiRestFrame(const T& candidate, int option) + static auto cosPiKPhiRestFrame(const T& candidate, int option) { // Ported from AliAODRecoDecayHF3Prong::CosPiKPhiRFrame std::array momPi{}; @@ -317,27 +317,27 @@ class HfHelper } template - auto cos3PiKDsToKKPi(const T& candidate) + static auto cos3PiKDsToKKPi(const T& candidate) { auto cosPiK = cosPiKPhiRestFrame(candidate, 0); return cosPiK * cosPiK * cosPiK; } template - auto absCos3PiKDsToKKPi(const T& candidate) + static auto absCos3PiKDsToKKPi(const T& candidate) { return std::abs(cos3PiKDsToKKPi(candidate)); } template - auto cos3PiKDsToPiKK(const T& candidate) + static auto cos3PiKDsToPiKK(const T& candidate) { auto cosPiK = cosPiKPhiRestFrame(candidate, 1); return cosPiK * cosPiK * cosPiK; } template - auto absCos3PiKDsToPiKK(const T& candidate) + static auto absCos3PiKDsToPiKK(const T& candidate) { return std::abs(cos3PiKDsToPiKK(candidate)); } @@ -345,67 +345,67 @@ class HfHelper // Λc± → p± K∓ π± template - auto ctLc(const T& candidate) + static auto ctLc(const T& candidate) { return candidate.ct(o2::constants::physics::MassLambdaCPlus); } template - auto yLc(const T& candidate) + static auto yLc(const T& candidate) { return candidate.y(o2::constants::physics::MassLambdaCPlus); } template - auto eLc(const T& candidate) + static auto eLc(const T& candidate) { return candidate.e(o2::constants::physics::MassLambdaCPlus); } template - auto invMassLcToPKPi(const T& candidate) + static auto invMassLcToPKPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassProton, o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassLcToPiKP(const T& candidate) + static auto invMassLcToPiKP(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassProton}); } template - auto invMassKPiPairLcToPKPi(const T& candidate) + static auto invMassKPiPairLcToPKPi(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng1(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassKPiPairLcToPiKP(const T& candidate) + static auto invMassKPiPairLcToPiKP(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng1(), candidate.pVectorProng0()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassPKPairLcToPKPi(const T& candidate) + static auto invMassPKPairLcToPKPi(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng1()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassKPlus}); } template - auto invMassPKPairLcToPiKP(const T& candidate) + static auto invMassPKPairLcToPiKP(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng2(), candidate.pVectorProng1()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassKPlus}); } template - auto invMassPPiPairLcToPKPi(const T& candidate) + static auto invMassPPiPairLcToPKPi(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassPiPlus}); } template - auto invMassPPiPairLcToPiKP(const T& candidate) + static auto invMassPPiPairLcToPiKP(const T& candidate) { return RecoDecay::m(std::array{candidate.pVectorProng2(), candidate.pVectorProng0()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassPiPlus}); } @@ -413,13 +413,13 @@ class HfHelper // Cd± → De± K∓ π± template - auto invMassCdToDeKPi(const T& candidate) + static auto invMassCdToDeKPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassDeuteron, o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); } template - auto invMassCdToPiKDe(const T& candidate) + static auto invMassCdToPiKDe(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus, o2::constants::physics::MassDeuteron}); } @@ -427,31 +427,31 @@ class HfHelper // Ξc± → p± K∓ π± template - auto ctXic(const T& candidate) + static auto ctXic(const T& candidate) { return candidate.ct(o2::constants::physics::MassXiCPlus); } template - auto yXic(const T& candidate) + static auto yXic(const T& candidate) { return candidate.y(o2::constants::physics::MassXiCPlus); } template - auto eXic(const T& candidate) + static auto eXic(const T& candidate) { return candidate.e(o2::constants::physics::MassXiCPlus); } template - auto invMassXicToPKPi(const T& candidate) + static auto invMassXicToPKPi(const T& candidate) { return invMassLcToPKPi(candidate); } template - auto invMassXicToPiKP(const T& candidate) + static auto invMassXicToPiKP(const T& candidate) { return invMassLcToPiKP(candidate); } @@ -459,13 +459,13 @@ class HfHelper // hf_cand_casc_lf_2prong template - auto invMassXiczeroToXiPi(const T& candidate) + static auto invMassXiczeroToXiPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus}); } template - auto invMassOmegaczeroToOmegaPi(const T& candidate) + static auto invMassOmegaczeroToOmegaPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassOmegaMinus, o2::constants::physics::MassPiPlus}); } @@ -473,7 +473,7 @@ class HfHelper // hf_cand_casc_lf_3prong template - auto invMassXicplusToXiPiPi(const T& candidate) + static auto invMassXicplusToXiPiPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus, o2::constants::physics::MassPiPlus}); } @@ -482,32 +482,32 @@ class HfHelper // X → Jpsi π+ π- template - auto ctX(const T& candidate) + static auto ctX(const T& candidate) { return candidate.ct(o2::constants::physics::MassX3872); } template - auto yX(const T& candidate) + static auto yX(const T& candidate) { return candidate.y(o2::constants::physics::MassX3872); } template - auto eX(const T& candidate) + static auto eX(const T& candidate) { return candidate.e(o2::constants::physics::MassX3872); } template - auto invMassXToJpsiPiPi(const T& candidate) + static auto invMassXToJpsiPiPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassJPsi, o2::constants::physics::MassPiPlus, o2::constants::physics::MassPiPlus}); } /// Difference between the X mass and the sum of the J/psi and di-pion masses template - auto qX(const T& candidate) + static auto qX(const T& candidate) { auto piVec1 = std::array{candidate.pxProng1(), candidate.pyProng1(), candidate.pzProng1()}; auto piVec2 = std::array{candidate.pxProng2(), candidate.pyProng2(), candidate.pzProng2()}; @@ -521,7 +521,7 @@ class HfHelper /// Angular difference between the J/psi and the pion template - auto dRX(const T& candidate, int numPi) + static auto dRX(const T& candidate, int numPi) { double etaJpsi = RecoDecay::eta(std::array{candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0()}); double phiJpsi = RecoDecay::phi(candidate.pxProng0(), candidate.pyProng0()); @@ -544,7 +544,7 @@ class HfHelper /// Difference in pT between the two pions template - auto balancePtPionsX(const T& candidate) + static auto balancePtPionsX(const T& candidate) { double ptPi1 = RecoDecay::pt(candidate.pxProng1(), candidate.pyProng1()); double ptPi2 = RecoDecay::pt(candidate.pxProng2(), candidate.pyProng2()); @@ -554,25 +554,25 @@ class HfHelper // Ξcc±± → p± K∓ π± π± template - auto ctXicc(const T& candidate) + static auto ctXicc(const T& candidate) { return candidate.ct(o2::constants::physics::MassXiCCPlusPlus); } template - auto yXicc(const T& candidate) + static auto yXicc(const T& candidate) { return candidate.y(o2::constants::physics::MassXiCCPlusPlus); } template - auto eXicc(const T& candidate) + static auto eXicc(const T& candidate) { return candidate.e(o2::constants::physics::MassXiCCPlusPlus); } template - auto invMassXiccToXicPi(const T& candidate) + static auto invMassXiccToXicPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassXiCPlus, o2::constants::physics::MassPiPlus}); } @@ -580,24 +580,24 @@ class HfHelper // chic → Jpsi gamma template - auto ctChic(const T& candidate) + static auto ctChic(const T& candidate) { return candidate.ct(o2::constants::physics::MassChiC1); } template - auto yChic(const T& candidate) + static auto yChic(const T& candidate) { return candidate.y(o2::constants::physics::MassChiC1); } template - auto eChic(const T& candidate) + static auto eChic(const T& candidate) { return candidate.e(o2::constants::physics::MassChiC1); } template - auto invMassChicToJpsiGamma(const T& candidate) + static auto invMassChicToJpsiGamma(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassJPsi, 0.}); } @@ -605,24 +605,24 @@ class HfHelper // Λb → Λc+ π- → p K- π+ π- template - auto ctLb(const T& candidate) + static auto ctLb(const T& candidate) { return candidate.ct(o2::constants::physics::MassLambdaB0); } template - auto yLb(const T& candidate) + static auto yLb(const T& candidate) { return candidate.y(o2::constants::physics::MassLambdaB0); } template - auto eLb(const T& candidate) + static auto eLb(const T& candidate) { return candidate.e(o2::constants::physics::MassLambdaB0); } template - auto invMassLbToLcPi(const T& candidate) + static auto invMassLbToLcPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassLambdaCPlus, o2::constants::physics::MassPiPlus}); } @@ -630,37 +630,37 @@ class HfHelper // B0(B0bar) → D∓ π± template - auto ctB0(const T& candidate) + static auto ctB0(const T& candidate) { return candidate.ct(o2::constants::physics::MassB0); } template - auto yB0(const T& candidate) + static auto yB0(const T& candidate) { return candidate.y(o2::constants::physics::MassB0); } template - auto eB0(const T& candidate) + static auto eB0(const T& candidate) { return candidate.e(o2::constants::physics::MassB0); } template - auto invMassB0ToDPi(const T& candidate) + static auto invMassB0ToDPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassDMinus, o2::constants::physics::MassPiPlus}); } template - auto invMassB0ToDPi(const T& candidate) + static auto invMassB0ToDPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassD0, o2::constants::physics::MassPiPlus, o2::constants::physics::MassPiPlus}); } template - auto cosThetaStarB0(const T& candidate) + static auto cosThetaStarB0(const T& candidate) { return candidate.cosThetaStar(std::array{o2::constants::physics::MassDMinus, o2::constants::physics::MassPiPlus}, o2::constants::physics::MassB0, 1); } @@ -668,37 +668,37 @@ class HfHelper // Bs(bar) → Ds∓ π± template - auto ctBs(const T& candidate) + static auto ctBs(const T& candidate) { return candidate.ct(o2::constants::physics::MassBS); } template - auto yBs(const T& candidate) + static auto yBs(const T& candidate) { return candidate.y(o2::constants::physics::MassBS); } template - auto eBs(const T& candidate) + static auto eBs(const T& candidate) { return candidate.e(o2::constants::physics::MassBS); } template - auto invMassBsToDsPi(const T& candidate) + static auto invMassBsToDsPi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassDSBar, o2::constants::physics::MassPiPlus}); } template - auto invMassBsToJpsiPhi(const T& candidate) + static auto invMassBsToJpsiPhi(const T& candidate) { return candidate.m(std::array{o2::constants::physics::MassMuon, o2::constants::physics::MassMuon, o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus}); } template - auto cosThetaStarBs(const T& candidate) + static auto cosThetaStarBs(const T& candidate) { return candidate.cosThetaStar(std::array{o2::constants::physics::MassDSBar, o2::constants::physics::MassPiPlus}, o2::constants::physics::MassBS, 1); } @@ -707,26 +707,26 @@ class HfHelper /// @brief Sc inv. mass using reco mass for Lc in pKpi and PDG mass for pion template - auto invMassScRecoLcToPKPi(const T& candidateSc, const U& candidateLc) + static auto invMassScRecoLcToPKPi(const T& candidateSc, const U& candidateLc) { return candidateSc.m(std::array{static_cast(invMassLcToPKPi(candidateLc)), o2::constants::physics::MassPiPlus}); } /// @brief Sc inv. mass using reco mass for Lc in piKp and PDG mass for pion template - auto invMassScRecoLcToPiKP(const T& candidateSc, const U& candidateLc) + static auto invMassScRecoLcToPiKP(const T& candidateSc, const U& candidateLc) { return candidateSc.m(std::array{static_cast(invMassLcToPiKP(candidateLc)), o2::constants::physics::MassPiPlus}); } template - auto ySc0(const T& candidate) + static auto ySc0(const T& candidate) { return candidate.y(o2::constants::physics::MassSigmaC0); } template - auto yScPlusPlus(const T& candidate) + static auto yScPlusPlus(const T& candidate) { return candidate.y(o2::constants::physics::MassSigmaCPlusPlus); } @@ -734,7 +734,7 @@ class HfHelper /// Σc0,++ → Λc+(→K0sP) π-,+ /// @brief Sc inv. mass using reco mass for Lc in K0sP and PDG mass for pion template - auto invMassScRecoLcToK0sP(const T& candidateSc, const U& candidateLc) + static auto invMassScRecoLcToK0sP(const T& candidateSc, const U& candidateLc) { return candidateSc.m(std::array{static_cast(invMassLcToK0sP(candidateLc)), o2::constants::physics::MassPiMinus}); } @@ -745,7 +745,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionB0ToDPiTopol(const T1& candB0, const T2& cuts, const T3& binsPt) + static bool selectionB0ToDPiTopol(const T1& candB0, const T2& cuts, const T3& binsPt) { auto ptCandB0 = candB0.pt(); auto ptD = RecoDecay::pt(candB0.pxProng0(), candB0.pyProng0()); @@ -822,7 +822,7 @@ class HfHelper /// \param pidTrackPi PID status of trackPi (prong1 of B0 candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of B0 candidate passes all selections - bool selectionB0ToDPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) + static bool selectionB0ToDPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackPi != TrackSelectorPID::Accepted) { return false; @@ -840,7 +840,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionBplusToD0PiTopol(const T1& candBp, const T2& cuts, const T3& binsPt) + static bool selectionBplusToD0PiTopol(const T1& candBp, const T2& cuts, const T3& binsPt) { auto ptCandBp = candBp.pt(); auto ptPi = RecoDecay::pt(candBp.pxProng1(), candBp.pyProng1()); @@ -897,7 +897,7 @@ class HfHelper /// \param pidTrackPi PID status of trackPi (prong1 of B+ candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of B+ candidate passes all selections - bool selectionBplusToD0PiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) + static bool selectionBplusToD0PiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackPi != TrackSelectorPID::Accepted) { return false; @@ -915,7 +915,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionBplusToJpsiKTopol(const T1& candBp, const T2& cuts, const T3& binsPt) + static bool selectionBplusToJpsiKTopol(const T1& candBp, const T2& cuts, const T3& binsPt) { auto ptCandBp = candBp.pt(); auto mCandBp = invMassBplusToJpsiK(candBp); @@ -996,7 +996,7 @@ class HfHelper /// \param pidTrackKa PID status of trackKa (prong1 of B+ candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of B+ candidate passes all selections - bool selectionBplusToJpsiKPid(const int pidTrackKa, const bool acceptPIDNotApplicable) + static bool selectionBplusToJpsiKPid(const int pidTrackKa, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackKa != TrackSelectorPID::Accepted) { return false; @@ -1014,7 +1014,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionBsToDsPiTopol(const T1& candBs, const T2& cuts, const T3& binsPt) + static bool selectionBsToDsPiTopol(const T1& candBs, const T2& cuts, const T3& binsPt) { auto ptCandBs = candBs.pt(); auto ptDs = RecoDecay::pt(candBs.pxProng0(), candBs.pyProng0()); @@ -1082,7 +1082,7 @@ class HfHelper /// \param pidTrackPi PID status of trackPi (prong1 of Bs candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of Bs candidate passes all selections - bool selectionBsToDsPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) + static bool selectionBsToDsPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackPi != TrackSelectorPID::Accepted) { return false; @@ -1102,7 +1102,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionBsToJpsiPhiTopol(const T1& candBs, const T2& candKa0, const T3& candKa1, const T4& cuts, const T5& binsPt) + static bool selectionBsToJpsiPhiTopol(const T1& candBs, const T2& candKa0, const T3& candKa1, const T4& cuts, const T5& binsPt) { auto ptCandBs = candBs.pt(); auto mCandBs = invMassBsToJpsiPhi(candBs); @@ -1191,7 +1191,7 @@ class HfHelper /// \param pidTrackKa PID status of trackKa (prong1 of B+ candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of B+ candidate passes all selections - bool selectionBsToJpsiPhiPid(const int pidTrackKa, const bool acceptPIDNotApplicable) + static bool selectionBsToJpsiPhiPid(const int pidTrackKa, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackKa != TrackSelectorPID::Accepted) { return false; @@ -1209,7 +1209,7 @@ class HfHelper /// \param binsPt pT bin limits /// \return true if candidate passes all selections template - bool selectionLbToLcPiTopol(const T1& candLb, const T2& cuts, const T3& binsPt) + static bool selectionLbToLcPiTopol(const T1& candLb, const T2& cuts, const T3& binsPt) { auto ptCandLb = candLb.pt(); auto ptLc = candLb.ptProng0(); @@ -1271,7 +1271,7 @@ class HfHelper /// \param pidTrackPi PID status of trackPi (prong1 of Lb candidate) /// \param acceptPIDNotApplicable switch to accept Status::NotApplicable /// \return true if prong1 of Lb candidate passes all selections - bool selectionLbToLcPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) + static bool selectionLbToLcPiPid(const int pidTrackPi, const bool acceptPIDNotApplicable) { if (!acceptPIDNotApplicable && pidTrackPi != TrackSelectorPID::Accepted) { return false; @@ -1289,7 +1289,7 @@ class HfHelper /// \param mlScores vector with ml scores of charm hadron (position 0:bkg 1:prompt 2:nonprompt) /// \return true if b-hadron candidate passes all selections template - bool applySelectionDmesMlScoresForB(const T1& cuts, const T2& binsPtC, float ptC, const std::vector& mlScores) + static bool applySelectionDmesMlScoresForB(const T1& cuts, const T2& binsPtC, float ptC, const std::vector& mlScores) { int pTBin = o2::analysis::findBin(binsPtC, ptC); if (pTBin == -1) { @@ -1317,7 +1317,7 @@ class HfHelper /// \param binsPtC pT bin limits of charm hadron /// \return true if b-hadron candidate passes all selections template - bool selectionDmesMlScoresForB(const T1& candD, const T2& cuts, const T3& binsPtC, const std::vector& mlScores) + static bool selectionDmesMlScoresForB(const T1& candD, const T2& cuts, const T3& binsPtC, const std::vector& mlScores) { return applySelectionDmesMlScoresForB(cuts, binsPtC, candD.pt(), mlScores); } @@ -1328,7 +1328,7 @@ class HfHelper /// \param binsPtC pT bin limits of charm hadron /// \return true if b-hadron candidate passes all selections template - bool selectionDmesMlScoresForBReduced(const T1& candB, const T2& cuts, const T3& binsPtC) + static bool selectionDmesMlScoresForBReduced(const T1& candB, const T2& cuts, const T3& binsPtC) { std::vector mlScores; mlScores.push_back(candB.prong0MlScoreBkg()); @@ -1336,8 +1336,6 @@ class HfHelper mlScores.push_back(candB.prong0MlScoreNonprompt()); // we want non-prompt for beauty return applySelectionDmesMlScoresForB(cuts, binsPtC, RecoDecay::pt(candB.pxProng0(), candB.pyProng0()), mlScores); } - - private: }; #endif // PWGHF_CORE_HFHELPER_H_ diff --git a/PWGHF/Core/HfMlResponseD0ToKPi.h b/PWGHF/Core/HfMlResponseD0ToKPi.h index 8a1128bd65f..b0c6eaccdd3 100644 --- a/PWGHF/Core/HfMlResponseD0ToKPi.h +++ b/PWGHF/Core/HfMlResponseD0ToKPi.h @@ -54,28 +54,28 @@ } // Variation of CHECK_AND_FILL_VEC_D0_FULL(OBJECT, FEATURE, GETTER) -// where GETTER is a method of hfHelper +// where GETTER is a method of HfHelper #define CHECK_AND_FILL_VEC_D0_HFHELPER(OBJECT, FEATURE, GETTER) \ case static_cast(InputFeaturesD0ToKPi::FEATURE): { \ - inputFeatures.emplace_back(hfHelper.GETTER(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER(OBJECT)); \ break; \ } // Variation of CHECK_AND_FILL_VEC_D0_HFHELPER(OBJECT, FEATURE, GETTER) -// where GETTER1 and GETTER2 are methods of hfHelper, and the variable +// where GETTER1 and GETTER2 are methods of HfHelper, and the variable // is filled depending on whether it is a D0 or a D0bar #define CHECK_AND_FILL_VEC_D0_HFHELPER_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2) \ case static_cast(InputFeaturesD0ToKPi::FEATURE): { \ if (pdgCode == o2::constants::physics::kD0) { \ - inputFeatures.emplace_back(hfHelper.GETTER1(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER1(OBJECT)); \ } else { \ - inputFeatures.emplace_back(hfHelper.GETTER2(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER2(OBJECT)); \ } \ break; \ } // Variation of CHECK_AND_FILL_VEC_D0_HFHELPER(OBJECT, FEATURE, GETTER) -// where GETTER1 and GETTER2 are methods of hfHelper, and the variable +// where GETTER1 and GETTER2 are methods of HfHelper, and the variable // is filled depending on whether it is a D0 or a D0bar #define CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(OBJECT1, OBJECT2, FEATURE, GETTER) \ case static_cast(InputFeaturesD0ToKPi::FEATURE): { \ @@ -175,8 +175,6 @@ class HfMlResponseD0ToKPi : public HfMlResponse /// Default destructor virtual ~HfMlResponseD0ToKPi() = default; - HfHelper hfHelper; - /// Method to get the input features vector needed for ML inference /// \param candidate is the D0 candidate /// \return inputFeatures vector diff --git a/PWGHF/Core/HfMlResponseDsToKKPi.h b/PWGHF/Core/HfMlResponseDsToKKPi.h index 0c166e55e51..4d826944378 100644 --- a/PWGHF/Core/HfMlResponseDsToKKPi.h +++ b/PWGHF/Core/HfMlResponseDsToKKPi.h @@ -51,22 +51,22 @@ } // Variation of CHECK_AND_FILL_VEC_DS_FULL(OBJECT, FEATURE, GETTER) -// where GETTER is a method of hfHelper +// where GETTER is a method of HfHelper #define CHECK_AND_FILL_VEC_DS_HFHELPER(OBJECT, FEATURE, GETTER) \ case static_cast(InputFeaturesDsToKKPi::FEATURE): { \ - inputFeatures.emplace_back(hfHelper.GETTER(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER(OBJECT)); \ break; \ } // Variation of CHECK_AND_FILL_VEC_DS_HFHELPER(OBJECT, FEATURE, GETTER) -// where GETTER1 and GETTER2 are methods of hfHelper, and the variable +// where GETTER1 and GETTER2 are methods of HfHelper, and the variable // is filled depending on whether it is a DsToKKPi or a DsToPiKK #define CHECK_AND_FILL_VEC_DS_HFHELPER_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2) \ case static_cast(InputFeaturesDsToKKPi::FEATURE): { \ if (caseDsToKKPi) { \ - inputFeatures.emplace_back(hfHelper.GETTER1(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER1(OBJECT)); \ } else { \ - inputFeatures.emplace_back(hfHelper.GETTER2(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER2(OBJECT)); \ } \ break; \ } @@ -154,8 +154,6 @@ class HfMlResponseDsToKKPi : public HfMlResponse /// Default destructor virtual ~HfMlResponseDsToKKPi() = default; - HfHelper hfHelper; - /// Method to get the input features vector needed for ML inference /// \param candidate is the Ds candidate /// \param prong0 is the candidate's prong0 diff --git a/PWGHF/Core/HfMlResponseLcToK0sP.h b/PWGHF/Core/HfMlResponseLcToK0sP.h index a3484c029cb..4e6899bf3aa 100644 --- a/PWGHF/Core/HfMlResponseLcToK0sP.h +++ b/PWGHF/Core/HfMlResponseLcToK0sP.h @@ -52,10 +52,10 @@ } // Variation of CHECK_AND_FILL_VEC_LC_FULL(OBJECT, FEATURE, GETTER) -// where GETTER is a method of hfHelper +// where GETTER is a method of HfHelper #define CHECK_AND_FILL_VEC_LC_HFHELPER(OBJECT, FEATURE, GETTER) \ case static_cast(InputFeaturesLcToK0sP::FEATURE): { \ - inputFeatures.emplace_back(hfHelper.GETTER(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER(OBJECT)); \ break; \ } @@ -104,8 +104,6 @@ class HfMlResponseLcToK0sP : public HfMlResponse /// Default destructor virtual ~HfMlResponseLcToK0sP() = default; - HfHelper hfHelper; - /// Method to get the input features vector needed for ML inference /// \param candidate is the Lc candidate /// \param bach is the bachelor candidate (proton) diff --git a/PWGHF/Core/HfMlResponseLcToPKPi.h b/PWGHF/Core/HfMlResponseLcToPKPi.h index 6c09afdbe8f..e9fe8ff2221 100644 --- a/PWGHF/Core/HfMlResponseLcToPKPi.h +++ b/PWGHF/Core/HfMlResponseLcToPKPi.h @@ -53,10 +53,10 @@ } // Variation of CHECK_AND_FILL_VEC_LCTOPKPI_FULL(OBJECT, FEATURE, GETTER) -// where GETTER is a method of hfHelper +// where GETTER is a method of HfHelper #define CHECK_AND_FILL_VEC_LCTOPKPI_HFHELPER(OBJECT, FEATURE, GETTER) \ case static_cast(InputFeaturesLcToPKPi::FEATURE): { \ - inputFeatures.emplace_back(hfHelper.GETTER(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER(OBJECT)); \ break; \ } diff --git a/PWGHF/Core/HfMlResponseOmegacToOmegaPi.h b/PWGHF/Core/HfMlResponseOmegacToOmegaPi.h index c61616cc9d4..ed78d100b07 100644 --- a/PWGHF/Core/HfMlResponseOmegacToOmegaPi.h +++ b/PWGHF/Core/HfMlResponseOmegacToOmegaPi.h @@ -51,10 +51,10 @@ } // Variation of CHECK_AND_FILL_VEC_OMEGAC0_FULL(OBJECT, FEATURE, GETTER) -// where GETTER is a method of hfHelper +// where GETTER is a method of HfHelper #define CHECK_AND_FILL_VEC_OMEGAC0_HFHELPER(OBJECT, FEATURE, GETTER) \ case static_cast(InputFeaturesOmegacToOmegaPi::FEATURE): { \ - inputFeatures.emplace_back(hfHelper.GETTER(OBJECT)); \ + inputFeatures.emplace_back(HfHelper::GETTER(OBJECT)); \ break; \ } namespace o2::analysis @@ -96,8 +96,6 @@ class HfMlResponseOmegacToOmegaPi : public HfMlResponse /// Default destructor virtual ~HfMlResponseOmegacToOmegaPi() = default; - HfHelper hfHelper; - /// Method to get the input features vector needed for ML inference /// \param candidate is the OMEGAC0 candidate /// \param lamProngPi is the candidate's lamProngPi diff --git a/PWGHF/D2H/TableProducer/candidateSelectorB0ToDPiReduced.cxx b/PWGHF/D2H/TableProducer/candidateSelectorB0ToDPiReduced.cxx index 0ab8c41c82d..3913e7f0fca 100644 --- a/PWGHF/D2H/TableProducer/candidateSelectorB0ToDPiReduced.cxx +++ b/PWGHF/D2H/TableProducer/candidateSelectorB0ToDPiReduced.cxx @@ -101,7 +101,6 @@ struct HfCandidateSelectorB0ToDPiReduced { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; - HfHelper hfHelper; using TracksBachPion = soa::Join; using TracksSoftPions = soa::Join; @@ -230,7 +229,7 @@ struct HfCandidateSelectorB0ToDPiReduced { } // topological cuts - if (!hfHelper.selectionB0ToDPiTopol(hfCandB0, cuts, binsPt)) { + if (!HfHelper::selectionB0ToDPiTopol(hfCandB0, cuts, binsPt)) { hfSelB0ToDPiCandidate(statusB0ToDPi); if (applyB0Ml) { hfMlB0ToDPiCandidate(outputMlNotPreselected); @@ -240,7 +239,7 @@ struct HfCandidateSelectorB0ToDPiReduced { } if constexpr (WithDmesMl) { // we include it in the topological selections - if (!hfHelper.selectionDmesMlScoresForBReduced(hfCandB0, cutsDmesMl, binsPtDmesMl)) { + if (!HfHelper::selectionDmesMlScoresForBReduced(hfCandB0, cutsDmesMl, binsPtDmesMl)) { hfSelB0ToDPiCandidate(statusB0ToDPi); if (applyB0Ml) { hfMlB0ToDPiCandidate(outputMlNotPreselected); @@ -263,7 +262,7 @@ struct HfCandidateSelectorB0ToDPiReduced { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackBachPi = selectorPion.statusTpcAndTof(trackBachPi); } - if (!hfHelper.selectionB0ToDPiPid(pidTrackBachPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionB0ToDPiPid(pidTrackBachPi, acceptPIDNotApplicable.value)) { // LOGF(info, "B0 candidate selection failed at PID selection"); hfSelB0ToDPiCandidate(statusB0ToDPi); if (applyB0Ml) { diff --git a/PWGHF/D2H/TableProducer/candidateSelectorBplusToD0PiReduced.cxx b/PWGHF/D2H/TableProducer/candidateSelectorBplusToD0PiReduced.cxx index 91d0b934261..e9088c68e93 100644 --- a/PWGHF/D2H/TableProducer/candidateSelectorBplusToD0PiReduced.cxx +++ b/PWGHF/D2H/TableProducer/candidateSelectorBplusToD0PiReduced.cxx @@ -100,7 +100,6 @@ struct HfCandidateSelectorBplusToD0PiReduced { std::vector outputMl; o2::ccdb::CcdbApi ccdbApi; - HfHelper hfHelper; TrackSelectorPi selectorPion; using TracksPion = soa::Join; @@ -181,7 +180,7 @@ struct HfCandidateSelectorBplusToD0PiReduced { } // topological cuts - if (!hfHelper.selectionBplusToD0PiTopol(hfCandBp, cuts, binsPt)) { + if (!HfHelper::selectionBplusToD0PiTopol(hfCandBp, cuts, binsPt)) { hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { hfMlBplusToD0PiCandidate(outputMlNotPreselected); @@ -191,7 +190,7 @@ struct HfCandidateSelectorBplusToD0PiReduced { } if constexpr (WithDmesMl) { // we include it in the topological selections - if (!hfHelper.selectionDmesMlScoresForBReduced(hfCandBp, cutsDmesMl, binsPtDmesMl)) { + if (!HfHelper::selectionDmesMlScoresForBReduced(hfCandBp, cutsDmesMl, binsPtDmesMl)) { hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { hfMlBplusToD0PiCandidate(outputMlNotPreselected); @@ -215,7 +214,7 @@ struct HfCandidateSelectorBplusToD0PiReduced { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackPi = selectorPion.statusTpcAndTof(trackPi); } - if (!hfHelper.selectionBplusToD0PiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionBplusToD0PiPid(pidTrackPi, acceptPIDNotApplicable.value)) { // LOGF(info, "B+ candidate selection failed at PID selection"); hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { diff --git a/PWGHF/D2H/TableProducer/candidateSelectorBsToDsPiReduced.cxx b/PWGHF/D2H/TableProducer/candidateSelectorBsToDsPiReduced.cxx index 71c9c54f589..988df046c06 100644 --- a/PWGHF/D2H/TableProducer/candidateSelectorBsToDsPiReduced.cxx +++ b/PWGHF/D2H/TableProducer/candidateSelectorBsToDsPiReduced.cxx @@ -97,7 +97,6 @@ struct HfCandidateSelectorBsToDsPiReduced { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; - HfHelper hfHelper; using TracksPion = soa::Join; @@ -172,7 +171,7 @@ struct HfCandidateSelectorBsToDsPiReduced { } // topological cuts - if (!hfHelper.selectionBsToDsPiTopol(hfCandBs, cuts, binsPt)) { + if (!HfHelper::selectionBsToDsPiTopol(hfCandBs, cuts, binsPt)) { hfSelBsToDsPiCandidate(statusBsToDsPi); if (applyBsMl) { hfMlBsToDsPiCandidate(outputMl); @@ -181,7 +180,7 @@ struct HfCandidateSelectorBsToDsPiReduced { } if constexpr (WithDmesMl) { // we include it in the topological selections - if (!hfHelper.selectionDmesMlScoresForBReduced(hfCandBs, cutsDmesMl, binsPtDmesMl)) { + if (!HfHelper::selectionDmesMlScoresForBReduced(hfCandBs, cutsDmesMl, binsPtDmesMl)) { hfSelBsToDsPiCandidate(statusBsToDsPi); if (applyBsMl) { hfMlBsToDsPiCandidate(outputMl); @@ -204,7 +203,7 @@ struct HfCandidateSelectorBsToDsPiReduced { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackPi = selectorPion.statusTpcAndTof(trackPi); } - if (!hfHelper.selectionBsToDsPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionBsToDsPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { hfSelBsToDsPiCandidate(statusBsToDsPi); if (applyBsMl) { hfMlBsToDsPiCandidate(outputMl); diff --git a/PWGHF/D2H/TableProducer/candidateSelectorLbToLcPiReduced.cxx b/PWGHF/D2H/TableProducer/candidateSelectorLbToLcPiReduced.cxx index d3dea0df59f..705f23ae97e 100644 --- a/PWGHF/D2H/TableProducer/candidateSelectorLbToLcPiReduced.cxx +++ b/PWGHF/D2H/TableProducer/candidateSelectorLbToLcPiReduced.cxx @@ -98,7 +98,6 @@ struct HfCandidateSelectorLbToLcPiReduced { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; - HfHelper hfHelper; using TracksPion = soa::Join; @@ -173,7 +172,7 @@ struct HfCandidateSelectorLbToLcPiReduced { } // topological cuts - if (!hfHelper.selectionLbToLcPiTopol(hfCandLb, cuts, binsPt)) { + if (!HfHelper::selectionLbToLcPiTopol(hfCandLb, cuts, binsPt)) { hfSelLbToLcPiCandidate(statusLbToLcPi); if (applyLbMl) { hfMlLbToLcPiCandidate(outputMlNotPreselected); @@ -182,7 +181,7 @@ struct HfCandidateSelectorLbToLcPiReduced { } if constexpr (WithLcMl) { // we include it in the topological selections - if (!hfHelper.selectionDmesMlScoresForBReduced(hfCandLb, cutsLcMl, binsPtLcMl)) { + if (!HfHelper::selectionDmesMlScoresForBReduced(hfCandLb, cutsLcMl, binsPtLcMl)) { hfSelLbToLcPiCandidate(statusLbToLcPi); if (applyLbMl) { hfMlLbToLcPiCandidate(outputMlNotPreselected); @@ -205,7 +204,7 @@ struct HfCandidateSelectorLbToLcPiReduced { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackPi = selectorPion.statusTpcAndTof(trackPi); } - if (!hfHelper.selectionLbToLcPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionLbToLcPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { hfSelLbToLcPiCandidate(statusLbToLcPi); if (applyLbMl) { hfMlLbToLcPiCandidate(outputMlNotPreselected); diff --git a/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx index bc208719ee6..f3b2c700b6d 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx @@ -201,7 +201,6 @@ struct HfDataCreatorCharmHadPiReduced { Configurable selectionFlagDstar{"selectionFlagDstar", true, "Selection Flag for D* decay to D0 Pi"}; } hfflagConfigurations; - HfHelper hfHelper; o2::hf_evsel::HfEventSelection hfEvSel; o2::hf_evsel::HfEventSelectionMc hfEvSelMc; @@ -1061,18 +1060,18 @@ struct HfDataCreatorCharmHadPiReduced { float invMassC0{-1.f}, invMassC1{-1.f}; if constexpr (DecChannel == DecayChannel::B0ToDminusPi) { indexHfCandCharm = tables.hfCand3Prong.lastIndex() + 1; - invMassC0 = hfHelper.invMassDplusToPiKPi(candC); + invMassC0 = HfHelper::invMassDplusToPiKPi(candC); registry.fill(HIST("hMassDplus"), invMassC0); registry.fill(HIST("hPtDplus"), candC.pt()); registry.fill(HIST("hCpaDplus"), candC.cpa()); } else if constexpr (DecChannel == DecayChannel::BsToDsminusPi) { indexHfCandCharm = tables.hfCand3Prong.lastIndex() + 1; if (candC.isSelDsToKKPi() >= hfflagConfigurations.selectionFlagDs) { - invMassC0 = hfHelper.invMassDsToKKPi(candC); + invMassC0 = HfHelper::invMassDsToKKPi(candC); registry.fill(HIST("hMassDsToKKPi"), invMassC0); } if (candC.isSelDsToPiKK() >= hfflagConfigurations.selectionFlagDs) { - invMassC1 = hfHelper.invMassDsToPiKK(candC); + invMassC1 = HfHelper::invMassDsToPiKK(candC); registry.fill(HIST("hMassDsToPiKK"), invMassC1); } registry.fill(HIST("hPtDs"), candC.pt()); @@ -1080,11 +1079,11 @@ struct HfDataCreatorCharmHadPiReduced { } else if constexpr (DecChannel == DecayChannel::BplusToD0barPi) { indexHfCandCharm = tables.hfCand2Prong.lastIndex() + 1; if (candC.isSelD0() >= hfflagConfigurations.selectionFlagD0) { - invMassC0 = hfHelper.invMassD0ToPiK(candC); + invMassC0 = HfHelper::invMassD0ToPiK(candC); registry.fill(HIST("hMassD0"), invMassC0); } if (candC.isSelD0bar() >= hfflagConfigurations.selectionFlagD0bar) { - invMassC1 = hfHelper.invMassD0barToKPi(candC); + invMassC1 = HfHelper::invMassD0barToKPi(candC); registry.fill(HIST("hMassD0bar"), invMassC1); } registry.fill(HIST("hPtD0"), candC.pt()); @@ -1092,11 +1091,11 @@ struct HfDataCreatorCharmHadPiReduced { } else if constexpr (DecChannel == DecayChannel::LbToLcplusPi) { indexHfCandCharm = tables.hfCand3Prong.lastIndex() + 1; if (candC.isSelLcToPKPi() >= hfflagConfigurations.selectionFlagLc) { - invMassC0 = hfHelper.invMassLcToPKPi(candC); + invMassC0 = HfHelper::invMassLcToPKPi(candC); registry.fill(HIST("hMassLcToPKPi"), invMassC0); } if (candC.isSelLcToPiKP() >= hfflagConfigurations.selectionFlagLc) { - invMassC1 = hfHelper.invMassLcToPiKP(candC); + invMassC1 = HfHelper::invMassLcToPiKP(candC); registry.fill(HIST("hMassLcToPiKP"), invMassC1); } registry.fill(HIST("hPtLc"), candC.pt()); diff --git a/PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx index 5a0050914af..588150dc44f 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx @@ -193,7 +193,6 @@ struct HfDataCreatorCharmResoReduced { Configurable rejectPairsWithCommonDaughter{"rejectPairsWithCommonDaughter", true, "flag to reject already at this stage the pairs that share a daughter track"}; Configurable rejectCollisionsWithBadEvSel{"rejectCollisionsWithBadEvSel", true, "flag to reject collisions with bad event selection"}; - HfHelper hfHelper; o2::hf_evsel::HfEventSelection hfEvSel; o2::hf_evsel::HfEventSelectionMc hfEvSelMc; @@ -1096,7 +1095,7 @@ struct HfDataCreatorCharmResoReduced { registry.fill(HIST("hMassVsPtDstarAll"), varUtils.ptD, varUtils.invMassD - varUtils.invMassD0); } else if constexpr (DType == DType::Dplus) { auto prong0 = tracksIU.rawIteratorAt(candD.prong0Id()); - varUtils.invMassD = hfHelper.invMassDplusToPiKPi(candD); + varUtils.invMassD = HfHelper::invMassDplusToPiKPi(candD); secondaryVertexD[0] = candD.xSecondaryVertex(); secondaryVertexD[1] = candD.ySecondaryVertex(); secondaryVertexD[2] = candD.zSecondaryVertex(); @@ -1115,8 +1114,8 @@ struct HfDataCreatorCharmResoReduced { } registry.fill(HIST("hMassVsPtDplusAll"), varUtils.ptD, varUtils.invMassD); } else if constexpr (DType == DType::D0) { - varUtils.invMassD0 = hfHelper.invMassD0ToPiK(candD); - varUtils.invMassD0Bar = hfHelper.invMassD0barToKPi(candD); + varUtils.invMassD0 = HfHelper::invMassD0ToPiK(candD); + varUtils.invMassD0Bar = HfHelper::invMassD0barToKPi(candD); secondaryVertexD[0] = candD.xSecondaryVertex(); secondaryVertexD[1] = candD.ySecondaryVertex(); secondaryVertexD[2] = candD.zSecondaryVertex(); diff --git a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx index 4778fcc168e..6995f24d01d 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx @@ -184,8 +184,6 @@ struct HfDataCreatorJpsiHadReduced { Configurable ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Configurable ccdbPathGrpMag{"ccdbPathGrpMag", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object (Run 3)"}; - HfHelper hfHelper; - TrackSelectorPi selectorPion; TrackSelectorPr selectorProton; TrackSelectorEl selectorElectron; @@ -357,7 +355,7 @@ struct HfDataCreatorJpsiHadReduced { bool selectionTopol(const T1& candidate, const T2& trackPos, const T2& trackNeg) { auto candpT = candidate.pt(); - auto candInvMass = runJpsiToee ? hfHelper.invMassJpsiToEE(candidate) : hfHelper.invMassJpsiToMuMu(candidate); + auto candInvMass = runJpsiToee ? HfHelper::invMassJpsiToEE(candidate) : HfHelper::invMassJpsiToMuMu(candidate); auto pseudoPropDecLen = candidate.decayLengthXY() * candInvMass / candpT; auto pTBin = findBin(binsPt, candpT); if (pTBin == -1) { @@ -824,7 +822,7 @@ struct HfDataCreatorJpsiHadReduced { registry.fill(HIST("hSelectionsJpsi"), 2 + aod::SelectionStep::RecoPID, candidate.pt()); int const indexHfCandJpsi = hfJpsi.lastIndex() + 1; - float const invMassJpsi = runJpsiToee ? hfHelper.invMassJpsiToEE(candidate) : hfHelper.invMassJpsiToMuMu(candidate); + float const invMassJpsi = runJpsiToee ? HfHelper::invMassJpsiToEE(candidate) : HfHelper::invMassJpsiToMuMu(candidate); registry.fill(HIST("hMassJpsi"), invMassJpsi); registry.fill(HIST("hPtJpsi"), candidate.pt()); registry.fill(HIST("hCpaJpsi"), candidate.cpa()); @@ -1049,9 +1047,9 @@ struct HfDataCreatorJpsiHadReduced { if (fillHfCandJpsi) { // fill Jpsi table only once per Jpsi candidate double invMassJpsi{0.}; if (runJpsiToee) { - invMassJpsi = hfHelper.invMassJpsiToEE(candidate); + invMassJpsi = HfHelper::invMassJpsiToEE(candidate); } else { - invMassJpsi = hfHelper.invMassJpsiToMuMu(candidate); + invMassJpsi = HfHelper::invMassJpsiToMuMu(candidate); } hfJpsi(trackPos.globalIndex(), trackNeg.globalIndex(), indexHfReducedCollision, diff --git a/PWGHF/D2H/Tasks/taskB0.cxx b/PWGHF/D2H/Tasks/taskB0.cxx index 54effeb26ea..5ea49b1472a 100644 --- a/PWGHF/D2H/Tasks/taskB0.cxx +++ b/PWGHF/D2H/Tasks/taskB0.cxx @@ -64,7 +64,6 @@ struct HfTaskB0 { // O2DatabasePDG service Service pdg; - HfHelper hfHelper; using TracksWithSel = soa::Join; @@ -177,7 +176,7 @@ struct HfTaskB0 { TracksWithSel const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } @@ -186,7 +185,7 @@ struct HfTaskB0 { auto ptCandB0 = candidate.pt(); - registry.fill(HIST("hMass"), hfHelper.invMassB0ToDPi(candidate), ptCandB0); + registry.fill(HIST("hMass"), HfHelper::invMassB0ToDPi(candidate), ptCandB0); registry.fill(HIST("hPtCand"), ptCandB0); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -197,12 +196,12 @@ struct HfTaskB0 { registry.fill(HIST("hd0Prong1"), candidate.impactParameter1(), ptCandB0); registry.fill(HIST("hCPA"), candidate.cpa(), ptCandB0); registry.fill(HIST("hEta"), candidate.eta(), ptCandB0); - registry.fill(HIST("hRapidity"), hfHelper.yB0(candidate), ptCandB0); + registry.fill(HIST("hRapidity"), HfHelper::yB0(candidate), ptCandB0); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter0(), ptCandB0); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter1(), ptCandB0); registry.fill(HIST("hDecLenErr"), candidate.errorDecayLength(), ptCandB0); registry.fill(HIST("hDecLenXYErr"), candidate.errorDecayLengthXY(), ptCandB0); - registry.fill(HIST("hInvMassD"), hfHelper.invMassDplusToPiKPi(candD), ptCandB0); + registry.fill(HIST("hInvMassD"), HfHelper::invMassDplusToPiKPi(candD), ptCandB0); } // candidate loop } // process @@ -214,13 +213,13 @@ struct HfTaskB0 { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } auto ptCandB0 = candidate.pt(); auto candD = candidate.prong0_as>(); - auto invMassCandB0 = hfHelper.invMassB0ToDPi(candidate); + auto invMassCandB0 = HfHelper::invMassB0ToDPi(candidate); auto flagMcMatchRecB0 = std::abs(candidate.flagMcMatchRec()); if (flagMcMatchRecB0 == DecayChannelMain::B0ToDminusPi) { @@ -232,10 +231,10 @@ struct HfTaskB0 { registry.fill(HIST("hCPARecSig"), candidate.cpa(), ptCandB0); registry.fill(HIST("hCPAxyRecSig"), candidate.cpaXY(), ptCandB0); registry.fill(HIST("hEtaRecSig"), candidate.eta(), ptCandB0); - registry.fill(HIST("hRapidityRecSig"), hfHelper.yB0(candidate), ptCandB0); + registry.fill(HIST("hRapidityRecSig"), HfHelper::yB0(candidate), ptCandB0); registry.fill(HIST("hDecLengthRecSig"), candidate.decayLength(), ptCandB0); registry.fill(HIST("hDecLengthXYRecSig"), candidate.decayLengthXY(), ptCandB0); - registry.fill(HIST("hMassRecSig"), hfHelper.invMassB0ToDPi(candidate), ptCandB0); + registry.fill(HIST("hMassRecSig"), HfHelper::invMassB0ToDPi(candidate), ptCandB0); registry.fill(HIST("hd0Prong0RecSig"), candidate.impactParameter0(), ptCandB0); registry.fill(HIST("hd0Prong1RecSig"), candidate.impactParameter1(), ptCandB0); registry.fill(HIST("hPtProng0RecSig"), candidate.ptProng0(), ptCandB0); @@ -254,10 +253,10 @@ struct HfTaskB0 { registry.fill(HIST("hCPARecBg"), candidate.cpa(), ptCandB0); registry.fill(HIST("hCPAxyRecBg"), candidate.cpaXY(), ptCandB0); registry.fill(HIST("hEtaRecBg"), candidate.eta(), ptCandB0); - registry.fill(HIST("hRapidityRecBg"), hfHelper.yB0(candidate), ptCandB0); + registry.fill(HIST("hRapidityRecBg"), HfHelper::yB0(candidate), ptCandB0); registry.fill(HIST("hDecLengthRecBg"), candidate.decayLength(), ptCandB0); registry.fill(HIST("hDecLengthXYRecBg"), candidate.decayLengthXY(), ptCandB0); - registry.fill(HIST("hMassRecBg"), hfHelper.invMassB0ToDPi(candidate), ptCandB0); + registry.fill(HIST("hMassRecBg"), HfHelper::invMassB0ToDPi(candidate), ptCandB0); registry.fill(HIST("hd0Prong0RecBg"), candidate.impactParameter0(), ptCandB0); registry.fill(HIST("hd0Prong1RecBg"), candidate.impactParameter1(), ptCandB0); registry.fill(HIST("hPtProng0RecBg"), candidate.ptProng0(), ptCandB0); diff --git a/PWGHF/D2H/Tasks/taskB0Reduced.cxx b/PWGHF/D2H/Tasks/taskB0Reduced.cxx index 8cbd55aa2f4..5e146308c45 100644 --- a/PWGHF/D2H/Tasks/taskB0Reduced.cxx +++ b/PWGHF/D2H/Tasks/taskB0Reduced.cxx @@ -190,8 +190,6 @@ struct HfTaskB0Reduced { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using TracksBachPions = soa::Join; using CandsDplus = soa::Join; using CandsDstar = soa::Join; @@ -454,7 +452,7 @@ struct HfTaskB0Reduced { CandsDmes const&) { auto ptCandB0 = candidate.pt(); - auto invMassB0 = hfHelper.invMassB0ToDPi(candidate); + auto invMassB0 = HfHelper::invMassB0ToDPi(candidate); auto candD = candidate.template prongD0_as(); auto ptD = candidate.ptProng0(); auto invMassD = candD.invMassHypo0(); @@ -479,7 +477,7 @@ struct HfTaskB0Reduced { if (fillHistograms) { if constexpr (DoMc) { if (isSignal) { - registry.fill(HIST("hMassRecSig"), ptCandB0, hfHelper.invMassB0ToDPi(candidate)); + registry.fill(HIST("hMassRecSig"), ptCandB0, HfHelper::invMassB0ToDPi(candidate)); registry.fill(HIST("hPtProngD0RecSig"), ptCandB0, candidate.ptProng0()); registry.fill(HIST("hPtProngSoftPiRecSig"), ptCandB0, candidate.ptProng1()); registry.fill(HIST("hPtProngBachPiRecSig"), ptCandB0, candidate.ptProng2()); @@ -493,7 +491,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCospRecSig"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXyRecSig"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEtaRecSig"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidityRecSig"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidityRecSig"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassDRecSig"), ptD, invMassD); registry.fill(HIST("hDecLengthDRecSig"), ptD, decLenD); registry.fill(HIST("hDecLengthXyDRecSig"), ptD, decLenXyD); @@ -505,7 +503,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hMlScoreNonPromptDRecSig"), ptD, candidate.prong0MlScoreNonprompt()); } } else if (fillBackground) { - registry.fill(HIST("hMassRecBg"), ptCandB0, hfHelper.invMassB0ToDPi(candidate)); + registry.fill(HIST("hMassRecBg"), ptCandB0, HfHelper::invMassB0ToDPi(candidate)); registry.fill(HIST("hPtProngD0RecBg"), ptCandB0, candidate.ptProng0()); registry.fill(HIST("hPtProngSoftPiRecBg"), ptCandB0, candidate.ptProng1()); registry.fill(HIST("hPtProngBachPiRecBg"), ptCandB0, candidate.ptProng2()); @@ -519,7 +517,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCospRecBg"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXyRecBg"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEtaRecBg"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidityRecBg"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidityRecBg"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassDRecBg"), ptD, invMassD); registry.fill(HIST("hDecLengthDRecBg"), ptD, decLenD); registry.fill(HIST("hDecLengthXyDRecBg"), ptD, decLenXyD); @@ -546,7 +544,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCosp"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXy"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEta"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidity"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidity"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassD"), ptD, invMassD); registry.fill(HIST("hDecLengthD"), ptD, decLenD); registry.fill(HIST("hDecLengthXyD"), ptD, decLenXyD); @@ -608,7 +606,7 @@ struct HfTaskB0Reduced { ptCandB0, candidate.eta(), candidate.phi(), - hfHelper.yB0(candidate), + HfHelper::yB0(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -691,7 +689,7 @@ struct HfTaskB0Reduced { CandsDmes const&) { auto ptCandB0 = candidate.pt(); - auto invMassB0 = hfHelper.invMassB0ToDPi(candidate); + auto invMassB0 = HfHelper::invMassB0ToDPi(candidate); auto candD = candidate.template prong0_as(); auto ptD = candidate.ptProng0(); auto invMassD = candD.invMassHypo0(); @@ -715,7 +713,7 @@ struct HfTaskB0Reduced { if (fillHistograms) { if constexpr (DoMc) { if (isSignal) { - registry.fill(HIST("hMassRecSig"), ptCandB0, hfHelper.invMassB0ToDPi(candidate)); + registry.fill(HIST("hMassRecSig"), ptCandB0, HfHelper::invMassB0ToDPi(candidate)); registry.fill(HIST("hPtProng0RecSig"), ptCandB0, candidate.ptProng0()); registry.fill(HIST("hPtProng1RecSig"), ptCandB0, candidate.ptProng1()); registry.fill(HIST("hImpParProdRecSig"), ptCandB0, candidate.impactParameterProduct()); @@ -727,7 +725,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCospRecSig"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXyRecSig"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEtaRecSig"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidityRecSig"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidityRecSig"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassDRecSig"), ptD, invMassD); registry.fill(HIST("hDecLengthDRecSig"), ptD, decLenD); registry.fill(HIST("hDecLengthXyDRecSig"), ptD, decLenXyD); @@ -745,7 +743,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hMlScoreSigB0RecSig"), ptCandB0, candidate.mlProbB0ToDPi()); } } else if (fillBackground) { - registry.fill(HIST("hMassRecBg"), ptCandB0, hfHelper.invMassB0ToDPi(candidate)); + registry.fill(HIST("hMassRecBg"), ptCandB0, HfHelper::invMassB0ToDPi(candidate)); registry.fill(HIST("hPtProng0RecBg"), ptCandB0, candidate.ptProng0()); registry.fill(HIST("hPtProng1RecBg"), ptCandB0, candidate.ptProng1()); registry.fill(HIST("hImpParProdRecBg"), ptCandB0, candidate.impactParameterProduct()); @@ -757,7 +755,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCospRecBg"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXyRecBg"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEtaRecBg"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidityRecBg"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidityRecBg"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassDRecBg"), ptD, invMassD); registry.fill(HIST("hDecLengthDRecBg"), ptD, decLenD); registry.fill(HIST("hDecLengthXyDRecBg"), ptD, decLenXyD); @@ -797,7 +795,7 @@ struct HfTaskB0Reduced { registry.fill(HIST("hCosp"), ptCandB0, candidate.cpa()); registry.fill(HIST("hCospXy"), ptCandB0, candidate.cpaXY()); registry.fill(HIST("hEta"), ptCandB0, candidate.eta()); - registry.fill(HIST("hRapidity"), ptCandB0, hfHelper.yB0(candidate)); + registry.fill(HIST("hRapidity"), ptCandB0, HfHelper::yB0(candidate)); registry.fill(HIST("hInvMassD"), ptD, invMassD); registry.fill(HIST("hDecLengthD"), ptD, decLenD); registry.fill(HIST("hDecLengthXyD"), ptD, decLenXyD); @@ -865,7 +863,7 @@ struct HfTaskB0Reduced { ptCandB0, candidate.eta(), candidate.phi(), - hfHelper.yB0(candidate), + HfHelper::yB0(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -980,7 +978,7 @@ struct HfTaskB0Reduced { TracksBachPions const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -993,7 +991,7 @@ struct HfTaskB0Reduced { TracksBachPions const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1006,7 +1004,7 @@ struct HfTaskB0Reduced { TracksBachPions const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1021,7 +1019,7 @@ struct HfTaskB0Reduced { TracksBachPions const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCandDStarPi(candidate, softPions, candidatesD); @@ -1035,7 +1033,7 @@ struct HfTaskB0Reduced { TracksBachPions const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCandDStarPi(candidate, softPions, candidatesD); @@ -1050,7 +1048,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1070,7 +1068,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1090,7 +1088,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1110,7 +1108,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1130,7 +1128,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1150,7 +1148,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -1171,7 +1169,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCandDStarPi(candidate, softPions, candidatesD); @@ -1192,7 +1190,7 @@ struct HfTaskB0Reduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yB0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yB0(candidate)) > yCandRecoMax) { continue; } fillCandDStarPi(candidate, softPions, candidatesD); diff --git a/PWGHF/D2H/Tasks/taskBplus.cxx b/PWGHF/D2H/Tasks/taskBplus.cxx index 9b619329d25..b0f9ce12084 100644 --- a/PWGHF/D2H/Tasks/taskBplus.cxx +++ b/PWGHF/D2H/Tasks/taskBplus.cxx @@ -70,7 +70,6 @@ struct HfTaskBplus { // O2DatabasePDG service Service pdg; - HfHelper hfHelper; Partition> selectedBPlusCandidates = aod::hf_sel_candidate_bplus::isSelBplusToD0Pi >= selectionFlagBplus; Partition> selectedBPlusCandidatesMC = aod::hf_sel_candidate_bplus::isSelBplusToD0Pi >= selectionFlagBplus; @@ -180,14 +179,14 @@ struct HfTaskBplus { { for (const auto& candidate : selectedBPlusCandidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } auto ptCandBplus = candidate.pt(); auto candD0 = candidate.prong0_as>(); auto candPi = candidate.prong1(); - registry.fill(HIST("hMass"), hfHelper.invMassBplusToD0Pi(candidate), ptCandBplus); + registry.fill(HIST("hMass"), HfHelper::invMassBplusToD0Pi(candidate), ptCandBplus); registry.fill(HIST("hPtCand"), ptCandBplus); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -199,15 +198,15 @@ struct HfTaskBplus { registry.fill(HIST("hCPA"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCPAxy"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEta"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidity"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidity"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter0(), ptCandBplus); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter1(), ptCandBplus); registry.fill(HIST("hDecLenErr"), candidate.errorDecayLength(), ptCandBplus); registry.fill(HIST("hDecLenXYErr"), candidate.errorDecayLengthXY(), ptCandBplus); if (candPi.sign() > 0) { - registry.fill(HIST("hInvMassD0"), hfHelper.invMassD0barToKPi(candD0), ptCandBplus); + registry.fill(HIST("hInvMassD0"), HfHelper::invMassD0barToKPi(candD0), ptCandBplus); } else { - registry.fill(HIST("hInvMassD0"), hfHelper.invMassD0ToPiK(candD0), ptCandBplus); + registry.fill(HIST("hInvMassD0"), HfHelper::invMassD0ToPiK(candD0), ptCandBplus); } registry.fill(HIST("hCPAFinerBinning"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCPAxyFinerBinning"), candidate.cpaXY(), ptCandBplus); @@ -221,7 +220,7 @@ struct HfTaskBplus { { // MC rec for (const auto& candidate : selectedBPlusCandidatesMC) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } auto ptCandBplus = candidate.pt(); @@ -237,10 +236,10 @@ struct HfTaskBplus { registry.fill(HIST("hCPAFinerBinningRecSig"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCPAxyFinerBinningRecSig"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEtaRecSig"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidityRecSig"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidityRecSig"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hDecLengthRecSig"), candidate.decayLength(), ptCandBplus); registry.fill(HIST("hDecLengthXYRecSig"), candidate.decayLengthXY(), ptCandBplus); - registry.fill(HIST("hMassRecSig"), hfHelper.invMassBplusToD0Pi(candidate), ptCandBplus); + registry.fill(HIST("hMassRecSig"), HfHelper::invMassBplusToD0Pi(candidate), ptCandBplus); registry.fill(HIST("hd0Prong0RecSig"), candidate.impactParameter0(), ptCandBplus); registry.fill(HIST("hd0Prong1RecSig"), candidate.impactParameter1(), ptCandBplus); registry.fill(HIST("hPtProng0RecSig"), candidate.ptProng0(), ptCandBplus); @@ -254,10 +253,10 @@ struct HfTaskBplus { registry.fill(HIST("hCPAFinerBinningRecBg"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCPAxyFinerBinningRecBg"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEtaRecBg"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidityRecBg"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidityRecBg"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hDecLengthRecBg"), candidate.decayLength(), ptCandBplus); registry.fill(HIST("hDecLengthXYRecBg"), candidate.decayLengthXY(), ptCandBplus); - registry.fill(HIST("hMassRecBg"), hfHelper.invMassBplusToD0Pi(candidate), ptCandBplus); + registry.fill(HIST("hMassRecBg"), HfHelper::invMassBplusToD0Pi(candidate), ptCandBplus); registry.fill(HIST("hd0Prong0RecBg"), candidate.impactParameter0(), ptCandBplus); registry.fill(HIST("hd0Prong1RecBg"), candidate.impactParameter1(), ptCandBplus); registry.fill(HIST("hPtProng0RecBg"), candidate.ptProng0(), ptCandBplus); diff --git a/PWGHF/D2H/Tasks/taskBplusReduced.cxx b/PWGHF/D2H/Tasks/taskBplusReduced.cxx index f47cc1c2c4e..bca08dbf154 100644 --- a/PWGHF/D2H/Tasks/taskBplusReduced.cxx +++ b/PWGHF/D2H/Tasks/taskBplusReduced.cxx @@ -196,8 +196,6 @@ struct HfTaskBplusReduced { Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_bplus_to_d0_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - using TracksPion = soa::Join; using CandsD0 = soa::Join; @@ -408,7 +406,7 @@ struct HfTaskBplusReduced { TracksPion const&) { auto ptCandBplus = candidate.pt(); - auto invMassBplus = hfHelper.invMassBplusToD0Pi(candidate); + auto invMassBplus = HfHelper::invMassBplusToD0Pi(candidate); auto candD0 = candidate.template prong0_as(); auto candPi = candidate.template prong1_as(); auto ptD0 = candidate.ptProng0(); @@ -440,7 +438,7 @@ struct HfTaskBplusReduced { registry.fill(HIST("hCpaRecSig"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCpaXyRecSig"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEtaRecSig"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidityRecSig"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidityRecSig"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hDecLengthRecSig"), candidate.decayLength(), ptCandBplus); registry.fill(HIST("hDecLengthXyRecSig"), candidate.decayLengthXY(), ptCandBplus); registry.fill(HIST("hNormDecLengthXyRecSig"), candidate.decayLengthXYNormalised(), ptCandBplus); @@ -472,7 +470,7 @@ struct HfTaskBplusReduced { registry.fill(HIST("hCpaRecBg"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCpaXyRecBg"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEtaRecBg"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidityRecBg"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidityRecBg"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hDecLengthRecBg"), candidate.decayLength(), ptCandBplus); registry.fill(HIST("hDecLengthXyRecBg"), candidate.decayLengthXY(), ptCandBplus); registry.fill(HIST("hNormDecLengthXyRecBg"), candidate.decayLengthXYNormalised(), ptCandBplus); @@ -516,7 +514,7 @@ struct HfTaskBplusReduced { registry.fill(HIST("hCpa"), candidate.cpa(), ptCandBplus); registry.fill(HIST("hCpaXy"), candidate.cpaXY(), ptCandBplus); registry.fill(HIST("hEta"), candidate.eta(), ptCandBplus); - registry.fill(HIST("hRapidity"), hfHelper.yBplus(candidate), ptCandBplus); + registry.fill(HIST("hRapidity"), HfHelper::yBplus(candidate), ptCandBplus); registry.fill(HIST("hInvMassD0"), invMassD0, ptCandBplus); registry.fill(HIST("hDecLengthD0"), decLenD0, ptD0); registry.fill(HIST("hDecLengthXyD0"), decLenXyD0, ptD0); @@ -599,7 +597,7 @@ struct HfTaskBplusReduced { ptCandBplus, candidate.eta(), candidate.phi(), - hfHelper.yBplus(candidate), + HfHelper::yBplus(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -712,7 +710,7 @@ struct HfTaskBplusReduced { TracksPion const& pionTracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -725,7 +723,7 @@ struct HfTaskBplusReduced { TracksPion const& pionTracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -738,7 +736,7 @@ struct HfTaskBplusReduced { TracksPion const& pionTracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -753,7 +751,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -773,7 +771,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -793,7 +791,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -813,7 +811,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -833,7 +831,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); @@ -853,7 +851,7 @@ struct HfTaskBplusReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD, pionTracks); diff --git a/PWGHF/D2H/Tasks/taskBplusToJpsiKReduced.cxx b/PWGHF/D2H/Tasks/taskBplusToJpsiKReduced.cxx index 85e89ec279e..aa0ff931938 100644 --- a/PWGHF/D2H/Tasks/taskBplusToJpsiKReduced.cxx +++ b/PWGHF/D2H/Tasks/taskBplusToJpsiKReduced.cxx @@ -236,7 +236,6 @@ struct HfTaskBplusToJpsiKReduced { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; TrackSelectorKa selectorKaon; o2::analysis::HfMlResponseBplusToJpsiKReduced hfMlResponse; o2::ccdb::CcdbApi ccdbApi; @@ -340,7 +339,7 @@ struct HfTaskBplusToJpsiKReduced { aod::HfRedBach0Tracks const&) { auto ptCandBplus = candidate.pt(); - auto invMassBplus = hfHelper.invMassBplusToJpsiK(candidate); + auto invMassBplus = HfHelper::invMassBplusToJpsiK(candidate); auto candJpsi = candidate.template jpsi_as(); auto candKa = candidate.template bachKa_as(); auto ptJpsi = candidate.ptProng0(); @@ -357,7 +356,7 @@ struct HfTaskBplusToJpsiKReduced { } SETBIT(statusBplus, SelectionStep::RecoSkims); - if (hfHelper.selectionBplusToJpsiKTopol(candidate, cuts, binsPt)) { + if (HfHelper::selectionBplusToJpsiKTopol(candidate, cuts, binsPt)) { SETBIT(statusBplus, SelectionStep::RecoTopol); } else if (selectionFlagBplus >= BIT(SelectionStep::RecoTopol) * 2 - 1) { return; @@ -371,7 +370,7 @@ struct HfTaskBplusToJpsiKReduced { } else if (kaonPidMethod == PidMethod::TpcAndTof) { pidTrackKa = selectorKaon.statusTpcAndTof(candKa); } - if (hfHelper.selectionBplusToJpsiKPid(pidTrackKa, acceptPIDNotApplicable.value)) { + if (HfHelper::selectionBplusToJpsiKPid(pidTrackKa, acceptPIDNotApplicable.value)) { // LOGF(info, "B+ candidate selection failed at PID selection"); SETBIT(statusBplus, SelectionStep::RecoPID); } else if (selectionFlagBplus >= BIT(SelectionStep::RecoPID) * 2 - 1) { @@ -419,7 +418,7 @@ struct HfTaskBplusToJpsiKReduced { ptCandBplus, candidate.eta(), candidate.phi(), - hfHelper.yBplus(candidate), + HfHelper::yBplus(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -494,7 +493,7 @@ struct HfTaskBplusToJpsiKReduced { aod::HfRedBach0Tracks const& kaonTracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaonTracks); @@ -507,7 +506,7 @@ struct HfTaskBplusToJpsiKReduced { aod::HfRedBach0Tracks const& kaonTracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaonTracks); @@ -522,7 +521,7 @@ struct HfTaskBplusToJpsiKReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaonTracks); @@ -542,7 +541,7 @@ struct HfTaskBplusToJpsiKReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBplus(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBplus(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaonTracks); diff --git a/PWGHF/D2H/Tasks/taskBs.cxx b/PWGHF/D2H/Tasks/taskBs.cxx index 6d41a59ba82..b1404f4c7e4 100644 --- a/PWGHF/D2H/Tasks/taskBs.cxx +++ b/PWGHF/D2H/Tasks/taskBs.cxx @@ -64,7 +64,6 @@ struct HfTaskBs { Configurable checkDecayTypeMc{"checkDecayTypeMc", false, "Flag to enable DecayType histogram"}; Service pdg; - HfHelper hfHelper; using TracksWithSel = soa::Join; @@ -175,7 +174,7 @@ struct HfTaskBs { TracksWithSel const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } @@ -187,9 +186,9 @@ struct HfTaskBs { registry.fill(HIST("hPtProng1"), candidate.ptProng1()); registry.fill(HIST("hPtCand"), ptCandBs); registry.fill(HIST("hEta"), candidate.eta(), ptCandBs); - registry.fill(HIST("hRapidity"), hfHelper.yBs(candidate), ptCandBs); + registry.fill(HIST("hRapidity"), HfHelper::yBs(candidate), ptCandBs); registry.fill(HIST("hCPA"), candidate.cpa(), ptCandBs); - registry.fill(HIST("hMass"), hfHelper.invMassBsToDsPi(candidate), ptCandBs); + registry.fill(HIST("hMass"), HfHelper::invMassBsToDsPi(candidate), ptCandBs); registry.fill(HIST("hDecLength"), candidate.decayLength(), ptCandBs); registry.fill(HIST("hDecLenErr"), candidate.errorDecayLength(), ptCandBs); registry.fill(HIST("hDecLengthXY"), candidate.decayLengthXY(), ptCandBs); @@ -199,7 +198,7 @@ struct HfTaskBs { registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter0(), ptCandBs); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter1(), ptCandBs); registry.fill(HIST("hIPProd"), candidate.impactParameterProduct(), ptCandBs); - registry.fill(HIST("hInvMassDs"), hfHelper.invMassDsToKKPi(candDs), ptCandBs); + registry.fill(HIST("hInvMassDs"), HfHelper::invMassDsToKKPi(candDs), ptCandBs); } // candidate loop } // process @@ -211,13 +210,13 @@ struct HfTaskBs { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } auto ptCandBs = candidate.pt(); auto candDs = candidate.prong0_as>(); - auto invMassCandBs = hfHelper.invMassBsToDsPi(candidate); + auto invMassCandBs = HfHelper::invMassBsToDsPi(candidate); auto flagMcMatchRecBs = std::abs(candidate.flagMcMatchRec()); if (flagMcMatchRecBs == DecayChannelMain::BsToDsPi) { @@ -227,10 +226,10 @@ struct HfTaskBs { registry.fill(HIST("hPtGenSig"), particleMother.pt()); registry.fill(HIST("hPtRecSig"), ptCandBs); registry.fill(HIST("hEtaRecSig"), candidate.eta(), ptCandBs); - registry.fill(HIST("hRapidityRecSig"), hfHelper.yBs(candidate), ptCandBs); + registry.fill(HIST("hRapidityRecSig"), HfHelper::yBs(candidate), ptCandBs); registry.fill(HIST("hCPARecSig"), candidate.cpa(), ptCandBs); registry.fill(HIST("hCPAxyRecSig"), candidate.cpaXY(), ptCandBs); - registry.fill(HIST("hMassRecSig"), hfHelper.invMassBsToDsPi(candidate), ptCandBs); + registry.fill(HIST("hMassRecSig"), HfHelper::invMassBsToDsPi(candidate), ptCandBs); registry.fill(HIST("hDecLengthRecSig"), candidate.decayLength(), ptCandBs); registry.fill(HIST("hDecLengthXYRecSig"), candidate.decayLengthXY(), ptCandBs); registry.fill(HIST("hDecLengthNormRecSig"), candidate.decayLengthXYNormalised(), ptCandBs); @@ -249,10 +248,10 @@ struct HfTaskBs { } else { registry.fill(HIST("hPtRecBg"), ptCandBs); registry.fill(HIST("hEtaRecBg"), candidate.eta(), ptCandBs); - registry.fill(HIST("hRapidityRecBg"), hfHelper.yBs(candidate), ptCandBs); + registry.fill(HIST("hRapidityRecBg"), HfHelper::yBs(candidate), ptCandBs); registry.fill(HIST("hCPARecBg"), candidate.cpa(), ptCandBs); registry.fill(HIST("hCPAxyRecBg"), candidate.cpaXY(), ptCandBs); - registry.fill(HIST("hMassRecBg"), hfHelper.invMassBsToDsPi(candidate), ptCandBs); + registry.fill(HIST("hMassRecBg"), HfHelper::invMassBsToDsPi(candidate), ptCandBs); registry.fill(HIST("hDecLengthRecBg"), candidate.decayLength(), ptCandBs); registry.fill(HIST("hDecLengthXYRecBg"), candidate.decayLengthXY(), ptCandBs); registry.fill(HIST("hDecLengthNormRecBg"), candidate.decayLengthXYNormalised(), ptCandBs); diff --git a/PWGHF/D2H/Tasks/taskBsReduced.cxx b/PWGHF/D2H/Tasks/taskBsReduced.cxx index 44e5f5d8f82..93b4485228a 100644 --- a/PWGHF/D2H/Tasks/taskBsReduced.cxx +++ b/PWGHF/D2H/Tasks/taskBsReduced.cxx @@ -193,8 +193,6 @@ struct HfTaskBsReduced { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background_{s} candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using TracksPion = soa::Join; using CandsDS = soa::Join; @@ -403,7 +401,7 @@ struct HfTaskBsReduced { CandsDmes const&) { auto ptCandBs = candidate.pt(); - auto invMassBs = hfHelper.invMassBsToDsPi(candidate); + auto invMassBs = HfHelper::invMassBsToDsPi(candidate); auto candDs = candidate.template prong0_as(); auto ptDs = candidate.ptProng0(); auto invMassDs = candDs.invMassHypo0() > 0 ? candDs.invMassHypo0() : candDs.invMassHypo1(); @@ -440,7 +438,7 @@ struct HfTaskBsReduced { registry.fill(HIST("hCospRecSig"), ptCandBs, candidate.cpa()); registry.fill(HIST("hCospXyRecSig"), ptCandBs, candidate.cpaXY()); registry.fill(HIST("hEtaRecSig"), ptCandBs, candidate.eta()); - registry.fill(HIST("hRapidityRecSig"), ptCandBs, hfHelper.yBs(candidate)); + registry.fill(HIST("hRapidityRecSig"), ptCandBs, HfHelper::yBs(candidate)); registry.fill(HIST("hInvMassDRecSig"), ptDs, invMassDs); registry.fill(HIST("hDecLengthDRecSig"), ptDs, decLenDs); registry.fill(HIST("hDecLengthXyDRecSig"), ptDs, decLenXyDs); @@ -470,7 +468,7 @@ struct HfTaskBsReduced { registry.fill(HIST("hCospRecBg"), ptCandBs, candidate.cpa()); registry.fill(HIST("hCospXyRecBg"), ptCandBs, candidate.cpaXY()); registry.fill(HIST("hEtaRecBg"), ptCandBs, candidate.eta()); - registry.fill(HIST("hRapidityRecBg"), ptCandBs, hfHelper.yBs(candidate)); + registry.fill(HIST("hRapidityRecBg"), ptCandBs, HfHelper::yBs(candidate)); registry.fill(HIST("hInvMassDRecBg"), ptDs, invMassDs); registry.fill(HIST("hDecLengthDRecBg"), ptDs, decLenDs); registry.fill(HIST("hDecLengthXyDRecBg"), ptDs, decLenXyDs); @@ -504,7 +502,7 @@ struct HfTaskBsReduced { registry.fill(HIST("hCosp"), ptCandBs, candidate.cpa()); registry.fill(HIST("hCospXy"), ptCandBs, candidate.cpaXY()); registry.fill(HIST("hEta"), ptCandBs, candidate.eta()); - registry.fill(HIST("hRapidity"), ptCandBs, hfHelper.yBs(candidate)); + registry.fill(HIST("hRapidity"), ptCandBs, HfHelper::yBs(candidate)); registry.fill(HIST("hInvMassD"), ptDs, invMassDs); registry.fill(HIST("hDecLengthD"), ptDs, decLenDs); registry.fill(HIST("hDecLengthXyD"), ptDs, decLenXyDs); @@ -572,7 +570,7 @@ struct HfTaskBsReduced { ptCandBs, candidate.eta(), candidate.phi(), - hfHelper.yBs(candidate), + HfHelper::yBs(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -695,7 +693,7 @@ struct HfTaskBsReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -708,7 +706,7 @@ struct HfTaskBsReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -721,7 +719,7 @@ struct HfTaskBsReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -736,7 +734,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -756,7 +754,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -776,7 +774,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -796,7 +794,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -816,7 +814,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); @@ -836,7 +834,7 @@ struct HfTaskBsReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesD); diff --git a/PWGHF/D2H/Tasks/taskBsToJpsiPhiReduced.cxx b/PWGHF/D2H/Tasks/taskBsToJpsiPhiReduced.cxx index d8d977a29bf..2ff8dbe84e2 100644 --- a/PWGHF/D2H/Tasks/taskBsToJpsiPhiReduced.cxx +++ b/PWGHF/D2H/Tasks/taskBsToJpsiPhiReduced.cxx @@ -261,7 +261,6 @@ struct HfTaskBsToJpsiPhiReduced { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; TrackSelectorKa selectorKaon; o2::analysis::HfMlResponseBsToJpsiPhiReduced hfMlResponse; o2::ccdb::CcdbApi ccdbApi; @@ -372,7 +371,7 @@ struct HfTaskBsToJpsiPhiReduced { aod::HfRedBach1Tracks const&) { auto ptCandBs = candidate.pt(); - auto invMassBs = hfHelper.invMassBsToJpsiPhi(candidate); + auto invMassBs = HfHelper::invMassBsToJpsiPhi(candidate); auto candJpsi = candidate.template jpsi_as(); auto candKa0 = candidate.template prong0Phi_as(); auto candKa1 = candidate.template prong1Phi_as(); @@ -394,7 +393,7 @@ struct HfTaskBsToJpsiPhiReduced { } SETBIT(statusBs, SelectionStep::RecoSkims); - if (hfHelper.selectionBsToJpsiPhiTopol(candidate, candKa0, candKa1, cuts, binsPt)) { + if (HfHelper::selectionBsToJpsiPhiTopol(candidate, candKa0, candKa1, cuts, binsPt)) { SETBIT(statusBs, SelectionStep::RecoTopol); } else if (selectionFlagBs >= BIT(SelectionStep::RecoTopol) * 2 - 1) { return; @@ -411,8 +410,8 @@ struct HfTaskBsToJpsiPhiReduced { pidTrackKa0 = selectorKaon.statusTpcAndTof(candKa0); pidTrackKa1 = selectorKaon.statusTpcAndTof(candKa1); } - if (hfHelper.selectionBsToJpsiPhiPid(pidTrackKa0, acceptPIDNotApplicable.value) && - hfHelper.selectionBsToJpsiPhiPid(pidTrackKa1, acceptPIDNotApplicable.value)) { + if (HfHelper::selectionBsToJpsiPhiPid(pidTrackKa0, acceptPIDNotApplicable.value) && + HfHelper::selectionBsToJpsiPhiPid(pidTrackKa1, acceptPIDNotApplicable.value)) { // LOGF(info, "Bs candidate selection failed at PID selection"); SETBIT(statusBs, SelectionStep::RecoPID); } else if (selectionFlagBs >= BIT(SelectionStep::RecoPID) * 2 - 1) { @@ -461,7 +460,7 @@ struct HfTaskBsToJpsiPhiReduced { ptCandBs, candidate.eta(), candidate.phi(), - hfHelper.yBs(candidate), + HfHelper::yBs(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -550,7 +549,7 @@ struct HfTaskBsToJpsiPhiReduced { aod::HfRedBach1Tracks const& kaon1Tracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaon0Tracks, kaon1Tracks); @@ -564,7 +563,7 @@ struct HfTaskBsToJpsiPhiReduced { aod::HfRedBach1Tracks const& kaon1Tracks) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaon0Tracks, kaon1Tracks); @@ -580,7 +579,7 @@ struct HfTaskBsToJpsiPhiReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaon0Tracks, kaon1Tracks); @@ -601,7 +600,7 @@ struct HfTaskBsToJpsiPhiReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yBs(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yBs(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesJpsi, kaon0Tracks, kaon1Tracks); diff --git a/PWGHF/D2H/Tasks/taskCd.cxx b/PWGHF/D2H/Tasks/taskCd.cxx index 7684e03ed0e..008fadfe797 100644 --- a/PWGHF/D2H/Tasks/taskCd.cxx +++ b/PWGHF/D2H/Tasks/taskCd.cxx @@ -56,7 +56,6 @@ struct HfTaskCd { Configurable> binsPt{"binsPt", std::vector{hf_cuts_cd_to_de_k_pi::vecBinsPt}, "pT bin limits"}; Configurable fillTHn{"fillTHn", false, "fill THn"}; - HfHelper hfHelper; SliceCache cache; using CollisionsWEvSel = soa::Join; @@ -180,14 +179,14 @@ struct HfTaskCd { const auto cpaXY = candidate.cpaXY(); if (candidate.isSelCdToDeKPi() >= selectionFlagCd) { - registry.fill(HIST("Data/hMass"), hfHelper.invMassCdToDeKPi(candidate)); - registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), hfHelper.invMassCdToDeKPi(candidate), pt, numPvContributors); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassCdToDeKPi(candidate), pt); + registry.fill(HIST("Data/hMass"), HfHelper::invMassCdToDeKPi(candidate)); + registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), HfHelper::invMassCdToDeKPi(candidate), pt, numPvContributors); + registry.fill(HIST("Data/hMassVsPt"), HfHelper::invMassCdToDeKPi(candidate), pt); } if (candidate.isSelCdToPiKDe() >= selectionFlagCd) { - registry.fill(HIST("Data/hMass"), hfHelper.invMassCdToPiKDe(candidate)); - registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), hfHelper.invMassCdToPiKDe(candidate), pt, numPvContributors); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassCdToPiKDe(candidate), pt); + registry.fill(HIST("Data/hMass"), HfHelper::invMassCdToPiKDe(candidate)); + registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), HfHelper::invMassCdToPiKDe(candidate), pt, numPvContributors); + registry.fill(HIST("Data/hMassVsPt"), HfHelper::invMassCdToPiKDe(candidate), pt); } registry.fill(HIST("Data/hPt"), pt); registry.fill(HIST("Data/hPtProng0"), ptProng0); @@ -223,12 +222,12 @@ struct HfTaskCd { float const cent = o2::hf_centrality::getCentralityColl(collision); double massCd(-1); if (candidate.isSelCdToDeKPi() >= selectionFlagCd) { - massCd = hfHelper.invMassCdToDeKPi(candidate); + massCd = HfHelper::invMassCdToDeKPi(candidate); std::vector valuesToFill{massCd, pt, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, cent}; registry.get(HIST("hnCdVars"))->Fill(valuesToFill.data()); } if (candidate.isSelCdToPiKDe() >= selectionFlagCd) { - massCd = hfHelper.invMassCdToPiKDe(candidate); + massCd = HfHelper::invMassCdToPiKDe(candidate); std::vector valuesToFill{massCd, pt, ptProng0, ptProng1, ptProng2, chi2PCA, decayLength, cpa, cent}; registry.get(HIST("hnCdVars"))->Fill(valuesToFill.data()); } diff --git a/PWGHF/D2H/Tasks/taskCharmPolarisation.cxx b/PWGHF/D2H/Tasks/taskCharmPolarisation.cxx index 85168f089b5..0795d6361a2 100644 --- a/PWGHF/D2H/Tasks/taskCharmPolarisation.cxx +++ b/PWGHF/D2H/Tasks/taskCharmPolarisation.cxx @@ -213,7 +213,6 @@ struct HfTaskCharmPolarisation { /// Application of rapidity cut for reconstructed candidates Configurable rapidityCut{"rapidityCut", 999.f, "Max. value of reconstructed candidate rapidity (abs. value)"}; - HfHelper hfHelper; SliceCache cache; EventPlaneHelper epHelper; @@ -1680,8 +1679,8 @@ struct HfTaskCharmPolarisation { invMassCharmHadForSparse = invMassCharmHad; } else { /// original candidate (kaon track not rotated) - invMassCharmHad = hfHelper.invMassLcToPKPi(candidate); - invMassCharmHadForSparse = hfHelper.invMassLcToPKPi(candidate); + invMassCharmHad = HfHelper::invMassLcToPKPi(candidate); + invMassCharmHadForSparse = HfHelper::invMassLcToPKPi(candidate); } if constexpr (WithMl) { if (candidate.mlProbLcToPKPi().size() == NScores) { @@ -1694,14 +1693,14 @@ struct HfTaskCharmPolarisation { } } // invariant mass of the KPi pair - invMassKPiLc = hfHelper.invMassKPiPairLcToPKPi(candidate); - invMassPKLc = hfHelper.invMassPKPairLcToPKPi(candidate); - invMassPPiLc = hfHelper.invMassPPiPairLcToPKPi(candidate); + invMassKPiLc = HfHelper::invMassKPiPairLcToPKPi(candidate); + invMassPKLc = HfHelper::invMassPKPairLcToPKPi(candidate); + invMassPPiLc = HfHelper::invMassPPiPairLcToPKPi(candidate); // D+ and Ds+ invariant mass values, to put a veto on background sources - invMassPiKPi = hfHelper.invMassDplusToPiKPi(candidate); // bkg. from D+ -> K+pi-pi- - invMassKKPi = hfHelper.invMassDsToKKPi(candidate); // bkg. from D+, Ds+ -> K+K-pi+ (1st mass hypothesis) - invMassPiKK = hfHelper.invMassDsToPiKK(candidate); // bkg. from D+, Ds+ -> pi+K-K+ (2nd mass hypothesis) + invMassPiKPi = HfHelper::invMassDplusToPiKPi(candidate); // bkg. from D+ -> K+pi-pi- + invMassKKPi = HfHelper::invMassDsToKKPi(candidate); // bkg. from D+, Ds+ -> K+K-pi+ (1st mass hypothesis) + invMassPiKK = HfHelper::invMassDsToPiKK(candidate); // bkg. from D+, Ds+ -> pi+K-K+ (2nd mass hypothesis) } else if (iMass == charm_polarisation::MassHyposLcToPKPi::PiKP && candidate.isSelLcToPiKP() >= selectionFlagLcToPKPi) { // reconstructed as piKp @@ -1714,8 +1713,8 @@ struct HfTaskCharmPolarisation { invMassCharmHadForSparse = invMassCharmHad; } else { /// original candidate (kaon track not rotated) - invMassCharmHad = hfHelper.invMassLcToPiKP(candidate); - invMassCharmHadForSparse = hfHelper.invMassLcToPiKP(candidate); + invMassCharmHad = HfHelper::invMassLcToPiKP(candidate); + invMassCharmHadForSparse = HfHelper::invMassLcToPiKP(candidate); } if constexpr (WithMl) { if (candidate.mlProbLcToPiKP().size() == NScores) { @@ -1728,14 +1727,14 @@ struct HfTaskCharmPolarisation { } } // invariant mass of the KPi pair - invMassKPiLc = hfHelper.invMassKPiPairLcToPiKP(candidate); - invMassPKLc = hfHelper.invMassPKPairLcToPiKP(candidate); - invMassPPiLc = hfHelper.invMassPPiPairLcToPiKP(candidate); + invMassKPiLc = HfHelper::invMassKPiPairLcToPiKP(candidate); + invMassPKLc = HfHelper::invMassPKPairLcToPiKP(candidate); + invMassPPiLc = HfHelper::invMassPPiPairLcToPiKP(candidate); // D+ and Ds+ invariant mass values, to put a veto on background sources - invMassPiKPi = hfHelper.invMassDplusToPiKPi(candidate); // bkg. from D+ -> K+pi-pi- - invMassKKPi = hfHelper.invMassDsToKKPi(candidate); // bkg. from D+, Ds+ -> K+K-pi+ (1st mass hypothesis) - invMassPiKK = hfHelper.invMassDsToPiKK(candidate); // bkg. from D+, Ds+ -> pi+K-K+ (2nd mass hypothesis) + invMassPiKPi = HfHelper::invMassDplusToPiKPi(candidate); // bkg. from D+ -> K+pi-pi- + invMassKKPi = HfHelper::invMassDsToKKPi(candidate); // bkg. from D+, Ds+ -> K+K-pi+ (1st mass hypothesis) + invMassPiKK = HfHelper::invMassDsToPiKK(candidate); // bkg. from D+, Ds+ -> pi+K-K+ (2nd mass hypothesis) } else { // NB: no need to check cases in which candidate.isSelLcToPKPi() and candidate.isSelLcToPiKP() are both false, because they are rejected already by the Filter diff --git a/PWGHF/D2H/Tasks/taskD0.cxx b/PWGHF/D2H/Tasks/taskD0.cxx index a64369339ea..2daed9bd624 100644 --- a/PWGHF/D2H/Tasks/taskD0.cxx +++ b/PWGHF/D2H/Tasks/taskD0.cxx @@ -89,7 +89,6 @@ struct HfTaskD0 { Configurable ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Configurable irSource{"irSource", "ZNC hadronic", "Estimator of the interaction rate (Recommended: pp --> T0VTX, Pb-Pb --> ZNC hadronic)"}; - HfHelper hfHelper; ctpRateFetcher mRateFetcher; SliceCache cache; @@ -347,7 +346,7 @@ struct HfTaskD0 { if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yD0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yD0(candidate)) > yCandRecoMax) { continue; } @@ -356,8 +355,8 @@ struct HfTaskD0 { massD0 = candidate.kfGeoMassD0(); massD0bar = candidate.kfGeoMassD0bar(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } auto ptCandidate = candidate.pt(); @@ -385,8 +384,8 @@ struct HfTaskD0 { registry.fill(HIST("hd0ErrProng0"), candidate.errorImpactParameter0(), ptCandidate); registry.fill(HIST("hd0ErrProng1"), candidate.errorImpactParameter1(), ptCandidate); registry.fill(HIST("hd0d0"), candidate.impactParameterProduct(), ptCandidate); - registry.fill(HIST("hCTS"), hfHelper.cosThetaStarD0(candidate), ptCandidate); - registry.fill(HIST("hCt"), hfHelper.ctD0(candidate), ptCandidate); + registry.fill(HIST("hCTS"), HfHelper::cosThetaStarD0(candidate), ptCandidate); + registry.fill(HIST("hCt"), HfHelper::ctD0(candidate), ptCandidate); registry.fill(HIST("hCPA"), candidate.cpa(), ptCandidate); registry.fill(HIST("hEta"), candidate.eta(), ptCandidate); registry.fill(HIST("hSelectionStatus"), candidate.isSelD0() + (candidate.isSelD0bar() * 2), ptCandidate); @@ -395,8 +394,8 @@ struct HfTaskD0 { registry.fill(HIST("hd0Prong0FinerBinning"), candidate.impactParameter0(), ptCandidate); registry.fill(HIST("hd0Prong1FinerBinning"), candidate.impactParameter1(), ptCandidate); registry.fill(HIST("hd0d0FinerBinning"), candidate.impactParameterProduct(), ptCandidate); - registry.fill(HIST("hCTSFinerBinning"), hfHelper.cosThetaStarD0(candidate), ptCandidate); - registry.fill(HIST("hCtFinerBinning"), hfHelper.ctD0(candidate), ptCandidate); + registry.fill(HIST("hCTSFinerBinning"), HfHelper::cosThetaStarD0(candidate), ptCandidate); + registry.fill(HIST("hCtFinerBinning"), HfHelper::ctD0(candidate), ptCandidate); registry.fill(HIST("hCPAFinerBinning"), candidate.cpa(), ptCandidate); registry.fill(HIST("hCPAXYFinerBinning"), candidate.cpaXY(), ptCandidate); @@ -422,95 +421,95 @@ struct HfTaskD0 { if constexpr (ApplyMl) { if (storeCentrality && storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, cent, occ, ir); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, cent, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent, occ, ir); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, cent, occ, ir); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, cent, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent, occ, ir); } } else if (storeCentrality && !storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, cent); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, cent); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, cent); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, cent); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent); } } else if (!storeCentrality && storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, occ, ir); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, occ, ir); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, occ, ir); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, occ, ir); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, occ, ir); } } else if (storeTrackQuality) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); } } else { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), SigD0); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), SigD0); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0()[0], candidate.mlProbD0()[1], candidate.mlProbD0()[2], massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar); - registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar); + registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type"), candidate.mlProbD0bar()[0], candidate.mlProbD0bar()[1], candidate.mlProbD0bar()[2], massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); } } } else { if (storeCentrality && storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, cent, occ, ir); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, cent, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent, occ, ir); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, cent, occ, ir); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, cent, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent, occ, ir); } } else if (storeCentrality && !storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, cent); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, cent); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, cent); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, cent); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, cent); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, cent); } } else if (!storeCentrality && storeOccupancyAndIR) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, occ, ir); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, occ, ir); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar, occ, ir); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar, occ, ir); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar, occ, ir); } } else if (storeTrackQuality) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), SigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), SigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0, minItsClustersOfProngs, minTpcCrossedRowsOfProngs); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); } } else { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), SigD0); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), SigD0); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0bar() ? ReflectedD0 : PureSigD0); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), SigD0bar); - registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, hfHelper.yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), SigD0bar); + registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsD0Type"), massD0bar, ptCandidate, HfHelper::yD0(candidate), candidate.isSelD0() ? ReflectedD0bar : PureSigD0bar); } } } @@ -567,7 +566,7 @@ struct HfTaskD0 { if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yD0(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yD0(candidate)) > yCandRecoMax) { continue; } @@ -589,8 +588,8 @@ struct HfTaskD0 { massD0 = candidate.kfGeoMassD0(); massD0bar = candidate.kfGeoMassD0bar(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } auto trackPos = candidate.template prong0_as(); // positive daughter auto trackNeg = candidate.template prong1_as(); // negative daughter @@ -602,7 +601,7 @@ struct HfTaskD0 { auto yGen = RecoDecay::y(particleMother.pVector(), o2::constants::physics::MassD0); // gen. level y registry.fill(HIST("hPtGenSig"), ptGen); // gen. level pT auto ptRec = candidate.pt(); - auto yRec = hfHelper.yD0(candidate); + auto yRec = HfHelper::yD0(candidate); if (candidate.isRecoHfFlag() >= selectionFlagHf) { registry.fill(HIST("hPtVsYRecSigRecoHFFlag"), ptRec, yRec); registry.fill(HIST("hPtGenVsPtRecSig"), ptGen, ptRec); @@ -672,7 +671,7 @@ struct HfTaskD0 { auto ptCandidate = candidate.pt(); auto ptProng0 = candidate.ptProng0(); auto ptProng1 = candidate.ptProng1(); - auto rapidityCandidate = hfHelper.yD0(candidate); + auto rapidityCandidate = HfHelper::yD0(candidate); auto declengthCandidate = candidate.decayLength(); auto declengthxyCandidate = candidate.decayLengthXY(); auto normaliseddeclengthCandidate = candidate.decayLengthNormalised(); @@ -680,8 +679,8 @@ struct HfTaskD0 { auto d0Prong0 = candidate.impactParameter0(); auto d0Prong1 = candidate.impactParameter1(); auto d0d0Candidate = candidate.impactParameterProduct(); - auto ctsCandidate = hfHelper.cosThetaStarD0(candidate); - auto ctCandidate = hfHelper.ctD0(candidate); + auto ctsCandidate = HfHelper::cosThetaStarD0(candidate); + auto ctCandidate = HfHelper::ctD0(candidate); auto cpaCandidate = candidate.cpa(); auto cpaxyCandidate = candidate.cpaXY(); int const minItsClustersOfProngs = std::min(trackPos.itsNCls(), trackNeg.itsNCls()); diff --git a/PWGHF/D2H/Tasks/taskDirectedFlowCharmHadrons.cxx b/PWGHF/D2H/Tasks/taskDirectedFlowCharmHadrons.cxx index 417c03ab8a6..4826a11ded2 100644 --- a/PWGHF/D2H/Tasks/taskDirectedFlowCharmHadrons.cxx +++ b/PWGHF/D2H/Tasks/taskDirectedFlowCharmHadrons.cxx @@ -71,7 +71,6 @@ struct HfTaskDirectedFlowCharmHadrons { Configurable ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Configurable> classMl{"classMl", {0, 2}, "Indices of BDT scores to be stored. Two indexes max."}; - HfHelper hfHelper; EventPlaneHelper epHelper; SliceCache cache; HfEventSelection hfEvSel; // event selection and monitoring @@ -253,8 +252,8 @@ struct HfTaskDirectedFlowCharmHadrons { double signDstarCand = 0.0; std::vector outputMl = {-999., -999.}; if constexpr (std::is_same_v || std::is_same_v) { - massCand = hfHelper.invMassDplusToPiKPi(candidate); - rapCand = hfHelper.yDplus(candidate); + massCand = HfHelper::invMassDplusToPiKPi(candidate); + rapCand = HfHelper::yDplus(candidate); auto trackprong0 = candidate.template prong0_as(); sign = trackprong0.sign(); if constexpr (std::is_same_v) { @@ -265,8 +264,8 @@ struct HfTaskDirectedFlowCharmHadrons { } else if constexpr (std::is_same_v || std::is_same_v) { switch (Channel) { case DecayChannel::D0ToPiK: - massCand = hfHelper.invMassD0ToPiK(candidate); - rapCand = hfHelper.yD0(candidate); + massCand = HfHelper::invMassD0ToPiK(candidate); + rapCand = HfHelper::yD0(candidate); sign = candidate.isSelD0bar() ? 3 : 1; // 3: reflected D0bar, 1: pure D0 excluding reflected D0bar if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { @@ -275,8 +274,8 @@ struct HfTaskDirectedFlowCharmHadrons { } break; case DecayChannel::D0ToKPi: - massCand = hfHelper.invMassD0barToKPi(candidate); - rapCand = hfHelper.yD0(candidate); + massCand = HfHelper::invMassD0barToKPi(candidate); + rapCand = HfHelper::yD0(candidate); sign = candidate.isSelD0() ? 3 : 2; // 3: reflected D0, 2: pure D0bar excluding reflected D0 if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { diff --git a/PWGHF/D2H/Tasks/taskDplus.cxx b/PWGHF/D2H/Tasks/taskDplus.cxx index 7a4851d4766..25b7f50ebb0 100644 --- a/PWGHF/D2H/Tasks/taskDplus.cxx +++ b/PWGHF/D2H/Tasks/taskDplus.cxx @@ -73,8 +73,6 @@ struct HfTaskDplus { Configurable storePvContributors{"storePvContributors", false, "Flag to store number of PV contributors information"}; Configurable fillMcBkgHistos{"fillMcBkgHistos", false, "Flag to fill and store histograms for MC background"}; - HfHelper hfHelper; - using CandDplusData = soa::Filtered>; using CandDplusDataWithMl = soa::Filtered>; using CandDplusMcReco = soa::Filtered>; @@ -248,10 +246,10 @@ struct HfTaskDplus { void fillHisto(const T1& candidate) { float const pt = candidate.pt(); - registry.fill(HIST("hMass"), hfHelper.invMassDplusToPiKPi(candidate), pt); + registry.fill(HIST("hMass"), HfHelper::invMassDplusToPiKPi(candidate), pt); registry.fill(HIST("hPt"), pt); registry.fill(HIST("hEta"), candidate.eta(), pt); - registry.fill(HIST("hCt"), hfHelper.ctDplus(candidate), pt); + registry.fill(HIST("hCt"), HfHelper::ctDplus(candidate), pt); registry.fill(HIST("hDecayLength"), candidate.decayLength(), pt); registry.fill(HIST("hDecayLengthXY"), candidate.decayLengthXY(), pt); registry.fill(HIST("hNormalisedDecayLengthXY"), candidate.decayLengthXYNormalised(), pt); @@ -297,70 +295,70 @@ struct HfTaskDplus { if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { // Prompt if (storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassPrompt"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); + registry.fill(HIST("hSparseMassPrompt"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); } else if (storeCentrality && !storeOccupancy) { - registry.fill(HIST("hSparseMassPrompt"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); + registry.fill(HIST("hSparseMassPrompt"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); } else if (!storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassPrompt"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); + registry.fill(HIST("hSparseMassPrompt"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { - registry.fill(HIST("hSparseMassPrompt"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); + registry.fill(HIST("hSparseMassPrompt"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); } else { - registry.fill(HIST("hSparseMassPrompt"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); + registry.fill(HIST("hSparseMassPrompt"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); } } else if (candidate.originMcRec() == RecoDecay::OriginType::NonPrompt) { // FD if (storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy, ptbhad, flagBHad); + registry.fill(HIST("hSparseMassFD"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy, ptbhad, flagBHad); } else if (storeCentrality && !storeOccupancy) { - registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, ptbhad, flagBHad); + registry.fill(HIST("hSparseMassFD"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, ptbhad, flagBHad); } else if (!storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy, ptbhad, flagBHad); + registry.fill(HIST("hSparseMassFD"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy, ptbhad, flagBHad); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { - registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors, ptbhad, flagBHad); + registry.fill(HIST("hSparseMassFD"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors, ptbhad, flagBHad); } else { - registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], ptbhad, flagBHad); + registry.fill(HIST("hSparseMassFD"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], ptbhad, flagBHad); } } else { // Bkg if (fillMcBkgHistos) { if (storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); + registry.fill(HIST("hSparseMassBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); } else if (storeCentrality && !storeOccupancy) { - registry.fill(HIST("hSparseMassBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); + registry.fill(HIST("hSparseMassBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); } else if (!storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); + registry.fill(HIST("hSparseMassBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { - registry.fill(HIST("hSparseMassBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); + registry.fill(HIST("hSparseMassBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); } else { - registry.fill(HIST("hSparseMassBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); + registry.fill(HIST("hSparseMassBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); } } } } else { if (storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassNotMatched"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); + registry.fill(HIST("hSparseMassNotMatched"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); } else if (storeCentrality && !storeOccupancy) { - registry.fill(HIST("hSparseMassNotMatched"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); + registry.fill(HIST("hSparseMassNotMatched"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); } else if (!storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMassNotMatched"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); + registry.fill(HIST("hSparseMassNotMatched"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { - registry.fill(HIST("hSparseMassNotMatched"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); + registry.fill(HIST("hSparseMassNotMatched"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); } else { - registry.fill(HIST("hSparseMassNotMatched"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); + registry.fill(HIST("hSparseMassNotMatched"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); } } } else { // Data if (storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMass"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); } else if (storeCentrality && !storeOccupancy) { - registry.fill(HIST("hSparseMass"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); } else if (!storeCentrality && storeOccupancy) { - registry.fill(HIST("hSparseMass"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { - registry.fill(HIST("hSparseMass"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors); } else { - registry.fill(HIST("hSparseMass"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); } } } @@ -372,7 +370,7 @@ struct HfTaskDplus { { if constexpr (IsMatched) { auto ptRec = candidate.pt(); - auto yRec = hfHelper.yDplus(candidate); + auto yRec = HfHelper::yDplus(candidate); registry.fill(HIST("hPtVsYRecSig_RecoSkim"), ptRec, yRec); if (TESTBIT(candidate.isSelDplusToPiKPi(), aod::SelectionStep::RecoTopol)) { registry.fill(HIST("hPtVsYRecSigRecoTopol"), ptRec, yRec); @@ -489,14 +487,14 @@ struct HfTaskDplus { int const flagBHad{-1}; if constexpr (!FillMl) { for (const auto& candidate : selectedDPlusCandidates) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } fillHisto(candidate); } } else { for (const auto& candidate : selectedDPlusCandidatesWithMl) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } @@ -534,7 +532,7 @@ struct HfTaskDplus { // MC rec. w/o Ml if constexpr (!FillMl) { for (const auto& candidate : recoDPlusCandidates) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } fillHisto(candidate); @@ -543,7 +541,7 @@ struct HfTaskDplus { // Bkg if (fillMcBkgHistos) { for (const auto& candidate : recoBkgCandidates) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } fillHistoMCRec(candidate); @@ -551,7 +549,7 @@ struct HfTaskDplus { } } else { for (const auto& candidate : recoDPlusCandidatesWithMl) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } ptBhad = candidate.ptBhadMotherPart(); @@ -577,7 +575,7 @@ struct HfTaskDplus { flagBHad = -1; if (fillMcBkgHistos) { for (const auto& candidate : recoBkgCandidatesWithMl) { - if ((yCandRecoMax >= 0. && std::abs(hfHelper.yDplus(candidate)) > yCandRecoMax)) { + if ((yCandRecoMax >= 0. && std::abs(HfHelper::yDplus(candidate)) > yCandRecoMax)) { continue; } auto collision = candidate.template collision_as(); diff --git a/PWGHF/D2H/Tasks/taskDs.cxx b/PWGHF/D2H/Tasks/taskDs.cxx index eb93b29ba17..c28f251256d 100644 --- a/PWGHF/D2H/Tasks/taskDs.cxx +++ b/PWGHF/D2H/Tasks/taskDs.cxx @@ -124,7 +124,6 @@ struct HfTaskDs { Configurable reconstructionPass{"reconstructionPass", "", {"Apass to use when fetching the calibration tables. Empty (default) does not check for any pass. Use `metadata` to fetch it from the AO2D metadata. Otherwise it will override the metadata."}}; } ccdbConfig; - HfHelper hfHelper; SliceCache cache; Service ccdb; @@ -353,7 +352,7 @@ struct HfTaskDs { bool isCandInSignalRegion(const CandDs& candidate, bool isDs) { bool const isKKPi = candidate.isSelDsToKKPi() >= selectionFlagDs; - float const invMass = isKKPi ? hfHelper.invMassDsToKKPi(candidate) : hfHelper.invMassDsToPiKK(candidate); + float const invMass = isKKPi ? HfHelper::invMassDsToKKPi(candidate) : HfHelper::invMassDsToPiKK(candidate); if (isDs && (invMass < massDsSignalMin || invMass > massDsSignalMax)) { return false; } @@ -441,7 +440,7 @@ struct HfTaskDs { std::get(histosPtr[dataType]["hPtProng1"])->Fill(candidate.ptProng1()); std::get(histosPtr[dataType]["hPtProng2"])->Fill(candidate.ptProng2()); std::get(histosPtr[dataType]["hEta"])->Fill(candidate.eta(), pt); - std::get(histosPtr[dataType]["hCt"])->Fill(hfHelper.ctDs(candidate), pt); + std::get(histosPtr[dataType]["hCt"])->Fill(HfHelper::ctDs(candidate), pt); std::get(histosPtr[dataType]["hDecayLength"])->Fill(candidate.decayLength(), pt); std::get(histosPtr[dataType]["hDecayLengthXY"])->Fill(candidate.decayLengthXY(), pt); std::get(histosPtr[dataType]["hNormalisedDecayLengthXY"])->Fill(candidate.decayLengthXYNormalised(), pt); @@ -467,7 +466,7 @@ struct HfTaskDs { template void fillSparse(const Cand& candidate, DataType dataType, FinalState finalState) { - auto mass = finalState == FinalState::KKPi ? hfHelper.invMassDsToKKPi(candidate) : hfHelper.invMassDsToPiKK(candidate); + auto mass = finalState == FinalState::KKPi ? HfHelper::invMassDsToKKPi(candidate) : HfHelper::invMassDsToPiKK(candidate); auto pt = candidate.pt(); auto mlScore = finalState == FinalState::KKPi ? candidate.mlProbDsToKKPi() : candidate.mlProbDsToPiKK(); @@ -512,7 +511,7 @@ struct HfTaskDs { template void fillSparse(const Cand& candidate, DataType dataType, FinalState finalState) { - auto mass = finalState == FinalState::KKPi ? hfHelper.invMassDsToKKPi(candidate) : hfHelper.invMassDsToPiKK(candidate); + auto mass = finalState == FinalState::KKPi ? HfHelper::invMassDsToKKPi(candidate) : HfHelper::invMassDsToPiKK(candidate); auto pt = candidate.pt(); if (dataType == DataType::Data) { // If data do not fill PV contributors in sparse @@ -550,10 +549,10 @@ struct HfTaskDs { auto pt = candidate.pt(); fillSparse(candidate, dataType, FinalState::KKPi); - std::get(histosPtr[dataType]["hCos3PiK"])->Fill(hfHelper.cos3PiKDsToKKPi(candidate), pt); - std::get(histosPtr[dataType]["hAbsCos3PiK"])->Fill(hfHelper.absCos3PiKDsToKKPi(candidate), pt); - std::get(histosPtr[dataType]["hDeltaMassPhi"])->Fill(hfHelper.deltaMassPhiDsToKKPi(candidate), pt); - std::get(histosPtr[dataType]["hMassKK"])->Fill(hfHelper.massKKPairDsToKKPi(candidate), pt); + std::get(histosPtr[dataType]["hCos3PiK"])->Fill(HfHelper::cos3PiKDsToKKPi(candidate), pt); + std::get(histosPtr[dataType]["hAbsCos3PiK"])->Fill(HfHelper::absCos3PiKDsToKKPi(candidate), pt); + std::get(histosPtr[dataType]["hDeltaMassPhi"])->Fill(HfHelper::deltaMassPhiDsToKKPi(candidate), pt); + std::get(histosPtr[dataType]["hMassKK"])->Fill(HfHelper::massKKPairDsToKKPi(candidate), pt); } /// Fill histograms of quantities for the PiKK daugther-mass hypothesis @@ -565,10 +564,10 @@ struct HfTaskDs { auto pt = candidate.pt(); fillSparse(candidate, dataType, FinalState::PiKK); - std::get(histosPtr[dataType]["hCos3PiK"])->Fill(hfHelper.cos3PiKDsToPiKK(candidate), pt); - std::get(histosPtr[dataType]["hAbsCos3PiK"])->Fill(hfHelper.absCos3PiKDsToPiKK(candidate), pt); - std::get(histosPtr[dataType]["hDeltaMassPhi"])->Fill(hfHelper.deltaMassPhiDsToPiKK(candidate), pt); - std::get(histosPtr[dataType]["hMassKK"])->Fill(hfHelper.massKKPairDsToPiKK(candidate), pt); + std::get(histosPtr[dataType]["hCos3PiK"])->Fill(HfHelper::cos3PiKDsToPiKK(candidate), pt); + std::get(histosPtr[dataType]["hAbsCos3PiK"])->Fill(HfHelper::absCos3PiKDsToPiKK(candidate), pt); + std::get(histosPtr[dataType]["hDeltaMassPhi"])->Fill(HfHelper::deltaMassPhiDsToPiKK(candidate), pt); + std::get(histosPtr[dataType]["hMassKK"])->Fill(HfHelper::massKKPairDsToPiKK(candidate), pt); } /// Fill MC histograms at reconstruction level @@ -595,7 +594,7 @@ struct HfTaskDs { auto pt = candidate.pt(); // rec. level pT if (candidate.isSelDsToKKPi() >= selectionFlagDs) { // KKPi - auto yCand = candidate.y(hfHelper.invMassDsToKKPi(candidate)); + auto yCand = candidate.y(HfHelper::invMassDsToKKPi(candidate)); if (yCandRecoMax >= 0. && std::abs(yCand) > yCandRecoMax) { return; } @@ -613,7 +612,7 @@ struct HfTaskDs { } } if (candidate.isSelDsToPiKK() >= selectionFlagDs) { // PiKK - auto yCand = candidate.y(hfHelper.invMassDsToPiKK(candidate)); + auto yCand = candidate.y(HfHelper::invMassDsToPiKK(candidate)); if (yCandRecoMax >= 0. && std::abs(yCand) > yCandRecoMax) { return; } @@ -637,14 +636,14 @@ struct HfTaskDs { void runDataAnalysisPerCandidate(CandDs const& candidate) { if (candidate.isSelDsToKKPi() >= selectionFlagDs) { // KKPi - if (yCandRecoMax >= 0. && std::abs(candidate.y(hfHelper.invMassDsToKKPi(candidate))) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(candidate.y(HfHelper::invMassDsToKKPi(candidate))) > yCandRecoMax) { return; } fillHisto(candidate, DataType::Data); fillHistoKKPi(candidate, DataType::Data); } if (candidate.isSelDsToPiKK() >= selectionFlagDs) { // PiKK - if (yCandRecoMax >= 0. && std::abs(candidate.y(hfHelper.invMassDsToPiKK(candidate))) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(candidate.y(HfHelper::invMassDsToPiKK(candidate))) > yCandRecoMax) { return; } fillHisto(candidate, DataType::Data); @@ -677,14 +676,14 @@ struct HfTaskDs { if (candidate.isSelDsToKKPi() >= selectionFlagDs || candidate.isSelDsToPiKK() >= selectionFlagDs) { if (candidate.isSelDsToKKPi() >= selectionFlagDs) { // KKPi - if (yCandRecoMax >= 0. && std::abs(candidate.y(hfHelper.invMassDsToKKPi(candidate))) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(candidate.y(HfHelper::invMassDsToKKPi(candidate))) > yCandRecoMax) { return; } fillHisto(candidate, DataType::McBkg); fillHistoKKPi(candidate, DataType::McBkg); } if (candidate.isSelDsToPiKK() >= selectionFlagDs) { // PiKK - if (yCandRecoMax >= 0. && std::abs(candidate.y(hfHelper.invMassDsToPiKK(candidate))) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(candidate.y(HfHelper::invMassDsToPiKK(candidate))) > yCandRecoMax) { return; } fillHisto(candidate, DataType::McBkg); diff --git a/PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx b/PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx index 4aa872b7e4e..615437bb6b6 100644 --- a/PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx +++ b/PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx @@ -118,7 +118,6 @@ struct HfTaskFlowCharmHadrons { Configurable ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Configurable> classMl{"classMl", {0, 2}, "Indexes of BDT scores to be stored. Two indexes max."}; - HfHelper hfHelper; EventPlaneHelper epHelper; HfEventSelection hfEvSel; // event selection and monitoring o2::framework::Service ccdb; @@ -567,7 +566,7 @@ struct HfTaskFlowCharmHadrons { if constexpr (std::is_same_v || std::is_same_v) { switch (Channel) { case DecayChannel::DsToKKPi: - massCand = hfHelper.invMassDsToKKPi(candidate); + massCand = HfHelper::invMassDsToKKPi(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; @@ -575,7 +574,7 @@ struct HfTaskFlowCharmHadrons { } break; case DecayChannel::DsToPiKK: - massCand = hfHelper.invMassDsToPiKK(candidate); + massCand = HfHelper::invMassDsToPiKK(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; @@ -586,7 +585,7 @@ struct HfTaskFlowCharmHadrons { break; } } else if constexpr (std::is_same_v || std::is_same_v) { - massCand = hfHelper.invMassDplusToPiKPi(candidate); + massCand = HfHelper::invMassDplusToPiKPi(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)]; @@ -596,7 +595,7 @@ struct HfTaskFlowCharmHadrons { nProngs = 2; switch (Channel) { case DecayChannel::D0ToPiK: - massCand = hfHelper.invMassD0ToPiK(candidate); + massCand = HfHelper::invMassD0ToPiK(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbD0()[classMl->at(iclass)]; @@ -604,7 +603,7 @@ struct HfTaskFlowCharmHadrons { } break; case DecayChannel::D0ToKPi: - massCand = hfHelper.invMassD0barToKPi(candidate); + massCand = HfHelper::invMassD0barToKPi(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbD0bar()[classMl->at(iclass)]; @@ -617,7 +616,7 @@ struct HfTaskFlowCharmHadrons { } else if constexpr (std::is_same_v || std::is_same_v) { switch (Channel) { case DecayChannel::LcToPKPi: - massCand = hfHelper.invMassLcToPKPi(candidate); + massCand = HfHelper::invMassLcToPKPi(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPKPi()[classMl->at(iclass)]; @@ -625,7 +624,7 @@ struct HfTaskFlowCharmHadrons { } break; case DecayChannel::LcToPiKP: - massCand = hfHelper.invMassLcToPiKP(candidate); + massCand = HfHelper::invMassLcToPiKP(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPiKP()[classMl->at(iclass)]; @@ -638,7 +637,7 @@ struct HfTaskFlowCharmHadrons { } else if constexpr (std::is_same_v || std::is_same_v) { switch (Channel) { case DecayChannel::XicToPKPi: - massCand = hfHelper.invMassXicToPKPi(candidate); + massCand = HfHelper::invMassXicToPKPi(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbXicToPKPi()[classMl->at(iclass)]; @@ -646,7 +645,7 @@ struct HfTaskFlowCharmHadrons { } break; case DecayChannel::XicToPiKP: - massCand = hfHelper.invMassXicToPiKP(candidate); + massCand = HfHelper::invMassXicToPiKP(candidate); if constexpr (std::is_same_v) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbXicToPiKP()[classMl->at(iclass)]; diff --git a/PWGHF/D2H/Tasks/taskLb.cxx b/PWGHF/D2H/Tasks/taskLb.cxx index feb4444386d..b65bd04bf7f 100644 --- a/PWGHF/D2H/Tasks/taskLb.cxx +++ b/PWGHF/D2H/Tasks/taskLb.cxx @@ -71,7 +71,6 @@ struct HfTaskLb { Configurable largeLifetimeBG{"largeLifetimeBG", 0.01, "fraction of strange contribution within 2mm"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lb_to_lc_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; Service pdg; using TracksWExt = soa::Join; @@ -245,7 +244,7 @@ struct HfTaskLb { registry.get(HIST("hIPsAfterCut"))->Fill(candidateLc.pt(), candidateLc.impactParameter1()); registry.get(HIST("hIPsAfterCut"))->Fill(candidateLc.pt(), candidateLc.impactParameter2()); if (candidateLc.isSelLcToPKPi() != 0) { - registry.get(HIST("hPtinvMassLc"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPKPi(candidateLc)); + registry.get(HIST("hPtinvMassLc"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPKPi(candidateLc)); float const mRecoKstar = RecoDecay::m(std::array{track1.pVector(), track2.pVector()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); float const mRecoDelta1232 = RecoDecay::m(std::array{track0.pVector(), track2.pVector()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassPiPlus}); float const mRecoLambda1520 = RecoDecay::m(std::array{track0.pVector(), track1.pVector()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassKPlus}); @@ -253,26 +252,26 @@ struct HfTaskLb { float const mDiffDelta1232 = std::abs(mRecoDelta1232 - massDelta1232); float const mDiffLambda1520 = std::abs(mRecoLambda1520 - o2::constants::physics::MassLambda1520); if (mDiffKStar892 < mDiffKStar892Max || mDiffDelta1232 < mDiffDelta1232Max || mDiffLambda1520 < mDiffLambda1520Max) { - registry.get(HIST("hPtinvMassLcReso"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPKPi(candidateLc)); + registry.get(HIST("hPtinvMassLcReso"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPKPi(candidateLc)); } if (mDiffKStar892 < mDiffKStar892Max) { - registry.get(HIST("hPtinvMassLcKStar"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPKPi(candidateLc)); + registry.get(HIST("hPtinvMassLcKStar"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPKPi(candidateLc)); } if (mDiffDelta1232 < mDiffDelta1232Max) { - registry.get(HIST("hPtinvMassLcDelta"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPKPi(candidateLc)); + registry.get(HIST("hPtinvMassLcDelta"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPKPi(candidateLc)); } if (mDiffLambda1520 < mDiffLambda1520Max) { - registry.get(HIST("hPtinvMassLcLambda1520"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPKPi(candidateLc)); + registry.get(HIST("hPtinvMassLcLambda1520"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPKPi(candidateLc)); } - if (std::abs(hfHelper.invMassLcToPKPi(candidateLc) - o2::constants::physics::MassLambdaCPlus) < mDiffLcMax) { + if (std::abs(HfHelper::invMassLcToPKPi(candidateLc) - o2::constants::physics::MassLambdaCPlus) < mDiffLcMax) { registry.get(HIST("hPtinvMassKStar"))->Fill(candidateLc.pt(), mRecoKstar); registry.get(HIST("hPtinvMassDelta"))->Fill(candidateLc.pt(), mRecoDelta1232); registry.get(HIST("hPtinvMassLambda1520"))->Fill(candidateLc.pt(), mRecoLambda1520); } } if (candidateLc.isSelLcToPiKP() != 0) { - registry.get(HIST("hPtinvMassLc"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPiKP(candidateLc)); + registry.get(HIST("hPtinvMassLc"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPiKP(candidateLc)); float const mRecoKstar = RecoDecay::m(std::array{track1.pVector(), track0.pVector()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus}); float const mRecoDelta1232 = RecoDecay::m(std::array{track2.pVector(), track0.pVector()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassPiPlus}); float const mRecoLambda1520 = RecoDecay::m(std::array{track2.pVector(), track1.pVector()}, std::array{o2::constants::physics::MassProton, o2::constants::physics::MassKPlus}); @@ -280,19 +279,19 @@ struct HfTaskLb { float const mDiffDelta1232 = std::abs(mRecoDelta1232 - massDelta1232); float const mDiffLambda1520 = std::abs(mRecoLambda1520 - o2::constants::physics::MassLambda1520); if (mDiffKStar892 < mDiffKStar892Max || mDiffDelta1232 < mDiffDelta1232Max || mDiffLambda1520 < mDiffLambda1520Max) { - registry.get(HIST("hPtinvMassLcReso"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPiKP(candidateLc)); + registry.get(HIST("hPtinvMassLcReso"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPiKP(candidateLc)); } if (mDiffKStar892 < mDiffKStar892Max) { - registry.get(HIST("hPtinvMassLcKStar"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPiKP(candidateLc)); + registry.get(HIST("hPtinvMassLcKStar"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPiKP(candidateLc)); } if (mDiffDelta1232 < mDiffDelta1232Max) { - registry.get(HIST("hPtinvMassLcDelta"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPiKP(candidateLc)); + registry.get(HIST("hPtinvMassLcDelta"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPiKP(candidateLc)); } if (mDiffLambda1520 < mDiffLambda1520Max) { - registry.get(HIST("hPtinvMassLcLambda1520"))->Fill(candidateLc.pt(), hfHelper.invMassLcToPiKP(candidateLc)); + registry.get(HIST("hPtinvMassLcLambda1520"))->Fill(candidateLc.pt(), HfHelper::invMassLcToPiKP(candidateLc)); } - if (std::abs(hfHelper.invMassLcToPiKP(candidateLc) - o2::constants::physics::MassLambdaCPlus) < mDiffLcMax) { + if (std::abs(HfHelper::invMassLcToPiKP(candidateLc) - o2::constants::physics::MassLambdaCPlus) < mDiffLcMax) { registry.get(HIST("hPtinvMassKStar"))->Fill(candidateLc.pt(), mRecoKstar); registry.get(HIST("hPtinvMassDelta"))->Fill(candidateLc.pt(), mRecoDelta1232); registry.get(HIST("hPtinvMassLambda1520"))->Fill(candidateLc.pt(), mRecoLambda1520); @@ -302,7 +301,7 @@ struct HfTaskLb { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } registry.get(HIST("hZVertex"))->Fill(collision.posZ()); @@ -326,10 +325,10 @@ struct HfTaskLb { if (likelihoodRatio < minLikelihoodRatio) { continue; // Larger likelihood means more likely to be signal } - float const lbMass = hfHelper.invMassLbToLcPi(candidate); + float const lbMass = HfHelper::invMassLbToLcPi(candidate); registry.get(HIST("hPtinvMassLb"))->Fill(candidate.pt(), lbMass); - registry.fill(HIST("hMass"), hfHelper.invMassLbToLcPi(candidate), candidate.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassLbToLcPi(candidate), candidate.pt()); registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -340,7 +339,7 @@ struct HfTaskLb { registry.fill(HIST("hd0Prong1"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hCPA"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEta"), candidate.eta(), candidate.pt()); - registry.fill(HIST("hRapidity"), hfHelper.yLb(candidate), candidate.pt()); + registry.fill(HIST("hRapidity"), HfHelper::yLb(candidate), candidate.pt()); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter0(), candidate.pt()); registry.fill(HIST("hImpParErr"), candidate.errorImpactParameter1(), candidate.pt()); registry.fill(HIST("hDecLenErr"), candidate.errorDecayLength(), candidate.pt()); @@ -358,7 +357,7 @@ struct HfTaskLb { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } auto candLc = candidate.prong0_as>(); @@ -373,10 +372,10 @@ struct HfTaskLb { registry.fill(HIST("MC/hCPARecSig"), candidate.cpa(), candidate.pt()); registry.fill(HIST("MC/hCPAxyRecSig"), candidate.cpa(), candidate.pt()); registry.fill(HIST("MC/hEtaRecSig"), candidate.eta(), candidate.pt()); - registry.fill(HIST("MC/hRapidityRecSig"), hfHelper.yLb(candidate), candidate.pt()); + registry.fill(HIST("MC/hRapidityRecSig"), HfHelper::yLb(candidate), candidate.pt()); registry.fill(HIST("MC/hDecLengthRecSig"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("MC/hDecLengthXYRecSig"), candidate.decayLengthXY(), candidate.pt()); - registry.fill(HIST("MC/hMassRecSig"), hfHelper.invMassLbToLcPi(candidate), candidate.pt()); + registry.fill(HIST("MC/hMassRecSig"), HfHelper::invMassLbToLcPi(candidate), candidate.pt()); registry.fill(HIST("MC/hd0Prong0RecSig"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("MC/hd0Prong1RecSig"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("MC/hPtProng0RecSig"), candidate.ptProng0(), candidate.pt()); @@ -392,10 +391,10 @@ struct HfTaskLb { registry.fill(HIST("MC/hCPARecBg"), candidate.cpa(), candidate.pt()); registry.fill(HIST("MC/hCPAxyRecBg"), candidate.cpa(), candidate.pt()); registry.fill(HIST("MC/hEtaRecBg"), candidate.eta(), candidate.pt()); - registry.fill(HIST("MC/hRapidityRecBg"), hfHelper.yLb(candidate), candidate.pt()); + registry.fill(HIST("MC/hRapidityRecBg"), HfHelper::yLb(candidate), candidate.pt()); registry.fill(HIST("MC/hDecLengthRecBg"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("MC/hDecLengthXYRecBg"), candidate.decayLengthXY(), candidate.pt()); - registry.fill(HIST("MC/hMassRecBg"), hfHelper.invMassLbToLcPi(candidate), candidate.pt()); + registry.fill(HIST("MC/hMassRecBg"), HfHelper::invMassLbToLcPi(candidate), candidate.pt()); registry.fill(HIST("MC/hd0Prong0RecBg"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("MC/hd0Prong1RecBg"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("MC/hPtProng0RecBg"), candidate.ptProng0(), candidate.pt()); diff --git a/PWGHF/D2H/Tasks/taskLbReduced.cxx b/PWGHF/D2H/Tasks/taskLbReduced.cxx index f47e06d84c5..b8ba64cb42a 100644 --- a/PWGHF/D2H/Tasks/taskLbReduced.cxx +++ b/PWGHF/D2H/Tasks/taskLbReduced.cxx @@ -188,8 +188,6 @@ struct HfTaskLbReduced { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using TracksPion = soa::Join; using CandsLc = soa::Join; Filter filterSelectCandidates = (aod::hf_sel_candidate_lb::isSelLbToLcPi >= selectionFlagLb); @@ -393,7 +391,7 @@ struct HfTaskLbReduced { CandsLc const&) { auto ptCandLb = candidate.pt(); - auto invMassLb = hfHelper.invMassLbToLcPi(candidate); + auto invMassLb = HfHelper::invMassLbToLcPi(candidate); auto candLc = candidate.template prong0_as(); auto ptLc = candidate.ptProng0(); auto invMassLc = candLc.invMassHypo0() > 0 ? candLc.invMassHypo0() : candLc.invMassHypo1(); @@ -418,7 +416,7 @@ struct HfTaskLbReduced { if (fillHistograms) { if constexpr (DoMc) { if (isSignal) { - registry.fill(HIST("hMassRecSig"), ptCandLb, hfHelper.invMassLbToLcPi(candidate)); + registry.fill(HIST("hMassRecSig"), ptCandLb, HfHelper::invMassLbToLcPi(candidate)); registry.fill(HIST("hPtProng0RecSig"), ptCandLb, candidate.ptProng0()); registry.fill(HIST("hPtProng1RecSig"), ptCandLb, candidate.ptProng1()); registry.fill(HIST("hImpParProdRecSig"), ptCandLb, candidate.impactParameterProduct()); @@ -430,7 +428,7 @@ struct HfTaskLbReduced { registry.fill(HIST("hCospRecSig"), ptCandLb, candidate.cpa()); registry.fill(HIST("hCospXyRecSig"), ptCandLb, candidate.cpaXY()); registry.fill(HIST("hEtaRecSig"), ptCandLb, candidate.eta()); - registry.fill(HIST("hRapidityRecSig"), ptCandLb, hfHelper.yLb(candidate)); + registry.fill(HIST("hRapidityRecSig"), ptCandLb, HfHelper::yLb(candidate)); registry.fill(HIST("hinvMassLcRecSig"), ptLc, invMassLc); registry.fill(HIST("hDecLengthLcRecSig"), ptLc, decLenLc); registry.fill(HIST("hDecLengthXyLcRecSig"), ptLc, decLenXyLc); @@ -448,7 +446,7 @@ struct HfTaskLbReduced { registry.fill(HIST("hMlScoreSigLbRecSig"), ptCandLb, candidate.mlProbLbToLcPi()); } } else if (fillBackground) { - registry.fill(HIST("hMassRecBg"), ptCandLb, hfHelper.invMassLbToLcPi(candidate)); + registry.fill(HIST("hMassRecBg"), ptCandLb, HfHelper::invMassLbToLcPi(candidate)); registry.fill(HIST("hPtProng0RecBg"), ptCandLb, candidate.ptProng0()); registry.fill(HIST("hPtProng1RecBg"), ptCandLb, candidate.ptProng1()); registry.fill(HIST("hImpParProdRecBg"), ptCandLb, candidate.impactParameterProduct()); @@ -460,7 +458,7 @@ struct HfTaskLbReduced { registry.fill(HIST("hCospRecBg"), ptCandLb, candidate.cpa()); registry.fill(HIST("hCospXyRecBg"), ptCandLb, candidate.cpaXY()); registry.fill(HIST("hEtaRecBg"), ptCandLb, candidate.eta()); - registry.fill(HIST("hRapidityRecBg"), ptCandLb, hfHelper.yLb(candidate)); + registry.fill(HIST("hRapidityRecBg"), ptCandLb, HfHelper::yLb(candidate)); registry.fill(HIST("hinvMassLcRecBg"), ptLc, invMassLc); registry.fill(HIST("hDecLengthLcRecBg"), ptLc, decLenLc); registry.fill(HIST("hDecLengthXyLcRecBg"), ptLc, decLenXyLc); @@ -498,7 +496,7 @@ struct HfTaskLbReduced { registry.fill(HIST("hCosp"), ptCandLb, candidate.cpa()); registry.fill(HIST("hCospXy"), ptCandLb, candidate.cpaXY()); registry.fill(HIST("hEta"), ptCandLb, candidate.eta()); - registry.fill(HIST("hRapidity"), ptCandLb, hfHelper.yLb(candidate)); + registry.fill(HIST("hRapidity"), ptCandLb, HfHelper::yLb(candidate)); registry.fill(HIST("hinvMassLc"), ptLc, invMassLc); registry.fill(HIST("hDecLengthLc"), ptLc, decLenLc); registry.fill(HIST("hDecLengthXyLc"), ptLc, decLenXyLc); @@ -566,7 +564,7 @@ struct HfTaskLbReduced { ptCandLb, candidate.eta(), candidate.phi(), - hfHelper.yLb(candidate), + HfHelper::yLb(candidate), candidate.cpa(), candidate.cpaXY(), candidate.chi2PCA(), @@ -681,7 +679,7 @@ struct HfTaskLbReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -694,7 +692,7 @@ struct HfTaskLbReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -707,7 +705,7 @@ struct HfTaskLbReduced { TracksPion const&) { for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -722,7 +720,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -742,7 +740,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -762,7 +760,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -782,7 +780,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -802,7 +800,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); @@ -822,7 +820,7 @@ struct HfTaskLbReduced { { // MC rec for (const auto& candidate : candidates) { - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLb(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLb(candidate)) > yCandRecoMax) { continue; } fillCand(candidate, candidatesLc); diff --git a/PWGHF/D2H/Tasks/taskLc.cxx b/PWGHF/D2H/Tasks/taskLc.cxx index 5e9b3f5f973..127eab4269c 100644 --- a/PWGHF/D2H/Tasks/taskLc.cxx +++ b/PWGHF/D2H/Tasks/taskLc.cxx @@ -82,7 +82,6 @@ struct HfTaskLc { Configurable ccdbPathGrp{"ccdbPathGrp", "GLO/GRP/GRP", "Path of the grp file (Run 2)"}; Configurable ccdbPathGrpMag{"ccdbPathGrpMag", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object (Run 3)"}; - HfHelper hfHelper; HfEventSelection hfEvSel; // event selection and monitoring SliceCache cache; Service ccdb; @@ -367,12 +366,12 @@ struct HfTaskLc { const auto& mcParticleProng0 = candidate.template prong0_as().template mcParticle_as>(); const auto pdgCodeProng0 = std::abs(mcParticleProng0.pdgCode()); if ((candidate.isSelLcToPKPi() >= selectionFlagLc) && pdgCodeProng0 == kProton) { - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.invMassLcToPKPi(candidate)); - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.invMassLcToPKPi(candidate), candidate.pt()); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::invMassLcToPKPi(candidate)); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::invMassLcToPKPi(candidate), candidate.pt()); } if ((candidate.isSelLcToPiKP() >= selectionFlagLc) && pdgCodeProng0 == kPiPlus) { - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.invMassLcToPiKP(candidate)); - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.invMassLcToPiKP(candidate), candidate.pt()); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::invMassLcToPiKP(candidate)); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hMassVsPtRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::invMassLcToPiKP(candidate), candidate.pt()); } registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hPtRecSig") + HIST(SignalSuffixes[SignalType]), candidate.pt()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hPtProng0RecSig") + HIST(SignalSuffixes[SignalType]), candidate.ptProng0()); @@ -389,8 +388,8 @@ struct HfTaskLc { registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hDecLengthVsPtRecSig") + HIST(SignalSuffixes[SignalType]), candidate.decayLength(), candidate.pt()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hDecLengthxyRecSig") + HIST(SignalSuffixes[SignalType]), candidate.decayLengthXY()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hDecLengthxyVsPtRecSig") + HIST(SignalSuffixes[SignalType]), candidate.decayLengthXY(), candidate.pt()); - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCtRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.ctLc(candidate)); - registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCtVsPtRecSig") + HIST(SignalSuffixes[SignalType]), hfHelper.ctLc(candidate), candidate.pt()); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCtRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::ctLc(candidate)); + registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCtVsPtRecSig") + HIST(SignalSuffixes[SignalType]), HfHelper::ctLc(candidate), candidate.pt()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCPARecSig") + HIST(SignalSuffixes[SignalType]), candidate.cpa()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCPAVsPtRecSig") + HIST(SignalSuffixes[SignalType]), candidate.cpa(), candidate.pt()); registry.fill(HIST("MC/reconstructed/") + HIST(SignalFolders[SignalType]) + HIST("/hCPAxyRecSig") + HIST(SignalSuffixes[SignalType]), candidate.cpaXY()); @@ -421,7 +420,7 @@ struct HfTaskLc { continue; } /// rapidity selection - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandRecoMax) { continue; } @@ -463,10 +462,10 @@ struct HfTaskLc { } double massLc(-1); double outputBkg(-1), outputPrompt(-1), outputFD(-1); - const float properLifetime = hfHelper.ctLc(candidate) * CtToProperLifetimePs; + const float properLifetime = HfHelper::ctLc(candidate) * CtToProperLifetimePs; auto fillTHnRecSig = [&](bool isPKPi) { - massLc = isPKPi ? hfHelper.invMassLcToPKPi(candidate) : hfHelper.invMassLcToPiKP(candidate); + massLc = isPKPi ? HfHelper::invMassLcToPKPi(candidate) : HfHelper::invMassLcToPiKP(candidate); if constexpr (FillMl) { if (candidate.mlProbLcToPKPi().size() == NumberOfMlClasses) { @@ -592,7 +591,7 @@ struct HfTaskLc { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandRecoMax) { continue; } const auto pt = candidate.pt(); @@ -606,14 +605,14 @@ struct HfTaskLc { const auto cpaXY = candidate.cpaXY(); if (candidate.isSelLcToPKPi() >= selectionFlagLc) { - registry.fill(HIST("Data/hMass"), hfHelper.invMassLcToPKPi(candidate)); - registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), hfHelper.invMassLcToPKPi(candidate), pt, numPvContributors); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPKPi(candidate), pt); + registry.fill(HIST("Data/hMass"), HfHelper::invMassLcToPKPi(candidate)); + registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), 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/hMassVsPtVsNPvContributors"), hfHelper.invMassLcToPiKP(candidate), pt, numPvContributors); - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassLcToPiKP(candidate), pt); + registry.fill(HIST("Data/hMass"), HfHelper::invMassLcToPiKP(candidate)); + registry.fill(HIST("Data/hMassVsPtVsNPvContributors"), HfHelper::invMassLcToPiKP(candidate), pt, numPvContributors); + registry.fill(HIST("Data/hMassVsPt"), HfHelper::invMassLcToPiKP(candidate), pt); } registry.fill(HIST("Data/hPt"), pt); registry.fill(HIST("Data/hPtProng0"), ptProng0); @@ -629,8 +628,8 @@ struct HfTaskLc { 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/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); @@ -656,10 +655,10 @@ struct HfTaskLc { } double massLc(-1); double outputBkg(-1), outputPrompt(-1), outputFD(-1); - const float properLifetime = hfHelper.ctLc(candidate) * CtToProperLifetimePs; + const float properLifetime = HfHelper::ctLc(candidate) * CtToProperLifetimePs; auto fillTHnData = [&](bool isPKPi) { - massLc = isPKPi ? hfHelper.invMassLcToPKPi(candidate) : hfHelper.invMassLcToPiKP(candidate); + massLc = isPKPi ? HfHelper::invMassLcToPKPi(candidate) : HfHelper::invMassLcToPiKP(candidate); if constexpr (FillMl) { if (candidate.mlProbLcToPKPi().size() == NumberOfMlClasses) { diff --git a/PWGHF/D2H/Tasks/taskLcToK0sP.cxx b/PWGHF/D2H/Tasks/taskLcToK0sP.cxx index 955331e6d3f..94e1093e9f3 100644 --- a/PWGHF/D2H/Tasks/taskLcToK0sP.cxx +++ b/PWGHF/D2H/Tasks/taskLcToK0sP.cxx @@ -51,8 +51,6 @@ struct HfTaskLcToK0sP { Configurable yCandRecoMax{"yCandRecoMax", 0.8, "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_k0s_p::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - using TracksWPid = soa::Join; Filter filterSelectCandidates = (aod::hf_sel_candidate_lc_to_k0s_p::isSelLcToK0sP >= selectionFlagLcToK0sP || aod::hf_sel_candidate_lc_to_k0s_p::isSelLcToK0sP >= selectionFlagLcbarToK0sP); @@ -269,14 +267,14 @@ struct HfTaskLcToK0sP { if (etaCandMax >= 0. && std::abs(candidate.eta()) > etaCandMax) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandRecoMax) { continue; } auto ptCand = candidate.pt(); auto eta = candidate.eta(); auto phi = candidate.phi(); - auto invMassLcToK0sP = hfHelper.invMassLcToK0sP(candidate); + auto invMassLcToK0sP = HfHelper::invMassLcToK0sP(candidate); auto ptProng0 = candidate.ptProng0(); auto ptProng1 = candidate.ptProng1(); auto impactParameter0 = candidate.impactParameter0(); @@ -292,13 +290,13 @@ struct HfTaskLcToK0sP { auto mLambda = candidate.mLambda(); auto mAntiLambda = candidate.mAntiLambda(); auto mGamma = candidate.mGamma(); - auto ctV0K0Short = hfHelper.ctV0K0s(candidate); - auto ctV0Lambda = hfHelper.ctV0Lambda(candidate); + auto ctV0K0Short = HfHelper::ctV0K0s(candidate); + auto ctV0Lambda = HfHelper::ctV0Lambda(candidate); auto cpa = candidate.cpa(); auto cpaXY = candidate.cpaXY(); auto decayLength = candidate.decayLength(); auto decayLengthXY = candidate.decayLengthXY(); - auto ctLc = hfHelper.ctLc(candidate); + auto ctLc = HfHelper::ctLc(candidate); registry.fill(HIST("hPtCand"), ptCand); registry.fill(HIST("hEtaCand"), eta); @@ -376,14 +374,14 @@ struct HfTaskLcToK0sP { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandRecoMax) { continue; } auto ptCand = candidate.pt(); auto eta = candidate.eta(); auto phi = candidate.phi(); - auto invMassLcToK0sP = hfHelper.invMassLcToK0sP(candidate); + auto invMassLcToK0sP = HfHelper::invMassLcToK0sP(candidate); auto ptProng0 = candidate.ptProng0(); auto ptProng1 = candidate.ptProng1(); auto impactParameter0 = candidate.impactParameter0(); @@ -399,13 +397,13 @@ struct HfTaskLcToK0sP { auto mLambda = candidate.mLambda(); auto mAntiLambda = candidate.mAntiLambda(); auto mGamma = candidate.mGamma(); - auto ctV0K0Short = hfHelper.ctV0K0s(candidate); - auto ctV0Lambda = hfHelper.ctV0Lambda(candidate); + auto ctV0K0Short = HfHelper::ctV0K0s(candidate); + auto ctV0Lambda = HfHelper::ctV0Lambda(candidate); auto cpa = candidate.cpa(); auto cpaXY = candidate.cpaXY(); auto decayLength = candidate.decayLength(); auto decayLengthXY = candidate.decayLengthXY(); - auto ctLc = hfHelper.ctLc(candidate); + auto ctLc = HfHelper::ctLc(candidate); const auto& bach = candidate.prong0_as(); // bachelor track auto tpcNSigmaPr = bach.tpcNSigmaPr(); diff --git a/PWGHF/D2H/Tasks/taskOmegac0ToOmegapi.cxx b/PWGHF/D2H/Tasks/taskOmegac0ToOmegapi.cxx index 8a92286c42c..5e7ba2ae5b7 100644 --- a/PWGHF/D2H/Tasks/taskOmegac0ToOmegapi.cxx +++ b/PWGHF/D2H/Tasks/taskOmegac0ToOmegapi.cxx @@ -72,7 +72,6 @@ struct HfTaskOmegac0ToOmegapi { Configurable yCandRecoMax{"yCandRecoMax", 0.8, "Max. cand. rapidity"}; Configurable fillTree{"fillTree", false, "Fill tree for local analysis (enabled only with ML)"}; - HfHelper hfHelper; SliceCache cache; using Omegac0Cands = soa::Filtered>; diff --git a/PWGHF/D2H/Tasks/taskSigmac.cxx b/PWGHF/D2H/Tasks/taskSigmac.cxx index e6e9fbe4e1f..3af1d520aa3 100644 --- a/PWGHF/D2H/Tasks/taskSigmac.cxx +++ b/PWGHF/D2H/Tasks/taskSigmac.cxx @@ -64,7 +64,6 @@ struct HfTaskSigmac { Configurable enableTHn{"enableTHn", false, "enable the usage of THn for Λc+ and Σc0,++"}; Configurable addSoftPiDcaToSigmacSparse{"addSoftPiDcaToSigmacSparse", false, "enable the filling of sof-pion dcaXY, dcaZ in the Σc0,++ THnSparse"}; - HfHelper hfHelper; bool isMc{}; static constexpr std::size_t NDaughters{2u}; @@ -351,7 +350,7 @@ struct HfTaskSigmac { /// rapidity selection on Σc0,++ /// NB: since in data we cannot tag Sc(2455) and Sc(2520), then we use only Sc(2455) for y selection on reconstructed signal - if (yCandRecoMax >= 0. && std::abs(hfHelper.ySc0(candSc)) > yCandRecoMax && std::abs(hfHelper.yScPlusPlus(candSc)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::ySc0(candSc)) > yCandRecoMax && std::abs(HfHelper::yScPlusPlus(candSc)) > yCandRecoMax) { continue; } @@ -372,8 +371,8 @@ struct HfTaskSigmac { double cpaLc(candidateLc.cpa()), cpaXYLc(candidateLc.cpaXY()); /// candidate Λc+ → pK-π+ (and charge conjugate) within the range of M(pK-π+) chosen in the Σc0,++ builder if (TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PKPi)) { - massSc = hfHelper.invMassScRecoLcToPKPi(candSc, candidateLc); - massLc = hfHelper.invMassLcToPKPi(candidateLc); + massSc = HfHelper::invMassScRecoLcToPKPi(candSc, candidateLc); + massLc = HfHelper::invMassLcToPKPi(candidateLc); deltaMass = massSc - massLc; /// fill the histograms if (chargeSc == o2::aod::hf_cand_sigmac::ChargeNull) { @@ -455,8 +454,8 @@ struct HfTaskSigmac { } /// end candidate Λc+ → pK-π+ (and charge conjugate) /// candidate Λc+ → π+K-p (and charge conjugate) within the range of M(π+K-p) chosen in the Σc0,++ builder if (TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PiKP)) { - massSc = hfHelper.invMassScRecoLcToPiKP(candSc, candidateLc); - massLc = hfHelper.invMassLcToPiKP(candidateLc); + massSc = HfHelper::invMassScRecoLcToPiKP(candSc, candidateLc); + massLc = HfHelper::invMassLcToPiKP(candidateLc); deltaMass = massSc - massLc; /// fill the histograms if (chargeSc == o2::aod::hf_cand_sigmac::ChargeNull) { @@ -549,7 +548,7 @@ struct HfTaskSigmac { double decLengthLc(candidateLc.decayLength()), decLengthXYLc(candidateLc.decayLengthXY()); double cpaLc(candidateLc.cpa()), cpaXYLc(candidateLc.cpaXY()); if (candidateLc.isSelLcToPKPi() >= 1) { - massLc = hfHelper.invMassLcToPKPi(candidateLc); + massLc = HfHelper::invMassLcToPKPi(candidateLc); if constexpr (UseMl) { /// fill with ML information /// BDT index 0: bkg score; BDT index 2: non-prompt score @@ -565,7 +564,7 @@ struct HfTaskSigmac { } } if (candidateLc.isSelLcToPiKP() >= 1) { - massLc = hfHelper.invMassLcToPiKP(candidateLc); + massLc = HfHelper::invMassLcToPiKP(candidateLc); if constexpr (UseMl) { /// fill with ML information /// BDT index 0: bkg score; BDT index 2: non-prompt score @@ -784,7 +783,7 @@ struct HfTaskSigmac { /// rapidity selection on Σc0,++ /// NB: since in data we cannot tag Sc(2455) and Sc(2520), then we use only Sc(2455) for y selection on reconstructed signal - if (yCandRecoMax >= 0. && std::abs(hfHelper.ySc0(candSc)) > yCandRecoMax && std::abs(hfHelper.yScPlusPlus(candSc)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::ySc0(candSc)) > yCandRecoMax && std::abs(HfHelper::yScPlusPlus(candSc)) > yCandRecoMax) { continue; } @@ -840,8 +839,8 @@ struct HfTaskSigmac { /// candidate Λc+ → pK-π+ (and charge conjugate) within the range of M(pK-π+) chosen in the Σc0,++ builder if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PKPi)) && std::abs(candidateLc.template prong0_as().mcParticle().pdgCode()) == kProton) { - massSc = hfHelper.invMassScRecoLcToPKPi(candSc, candidateLc); - massLc = hfHelper.invMassLcToPKPi(candidateLc); + massSc = HfHelper::invMassScRecoLcToPKPi(candSc, candidateLc); + massLc = HfHelper::invMassLcToPKPi(candidateLc); deltaMass = massSc - massLc; /// Fill the histograms for reconstructed Σc0 signal @@ -925,8 +924,8 @@ struct HfTaskSigmac { } /// end candidate Λc+ → pK-π+ (and charge conjugate) /// candidate Λc+ → π+K-p (and charge conjugate) within the range of M(π+K-p) chosen in the Σc0,++ builder if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PiKP)) && std::abs(candidateLc.template prong0_as().mcParticle().pdgCode()) == kPiPlus) { - massSc = hfHelper.invMassScRecoLcToPiKP(candSc, candidateLc); - massLc = hfHelper.invMassLcToPiKP(candidateLc); + massSc = HfHelper::invMassScRecoLcToPiKP(candSc, candidateLc); + massLc = HfHelper::invMassLcToPiKP(candidateLc); deltaMass = massSc - massLc; /// Fill the histograms for reconstructed Σc0 signal @@ -1046,8 +1045,8 @@ struct HfTaskSigmac { /// candidate Λc+ → pK-π+ (and charge conjugate) within the range of M(pK-π+) chosen in the Σc0,++ builder if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PKPi)) && std::abs(candidateLc.template prong0_as().mcParticle().pdgCode()) == kProton) { - massSc = hfHelper.invMassScRecoLcToPKPi(candSc, candidateLc); - massLc = hfHelper.invMassLcToPKPi(candidateLc); + massSc = HfHelper::invMassScRecoLcToPKPi(candSc, candidateLc); + massLc = HfHelper::invMassLcToPKPi(candidateLc); deltaMass = massSc - massLc; /// Fill the histograms for reconstructed Σc++ signal @@ -1131,8 +1130,8 @@ struct HfTaskSigmac { } /// end candidate Λc+ → pK-π+ (and charge conjugate) /// candidate Λc+ → π+K-p (and charge conjugate) within the range of M(π+K-p) chosen in the Σc0,++ builder if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PiKP)) && std::abs(candidateLc.template prong0_as().mcParticle().pdgCode()) == kPiPlus) { - massSc = hfHelper.invMassScRecoLcToPiKP(candSc, candidateLc); - massLc = hfHelper.invMassLcToPiKP(candidateLc); + massSc = HfHelper::invMassScRecoLcToPiKP(candSc, candidateLc); + massLc = HfHelper::invMassLcToPiKP(candidateLc); deltaMass = massSc - massLc; /// Fill the histograms for reconstructed Σc++ signal @@ -1234,7 +1233,7 @@ struct HfTaskSigmac { pdgAbs = std::abs(candidateLc.template prong0_as().mcParticle().pdgCode()); } if (candidateLc.isSelLcToPKPi() >= 1 && pdgAbs == kProton) { - massLc = hfHelper.invMassLcToPKPi(candidateLc); + massLc = HfHelper::invMassLcToPKPi(candidateLc); if constexpr (UseMl) { /// fill with ML information /// BDT index 0: bkg score; BDT index 2: non-prompt score @@ -1250,7 +1249,7 @@ struct HfTaskSigmac { } } if (candidateLc.isSelLcToPiKP() >= 1 && pdgAbs == kPiPlus) { - massLc = hfHelper.invMassLcToPiKP(candidateLc); + massLc = HfHelper::invMassLcToPiKP(candidateLc); if constexpr (UseMl) { /// fill with ML information /// BDT index 0: bkg score; BDT index 2: non-prompt score diff --git a/PWGHF/D2H/Tasks/taskSigmacToCascade.cxx b/PWGHF/D2H/Tasks/taskSigmacToCascade.cxx index 8cb1013323e..79f8d3c7a60 100644 --- a/PWGHF/D2H/Tasks/taskSigmacToCascade.cxx +++ b/PWGHF/D2H/Tasks/taskSigmacToCascade.cxx @@ -62,7 +62,6 @@ struct HfTaskSigmacToCascade { using RecoLc = soa::Filtered>; HistogramRegistry registry{"registry"}; - HfHelper hfHelper; void init(InitContext&) { @@ -148,13 +147,13 @@ struct HfTaskSigmacToCascade { float cpaLc(candidateLc.cpa()), cpaXYLc(candidateLc.cpaXY()); float y(-1.); - auto massLc = hfHelper.invMassLcToK0sP(candidateLc); - auto massSc = hfHelper.invMassScRecoLcToK0sP(candSc, candidateLc); + auto massLc = HfHelper::invMassLcToK0sP(candidateLc); + auto massSc = HfHelper::invMassScRecoLcToK0sP(candSc, candidateLc); auto deltaMass = massSc - massLc; if (candSc.charge() == 0) { - y = hfHelper.ySc0(candSc); + y = HfHelper::ySc0(candSc); } else if (candSc.charge() == 2) { - y = hfHelper.yScPlusPlus(candSc); + y = HfHelper::yScPlusPlus(candSc); } registry.fill(HIST("Data/hDeltaMassSc0PlusPlus"), deltaMass); /// Σc(0,++) for both charges registry.fill(HIST("Data/hDeltaMassSc0PlusPlusVsPt"), deltaMass, ptSc); /// Σc(0,++) for both charges diff --git a/PWGHF/D2H/Tasks/taskXic.cxx b/PWGHF/D2H/Tasks/taskXic.cxx index 4d517f9fdfb..3e2b9bd4c09 100644 --- a/PWGHF/D2H/Tasks/taskXic.cxx +++ b/PWGHF/D2H/Tasks/taskXic.cxx @@ -65,7 +65,6 @@ struct HfTaskXic { Configurable> binsPt{"binsPt", std::vector{hf_cuts_xic_to_p_k_pi::vecBinsPt}, "pT bin limits"}; Configurable enableTHn{"enableTHn", false, "enable THn for Xic"}; - HfHelper hfHelper; Service pdg; Filter filterSelectCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic); @@ -291,18 +290,18 @@ struct HfTaskXic { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::XicToPKPi)) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yXic(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yXic(candidate)) > yCandRecoMax) { continue; } auto ptCandidate = candidate.pt(); if (candidate.isSelXicToPKPi() >= selectionFlagXic) { // pKpi - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassXicToPKPi(candidate), ptCandidate); - registry.fill(HIST("Data/hMass"), hfHelper.invMassXicToPKPi(candidate)); + registry.fill(HIST("Data/hMassVsPt"), HfHelper::invMassXicToPKPi(candidate), ptCandidate); + registry.fill(HIST("Data/hMass"), HfHelper::invMassXicToPKPi(candidate)); } if (candidate.isSelXicToPiKP() >= selectionFlagXic) { // piKp - registry.fill(HIST("Data/hMassVsPt"), hfHelper.invMassXicToPiKP(candidate), ptCandidate); - registry.fill(HIST("Data/hMass"), hfHelper.invMassXicToPiKP(candidate)); + registry.fill(HIST("Data/hMassVsPt"), HfHelper::invMassXicToPiKP(candidate), ptCandidate); + registry.fill(HIST("Data/hMass"), HfHelper::invMassXicToPiKP(candidate)); } registry.fill(HIST("Data/hPt"), ptCandidate); registry.fill(HIST("Data/hEta"), candidate.eta()); @@ -317,7 +316,7 @@ struct HfTaskXic { registry.fill(HIST("Data/hd0Prong0"), candidate.impactParameter0(), ptCandidate); registry.fill(HIST("Data/hd0Prong1"), candidate.impactParameter1(), ptCandidate); registry.fill(HIST("Data/hd0Prong2"), candidate.impactParameter2(), ptCandidate); - registry.fill(HIST("Data/hCt"), hfHelper.ctXic(candidate), ptCandidate); + registry.fill(HIST("Data/hCt"), HfHelper::ctXic(candidate), ptCandidate); registry.fill(HIST("Data/hCPA"), candidate.cpa(), ptCandidate); registry.fill(HIST("Data/hCPAXY"), candidate.cpaXY(), ptCandidate); registry.fill(HIST("Data/hEtaVsPt"), candidate.eta(), ptCandidate); @@ -369,7 +368,7 @@ struct HfTaskXic { double outputBkg(-1), outputPrompt(-1), outputFD(-1); const int ternaryCl = 3; if (candidate.isSelXicToPKPi() >= selectionFlagXic) { - massXic = hfHelper.invMassXicToPKPi(candidate); + massXic = HfHelper::invMassXicToPKPi(candidate); if constexpr (UseMl) { if (candidate.mlProbXicToPKPi().size() == ternaryCl) { outputBkg = candidate.mlProbXicToPKPi()[0]; /// bkg score @@ -383,7 +382,7 @@ struct HfTaskXic { } } if (candidate.isSelXicToPiKP() >= selectionFlagXic) { - massXic = hfHelper.invMassXicToPiKP(candidate); + massXic = HfHelper::invMassXicToPiKP(candidate); if constexpr (UseMl) { if (candidate.mlProbXicToPiKP().size() == ternaryCl) { outputBkg = candidate.mlProbXicToPiKP()[0]; /// bkg score @@ -428,7 +427,7 @@ struct HfTaskXic { if (!(candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::XicToPKPi)) { continue; } - if (yCandRecoMax >= 0. && std::abs(hfHelper.yXic(candidate)) > yCandRecoMax) { + if (yCandRecoMax >= 0. && std::abs(HfHelper::yXic(candidate)) > yCandRecoMax) { continue; } @@ -436,10 +435,10 @@ struct HfTaskXic { auto massXicToPiKP = 0.; if (candidate.isSelXicToPKPi() >= selectionFlagXic) { - massXicToPKPi = hfHelper.invMassXicToPKPi(candidate); + massXicToPKPi = HfHelper::invMassXicToPKPi(candidate); } if (candidate.isSelXicToPiKP() >= selectionFlagXic) { - massXicToPiKP = hfHelper.invMassXicToPiKP(candidate); // mass conjugate + massXicToPiKP = HfHelper::invMassXicToPiKP(candidate); // mass conjugate } if (std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::XicToPKPi) { @@ -467,7 +466,7 @@ struct HfTaskXic { registry.fill(HIST("MC/reconstructed/signal/hd0Prong0RecSig"), candidate.impactParameter0(), ptCandidate); registry.fill(HIST("MC/reconstructed/signal/hd0Prong1RecSig"), candidate.impactParameter1(), ptCandidate); registry.fill(HIST("MC/reconstructed/signal/hd0Prong2RecSig"), candidate.impactParameter2(), ptCandidate); - registry.fill(HIST("MC/reconstructed/signal/hCtRecSig"), hfHelper.ctXic(candidate), ptCandidate); + registry.fill(HIST("MC/reconstructed/signal/hCtRecSig"), HfHelper::ctXic(candidate), ptCandidate); registry.fill(HIST("MC/reconstructed/signal/hCPARecSig"), candidate.cpa(), ptCandidate); registry.fill(HIST("MC/reconstructed/signal/hCPAXYRecSig"), candidate.cpaXY(), ptCandidate); registry.fill(HIST("MC/reconstructed/signal/hEtaRecSig"), candidate.eta(), ptCandidate); @@ -554,7 +553,7 @@ struct HfTaskXic { registry.fill(HIST("MC/reconstructed/background/hd0Prong0RecBg"), candidate.impactParameter0(), ptCandidate); registry.fill(HIST("MC/reconstructed/background/hd0Prong1RecBg"), candidate.impactParameter1(), ptCandidate); registry.fill(HIST("MC/reconstructed/background/hd0Prong2RecBg"), candidate.impactParameter2(), ptCandidate); - registry.fill(HIST("MC/reconstructed/background/hCtRecBg"), hfHelper.ctXic(candidate), ptCandidate); + registry.fill(HIST("MC/reconstructed/background/hCtRecBg"), HfHelper::ctXic(candidate), ptCandidate); registry.fill(HIST("MC/reconstructed/background/hCPARecBg"), candidate.cpa(), ptCandidate); registry.fill(HIST("MC/reconstructed/background/hCPAXYRecBg"), candidate.cpaXY(), ptCandidate); registry.fill(HIST("MC/reconstructed/background/hEtaRecBg"), candidate.eta(), ptCandidate); diff --git a/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx b/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx index cccd82fce67..f5917e778f4 100644 --- a/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx +++ b/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx @@ -59,7 +59,6 @@ struct HfTaskXic0ToXiPi { Configurable yCandGenMax{"yCandGenMax", 0.8, "max. gen particle rapidity"}; Configurable yCandRecMax{"yCandRecMax", 0.8, "max. cand. rapidity"}; - HfHelper hfHelper; SliceCache cache; using TracksMc = soa::Join; diff --git a/PWGHF/D2H/Tasks/taskXicc.cxx b/PWGHF/D2H/Tasks/taskXicc.cxx index 2c8e6fcd789..26ca469d820 100644 --- a/PWGHF/D2H/Tasks/taskXicc.cxx +++ b/PWGHF/D2H/Tasks/taskXicc.cxx @@ -55,8 +55,6 @@ struct HfTaskXicc { Configurable yCandMax{"yCandMax", -1., "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_xicc_to_p_k_pi_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_xicc::isSelXiccToPKPiPi >= selectionFlagXicc); HistogramRegistry registry{ @@ -90,10 +88,10 @@ struct HfTaskXicc { if ((candidate.hfflag() & 1 << aod::hf_cand_xicc::DecayType::XiccToXicPi) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yXicc(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yXicc(candidate)) > yCandMax) { continue; } - registry.fill(HIST("hMass"), hfHelper.invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp + registry.fill(HIST("hMass"), HfHelper::invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); @@ -102,10 +100,10 @@ struct HfTaskXicc { registry.fill(HIST("hChi2PCA"), candidate.chi2PCA(), candidate.pt()); registry.fill(HIST("hd0Prong0"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1"), candidate.impactParameter1(), candidate.pt()); - registry.fill(HIST("hCt"), hfHelper.ctXicc(candidate), candidate.pt()); + registry.fill(HIST("hCt"), HfHelper::ctXicc(candidate), candidate.pt()); registry.fill(HIST("hCPA"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEta"), candidate.eta(), candidate.pt()); - registry.fill(HIST("hY"), hfHelper.yXicc(candidate), candidate.pt()); + registry.fill(HIST("hY"), HfHelper::yXicc(candidate), candidate.pt()); registry.fill(HIST("hSelectionStatus"), candidate.isSelXiccToPKPiPi(), candidate.pt()); registry.fill(HIST("hImpParErr0"), candidate.errorImpactParameter0(), candidate.pt()); registry.fill(HIST("hImpParErr1"), candidate.errorImpactParameter1(), candidate.pt()); @@ -120,8 +118,6 @@ struct HfTaskXiccMc { Configurable yCandMax{"yCandMax", -1., "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_xicc_to_p_k_pi_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_xicc::isSelXiccToPKPiPi >= selectionFlagXicc); HistogramRegistry registry{ @@ -198,7 +194,7 @@ struct HfTaskXiccMc { if ((candidate.hfflag() & 1 << aod::hf_cand_xicc::DecayType::XiccToXicPi) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yXicc(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yXicc(candidate)) > yCandMax) { continue; } if (std::abs(candidate.flagMcMatchRec()) == 1 << aod::hf_cand_xicc::DecayType::XiccToXicPi) { @@ -221,17 +217,17 @@ struct HfTaskXiccMc { registry.fill(HIST("hPtGenSig"), particleXicc.pt()); // gen. level pT registry.fill(HIST("hPtRecSig"), candidate.pt()); // rec. level pT registry.fill(HIST("hEtaRecSig"), candidate.eta()); - registry.fill(HIST("hYRecSig"), hfHelper.yXicc(candidate)); - registry.fill(HIST("hMassVsPtRecSig"), hfHelper.invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp + registry.fill(HIST("hYRecSig"), HfHelper::yXicc(candidate)); + registry.fill(HIST("hMassVsPtRecSig"), HfHelper::invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp registry.fill(HIST("hDecLengthVsPtRecSig"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("hChi2PCAVsPtRecSig"), candidate.chi2PCA(), candidate.pt()); registry.fill(HIST("hCPAVsPtRecSig"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hd0Prong0VsPtRecSig"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1VsPtRecSig"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0d0VsPtRecSig"), candidate.impactParameterProduct(), candidate.pt()); - registry.fill(HIST("hCtVsPtRecSig"), hfHelper.ctXicc(candidate), candidate.pt()); + registry.fill(HIST("hCtVsPtRecSig"), HfHelper::ctXicc(candidate), candidate.pt()); registry.fill(HIST("hEtaVsPtRecSig"), candidate.eta(), candidate.pt()); - registry.fill(HIST("hYVsPtRecSig"), hfHelper.yXicc(candidate), candidate.pt()); + registry.fill(HIST("hYVsPtRecSig"), HfHelper::yXicc(candidate), candidate.pt()); registry.fill(HIST("hImpParErr0VsPtRecSig"), candidate.errorImpactParameter0(), candidate.pt()); registry.fill(HIST("hImpParErr1VsPtRecSig"), candidate.errorImpactParameter1(), candidate.pt()); registry.fill(HIST("hXSecVtxPosRecGenDiffSig"), candidate.xSecondaryVertex() - particleXic.vx(), candidate.pt()); @@ -239,38 +235,38 @@ struct HfTaskXiccMc { registry.fill(HIST("hZSecVtxPosRecGenDiffSig"), candidate.zSecondaryVertex() - particleXic.vz(), candidate.pt()); registry.fill(HIST("hPtRecGenDiffSig"), candidate.pt() - particleXicc.pt(), candidate.pt()); // Check Y dependence (To be removed) - registry.fill(HIST("hMassVsPtVsYRecSig"), hfHelper.invMassXiccToXicPi(candidate), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hDecLengthVsPtVsYRecSig"), candidate.decayLength(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hChi2PCAVsPtVsYRecSig"), candidate.chi2PCA(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hCPAVsPtVsYRecSig"), candidate.cpa(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hd0Prong0VsPtVsYRecSig"), candidate.impactParameter0(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hd0Prong1VsPtVsYRecSig"), candidate.impactParameter1(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hCtVsPtVsYRecSig"), hfHelper.ctXicc(candidate), candidate.pt(), hfHelper.yXicc(candidate)); + registry.fill(HIST("hMassVsPtVsYRecSig"), HfHelper::invMassXiccToXicPi(candidate), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hDecLengthVsPtVsYRecSig"), candidate.decayLength(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hChi2PCAVsPtVsYRecSig"), candidate.chi2PCA(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hCPAVsPtVsYRecSig"), candidate.cpa(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hd0Prong0VsPtVsYRecSig"), candidate.impactParameter0(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hd0Prong1VsPtVsYRecSig"), candidate.impactParameter1(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hCtVsPtVsYRecSig"), HfHelper::ctXicc(candidate), candidate.pt(), HfHelper::yXicc(candidate)); } else { registry.fill(HIST("hPtRecBg"), candidate.pt()); registry.fill(HIST("hEtaRecBg"), candidate.eta()); - registry.fill(HIST("hYRecBg"), hfHelper.yXicc(candidate)); - registry.fill(HIST("hMassVsPtRecBg"), hfHelper.invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp + registry.fill(HIST("hYRecBg"), HfHelper::yXicc(candidate)); + registry.fill(HIST("hMassVsPtRecBg"), HfHelper::invMassXiccToXicPi(candidate), candidate.pt()); // FIXME need to consider the two mass hp registry.fill(HIST("hDecLengthVsPtRecBg"), candidate.decayLength(), candidate.pt()); registry.fill(HIST("hChi2PCAVsPtRecBg"), candidate.chi2PCA(), candidate.pt()); registry.fill(HIST("hCPAVsPtRecBg"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hd0Prong0VsPtRecBg"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1VsPtRecBg"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0d0VsPtRecBg"), candidate.impactParameterProduct(), candidate.pt()); - registry.fill(HIST("hCtVsPtRecBg"), hfHelper.ctXicc(candidate), candidate.pt()); + registry.fill(HIST("hCtVsPtRecBg"), HfHelper::ctXicc(candidate), candidate.pt()); registry.fill(HIST("hEtaVsPtRecBg"), candidate.eta(), candidate.pt()); - registry.fill(HIST("hYVsPtRecBg"), hfHelper.yXicc(candidate), candidate.pt()); + registry.fill(HIST("hYVsPtRecBg"), HfHelper::yXicc(candidate), candidate.pt()); registry.fill(HIST("hImpParErr0VsPtRecBg"), candidate.errorImpactParameter0(), candidate.pt()); registry.fill(HIST("hImpParErr1VsPtRecBg"), candidate.errorImpactParameter1(), candidate.pt()); registry.fill(HIST("hDebugMCmatching"), candidate.debugMcRec(), candidate.pt()); // Check Y dependence (To be removed) - registry.fill(HIST("hMassVsPtVsYRecBg"), hfHelper.invMassXiccToXicPi(candidate), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hDecLengthVsPtVsYRecBg"), candidate.decayLength(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hChi2PCAVsPtVsYRecBg"), candidate.chi2PCA(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hCPAVsPtVsYRecBg"), candidate.cpa(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hd0Prong0VsPtVsYRecBg"), candidate.impactParameter0(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hd0Prong1VsPtVsYRecBg"), candidate.impactParameter1(), candidate.pt(), hfHelper.yXicc(candidate)); - registry.fill(HIST("hCtVsPtVsYRecBg"), hfHelper.ctXicc(candidate), candidate.pt(), hfHelper.yXicc(candidate)); + registry.fill(HIST("hMassVsPtVsYRecBg"), HfHelper::invMassXiccToXicPi(candidate), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hDecLengthVsPtVsYRecBg"), candidate.decayLength(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hChi2PCAVsPtVsYRecBg"), candidate.chi2PCA(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hCPAVsPtVsYRecBg"), candidate.cpa(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hd0Prong0VsPtVsYRecBg"), candidate.impactParameter0(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hd0Prong1VsPtVsYRecBg"), candidate.impactParameter1(), candidate.pt(), HfHelper::yXicc(candidate)); + registry.fill(HIST("hCtVsPtVsYRecBg"), HfHelper::ctXicc(candidate), candidate.pt(), HfHelper::yXicc(candidate)); } } // end of loop over reconstructed candidates // MC gen. diff --git a/PWGHF/HFC/TableProducer/correlatorD0D0bar.cxx b/PWGHF/HFC/TableProducer/correlatorD0D0bar.cxx index 62b9f6b08ea..b3c4d7b9570 100644 --- a/PWGHF/HFC/TableProducer/correlatorD0D0bar.cxx +++ b/PWGHF/HFC/TableProducer/correlatorD0D0bar.cxx @@ -98,8 +98,6 @@ struct HfCorrelatorD0D0bar { Configurable> binsPt{"binsPt", std::vector{o2::analysis::hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits for candidate mass plots and efficiency"}; Configurable> efficiencyD{"efficiencyD", std::vector{efficiencyDmesonV}, "Efficiency values for D0 meson"}; - HfHelper hfHelper; - Partition> selectedD0Candidates = aod::hf_sel_candidate_d0::isSelD0 >= selectionFlagD0 || aod::hf_sel_candidate_d0::isSelD0bar >= selectionFlagD0bar; Partition> selectedD0candidatesMC = aod::hf_sel_candidate_d0::isSelD0 >= selectionFlagD0 || aod::hf_sel_candidate_d0::isSelD0bar >= selectionFlagD0bar; @@ -175,7 +173,7 @@ struct HfCorrelatorD0D0bar { auto selectedD0CandidatesGrouped = selectedD0Candidates->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache); for (const auto& candidate1 : selectedD0CandidatesGrouped) { - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -193,19 +191,19 @@ struct HfCorrelatorD0D0bar { // fill invariant mass plots and generic info from all D0/D0bar candidates if (candidate1.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassD0"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } if (candidate1.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassD0bar"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0bar"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } registry.fill(HIST("hPtCand"), candidate1.pt()); registry.fill(HIST("hPtProng0"), candidate1.ptProng0()); registry.fill(HIST("hPtProng1"), candidate1.ptProng1()); registry.fill(HIST("hEta"), candidate1.eta()); registry.fill(HIST("hPhi"), candidate1.phi()); - registry.fill(HIST("hY"), hfHelper.yD0(candidate1)); + registry.fill(HIST("hY"), HfHelper::yD0(candidate1)); registry.fill(HIST("hSelectionStatus"), candidate1.isSelD0bar() + (candidate1.isSelD0() * 2)); // D-Dbar correlation dedicated section @@ -221,7 +219,7 @@ struct HfCorrelatorD0D0bar { continue; } // kinematic selection on D0bar candidates - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -235,8 +233,8 @@ struct HfCorrelatorD0D0bar { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryD0D0barRecoInfo(hfHelper.invMassD0ToPiK(candidate1), - hfHelper.invMassD0barToKPi(candidate2), + entryD0D0barRecoInfo(HfHelper::invMassD0ToPiK(candidate1), + HfHelper::invMassD0barToKPi(candidate2), 0); double etaCut = 0.; double ptCut = 0.; @@ -295,7 +293,7 @@ struct HfCorrelatorD0D0bar { if ((candidate1.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -314,26 +312,26 @@ struct HfCorrelatorD0D0bar { registry.fill(HIST("hPtProng1MCRec"), candidate1.ptProng1()); registry.fill(HIST("hEtaMCRec"), candidate1.eta()); registry.fill(HIST("hPhiMCRec"), candidate1.phi()); - registry.fill(HIST("hYMCRec"), hfHelper.yD0(candidate1)); + registry.fill(HIST("hYMCRec"), HfHelper::yD0(candidate1)); registry.fill(HIST("hSelectionStatusMCRec"), candidate1.isSelD0bar() + (candidate1.isSelD0() * 2)); } // fill invariant mass plots from D0/D0bar signal and background candidates if (candidate1.isSelD0() >= selectionFlagD0) { // only reco as D0 if (candidate1.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0 - registry.fill(HIST("hMassD0MCRecSig"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecSig"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } else if (candidate1.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0MCRecRefl"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecRefl"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0MCRecBkg"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecBkg"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } } if (candidate1.isSelD0bar() >= selectionFlagD0bar) { // only reco as D0bar if (candidate1.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0bar - registry.fill(HIST("hMassD0barMCRecSig"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecSig"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } else if (candidate1.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0barMCRecRefl"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecRefl"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0barMCRecBkg"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecBkg"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } } @@ -353,7 +351,7 @@ struct HfCorrelatorD0D0bar { } flagD0barSignal = candidate2.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK; // flagD0barSignal 'true' if candidate2 matched to D0bar (antiparticle) flagD0barReflection = candidate2.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK; // flagD0barReflection 'true' if candidate2, selected as D0bar (antiparticle), is matched to D0 (particle) - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -381,8 +379,8 @@ struct HfCorrelatorD0D0bar { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryD0D0barRecoInfo(hfHelper.invMassD0ToPiK(candidate1), - hfHelper.invMassD0barToKPi(candidate2), + entryD0D0barRecoInfo(HfHelper::invMassD0ToPiK(candidate1), + HfHelper::invMassD0barToKPi(candidate2), pairSignalStatus); double etaCut = 0.; double ptCut = 0.; diff --git a/PWGHF/HFC/TableProducer/correlatorD0D0barBarrelFullPid.cxx b/PWGHF/HFC/TableProducer/correlatorD0D0barBarrelFullPid.cxx index d43a90b79d2..969525abaa4 100644 --- a/PWGHF/HFC/TableProducer/correlatorD0D0barBarrelFullPid.cxx +++ b/PWGHF/HFC/TableProducer/correlatorD0D0barBarrelFullPid.cxx @@ -99,8 +99,6 @@ struct HfCorrelatorD0D0barBarrelFullPid { Configurable> binsPt{"binsPt", std::vector{o2::analysis::hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits for candidate mass plots and efficiency"}; Configurable> efficiencyD{"efficiencyD", std::vector{efficiencyDmesonV}, "Efficiency values for D0 meson"}; - HfHelper hfHelper; - Partition> selectedD0candidates = (aod::hf_sel_candidate_d0_alice3_barrel::isSelD0TofPlusRichPid >= selectionFlagD0 || aod::hf_sel_candidate_d0_alice3_barrel::isSelD0barTofPlusRichPid >= selectionFlagD0bar); Partition> selectedD0candidatesMC = (aod::hf_sel_candidate_d0_alice3_barrel::isSelD0TofPlusRichPid >= selectionFlagD0 || aod::hf_sel_candidate_d0_alice3_barrel::isSelD0barTofPlusRichPid >= selectionFlagD0bar); @@ -176,7 +174,7 @@ struct HfCorrelatorD0D0barBarrelFullPid { auto selectedD0candidatesGrouped = selectedD0candidates->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache); for (const auto& candidate1 : selectedD0candidatesGrouped) { - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -194,19 +192,19 @@ struct HfCorrelatorD0D0barBarrelFullPid { // fill invariant mass plots and generic info from all D0/D0bar candidates if (candidate1.isSelD0TofPlusRichPid() >= selectionFlagD0) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassD0"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } if (candidate1.isSelD0barTofPlusRichPid() >= selectionFlagD0bar) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassD0bar"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0bar"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } registry.fill(HIST("hPtCand"), candidate1.pt()); registry.fill(HIST("hPtProng0"), candidate1.ptProng0()); registry.fill(HIST("hPtProng1"), candidate1.ptProng1()); registry.fill(HIST("hEta"), candidate1.eta()); registry.fill(HIST("hPhi"), candidate1.phi()); - registry.fill(HIST("hY"), hfHelper.yD0(candidate1)); + registry.fill(HIST("hY"), HfHelper::yD0(candidate1)); registry.fill(HIST("hSelectionStatus"), candidate1.isSelD0barTofPlusRichPid() + (candidate1.isSelD0TofPlusRichPid() * 2)); // D-Dbar correlation dedicated section @@ -222,7 +220,7 @@ struct HfCorrelatorD0D0barBarrelFullPid { continue; } // kinematic selection on D0bar candidates - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -236,8 +234,8 @@ struct HfCorrelatorD0D0barBarrelFullPid { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryD0D0barRecoInfo(hfHelper.invMassD0ToPiK(candidate1), - hfHelper.invMassD0barToKPi(candidate2), + entryD0D0barRecoInfo(HfHelper::invMassD0ToPiK(candidate1), + HfHelper::invMassD0barToKPi(candidate2), 0); double etaCut = 0.; double ptCut = 0.; @@ -296,7 +294,7 @@ struct HfCorrelatorD0D0barBarrelFullPid { if ((candidate1.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -315,26 +313,26 @@ struct HfCorrelatorD0D0barBarrelFullPid { registry.fill(HIST("hPtProng1MCRec"), candidate1.ptProng1()); registry.fill(HIST("hEtaMCRec"), candidate1.eta()); registry.fill(HIST("hPhiMCRec"), candidate1.phi()); - registry.fill(HIST("hYMCRec"), hfHelper.yD0(candidate1)); + registry.fill(HIST("hYMCRec"), HfHelper::yD0(candidate1)); registry.fill(HIST("hSelectionStatusMCRec"), candidate1.isSelD0barTofPlusRichPid() + (candidate1.isSelD0TofPlusRichPid() * 2)); } // fill invariant mass plots from D0/D0bar signal and background candidates if (candidate1.isSelD0TofPlusRichPid() >= selectionFlagD0) { // only reco as D0 if (candidate1.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0 - registry.fill(HIST("hMassD0MCRecSig"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecSig"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } else if (candidate1.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0MCRecRefl"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecRefl"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0MCRecBkg"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0MCRecBkg"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), efficiencyWeight); } } if (candidate1.isSelD0barTofPlusRichPid() >= selectionFlagD0bar) { // only reco as D0bar if (candidate1.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0bar - registry.fill(HIST("hMassD0barMCRecSig"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecSig"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } else if (candidate1.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0barMCRecRefl"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecRefl"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0barMCRecBkg"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barMCRecBkg"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), efficiencyWeight); } } @@ -354,7 +352,7 @@ struct HfCorrelatorD0D0barBarrelFullPid { } flagD0barSignal = candidate2.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK; // flagD0barSignal 'true' if candidate2 matched to D0bar (antiparticle) flagD0barReflection = candidate2.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK; // flagD0barReflection 'true' if candidate2, selected as D0bar (antiparticle), is matched to D0 (particle) - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -382,8 +380,8 @@ struct HfCorrelatorD0D0barBarrelFullPid { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryD0D0barRecoInfo(hfHelper.invMassD0ToPiK(candidate1), - hfHelper.invMassD0barToKPi(candidate2), + entryD0D0barRecoInfo(HfHelper::invMassD0ToPiK(candidate1), + HfHelper::invMassD0barToKPi(candidate2), pairSignalStatus); double etaCut = 0.; double ptCut = 0.; diff --git a/PWGHF/HFC/TableProducer/correlatorD0Hadrons.cxx b/PWGHF/HFC/TableProducer/correlatorD0Hadrons.cxx index 7408b3f947b..604287529a8 100644 --- a/PWGHF/HFC/TableProducer/correlatorD0Hadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorD0Hadrons.cxx @@ -95,7 +95,6 @@ struct HfCorrelatorD0HadronsSelection { Configurable yCandMax{"yCandMax", 4.0, "max. cand. rapidity"}; Configurable ptCandMin{"ptCandMin", -1., "min. cand. pT"}; - HfHelper hfHelper; SliceCache cache; using SelCollisions = soa::Join; @@ -121,7 +120,7 @@ struct HfCorrelatorD0HadronsSelection { isD0Found = false; continue; } - if (std::abs(hfHelper.yD0(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yD0(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isD0Found = false; continue; } @@ -155,7 +154,7 @@ struct HfCorrelatorD0HadronsSelection { isD0Found = false; continue; } - if (std::abs(hfHelper.yD0(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yD0(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isD0Found = false; continue; } @@ -232,7 +231,6 @@ struct HfCorrelatorD0Hadrons { double massK{0.}; double softPiMass = 0.14543; // pion mass + Q-value of the D*->D0pi decay - HfHelper hfHelper; SliceCache cache; Filter collisionFilter = aod::hf_selection_dmeson_collision::dmesonSel == true; @@ -382,7 +380,7 @@ struct HfCorrelatorD0Hadrons { std::vector outputMlD0bar = {-1., -1., -1.}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yD0(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptTrackMax) { + if (std::abs(HfHelper::yD0(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptTrackMax) { continue; } // check decay channel flag for candidate @@ -401,24 +399,24 @@ struct HfCorrelatorD0Hadrons { } // ========================== Fill mass histo ================================ if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); - registry.fill(HIST("hMass1D"), hfHelper.invMassD0ToPiK(candidate), efficiencyWeight); - registry.fill(HIST("hMassD01D"), hfHelper.invMassD0ToPiK(candidate), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMass1D"), HfHelper::invMassD0ToPiK(candidate), efficiencyWeight); + registry.fill(HIST("hMassD01D"), HfHelper::invMassD0ToPiK(candidate), efficiencyWeight); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMlD0[iclass] = candidate.mlProbD0()[classMl->at(iclass)]; } - registry.fill(HIST("hMLScoresVsMassVsPtVsOrigin"), outputMlD0[0], outputMlD0[2], hfHelper.invMassD0ToPiK(candidate), candidate.pt(), (candidate.isSelD0bar() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0Only); + registry.fill(HIST("hMLScoresVsMassVsPtVsOrigin"), outputMlD0[0], outputMlD0[2], HfHelper::invMassD0ToPiK(candidate), candidate.pt(), (candidate.isSelD0bar() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0Only); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); - registry.fill(HIST("hMass1D"), hfHelper.invMassD0barToKPi(candidate), efficiencyWeight); - registry.fill(HIST("hMassD0bar1D"), hfHelper.invMassD0barToKPi(candidate), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMass1D"), HfHelper::invMassD0barToKPi(candidate), efficiencyWeight); + registry.fill(HIST("hMassD0bar1D"), HfHelper::invMassD0barToKPi(candidate), efficiencyWeight); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMlD0bar[iclass] = candidate.mlProbD0bar()[classMl->at(iclass)]; } - registry.fill(HIST("hMLScoresVsMassVsPtVsOrigin"), outputMlD0bar[0], outputMlD0bar[2], hfHelper.invMassD0barToKPi(candidate), candidate.pt(), (candidate.isSelD0() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0barOnly); + registry.fill(HIST("hMLScoresVsMassVsPtVsOrigin"), outputMlD0bar[0], outputMlD0bar[2], HfHelper::invMassD0barToKPi(candidate), candidate.pt(), (candidate.isSelD0() != 0) ? o2::aod::hf_correlation_d0_hadron::D0D0barBoth : o2::aod::hf_correlation_d0_hadron::D0barOnly); } - entryD0CandRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]); + entryD0CandRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]); // ========================== Fill general histos ================================ registry.fill(HIST("hPtCand"), candidate.pt()); @@ -426,7 +424,7 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hPtProng1"), candidate.ptProng1()); registry.fill(HIST("hEta"), candidate.eta()); registry.fill(HIST("hPhi"), candidate.phi()); - registry.fill(HIST("hY"), hfHelper.yD0(candidate)); + registry.fill(HIST("hY"), HfHelper::yD0(candidate)); registry.fill(HIST("hSelectionStatus"), candidate.isSelD0bar() + (candidate.isSelD0() * 2)); registry.fill(HIST("hD0PoolBin"), poolBin); @@ -453,13 +451,13 @@ struct HfCorrelatorD0Hadrons { invMassDstar2 = std::sqrt((eKPi + ePion) * (eKPi + ePion) - pSum2); if (candidate.isSelD0() >= selectionFlagD0) { - if ((std::abs(invMassDstar1 - hfHelper.invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar1 - HfHelper::invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { continue; } } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - if ((std::abs(invMassDstar2 - hfHelper.invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar2 - HfHelper::invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { continue; } } @@ -485,7 +483,7 @@ struct HfCorrelatorD0Hadrons { track.pt(), poolBin, correlationStatus); - entryD0HadronRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), signalStatus); + entryD0HadronRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), signalStatus); entryD0HadronGenInfo(false, false, 0); entryD0HadronMlInfo(outputMlD0[0], outputMlD0[1], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -543,7 +541,7 @@ struct HfCorrelatorD0Hadrons { if (!TESTBIT(candidate.hfflag(), aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (std::abs(hfHelper.yD0(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptTrackMax) { + if (std::abs(HfHelper::yD0(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptTrackMax) { continue; } @@ -561,13 +559,13 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hPtProng1Rec"), candidate.ptProng1()); registry.fill(HIST("hEtaRec"), candidate.eta()); registry.fill(HIST("hPhiRec"), candidate.phi()); - registry.fill(HIST("hYRec"), hfHelper.yD0(candidate)); + registry.fill(HIST("hYRec"), HfHelper::yD0(candidate)); registry.fill(HIST("hSelectionStatusRec"), candidate.isSelD0bar() + (candidate.isSelD0() * 2)); } // fill invariant mass plots from D0/D0bar signal and background candidates if (candidate.isSelD0() >= selectionFlagD0) { // only reco as D0 if (candidate.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0 - registry.fill(HIST("hMassD0RecSig"), hfHelper.invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0RecSig"), HfHelper::invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); if (isD0Prompt) { registry.fill(HIST("hPtCandRecSigPrompt"), candidate.pt()); registry.fill(HIST("hPtVsMultiplicityRecPrompt"), candidate.pt(), collision.multFT0M()); @@ -576,9 +574,9 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hPtVsMultiplicityRecNonPrompt"), candidate.pt(), collision.multFT0M()); } } else if (candidate.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0RecRef"), hfHelper.invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0RecRef"), HfHelper::invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0RecBg"), hfHelper.invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0RecBg"), HfHelper::invMassD0ToPiK(candidate), candidate.pt(), efficiencyWeight); } for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMlD0[iclass] = candidate.mlProbD0()[classMl->at(iclass)]; @@ -586,7 +584,7 @@ struct HfCorrelatorD0Hadrons { } if (candidate.isSelD0bar() >= selectionFlagD0bar) { // only reco as D0bar if (candidate.flagMcMatchRec() == -o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { // also matched as D0bar - registry.fill(HIST("hMassD0barRecSig"), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barRecSig"), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); if (isD0Prompt) { registry.fill(HIST("hPtCandRecSigPrompt"), candidate.pt()); registry.fill(HIST("hPtVsMultiplicityRecPrompt"), candidate.pt(), collision.multFT0M()); @@ -595,15 +593,15 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hPtVsMultiplicityRecNonPrompt"), candidate.pt(), collision.multFT0M()); } } else if (candidate.flagMcMatchRec() == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { - registry.fill(HIST("hMassD0barRecRef"), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barRecRef"), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMassD0barRecBg"), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassD0barRecBg"), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), efficiencyWeight); } for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMlD0bar[iclass] = candidate.mlProbD0bar()[classMl->at(iclass)]; } } - entryD0CandRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]); + entryD0CandRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), candidate.pt(), outputMlD0[0], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[2]); entryD0CandGenInfo(isD0Prompt); // ===================== Define parameters for soft pion removal ======================== @@ -642,13 +640,13 @@ struct HfCorrelatorD0Hadrons { invMassDstar2 = std::sqrt((eKPi + ePion) * (eKPi + ePion) - pSum2); if (candidate.isSelD0() >= selectionFlagD0) { - if ((std::abs(invMassDstar1 - hfHelper.invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar1 - HfHelper::invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { continue; } } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - if ((std::abs(invMassDstar2 - hfHelper.invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar2 - HfHelper::invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { continue; } } @@ -689,7 +687,7 @@ struct HfCorrelatorD0Hadrons { track.pt(), poolBin, correlationStatus); - entryD0HadronRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), signalStatus); + entryD0HadronRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), signalStatus); entryD0HadronMlInfo(outputMlD0[0], outputMlD0[1], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2]); if (track.has_mcParticle()) { auto mcParticle = track.template mcParticle_as(); @@ -838,7 +836,7 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hD0PoolBin"), poolBinD0); for (const auto& [candidate, particleAssoc] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (std::abs(hfHelper.yD0(candidate)) >= yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yD0(candidate)) >= yCandMax || candidate.pt() < ptCandMin) { continue; } @@ -855,7 +853,7 @@ struct HfCorrelatorD0Hadrons { std::vector outputMlD0bar = {-1., -1., -1.}; if (candidate.isSelD0() >= selectionFlagD0) { - if ((std::abs(invMassDstar1 - hfHelper.invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar1 - HfHelper::invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { isSoftPiD0 = true; } for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { @@ -863,7 +861,7 @@ struct HfCorrelatorD0Hadrons { } } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - if ((std::abs(invMassDstar2 - hfHelper.invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar2 - HfHelper::invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { isSoftPiD0bar = true; } for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { @@ -888,7 +886,7 @@ struct HfCorrelatorD0Hadrons { } bool correlationStatus = false; entryD0HadronPair(getDeltaPhi(candidate.phi(), particleAssoc.phi()), candidate.eta() - particleAssoc.eta(), candidate.pt(), particleAssoc.pt(), poolBin, correlationStatus); - entryD0HadronRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), signalStatus); + entryD0HadronRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), signalStatus); entryD0HadronGenInfo(false, false, 0); entryD0HadronMlInfo(outputMlD0[0], outputMlD0[1], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2]); entryTrackRecoInfo(particleAssoc.dcaXY(), particleAssoc.dcaZ(), particleAssoc.tpcNClsCrossedRows()); @@ -921,7 +919,7 @@ struct HfCorrelatorD0Hadrons { for (const auto& [candidate, particleAssoc] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (std::abs(hfHelper.yD0(candidate)) >= yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yD0(candidate)) >= yCandMax || candidate.pt() < ptCandMin) { continue; } if (!particleAssoc.isGlobalTrackWoDCA()) { @@ -955,13 +953,13 @@ struct HfCorrelatorD0Hadrons { invMassDstar2 = std::sqrt((eKPi + ePion) * (eKPi + ePion) - pSum2); if (candidate.isSelD0() >= selectionFlagD0) { - if ((std::abs(invMassDstar1 - hfHelper.invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar1 - HfHelper::invMassD0ToPiK(candidate)) - softPiMass) < ptSoftPionMax) { isSoftPiD0 = true; } } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - if ((std::abs(invMassDstar2 - hfHelper.invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { + if ((std::abs(invMassDstar2 - HfHelper::invMassD0barToKPi(candidate)) - softPiMass) < ptSoftPionMax) { isSoftPiD0bar = true; } } @@ -1020,7 +1018,7 @@ struct HfCorrelatorD0Hadrons { registry.fill(HIST("hSignalStatusMERec"), signalStatus); bool correlationStatus = false; entryD0HadronPair(getDeltaPhi(candidate.phi(), particleAssoc.phi()), candidate.eta() - particleAssoc.eta(), candidate.pt(), particleAssoc.pt(), poolBin, correlationStatus); - entryD0HadronRecoInfo(hfHelper.invMassD0ToPiK(candidate), hfHelper.invMassD0barToKPi(candidate), signalStatus); + entryD0HadronRecoInfo(HfHelper::invMassD0ToPiK(candidate), HfHelper::invMassD0barToKPi(candidate), signalStatus); entryD0HadronGenInfo(isD0Prompt, isPhysicalPrimary, trackOrigin); entryD0HadronMlInfo(outputMlD0[0], outputMlD0[1], outputMlD0[2], outputMlD0bar[0], outputMlD0bar[1], outputMlD0bar[2]); entryTrackRecoInfo(particleAssoc.dcaXY(), particleAssoc.dcaZ(), particleAssoc.tpcNClsCrossedRows()); diff --git a/PWGHF/HFC/TableProducer/correlatorDMesonPairs.cxx b/PWGHF/HFC/TableProducer/correlatorDMesonPairs.cxx index 5a62565d230..7c14da3fe30 100644 --- a/PWGHF/HFC/TableProducer/correlatorDMesonPairs.cxx +++ b/PWGHF/HFC/TableProducer/correlatorDMesonPairs.cxx @@ -107,7 +107,6 @@ struct HfCorrelatorDMesonPairs { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; SliceCache cache; Preslice perCol2Prong = aod::hf_cand::collisionId; @@ -416,14 +415,14 @@ struct HfCorrelatorDMesonPairs { int nDevent = 0, nDbarevent = 0, nDDbarevent = 0, nDorDbarevent = 0; for (const auto& candidate : selectedD0Candidates) { // Get counters per event - bool const isSignalD0 = std::abs(hfHelper.invMassD0ToPiK(candidate) - MassD0) < massCut; - bool const isSignalD0bar = std::abs(hfHelper.invMassD0barToKPi(candidate) - MassD0Bar) < massCut; + bool const isSignalD0 = std::abs(HfHelper::invMassD0ToPiK(candidate) - MassD0) < massCut; + bool const isSignalD0bar = std::abs(HfHelper::invMassD0barToKPi(candidate) - MassD0Bar) < massCut; if (selectSignalRegionOnly && !(isSignalD0 || isSignalD0bar)) { continue; } auto candidateType1 = assignCandidateTypeD0(candidate); // Candidate type attribution registry.fill(HIST("hPtCand"), candidate.pt()); - if (std::abs(hfHelper.yD0(candidate)) > yCandMax) { + if (std::abs(HfHelper::yD0(candidate)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate.pt() < ptCandMin) { @@ -589,7 +588,7 @@ struct HfCorrelatorDMesonPairs { outputMlD0Cand1.clear(); outputMlD0barCand1.clear(); - if (std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -598,8 +597,8 @@ struct HfCorrelatorDMesonPairs { auto prong0Cand1 = candidate1.template prong0_as(); auto prong1Cand1 = candidate1.template prong1_as(); - bool const isSignalD0Cand1 = std::abs(hfHelper.invMassD0ToPiK(candidate1) - MassD0) < massCut; - bool const isSignalD0barCand1 = std::abs(hfHelper.invMassD0barToKPi(candidate1) - MassD0Bar) < massCut; + bool const isSignalD0Cand1 = std::abs(HfHelper::invMassD0ToPiK(candidate1) - MassD0) < massCut; + bool const isSignalD0barCand1 = std::abs(HfHelper::invMassD0barToKPi(candidate1) - MassD0Bar) < massCut; if (selectSignalRegionOnly && !(isSignalD0Cand1 || isSignalD0barCand1)) { continue; } @@ -641,19 +640,19 @@ struct HfCorrelatorDMesonPairs { registry.fill(HIST("hPVContrib"), collision.numContrib()); if (isDCand1) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt()); if (applyMl) { - registry.fill(HIST("hnDMesonMl"), outputMlD0Cand1[0], outputMlD0Cand1[1], hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); + registry.fill(HIST("hnDMesonMl"), outputMlD0Cand1[0], outputMlD0Cand1[1], HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); } else { - registry.fill(HIST("hnDMeson"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); + registry.fill(HIST("hnDMeson"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); } } if (isDbarCand1) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt()); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt()); if (applyMl) { - registry.fill(HIST("hnDMesonMl"), outputMlD0barCand1[0], outputMlD0barCand1[1], hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); + registry.fill(HIST("hnDMesonMl"), outputMlD0barCand1[0], outputMlD0barCand1[1], HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); } else { - registry.fill(HIST("hnDMeson"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); + registry.fill(HIST("hnDMeson"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), 0, candidateType1); } } @@ -662,7 +661,7 @@ struct HfCorrelatorDMesonPairs { outputMlD0Cand2.clear(); outputMlD0barCand2.clear(); - if (std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -674,8 +673,8 @@ struct HfCorrelatorDMesonPairs { continue; } - bool const isSignalD0Cand2 = std::abs(hfHelper.invMassD0ToPiK(candidate2) - MassD0) < massCut; - bool const isSignalD0barCand2 = std::abs(hfHelper.invMassD0barToKPi(candidate2) - MassD0Bar) < massCut; + bool const isSignalD0Cand2 = std::abs(HfHelper::invMassD0ToPiK(candidate2) - MassD0) < massCut; + bool const isSignalD0barCand2 = std::abs(HfHelper::invMassD0barToKPi(candidate2) - MassD0Bar) < massCut; if (selectSignalRegionOnly && !(isSignalD0Cand2 || isSignalD0barCand2)) { continue; } @@ -707,16 +706,16 @@ struct HfCorrelatorDMesonPairs { continue; } - fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, hfHelper.yD0(candidate1), hfHelper.yD0(candidate2), - candidate1.phi(), candidate2.phi(), candidate1.pt(), candidate2.pt(), hfHelper.invMassD0ToPiK(candidate1), hfHelper.invMassD0barToKPi(candidate1), - hfHelper.invMassD0ToPiK(candidate2), hfHelper.invMassD0barToKPi(candidate2)); + fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, HfHelper::yD0(candidate1), HfHelper::yD0(candidate2), + candidate1.phi(), candidate2.phi(), candidate1.pt(), candidate2.pt(), HfHelper::invMassD0ToPiK(candidate1), HfHelper::invMassD0barToKPi(candidate1), + HfHelper::invMassD0ToPiK(candidate2), HfHelper::invMassD0barToKPi(candidate2)); entryD0PairMl(outputMlD0Cand1, outputMlD0barCand1, outputMlD0Cand2, outputMlD0barCand2); } else { // Fill entries - fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, hfHelper.yD0(candidate1), hfHelper.yD0(candidate2), candidate1.phi(), candidate2.phi(), - candidate1.pt(), candidate2.pt(), hfHelper.invMassD0ToPiK(candidate1), hfHelper.invMassD0barToKPi(candidate1), - hfHelper.invMassD0ToPiK(candidate2), hfHelper.invMassD0barToKPi(candidate2)); + fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, HfHelper::yD0(candidate1), HfHelper::yD0(candidate2), candidate1.phi(), candidate2.phi(), + candidate1.pt(), candidate2.pt(), HfHelper::invMassD0ToPiK(candidate1), HfHelper::invMassD0barToKPi(candidate1), + HfHelper::invMassD0ToPiK(candidate2), HfHelper::invMassD0barToKPi(candidate2)); } } // end inner loop (Cand2) } // end outer loop (Cand1) @@ -741,14 +740,14 @@ struct HfCorrelatorDMesonPairs { outputMlD0barCand1.clear(); auto ptCandidate1 = candidate1.pt(); - auto yCandidate1 = hfHelper.yD0(candidate1); + auto yCandidate1 = HfHelper::yD0(candidate1); auto phiCandidate1 = candidate1.phi(); - float const massD0Cand1 = hfHelper.invMassD0ToPiK(candidate1); - float const massD0barCand1 = hfHelper.invMassD0barToKPi(candidate1); + float const massD0Cand1 = HfHelper::invMassD0ToPiK(candidate1); + float const massD0barCand1 = HfHelper::invMassD0barToKPi(candidate1); auto prong0Cand1 = candidate1.template prong0_as(); auto prong1Cand1 = candidate1.template prong1_as(); - if (std::abs(hfHelper.yD0(candidate1)) > yCandMax) { + if (std::abs(HfHelper::yD0(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -811,42 +810,42 @@ struct HfCorrelatorDMesonPairs { if (isDCand1) { if (applyMl) { - registry.fill(HIST("hnDMesonMl"), outputMlD0Cand1[0], outputMlD0Cand1[1], hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); + registry.fill(HIST("hnDMesonMl"), outputMlD0Cand1[0], outputMlD0Cand1[1], HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); } else { - registry.fill(HIST("hnDMeson"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); + registry.fill(HIST("hnDMeson"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); } if (isTrueDCand1) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt()); - registry.fill(HIST("hPtVsYVsNContribMcRec"), candidate1.pt(), hfHelper.yD0(candidate1), collision.numContrib()); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt()); + registry.fill(HIST("hPtVsYVsNContribMcRec"), candidate1.pt(), HfHelper::yD0(candidate1), collision.numContrib()); registry.fill(HIST("hNContribMcRec"), collision.numContrib()); if (originRec1 == RecoDecay::Prompt) { - registry.fill(HIST("hMassMcRecPrompt"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt()); - registry.fill(HIST("hPtVsYVsNContribMcRecPrompt"), candidate1.pt(), hfHelper.yD0(candidate1), collision.numContrib()); + registry.fill(HIST("hMassMcRecPrompt"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt()); + registry.fill(HIST("hPtVsYVsNContribMcRecPrompt"), candidate1.pt(), HfHelper::yD0(candidate1), collision.numContrib()); } else if (originRec1 == RecoDecay::NonPrompt) { - registry.fill(HIST("hMassMcRecNonPrompt"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt()); - registry.fill(HIST("hPtVsYVsNContribMcRecNonPrompt"), candidate1.pt(), hfHelper.yD0(candidate1), collision.numContrib()); + registry.fill(HIST("hMassMcRecNonPrompt"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt()); + registry.fill(HIST("hPtVsYVsNContribMcRecNonPrompt"), candidate1.pt(), HfHelper::yD0(candidate1), collision.numContrib()); } } else if (isTrueDbarCand1) { - registry.fill(HIST("hMassMcRecReflections"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt()); + registry.fill(HIST("hMassMcRecReflections"), HfHelper::invMassD0ToPiK(candidate1), candidate1.pt()); } } if (isDbarCand1) { if (applyMl) { - registry.fill(HIST("hnDMesonMl"), outputMlD0barCand1[0], outputMlD0barCand1[1], hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); + registry.fill(HIST("hnDMesonMl"), outputMlD0barCand1[0], outputMlD0barCand1[1], HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); } else { - registry.fill(HIST("hnDMeson"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); + registry.fill(HIST("hnDMeson"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt(), candidate1.y(MassD0), collision.numContrib(), originRec1, candidateType1); } if (isTrueDbarCand1) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt()); - registry.fill(HIST("hPtVsYVsNContribMcRec"), candidate1.pt(), hfHelper.yD0(candidate1), collision.numContrib()); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt()); + registry.fill(HIST("hPtVsYVsNContribMcRec"), candidate1.pt(), HfHelper::yD0(candidate1), collision.numContrib()); registry.fill(HIST("hNContribMcRec"), collision.numContrib()); if (originRec1 == RecoDecay::Prompt) { - registry.fill(HIST("hMassMcRecPrompt"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt()); + registry.fill(HIST("hMassMcRecPrompt"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt()); } else if (originRec1 == RecoDecay::NonPrompt) { - registry.fill(HIST("hMassMcRecNonPrompt"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt()); + registry.fill(HIST("hMassMcRecNonPrompt"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt()); } } else if (isTrueDCand1) { - registry.fill(HIST("hMassMcRecReflections"), hfHelper.invMassD0barToKPi(candidate1), candidate1.pt()); + registry.fill(HIST("hMassMcRecReflections"), HfHelper::invMassD0barToKPi(candidate1), candidate1.pt()); } } @@ -856,14 +855,14 @@ struct HfCorrelatorDMesonPairs { outputMlD0barCand2.clear(); auto ptCandidate2 = candidate2.pt(); - auto yCandidate2 = hfHelper.yD0(candidate2); + auto yCandidate2 = HfHelper::yD0(candidate2); auto phiCandidate2 = candidate2.phi(); - float const massD0Cand2 = hfHelper.invMassD0ToPiK(candidate2); - float const massD0barCand2 = hfHelper.invMassD0barToKPi(candidate2); + float const massD0Cand2 = HfHelper::invMassD0ToPiK(candidate2); + float const massD0barCand2 = HfHelper::invMassD0barToKPi(candidate2); auto prong0Cand2 = candidate2.template prong0_as(); auto prong1Cand2 = candidate2.template prong1_as(); - if (std::abs(hfHelper.yD0(candidate2)) > yCandMax) { + if (std::abs(HfHelper::yD0(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { diff --git a/PWGHF/HFC/TableProducer/correlatorDplusDminus.cxx b/PWGHF/HFC/TableProducer/correlatorDplusDminus.cxx index 277f07d0eec..18af8dd9267 100644 --- a/PWGHF/HFC/TableProducer/correlatorDplusDminus.cxx +++ b/PWGHF/HFC/TableProducer/correlatorDplusDminus.cxx @@ -96,7 +96,6 @@ struct HfCorrelatorDplusDminus { Configurable> binsPt{"binsPt", std::vector{o2::analysis::hf_cuts_dplus_to_pi_k_pi::vecBinsPt}, "pT bin limits for candidate mass plots and efficiency"}; Configurable> efficiencyD{"efficiencyD", std::vector{efficiencyDmesonV}, "Efficiency values for Dplus meson"}; - HfHelper hfHelper; SliceCache cache; Preslice perCol = aod::hf_cand::collisionId; @@ -176,7 +175,7 @@ struct HfCorrelatorDplusDminus { auto selectedDPlusCandidatesGrouped = selectedDPlusCandidates->sliceByCached(aod::hf_cand::collisionId, collision.globalIndex(), cache); for (const auto& candidate1 : selectedDPlusCandidatesGrouped) { - if (yCandMax >= 0. && std::abs(hfHelper.yDplus(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yDplus(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -200,11 +199,11 @@ struct HfCorrelatorDplusDminus { // fill invariant mass plots and generic info from all Dplus/Dminus candidates if (outerParticleSign == 1) { - registry.fill(HIST("hMass"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassDplus"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDplus"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } else { - registry.fill(HIST("hMass"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); - registry.fill(HIST("hMassDminus"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMass"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDminus"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } registry.fill(HIST("hPtCand"), candidate1.pt()); registry.fill(HIST("hPtProng0"), candidate1.ptProng0()); @@ -212,7 +211,7 @@ struct HfCorrelatorDplusDminus { registry.fill(HIST("hPtProng2"), candidate1.ptProng2()); registry.fill(HIST("hEta"), candidate1.eta()); registry.fill(HIST("hPhi"), candidate1.phi()); - registry.fill(HIST("hY"), hfHelper.yDplus(candidate1)); + registry.fill(HIST("hY"), HfHelper::yDplus(candidate1)); registry.fill(HIST("hSelectionStatus"), candidate1.isSelDplusToPiKPi()); // D-Dbar correlation dedicated section @@ -229,7 +228,7 @@ struct HfCorrelatorDplusDminus { if (innerSecondTrack.sign() != 1) { // keep only Dminus (with second daughter track positive) continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yDplus(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yDplus(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -239,8 +238,8 @@ struct HfCorrelatorDplusDminus { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryDplusDminusRecoInfo(hfHelper.invMassDplusToPiKPi(candidate1), - hfHelper.invMassDplusToPiKPi(candidate2), + entryDplusDminusRecoInfo(HfHelper::invMassDplusToPiKPi(candidate1), + HfHelper::invMassDplusToPiKPi(candidate2), 0); double etaCut = 0.; double ptCut = 0.; @@ -292,7 +291,7 @@ struct HfCorrelatorDplusDminus { if ((candidate1.hfflag() & 1 << aod::hf_cand_3prong::DecayType::DplusToPiKPi) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yDplus(candidate1)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yDplus(candidate1)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate1.pt() < ptCandMin) { @@ -312,9 +311,9 @@ struct HfCorrelatorDplusDminus { if (std::abs(candidate1.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) { // fill invariant mass plots and per-candidate distributions from Dplus/Dminus signal candidates if (outerParticleSign == 1) { // reco and matched as Dplus - registry.fill(HIST("hMassDplusMCRecSig"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDplusMCRecSig"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } else { // reco and matched as Dminus - registry.fill(HIST("hMassDminusMCRecSig"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDminusMCRecSig"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } registry.fill(HIST("hPtCandMCRec"), candidate1.pt()); registry.fill(HIST("hPtProng0MCRec"), candidate1.ptProng0()); @@ -322,14 +321,14 @@ struct HfCorrelatorDplusDminus { registry.fill(HIST("hPtProng2MCRec"), candidate1.ptProng2()); registry.fill(HIST("hEtaMCRec"), candidate1.eta()); registry.fill(HIST("hPhiMCRec"), candidate1.phi()); - registry.fill(HIST("hYMCRec"), hfHelper.yDplus(candidate1)); + registry.fill(HIST("hYMCRec"), HfHelper::yDplus(candidate1)); registry.fill(HIST("hSelectionStatusMCRec"), candidate1.isSelDplusToPiKPi()); } else { // fill invariant mass plots from Dplus/Dminus background candidates if (outerParticleSign == 1) { // reco as Dplus - registry.fill(HIST("hMassDplusMCRecBkg"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDplusMCRecBkg"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } else { // matched as Dminus - registry.fill(HIST("hMassDminusMCRecBkg"), hfHelper.invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); + registry.fill(HIST("hMassDminusMCRecBkg"), HfHelper::invMassDplusToPiKPi(candidate1), candidate1.pt(), efficiencyWeight); } } @@ -347,7 +346,7 @@ struct HfCorrelatorDplusDminus { continue; } flagDminusSignal = std::abs(candidate2.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi; // flagDminusSignal 'true' if candidate2 matched to Dminus - if (yCandMax >= 0. && std::abs(hfHelper.yDplus(candidate2)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yDplus(candidate2)) > yCandMax) { continue; } if (ptCandMin >= 0. && candidate2.pt() < ptCandMin) { @@ -365,8 +364,8 @@ struct HfCorrelatorDplusDminus { candidate2.eta() - candidate1.eta(), candidate1.pt(), candidate2.pt()); - entryDplusDminusRecoInfo(hfHelper.invMassDplusToPiKPi(candidate1), - hfHelper.invMassDplusToPiKPi(candidate2), + entryDplusDminusRecoInfo(HfHelper::invMassDplusToPiKPi(candidate1), + HfHelper::invMassDplusToPiKPi(candidate2), pairSignalStatus); double etaCut = 0.; double ptCut = 0.; diff --git a/PWGHF/HFC/TableProducer/correlatorDplusHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorDplusHadrons.cxx index 2b7908f4dd5..69b4c3ef4b8 100644 --- a/PWGHF/HFC/TableProducer/correlatorDplusHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorDplusHadrons.cxx @@ -82,7 +82,6 @@ struct HfCorrelatorDplusHadronsDplusSelection { Configurable yCandMax{"yCandMax", 0.8, "max. cand. rapidity"}; Configurable ptCandMin{"ptCandMin", 1., "min. cand. pT"}; - HfHelper hfHelper; SliceCache cache; using SelCollisions = soa::Join; @@ -102,7 +101,7 @@ struct HfCorrelatorDplusHadronsDplusSelection { bool isNosameBunchPileUp = true; if (doSelDplusCollision) { for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isDplusFound = false; continue; } @@ -130,7 +129,7 @@ struct HfCorrelatorDplusHadronsDplusSelection { bool isNosameBunchPileUp = true; if (doSelDplusCollision) { for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin) { + if (std::abs(HfHelper::yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin) { continue; } isDplusFound = true; @@ -203,7 +202,6 @@ struct HfCorrelatorDplusHadrons { Configurable> binsPtEfficiencyD{"binsPtEfficiencyD", std::vector{o2::analysis::hf_cuts_dplus_to_pi_k_pi::vecBinsPt}, "pT bin limits for efficiency"}; Configurable> efficiencyD{"efficiencyD", {1., 1., 1., 1., 1., 1.}, "efficiency values for D+ meson"}; - HfHelper hfHelper; SliceCache cache; // Event Mixing for the Data Mode @@ -338,7 +336,7 @@ struct HfCorrelatorDplusHadrons { int cntDplus = 0; std::vector outputMl = {-1., -1., -1.}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptCandMax) { + if (std::abs(HfHelper::yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptCandMax) { continue; } int const effBinD = o2::analysis::findBin(binsPtEfficiencyD, candidate.pt()); @@ -347,22 +345,22 @@ struct HfCorrelatorDplusHadrons { efficiencyWeightD = 1. / efficiencyD->at(effBinD); } // fill invariant mass plots and generic info from all Dplus candidates - registry.fill(HIST("hMassDplus_2D"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); - registry.fill(HIST("hMassDplusData"), hfHelper.invMassDplusToPiKPi(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDplus_2D"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDplusData"), HfHelper::invMassDplusToPiKPi(candidate), efficiencyWeightD); registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); registry.fill(HIST("hPtProng1"), candidate.ptProng1()); registry.fill(HIST("hPtProng2"), candidate.ptProng2()); registry.fill(HIST("hEta"), candidate.eta()); registry.fill(HIST("hPhi"), RecoDecay::constrainAngle(candidate.phi(), -o2::constants::math::PIHalf)); - registry.fill(HIST("hY"), hfHelper.yDplus(candidate)); + registry.fill(HIST("hY"), HfHelper::yDplus(candidate)); registry.fill(HIST("hSelectionStatus"), candidate.isSelDplusToPiKPi()); registry.fill(HIST("hDplusBin"), poolBin); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)]; } - entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); // 0: BkgBDTScore, 1:PromptBDTScore, 2: FDScore - entryDplus(candidate.phi(), candidate.eta(), candidate.pt(), hfHelper.invMassDplusToPiKPi(candidate), poolBin, gCollisionId, timeStamp); + entryDplusCandRecoInfo(HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); // 0: BkgBDTScore, 1:PromptBDTScore, 2: FDScore + entryDplus(candidate.phi(), candidate.eta(), candidate.pt(), HfHelper::invMassDplusToPiKPi(candidate), poolBin, gCollisionId, timeStamp); // Dplus-Hadron correlation dedicated section // if the candidate is a Dplus, search for Hadrons and evaluate correlations @@ -381,7 +379,7 @@ struct HfCorrelatorDplusHadrons { track.eta() - candidate.eta(), candidate.pt(), track.pt(), poolBin); - entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), false); + entryDplusHadronRecoInfo(HfHelper::invMassDplusToPiKPi(candidate), false); entryDplusHadronGenInfo(false, false, 0); entryDplusHadronMlInfo(outputMl[0], outputMl[1], outputMl[2]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -429,7 +427,7 @@ struct HfCorrelatorDplusHadrons { bool isDplusSignal = false; for (const auto& candidate : candidates) { // rapidity and pT selections - if (std::abs(hfHelper.yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptCandMax) { + if (std::abs(HfHelper::yDplus(candidate)) >= yCandMax || candidate.pt() <= ptCandMin || candidate.pt() >= ptCandMax) { continue; } // efficiency weight determination @@ -447,7 +445,7 @@ struct HfCorrelatorDplusHadrons { std::vector outputMl = {-1., -1., -1.}; // fill invariant mass plots from Dplus signal and background candidates - registry.fill(HIST("hMassDplusMcRec"), hfHelper.invMassDplusToPiKPi(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDplusMcRec"), HfHelper::invMassDplusToPiKPi(candidate), efficiencyWeightD); registry.fill(HIST("hDplusBin"), poolBin); if (isDplusSignal) { @@ -455,11 +453,11 @@ struct HfCorrelatorDplusHadrons { registry.fill(HIST("hPtProng0MCRec"), candidate.ptProng0()); registry.fill(HIST("hPtProng1MCRec"), candidate.ptProng1()); registry.fill(HIST("hPtProng2MCRec"), candidate.ptProng2()); - registry.fill(HIST("hMassDplusVsPtMcRec"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDplusVsPtMcRec"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); registry.fill(HIST("hSelectionStatusMCRec"), candidate.isSelDplusToPiKPi()); registry.fill(HIST("hPtCandMcRecSig"), candidate.pt()); registry.fill(HIST("hEtaMcRecSig"), candidate.eta()); - registry.fill(HIST("hYMCRecSig"), hfHelper.yDplus(candidate)); + registry.fill(HIST("hYMCRecSig"), HfHelper::yDplus(candidate)); registry.fill(HIST("hPhiMcRecSig"), RecoDecay::constrainAngle(candidate.phi(), -PIHalf)); // prompt and non-prompt division @@ -474,14 +472,14 @@ struct HfCorrelatorDplusHadrons { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)]; } - registry.fill(HIST("hMassDplusMcRecSig"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); - entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); + registry.fill(HIST("hMassDplusMcRecSig"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); + entryDplusCandRecoInfo(HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2]); entryDplusCandGenInfo(isDplusPrompt); } else { registry.fill(HIST("hPtCandMcRecBkg"), candidate.pt()); registry.fill(HIST("hEtaMcRecBkg"), candidate.eta()); registry.fill(HIST("hPhiMcRecBkg"), RecoDecay::constrainAngle(candidate.phi(), -PIHalf)); - registry.fill(HIST("hMassDplusMcRecBkg"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDplusMcRecBkg"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD); } // Dplus-Hadron correlation dedicated section @@ -503,7 +501,7 @@ struct HfCorrelatorDplusHadrons { track.eta() - candidate.eta(), candidate.pt(), track.pt(), poolBin); - entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), isDplusSignal); + entryDplusHadronRecoInfo(HfHelper::invMassDplusToPiKPi(candidate), isDplusSignal); entryDplusHadronMlInfo(outputMl[0], outputMl[1], outputMl[2]); if (track.has_mcParticle()) { auto mcParticle = track.template mcParticle_as(); @@ -633,11 +631,11 @@ struct HfCorrelatorDplusHadrons { int poolBin = corrBinning.getBin(std::make_tuple(c2.posZ(), c2.multFT0M())); for (const auto& [trigDplus, assocParticle] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (!assocParticle.isGlobalTrackWoDCA() || std::abs(hfHelper.yDplus(trigDplus)) >= yCandMax) { + if (!assocParticle.isGlobalTrackWoDCA() || std::abs(HfHelper::yDplus(trigDplus)) >= yCandMax) { continue; } entryDplusHadronPair(getDeltaPhi(trigDplus.phi(), assocParticle.phi()), trigDplus.eta() - assocParticle.eta(), trigDplus.pt(), assocParticle.pt(), poolBin); - entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(trigDplus), 0); + entryDplusHadronRecoInfo(HfHelper::invMassDplusToPiKPi(trigDplus), 0); } } } @@ -650,7 +648,7 @@ struct HfCorrelatorDplusHadrons { { BinningType const corrBinning{{binsZVtx, binsMultiplicityMc}, true}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } // Dplus flag @@ -683,7 +681,7 @@ struct HfCorrelatorDplusHadrons { registry.fill(HIST("hTracksPoolBin"), poolBin); // note that the selections here are not yet applied registry.fill(HIST("hDplusPoolBin"), poolBinDplus); // note that the selections here are not yet applied for (const auto& [candidate, pAssoc] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (std::abs(hfHelper.yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDplus(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } if (!pAssoc.isGlobalTrackWoDCA()) { @@ -707,7 +705,7 @@ struct HfCorrelatorDplusHadrons { candidate.pt(), pAssoc.pt(), poolBin); - entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), isDplusSignal); + entryDplusHadronRecoInfo(HfHelper::invMassDplusToPiKPi(candidate), isDplusSignal); entryDplusHadronGenInfo(isDplusPrompt, isPhysicalPrimary, trackOrigin); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)]; diff --git a/PWGHF/HFC/TableProducer/correlatorDsHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorDsHadrons.cxx index 315036c2fd7..bc71562e9e7 100644 --- a/PWGHF/HFC/TableProducer/correlatorDsHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorDsHadrons.cxx @@ -92,7 +92,6 @@ struct HfCorrelatorDsHadronsSelCollision { Configurable yCandMax{"yCandMax", 0.8, "max. cand. rapidity"}; Configurable ptCandMin{"ptCandMin", 1., "min. cand. pT"}; - HfHelper hfHelper; SliceCache cache; using SelCollisions = soa::Join; @@ -112,7 +111,7 @@ struct HfCorrelatorDsHadronsSelCollision { if (doSelDsCollision) { isDsFound = false; // if candidate table is empty for-loop is not performed for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isDsFound = false; continue; } @@ -141,7 +140,7 @@ struct HfCorrelatorDsHadronsSelCollision { bool isNosameBunchPileUp = true; if (doSelDsCollision) { // to enable only for the MC reco part for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isDsFound = false; continue; } @@ -211,7 +210,6 @@ struct HfCorrelatorDsHadrons { int hfcReducedCollisionIndex = 0; static constexpr std::size_t NDaughtersDs{3u}; - HfHelper hfHelper; SliceCache cache; using SelCollisionsWithDs = soa::Filtered>; // collisionFilter applied @@ -353,8 +351,8 @@ struct HfCorrelatorDsHadrons { template void fillHistoKKPi(const T1& candidate, double efficiencyWeight) { - registry.fill(HIST("hMassDsVsPt"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeight); - registry.fill(HIST("hMassDsData"), hfHelper.invMassDsToKKPi(candidate), efficiencyWeight); + registry.fill(HIST("hMassDsVsPt"), HfHelper::invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassDsData"), HfHelper::invMassDsToKKPi(candidate), efficiencyWeight); registry.fill(HIST("hSelectionStatusDsToKKPi"), candidate.isSelDsToKKPi()); } @@ -364,8 +362,8 @@ struct HfCorrelatorDsHadrons { template void fillHistoPiKK(const T1& candidate, double efficiencyWeight) { - registry.fill(HIST("hMassDsVsPt"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeight); - registry.fill(HIST("hMassDsData"), hfHelper.invMassDsToPiKK(candidate), efficiencyWeight); + registry.fill(HIST("hMassDsVsPt"), HfHelper::invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeight); + registry.fill(HIST("hMassDsData"), HfHelper::invMassDsToPiKK(candidate), efficiencyWeight); registry.fill(HIST("hSelectionStatusDsToPiKK"), candidate.isSelDsToPiKK()); } @@ -431,7 +429,7 @@ struct HfCorrelatorDsHadrons { // Ds fill histograms and Ds-Hadron correlation for DsToKKPi for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } double efficiencyWeightD = 1.; @@ -447,13 +445,13 @@ struct HfCorrelatorDsHadrons { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; } - entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); + entryDsCandRecoInfo(HfHelper::invMassDsToKKPi(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); } else if (candidate.isSelDsToPiKK() >= selectionFlagDs) { fillHistoPiKK(candidate, efficiencyWeightD); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; } - entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); + entryDsCandRecoInfo(HfHelper::invMassDsToPiKK(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); } if (candidate.isSelDsToKKPi() >= selectionFlagDs && candidate.isSelDsToPiKK() >= selectionFlagDs) { registry.fill(HIST("hCountSelectionStatusDsToKKPiAndToPiKK"), 0.); @@ -478,7 +476,7 @@ struct HfCorrelatorDsHadrons { track.pt() * track.sign(), poolBin, collision.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), false, false); + entryDsHadronRecoInfo(HfHelper::invMassDsToKKPi(candidate), false, false); // entryDsHadronGenInfo(false, false, 0); entryDsHadronMlInfo(outputMl[0], outputMl[2]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -489,7 +487,7 @@ struct HfCorrelatorDsHadrons { track.pt() * track.sign(), poolBin, collision.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), false, false); + entryDsHadronRecoInfo(HfHelper::invMassDsToPiKK(candidate), false, false); // entryDsHadronGenInfo(false, false, 0); entryDsHadronMlInfo(outputMl[0], outputMl[2]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -522,7 +520,7 @@ struct HfCorrelatorDsHadrons { bool isDsSignal = std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK; bool isDecayChan = candidate.flagMcDecayChanRec() == channelsResonant[decayChannel]; - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } @@ -544,21 +542,21 @@ struct HfCorrelatorDsHadrons { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; } - registry.fill(HIST("hMassDsMcRec"), hfHelper.invMassDsToKKPi(candidate), efficiencyWeightD); - registry.fill(HIST("hMassDsMcRecSig"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); - registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRec"), HfHelper::invMassDsToKKPi(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRecSig"), HfHelper::invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsVsPtMcRec"), HfHelper::invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); registry.fill(HIST("hSelectionStatusDsToKKPiMcRec"), candidate.isSelDsToKKPi()); - entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); + entryDsCandRecoInfo(HfHelper::invMassDsToKKPi(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); entryDsCandGenInfo(isDsPrompt); } else if (candidate.isSelDsToPiKK() >= selectionFlagDs) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; } - registry.fill(HIST("hMassDsMcRec"), hfHelper.invMassDsToPiKK(candidate), efficiencyWeightD); - registry.fill(HIST("hMassDsMcRecSig"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); - registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRec"), HfHelper::invMassDsToPiKK(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRecSig"), HfHelper::invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsVsPtMcRec"), HfHelper::invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); registry.fill(HIST("hSelectionStatusDsToPiKKMcRec"), candidate.isSelDsToPiKK()); - entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); + entryDsCandRecoInfo(HfHelper::invMassDsToPiKK(candidate), candidate.pt() * chargeDs, outputMl[0], outputMl[2], collision.numContrib()); entryDsCandGenInfo(isDsPrompt); } } else { @@ -567,17 +565,17 @@ struct HfCorrelatorDsHadrons { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; } - registry.fill(HIST("hMassDsMcRec"), hfHelper.invMassDsToKKPi(candidate), efficiencyWeightD); - registry.fill(HIST("hMassDsMcRecBkg"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); - registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRec"), HfHelper::invMassDsToKKPi(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRecBkg"), HfHelper::invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsVsPtMcRec"), HfHelper::invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD); registry.fill(HIST("hSelectionStatusDsToKKPi"), candidate.isSelDsToKKPi()); } else if (candidate.isSelDsToPiKK() >= selectionFlagDs) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; } - registry.fill(HIST("hMassDsMcRec"), hfHelper.invMassDsToPiKK(candidate), efficiencyWeightD); - registry.fill(HIST("hMassDsMcRecBkg"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); - registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRec"), HfHelper::invMassDsToPiKK(candidate), efficiencyWeightD); + registry.fill(HIST("hMassDsMcRecBkg"), HfHelper::invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); + registry.fill(HIST("hMassDsVsPtMcRec"), HfHelper::invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD); registry.fill(HIST("hSelectionStatusDsToPiKK"), candidate.isSelDsToPiKK()); } } @@ -601,7 +599,7 @@ struct HfCorrelatorDsHadrons { track.pt() * track.sign(), poolBin, collision.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), isDsSignal, isDecayChan); + entryDsHadronRecoInfo(HfHelper::invMassDsToKKPi(candidate), isDsSignal, isDecayChan); entryDsHadronMlInfo(outputMl[0], outputMl[2]); if (track.has_mcParticle()) { auto mcParticle = track.template mcParticle_as(); @@ -627,7 +625,7 @@ struct HfCorrelatorDsHadrons { track.pt() * track.sign(), poolBin, collision.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), isDsSignal, isDecayChan); + entryDsHadronRecoInfo(HfHelper::invMassDsToPiKK(candidate), isDsSignal, isDecayChan); entryDsHadronMlInfo(outputMl[0], outputMl[2]); if (track.has_mcParticle()) { auto mcParticle = track.template mcParticle_as(); @@ -820,13 +818,13 @@ struct HfCorrelatorDsHadrons { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; } - candReduced(indexHfcReducedCollision, candidate.phi(), candidate.eta(), candidate.pt() * chargeDs, hfHelper.invMassDsToKKPi(candidate), candidate.prong0Id(), candidate.prong1Id(), candidate.prong2Id()); + candReduced(indexHfcReducedCollision, candidate.phi(), candidate.eta(), candidate.pt() * chargeDs, HfHelper::invMassDsToKKPi(candidate), candidate.prong0Id(), candidate.prong1Id(), candidate.prong2Id()); candSelInfo(indexHfcReducedCollision, outputMl[0], outputMl[2]); } else if (candidate.isSelDsToPiKK() >= selectionFlagDs) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; } - candReduced(indexHfcReducedCollision, candidate.phi(), candidate.eta(), candidate.pt() * chargeDs, hfHelper.invMassDsToPiKK(candidate), candidate.prong0Id(), candidate.prong1Id(), candidate.prong2Id()); + candReduced(indexHfcReducedCollision, candidate.phi(), candidate.eta(), candidate.pt() * chargeDs, HfHelper::invMassDsToPiKK(candidate), candidate.prong0Id(), candidate.prong1Id(), candidate.prong2Id()); candSelInfo(indexHfcReducedCollision, outputMl[0], outputMl[2]); } } @@ -884,7 +882,7 @@ struct HfCorrelatorDsHadrons { if ((cand.hfflag() & 1 << aod::hf_cand_3prong::DecayType::DsToKKPi) == 0) { continue; } - if (std::abs(hfHelper.yDs(cand)) > yCandMax || cand.pt() < ptCandMin || cand.pt() > ptCandMax) { + if (std::abs(HfHelper::yDs(cand)) > yCandMax || cand.pt() < ptCandMin || cand.pt() > ptCandMax) { continue; } if (!pAssoc.isGlobalTrackWoDCA()) { @@ -902,7 +900,7 @@ struct HfCorrelatorDsHadrons { pAssoc.pt() * pAssoc.sign(), poolBin, c1.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(cand), false, false); + entryDsHadronRecoInfo(HfHelper::invMassDsToKKPi(cand), false, false); // entryDsHadronGenInfo(false, false, 0); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = cand.mlProbDsToKKPi()[classMl->at(iclass)]; @@ -917,7 +915,7 @@ struct HfCorrelatorDsHadrons { pAssoc.pt() * pAssoc.sign(), poolBin, c1.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(cand), false, false); + entryDsHadronRecoInfo(HfHelper::invMassDsToPiKK(cand), false, false); // entryDsHadronGenInfo(false, false, 0); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = cand.mlProbDsToPiKK()[classMl->at(iclass)]; @@ -937,7 +935,7 @@ struct HfCorrelatorDsHadrons { { BinningType const corrBinning{{zPoolBins, multPoolBins}, true}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } if (std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK) { @@ -965,7 +963,7 @@ struct HfCorrelatorDsHadrons { registry.fill(HIST("hTracksPoolBin"), poolBin); // note that the selections here are not yet applied registry.fill(HIST("hDsPoolBin"), poolBinDs); // note that the selections here are not yet applied for (const auto& [candidate, pAssoc] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (std::abs(hfHelper.yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yDs(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } if (!pAssoc.isGlobalTrackWoDCA()) { @@ -994,7 +992,7 @@ struct HfCorrelatorDsHadrons { pAssoc.pt() * pAssoc.sign(), poolBin, c1.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), isDsSignal, isDecayChan); + entryDsHadronRecoInfo(HfHelper::invMassDsToKKPi(candidate), isDsSignal, isDecayChan); entryDsHadronGenInfo(isDsPrompt, isPhysicalPrimary, trackOrigin); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)]; @@ -1008,7 +1006,7 @@ struct HfCorrelatorDsHadrons { pAssoc.pt() * pAssoc.sign(), poolBin, c1.numContrib()); - entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), isDsSignal, isDecayChan); + entryDsHadronRecoInfo(HfHelper::invMassDsToPiKK(candidate), isDsSignal, isDecayChan); entryDsHadronGenInfo(isDsPrompt, isPhysicalPrimary, trackOrigin); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)]; diff --git a/PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx index 59360564a88..adac8e53f50 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx @@ -92,7 +92,6 @@ struct HfCorrelatorLcHadronsSelection { Configurable centMax{"centMax", 100., "Maximum Centrality"}; Configurable useCentrality{"useCentrality", false, "Flag for centrality dependent analyses"}; - HfHelper hfHelper; SliceCache cache; using SelCollisions = soa::Join; @@ -114,7 +113,7 @@ struct HfCorrelatorLcHadronsSelection { bool isCentInRange = false; if (doSelLcCollision) { for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isLcFound = false; continue; } @@ -150,7 +149,7 @@ struct HfCorrelatorLcHadronsSelection { bool isNosameBunchPileUp = true; if (doSelLcCollision) { for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin) { isLcFound = false; continue; } @@ -240,7 +239,6 @@ struct HfCorrelatorLcHadrons { Configurable eventFractionToAnalyze{"eventFractionToAnalyze", -1, "Fraction of events to analyze (use only for ME offline on very large samples)"}; Configurable useCentrality{"useCentrality", false, "Flag for centrality dependent analyses"}; - HfHelper hfHelper; SliceCache cache; Service pdg; int leadingIndex = 0; @@ -413,7 +411,7 @@ struct HfCorrelatorLcHadrons { std::vector outputMl = {-1., -1., -1.}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } double efficiencyWeightLc = 1.; @@ -429,31 +427,31 @@ struct HfCorrelatorLcHadrons { registry.fill(HIST("hPtProng2"), candidate.ptProng2()); registry.fill(HIST("hEta"), candidate.eta()); registry.fill(HIST("hPhi"), RecoDecay::constrainAngle(candidate.phi(), -PIHalf)); - registry.fill(HIST("hY"), hfHelper.yLc(candidate)); + registry.fill(HIST("hY"), HfHelper::yLc(candidate)); registry.fill(HIST("hLcBin"), poolBin); if (candidate.isSelLcToPKPi() >= selectionFlagLc) { - registry.fill(HIST("hMassLcVsPtVsCent"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), cent, efficiencyWeightLc); - registry.fill(HIST("hMassLcData"), hfHelper.invMassLcToPKPi(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtVsCent"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), cent, efficiencyWeightLc); + registry.fill(HIST("hMassLcData"), HfHelper::invMassLcToPKPi(candidate), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPKPi"), candidate.isSelLcToPKPi()); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPKPi()[classMl->at(iclass)]; } - entryLcCandRecoInfo(hfHelper.invMassLcToPKPi(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore + entryLcCandRecoInfo(HfHelper::invMassLcToPKPi(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore if (!skipMixedEventTableFilling) { - entryLc(candidate.phi(), candidate.eta(), candidate.pt() * chargeLc, hfHelper.invMassLcToPKPi(candidate), poolBin, gCollisionId, timeStamp); + entryLc(candidate.phi(), candidate.eta(), candidate.pt() * chargeLc, HfHelper::invMassLcToPKPi(candidate), poolBin, gCollisionId, timeStamp); } } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { - registry.fill(HIST("hMassLcVsPtVsCent"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), cent, efficiencyWeightLc); - registry.fill(HIST("hMassLcData"), hfHelper.invMassLcToPiKP(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtVsCent"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), cent, efficiencyWeightLc); + registry.fill(HIST("hMassLcData"), HfHelper::invMassLcToPiKP(candidate), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPiKP"), candidate.isSelLcToPiKP()); for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPiKP()[classMl->at(iclass)]; } - entryLcCandRecoInfo(hfHelper.invMassLcToPiKP(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore + entryLcCandRecoInfo(HfHelper::invMassLcToPiKP(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore if (!skipMixedEventTableFilling) { - entryLc(candidate.phi(), candidate.eta(), candidate.pt() * chargeLc, hfHelper.invMassLcToPiKP(candidate), poolBin, gCollisionId, timeStamp); + entryLc(candidate.phi(), candidate.eta(), candidate.pt() * chargeLc, HfHelper::invMassLcToPiKP(candidate), poolBin, gCollisionId, timeStamp); } } @@ -489,8 +487,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now - entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(candidate), false); + entryLcHadronPairY(track.rapidity(MassProton) - HfHelper::yLc(candidate)); // only for proton as of now + entryLcHadronRecoInfo(HfHelper::invMassLcToPKPi(candidate), false); entryLcHadronGenInfo(false, false, 0); entryLcHadronMlInfo(outputMl[0], outputMl[1]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -506,8 +504,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now - entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(candidate), false); + entryLcHadronPairY(track.rapidity(MassProton) - HfHelper::yLc(candidate)); // only for proton as of now + entryLcHadronRecoInfo(HfHelper::invMassLcToPiKP(candidate), false); entryLcHadronGenInfo(false, false, 0); entryLcHadronMlInfo(outputMl[0], outputMl[1]); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); @@ -572,7 +570,7 @@ struct HfCorrelatorLcHadrons { int countLc = 1; for (const auto& candidate : candidates) { // check decay channel flag for candidate - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } double efficiencyWeightLc = 1.; @@ -593,7 +591,7 @@ struct HfCorrelatorLcHadrons { registry.fill(HIST("hPtCandMcRecSig"), candidate.pt()); registry.fill(HIST("hEtaMcRecSig"), candidate.eta()); registry.fill(HIST("hPhiMcRecSig"), RecoDecay::constrainAngle(candidate.phi(), -PIHalf)); - registry.fill(HIST("hYMcRecSig"), hfHelper.yLc(candidate)); + registry.fill(HIST("hYMcRecSig"), HfHelper::yLc(candidate)); // LcToPKPi and LcToPiKP division if (candidate.isSelLcToPKPi() >= selectionFlagLc) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { @@ -607,11 +605,11 @@ struct HfCorrelatorLcHadrons { registry.fill(HIST("hPtCandMcRecSigNonPrompt"), candidate.pt()); registry.fill(HIST("hPtVsMultiplicityMcRecNonPrompt"), candidate.pt(), multiplicityFT0M); } - registry.fill(HIST("hMassLcMcRec"), hfHelper.invMassLcToPKPi(candidate), efficiencyWeightLc); - registry.fill(HIST("hMassLcMcRecSig"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); - registry.fill(HIST("hMassLcVsPtMcRec"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRec"), HfHelper::invMassLcToPKPi(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRecSig"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtMcRec"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPKPiMcRec"), candidate.isSelLcToPKPi()); - entryLcCandRecoInfo(hfHelper.invMassLcToPKPi(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore + entryLcCandRecoInfo(HfHelper::invMassLcToPKPi(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore entryLcCandGenInfo(isLcPrompt); } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { @@ -625,35 +623,35 @@ struct HfCorrelatorLcHadrons { registry.fill(HIST("hPtCandMcRecSigNonPrompt"), candidate.pt()); registry.fill(HIST("hPtVsMultiplicityMcRecNonPrompt"), candidate.pt(), multiplicityFT0M); } - registry.fill(HIST("hMassLcMcRec"), hfHelper.invMassLcToPiKP(candidate), efficiencyWeightLc); - registry.fill(HIST("hMassLcMcRecSig"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); - registry.fill(HIST("hMassLcVsPtMcRec"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRec"), HfHelper::invMassLcToPiKP(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRecSig"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtMcRec"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPiKPMcRec"), candidate.isSelLcToPiKP()); - entryLcCandRecoInfo(hfHelper.invMassLcToPiKP(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore + entryLcCandRecoInfo(HfHelper::invMassLcToPiKP(candidate), candidate.pt() * chargeLc, outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore entryLcCandGenInfo(isLcPrompt); } } else { registry.fill(HIST("hPtCandMcRecBkg"), candidate.pt()); registry.fill(HIST("hEtaMcRecBkg"), candidate.eta()); registry.fill(HIST("hPhiMcRecBkg"), RecoDecay::constrainAngle(candidate.phi(), -PIHalf)); - registry.fill(HIST("hYMcRecBkg"), hfHelper.yLc(candidate)); + registry.fill(HIST("hYMcRecBkg"), HfHelper::yLc(candidate)); // LcToPKPi and LcToPiKP division if (candidate.isSelLcToPKPi() >= selectionFlagLc) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPKPi()[classMl->at(iclass)]; } - registry.fill(HIST("hMassLcMcRec"), hfHelper.invMassLcToPKPi(candidate), efficiencyWeightLc); - registry.fill(HIST("hMassLcMcRecBkg"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); - registry.fill(HIST("hMassLcVsPtMcRec"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRec"), HfHelper::invMassLcToPKPi(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRecBkg"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtMcRec"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPKPiMcRec"), candidate.isSelLcToPKPi()); } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) { outputMl[iclass] = candidate.mlProbLcToPiKP()[classMl->at(iclass)]; } - registry.fill(HIST("hMassLcMcRec"), hfHelper.invMassLcToPiKP(candidate), efficiencyWeightLc); - registry.fill(HIST("hMassLcMcRecBkg"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); - registry.fill(HIST("hMassLcVsPtMcRec"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRec"), HfHelper::invMassLcToPiKP(candidate), efficiencyWeightLc); + registry.fill(HIST("hMassLcMcRecBkg"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); + registry.fill(HIST("hMassLcVsPtMcRec"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), efficiencyWeightLc); registry.fill(HIST("hSelectionStatusLcToPiKPMcRec"), candidate.isSelLcToPiKP()); } } @@ -753,8 +751,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now - entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(candidate), isLcSignal); + entryLcHadronPairY(track.rapidity(MassProton) - HfHelper::yLc(candidate)); // only for proton as of now + entryLcHadronRecoInfo(HfHelper::invMassLcToPKPi(candidate), isLcSignal); if (fillTrkPID) { entryLcHadronPairTrkPID(track.tpcNSigmaPr(), track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tofNSigmaPr(), track.tofNSigmaKa(), track.tofNSigmaPi()); } @@ -784,8 +782,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now - entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(candidate), isLcSignal); + entryLcHadronPairY(track.rapidity(MassProton) - HfHelper::yLc(candidate)); // only for proton as of now + entryLcHadronRecoInfo(HfHelper::invMassLcToPiKP(candidate), isLcSignal); if (fillTrkPID) { entryLcHadronPairTrkPID(track.tpcNSigmaPr(), track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tofNSigmaPr(), track.tofNSigmaKa(), track.tofNSigmaPi()); } @@ -940,7 +938,7 @@ struct HfCorrelatorLcHadrons { for (const auto& [c1, tracks1, c2, tracks2] : pairData) { int poolBin = corrBinning.getBin(std::make_tuple(c2.posZ(), c2.multFT0M())); for (const auto& [trigLc, assocParticle] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (!assocParticle.isGlobalTrackWoDCA() || std::abs(hfHelper.yLc(trigLc)) > yCandMax) { + if (!assocParticle.isGlobalTrackWoDCA() || std::abs(HfHelper::yLc(trigLc)) > yCandMax) { continue; } @@ -965,8 +963,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(assocParticle.y() - hfHelper.yLc(trigLc)); - entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(trigLc), false); + entryLcHadronPairY(assocParticle.y() - HfHelper::yLc(trigLc)); + entryLcHadronRecoInfo(HfHelper::invMassLcToPKPi(trigLc), false); entryLcHadronGenInfo(false, false, 0); if (fillTrkPID) { entryLcHadronPairTrkPID(assocParticle.tpcNSigmaPr(), assocParticle.tpcNSigmaKa(), assocParticle.tpcNSigmaPi(), assocParticle.tofNSigmaPr(), assocParticle.tofNSigmaKa(), assocParticle.tofNSigmaPi()); @@ -985,8 +983,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(assocParticle.y() - hfHelper.yLc(trigLc)); - entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(trigLc), false); + entryLcHadronPairY(assocParticle.y() - HfHelper::yLc(trigLc)); + entryLcHadronRecoInfo(HfHelper::invMassLcToPiKP(trigLc), false); entryLcHadronGenInfo(false, false, 0); if (fillTrkPID) { entryLcHadronPairTrkPID(assocParticle.tpcNSigmaPr(), assocParticle.tpcNSigmaKa(), assocParticle.tpcNSigmaPi(), assocParticle.tofNSigmaPr(), assocParticle.tofNSigmaKa(), assocParticle.tofNSigmaPi()); @@ -1009,7 +1007,7 @@ struct HfCorrelatorLcHadrons { { BinningType const corrBinning{{binsZVtx, binsMultiplicityMc}, true}; for (const auto& candidate : candidates) { - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } // Lc flag @@ -1054,7 +1052,7 @@ struct HfCorrelatorLcHadrons { registry.fill(HIST("hLcPoolBin"), poolBinLc); float cent = 100.0; // will be updated later for (const auto& [candidate, pAssoc] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { - if (std::abs(hfHelper.yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { + if (std::abs(HfHelper::yLc(candidate)) > yCandMax || candidate.pt() < ptCandMin || candidate.pt() > ptCandMax) { continue; } if (!pAssoc.isGlobalTrackWoDCA()) { @@ -1088,8 +1086,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(pAssoc.y() - hfHelper.yLc(candidate)); - entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(candidate), isLcSignal); + entryLcHadronPairY(pAssoc.y() - HfHelper::yLc(candidate)); + entryLcHadronRecoInfo(HfHelper::invMassLcToPKPi(candidate), isLcSignal); entryLcHadronGenInfo(isLcPrompt, isPhysicalPrimary, trackOrigin); if (fillTrkPID) { entryLcHadronPairTrkPID(pAssoc.tpcNSigmaPr(), pAssoc.tpcNSigmaKa(), pAssoc.tpcNSigmaPi(), pAssoc.tofNSigmaPr(), pAssoc.tofNSigmaKa(), pAssoc.tofNSigmaPi()); @@ -1108,8 +1106,8 @@ struct HfCorrelatorLcHadrons { poolBin, correlationStatus, cent); - entryLcHadronPairY(pAssoc.y() - hfHelper.yLc(candidate)); - entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(candidate), isLcSignal); + entryLcHadronPairY(pAssoc.y() - HfHelper::yLc(candidate)); + entryLcHadronRecoInfo(HfHelper::invMassLcToPiKP(candidate), isLcSignal); entryLcHadronGenInfo(isLcPrompt, isPhysicalPrimary, trackOrigin); if (fillTrkPID) { entryLcHadronPairTrkPID(pAssoc.tpcNSigmaPr(), pAssoc.tpcNSigmaKa(), pAssoc.tpcNSigmaPi(), pAssoc.tofNSigmaPr(), pAssoc.tofNSigmaKa(), pAssoc.tofNSigmaPi()); diff --git a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx index bf1b3b1aa0b..15dea28665d 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx @@ -106,7 +106,6 @@ struct HfCorrelatorLcScHadronsSelection { Configurable cfgMinOccupancy{"cfgMinOccupancy", 0, "maximum occupancy of tracks in neighbouring collisions in a given time range"}; } cfgV0; - HfHelper hfHelper; SliceCache cache; using SelCollisions = soa::Join; @@ -134,13 +133,13 @@ struct HfCorrelatorLcScHadronsSelection { int8_t const chargeCand = candidate.charge(); if (chargeCand == chargeZero) { - yCand = hfHelper.ySc0(candidate); + yCand = HfHelper::ySc0(candidate); } else { - yCand = hfHelper.yScPlusPlus(candidate); + yCand = HfHelper::yScPlusPlus(candidate); } } else { - yCand = hfHelper.yLc(candidate); + yCand = HfHelper::yLc(candidate); } if (std::abs(yCand) > yCandMax || candidate.pt() < ptCandMin) { @@ -371,7 +370,6 @@ struct HfCorrelatorLcScHadrons { Configurable cfgHypMassWindow{"cfgHypMassWindow", 0.5, "single lambda mass selection"}; } cfgV0; - HfHelper hfHelper; SliceCache cache; Service pdg; int8_t chargeCand = 3; @@ -542,13 +540,13 @@ struct HfCorrelatorLcScHadrons { int8_t const chargeCand = candidate.charge(); if (chargeCand == ChargeZero) { - y = hfHelper.ySc0(candidate); + y = HfHelper::ySc0(candidate); } else { - y = hfHelper.yScPlusPlus(candidate); + y = HfHelper::yScPlusPlus(candidate); } } else { - y = hfHelper.yLc(candidate); + y = HfHelper::yLc(candidate); } return y; } @@ -816,12 +814,12 @@ struct HfCorrelatorLcScHadrons { if (selLcPKPi) { const auto& probs = candidateLc.mlProbLcToPKPi(); fillMlOutput(probs, outputMlPKPi); - massCandPKPi = std::abs(hfHelper.invMassScRecoLcToPKPi(candidate, candidateLc) - hfHelper.invMassLcToPKPi(candidateLc)); + massCandPKPi = std::abs(HfHelper::invMassScRecoLcToPKPi(candidate, candidateLc) - HfHelper::invMassLcToPKPi(candidateLc)); } if (selLcPiKP) { const auto& probs = candidateLc.mlProbLcToPiKP(); fillMlOutput(probs, outputMlPiKP); - massCandPiKP = std::abs(hfHelper.invMassScRecoLcToPiKP(candidate, candidateLc) - hfHelper.invMassLcToPiKP(candidateLc)); + massCandPiKP = std::abs(HfHelper::invMassScRecoLcToPiKP(candidate, candidateLc) - HfHelper::invMassLcToPiKP(candidateLc)); } if constexpr (IsMcRec) { // isSignal = @@ -854,12 +852,12 @@ struct HfCorrelatorLcScHadrons { if (selLcPKPi) { const auto& probs = candidate.mlProbLcToPKPi(); fillMlOutput(probs, outputMlPKPi); - massCandPKPi = hfHelper.invMassLcToPKPi(candidate); + massCandPKPi = HfHelper::invMassLcToPKPi(candidate); } if (selLcPiKP) { const auto& probs = candidate.mlProbLcToPiKP(); fillMlOutput(probs, outputMlPiKP); - massCandPiKP = hfHelper.invMassLcToPiKP(candidate); + massCandPiKP = HfHelper::invMassLcToPiKP(candidate); } auto trackPos1 = candidate.template prong0_as(); auto trackPos2 = candidate.template prong2_as(); @@ -1047,12 +1045,12 @@ struct HfCorrelatorLcScHadrons { if (selLcPKPi) { const auto& probs = candidateLc.mlProbLcToPKPi(); fillMlOutput(probs, outputMlPKPi); - massCandPKPi = std::abs(hfHelper.invMassScRecoLcToPKPi(candidate, candidateLc) - hfHelper.invMassLcToPKPi(candidateLc)); + massCandPKPi = std::abs(HfHelper::invMassScRecoLcToPKPi(candidate, candidateLc) - HfHelper::invMassLcToPKPi(candidateLc)); } if (selLcPiKP) { const auto& probs = candidateLc.mlProbLcToPiKP(); fillMlOutput(probs, outputMlPiKP); - massCandPiKP = std::abs(hfHelper.invMassScRecoLcToPiKP(candidate, candidateLc) - hfHelper.invMassLcToPiKP(candidateLc)); + massCandPiKP = std::abs(HfHelper::invMassScRecoLcToPiKP(candidate, candidateLc) - HfHelper::invMassLcToPiKP(candidateLc)); } if constexpr (IsMcRec) { isSignal = @@ -1071,12 +1069,12 @@ struct HfCorrelatorLcScHadrons { if (selLcPKPi) { const auto& probs = candidate.mlProbLcToPKPi(); fillMlOutput(probs, outputMlPKPi); - massCandPKPi = hfHelper.invMassLcToPKPi(candidate); + massCandPKPi = HfHelper::invMassLcToPKPi(candidate); } if (selLcPiKP) { const auto& probs = candidate.mlProbLcToPiKP(); fillMlOutput(probs, outputMlPiKP); - massCandPiKP = hfHelper.invMassLcToPiKP(candidate); + massCandPiKP = HfHelper::invMassLcToPiKP(candidate); } auto trackPos1 = candidate.template prong0_as(); chargeCand = trackPos1.sign(); diff --git a/PWGHF/HFC/TableProducer/derivedDataCreatorCorrelationsReduced.cxx b/PWGHF/HFC/TableProducer/derivedDataCreatorCorrelationsReduced.cxx index df5feed033e..4fe28b7007e 100644 --- a/PWGHF/HFC/TableProducer/derivedDataCreatorCorrelationsReduced.cxx +++ b/PWGHF/HFC/TableProducer/derivedDataCreatorCorrelationsReduced.cxx @@ -101,7 +101,6 @@ struct HfDerivedDataCreatorCorrelationsReduced { Configurable> binsPtTrig{"binsPtTrig", std::vector{0., 1., 2., 3., 5., 8., 12., 24., 36.}, "pT bin limits for trigger candidates"}; Configurable> binsPtAssoc{"binsPtAssoc", std::vector{0.2, 1., 2., 50.}, "pT bin limits for associated particles"}; - HfHelper hfHelper; HfEventSelection hfEvSel; // event selection and monitoring o2::framework::Service ccdb; SliceCache cache; @@ -197,19 +196,19 @@ struct HfDerivedDataCreatorCorrelationsReduced { double getCandMass(const TCand& candidate) { if constexpr (CandType == CandidateType::DsToKKPi) { - return hfHelper.invMassDsToKKPi(candidate); + return HfHelper::invMassDsToKKPi(candidate); } if constexpr (CandType == CandidateType::DsToPiKK) { - return hfHelper.invMassDsToPiKK(candidate); + return HfHelper::invMassDsToPiKK(candidate); } if constexpr (CandType == CandidateType::DplusToPiKPi) { - return hfHelper.invMassDplusToPiKPi(candidate); + return HfHelper::invMassDplusToPiKPi(candidate); } if constexpr (CandType == CandidateType::D0ToPiK) { - return hfHelper.invMassD0ToPiK(candidate); + return HfHelper::invMassD0ToPiK(candidate); } if constexpr (CandType == CandidateType::D0ToKPi) { - return hfHelper.invMassD0barToKPi(candidate); + return HfHelper::invMassD0barToKPi(candidate); } return -1.; } diff --git a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx index 3dfb0ad918f..de7407553b0 100644 --- a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx +++ b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx @@ -158,7 +158,6 @@ struct HfFemtoDreamProducer { FemtoDreamTrackSelection trackCuts; - HfHelper hfHelper; o2::analysis::HfMlResponseLcToPKPi hfMlResponse; o2::analysis::HfMlResponseDplusToPiKPi hfMlResponseDplus; std::vector outputMlDplus; diff --git a/PWGHF/HFC/Tasks/taskCorrelationD0Hadrons.cxx b/PWGHF/HFC/Tasks/taskCorrelationD0Hadrons.cxx index 78aa10b08b9..14bc23d0d3e 100644 --- a/PWGHF/HFC/Tasks/taskCorrelationD0Hadrons.cxx +++ b/PWGHF/HFC/Tasks/taskCorrelationD0Hadrons.cxx @@ -117,8 +117,6 @@ struct HfTaskCorrelationD0Hadrons { Configurable isTowardTransverseAway{"isTowardTransverseAway", false, "Divide into three regions: toward, transverse, and away"}; Configurable leadingParticlePtMin{"leadingParticlePtMin", 0., "Min for leading particle pt"}; - HfHelper hfHelper; - enum CandidateStep { kCandidateStepMcGenAll = 0, kCandidateStepMcGenD0ToPiKPi, kCandidateStepMcCandInAcceptance, @@ -859,7 +857,7 @@ struct HfTaskCorrelationD0Hadrons { multiplicity = collision.multFT0M(); if (std::abs(candidate.flagMcMatchRec()) == o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK) { hCandidates->Fill(kCandidateStepMcReco, candidate.pt(), multiplicity, candidate.originMcRec()); - if (std::abs(hfHelper.yD0(candidate)) <= yCandMax) { + if (std::abs(HfHelper::yD0(candidate)) <= yCandMax) { hCandidates->Fill(kCandidateStepMcRecoInAcceptance, candidate.pt(), multiplicity, candidate.originMcRec()); if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { registry.fill(HIST("hPtCandMcRecPrompt"), candidate.pt()); diff --git a/PWGHF/HFC/Tasks/taskCorrelationDplusHadrons.cxx b/PWGHF/HFC/Tasks/taskCorrelationDplusHadrons.cxx index aa8a6ea4d42..04aa48159cf 100644 --- a/PWGHF/HFC/Tasks/taskCorrelationDplusHadrons.cxx +++ b/PWGHF/HFC/Tasks/taskCorrelationDplusHadrons.cxx @@ -146,7 +146,6 @@ struct HfTaskCorrelationDplusHadrons { Configurable timestampCcdb{"timestampCcdb", -1, "timestamp of the efficiency files used to query in CCDB"}; Configurable ccdbNoLaterThan{"ccdbNoLaterThan", std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(), "latest acceptable timestamp of creation for the object"}; - HfHelper hfHelper; Service ccdb; std::shared_ptr mEfficiencyPrompt = nullptr; std::shared_ptr mEfficiencyFD = nullptr; @@ -668,7 +667,7 @@ struct HfTaskCorrelationDplusHadrons { multiplicity = collision.multFT0M(); if (std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) { hCandidates->Fill(kCandidateStepMcReco, candidate.pt(), multiplicity, candidate.originMcRec()); - if (std::abs(hfHelper.yDplus(candidate)) <= yCandMax) { + if (std::abs(HfHelper::yDplus(candidate)) <= yCandMax) { hCandidates->Fill(kCandidateStepMcRecoInAcceptance, candidate.pt(), multiplicity, candidate.originMcRec()); if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { registry.fill(HIST("Efficiency/hPtCandMcRecPrompt"), candidate.pt()); diff --git a/PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx b/PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx index e80fadbbbc9..38183d49386 100644 --- a/PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx +++ b/PWGHF/HFC/Tasks/taskCorrelationDsHadrons.cxx @@ -137,7 +137,6 @@ struct HfTaskCorrelationDsHadrons { static constexpr float Epsilon{1.e-8}; - HfHelper hfHelper; SliceCache cache; Service ccdb; @@ -963,7 +962,7 @@ struct HfTaskCorrelationDsHadrons { auto prong0McPart = candidate.template prong0_as().template mcParticle_as(); // DsToKKPi and DsToPiKK division if (((std::abs(prong0McPart.pdgCode()) == kKPlus) && (candidate.isSelDsToKKPi() >= selectionFlagDs)) || ((std::abs(prong0McPart.pdgCode()) == kPiPlus) && (candidate.isSelDsToPiKK() >= selectionFlagDs))) { - if (std::abs(hfHelper.yDs(candidate)) <= yCandMax) { + if (std::abs(HfHelper::yDs(candidate)) <= yCandMax) { if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { if (useHighDimHistoForEff) { registry.fill(HIST("hPtCandMcRecPrompt"), candidate.pt(), collision.numContrib()); @@ -1045,7 +1044,7 @@ struct HfTaskCorrelationDsHadrons { auto prong0McPart = candidate.template prong0_as().template mcParticle_as(); // DsToKKPi and DsToPiKK division if (((std::abs(prong0McPart.pdgCode()) == kKPlus) && (candidate.isSelDsToKKPi() >= selectionFlagDs)) || ((std::abs(prong0McPart.pdgCode()) == kPiPlus) && (candidate.isSelDsToPiKK() >= selectionFlagDs))) { - if (std::abs(hfHelper.yDs(candidate)) <= yCandMax) { + if (std::abs(HfHelper::yDs(candidate)) <= yCandMax) { if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { registry.fill(HIST("hPtCandMcRecPrompt"), candidate.pt()); } diff --git a/PWGHF/HFC/Tasks/taskCorrelationLcHadrons.cxx b/PWGHF/HFC/Tasks/taskCorrelationLcHadrons.cxx index bd641ddee02..b9b6d6c0780 100644 --- a/PWGHF/HFC/Tasks/taskCorrelationLcHadrons.cxx +++ b/PWGHF/HFC/Tasks/taskCorrelationLcHadrons.cxx @@ -160,7 +160,6 @@ struct HfTaskCorrelationLcHadrons { std::shared_ptr mEfficiencyFD = nullptr; std::shared_ptr mEfficiencyAssociated = nullptr; - HfHelper hfHelper; Service ccdb; enum CandidateStep { kCandidateStepMcGenAll = 0, @@ -899,7 +898,7 @@ struct HfTaskCorrelationLcHadrons { multiplicity = collision.multFT0M(); if (std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::LcToPKPi) { hCandidates->Fill(kCandidateStepMcReco, candidate.pt(), multiplicity, candidate.originMcRec()); - if (std::abs(hfHelper.yLc(candidate)) <= yCandMax) { + if (std::abs(HfHelper::yLc(candidate)) <= yCandMax) { hCandidates->Fill(kCandidateStepMcRecoInAcceptance, candidate.pt(), multiplicity, candidate.originMcRec()); if (candidate.originMcRec() == RecoDecay::OriginType::Prompt) { registry.fill(HIST("Efficiency/hPtCandMcRecPrompt"), candidate.pt()); diff --git a/PWGHF/HFC/Tasks/taskFlow.cxx b/PWGHF/HFC/Tasks/taskFlow.cxx index 448d4c5769c..6feb75fa526 100644 --- a/PWGHF/HFC/Tasks/taskFlow.cxx +++ b/PWGHF/HFC/Tasks/taskFlow.cxx @@ -251,7 +251,6 @@ struct HfTaskFlow { TF1* fPtDepDCAxy = nullptr; - HfHelper hfHelper; SliceCache cache; Service pdg; Service ccdb; @@ -897,7 +896,7 @@ struct HfTaskFlow { if (configCandidates.etaCandidateMax >= 0. && std::abs(etaCandidate) > configCandidates.etaCandidateMax) { return false; } - if (configCandidates.yCandRecoMax >= 0. && std::abs(hfHelper.yLc(candidate)) > configCandidates.yCandRecoMax) { + if (configCandidates.yCandRecoMax >= 0. && std::abs(HfHelper::yLc(candidate)) > configCandidates.yCandRecoMax) { return false; } return true; @@ -909,7 +908,7 @@ struct HfTaskFlow { if (configCandidates.etaCandidateMax >= 0. && std::abs(etaCandidate) > configCandidates.etaCandidateMax) { return false; } - if (configCandidates.yCandRecoMax >= 0. && std::abs(hfHelper.yD0(candidate)) > configCandidates.yCandRecoMax) { + if (configCandidates.yCandRecoMax >= 0. && std::abs(HfHelper::yD0(candidate)) > configCandidates.yCandRecoMax) { return false; } return true; @@ -1014,9 +1013,9 @@ struct HfTaskFlow { } fillingHFcontainer = true; if constexpr (std::is_same_v) { // If D0 - invmass = hfHelper.invMassD0ToPiK(track1); + invmass = HfHelper::invMassD0ToPiK(track1); } else { // If Lc - invmass = hfHelper.invMassLcToPKPi(track1); + invmass = HfHelper::invMassLcToPKPi(track1); } } @@ -1214,9 +1213,9 @@ struct HfTaskFlow { } fillingHFcontainer = true; if constexpr (std::is_same_v) { // If D0 - invmass = hfHelper.invMassD0ToPiK(track1); + invmass = HfHelper::invMassD0ToPiK(track1); } else { // If Lc - invmass = hfHelper.invMassLcToPKPi(track1); + invmass = HfHelper::invMassLcToPKPi(track1); } } @@ -1377,9 +1376,9 @@ struct HfTaskFlow { } fillingHFcontainer = true; if constexpr (std::is_same_v) { // If D0 - invmass = hfHelper.invMassD0ToPiK(track1); + invmass = HfHelper::invMassD0ToPiK(track1); } else { // If Lc - invmass = hfHelper.invMassLcToPKPi(track1); + invmass = HfHelper::invMassLcToPKPi(track1); } } diff --git a/PWGHF/HFL/TableProducer/treeCreatorElectronDCA.cxx b/PWGHF/HFL/TableProducer/treeCreatorElectronDCA.cxx index acd38174698..af8bcab9079 100644 --- a/PWGHF/HFL/TableProducer/treeCreatorElectronDCA.cxx +++ b/PWGHF/HFL/TableProducer/treeCreatorElectronDCA.cxx @@ -65,7 +65,6 @@ struct HfTreeCreatorElectronDCA { Configurable etaRange{"etaRange", 0.5, "pseudorapidity range"}; Configurable pTMin{"pTMin", 0.5, "min pT"}; - HfHelper hfHelper; Service pdg; using TracksWExt = soa::Join; diff --git a/PWGHF/TableProducer/candidateCreatorB0.cxx b/PWGHF/TableProducer/candidateCreatorB0.cxx index 5097623643f..5330ccd68b8 100644 --- a/PWGHF/TableProducer/candidateCreatorB0.cxx +++ b/PWGHF/TableProducer/candidateCreatorB0.cxx @@ -96,7 +96,6 @@ struct HfCandidateCreatorB0 { Configurable ccdbPathGrp{"ccdbPathGrp", "GLO/GRP/GRP", "Path of the grp file (Run 2)"}; Configurable ccdbPathGrpMag{"ccdbPathGrpMag", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object (Run 3)"}; - HfHelper hfHelper; Service ccdb; o2::base::MatLayerCylSet* lut{}; o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT; @@ -229,7 +228,7 @@ struct HfCandidateCreatorB0 { auto candsDThisColl = candsD.sliceBy(candsDPerCollision, thisCollId); for (const auto& candD : candsDThisColl) { // start loop over filtered D candidates indices as associated to this collision in candidateCreator3Prong.cxx - hMassDToPiKPi->Fill(hfHelper.invMassDplusToPiKPi(candD), candD.pt()); + hMassDToPiKPi->Fill(HfHelper::invMassDplusToPiKPi(candD), candD.pt()); hPtD->Fill(candD.pt()); hCPAD->Fill(candD.cpa()); diff --git a/PWGHF/TableProducer/candidateCreatorBplus.cxx b/PWGHF/TableProducer/candidateCreatorBplus.cxx index 8dcefe55c9c..439f5d72f5c 100644 --- a/PWGHF/TableProducer/candidateCreatorBplus.cxx +++ b/PWGHF/TableProducer/candidateCreatorBplus.cxx @@ -104,7 +104,6 @@ struct HfCandidateCreatorBplus { Configurable ccdbPathGrp{"ccdbPathGrp", "GLO/GRP/GRP", "Path of the grp file (Run 2)"}; Configurable ccdbPathGrpMag{"ccdbPathGrpMag", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object (Run 3)"}; - HfHelper hfHelper; Service ccdb; o2::base::MatLayerCylSet* lut{}; o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT; @@ -222,11 +221,11 @@ struct HfCandidateCreatorBplus { if (!TESTBIT(candD0.hfflag(), aod::hf_cand_2prong::DecayType::D0ToPiK)) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yD0(candD0)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yD0(candD0)) > yCandMax) { continue; } - hRapidityD0->Fill(hfHelper.yD0(candD0)); + hRapidityD0->Fill(HfHelper::yD0(candD0)); // track0 <-> pi, track1 <-> K auto prong0 = candD0.prong0_as(); diff --git a/PWGHF/TableProducer/candidateCreatorBs.cxx b/PWGHF/TableProducer/candidateCreatorBs.cxx index 41c41d7dcaa..fb443be9ffe 100644 --- a/PWGHF/TableProducer/candidateCreatorBs.cxx +++ b/PWGHF/TableProducer/candidateCreatorBs.cxx @@ -97,7 +97,6 @@ struct HfCandidateCreatorBs { o2::vertexing::DCAFitterN<2> df2; // 2-prong vertex fitter o2::vertexing::DCAFitterN<3> df3; // 3-prong vertex fitter - HfHelper hfHelper; Service ccdb; o2::base::MatLayerCylSet* lut{}; o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT; @@ -350,7 +349,7 @@ struct HfCandidateCreatorBs { auto errorDecayLengthXY = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phi, 0.) + getRotatedCovMatrixXX(covMatrixPCA, phi, 0.)); // fill output histograms for Bs candidates - hMassDsToKKPi->Fill(hfHelper.invMassDsToKKPi(candDs), candDs.pt()); + hMassDsToKKPi->Fill(HfHelper::invMassDsToKKPi(candDs), candDs.pt()); hCovSVXX->Fill(covMatrixPCA[0]); hCovPVXX->Fill(covMatrixPV[0]); hMassBsToDsPi->Fill(massDsPi); diff --git a/PWGHF/TableProducer/candidateCreatorLb.cxx b/PWGHF/TableProducer/candidateCreatorLb.cxx index b3fcad95b9b..3eae8a398f3 100644 --- a/PWGHF/TableProducer/candidateCreatorLb.cxx +++ b/PWGHF/TableProducer/candidateCreatorLb.cxx @@ -77,7 +77,6 @@ struct HfCandidateCreatorLb { o2::vertexing::DCAFitterN<2> df2; // 2-prong vertex fitter o2::vertexing::DCAFitterN<3> df3; // 3-prong vertex fitter (to rebuild Lc vertex) - HfHelper hfHelper; double massPi{0.}; double massLc{0.}; @@ -138,10 +137,10 @@ struct HfCandidateCreatorLb { continue; } if (lcCand.isSelLcToPKPi() >= selectionFlagLc) { - hMassLcToPKPi->Fill(hfHelper.invMassLcToPKPi(lcCand), lcCand.pt()); + hMassLcToPKPi->Fill(HfHelper::invMassLcToPKPi(lcCand), lcCand.pt()); } if (lcCand.isSelLcToPiKP() >= selectionFlagLc) { - hMassLcToPKPi->Fill(hfHelper.invMassLcToPiKP(lcCand), lcCand.pt()); + hMassLcToPKPi->Fill(HfHelper::invMassLcToPiKP(lcCand), lcCand.pt()); } hPtLc->Fill(lcCand.pt()); hCPALc->Fill(lcCand.cpa()); diff --git a/PWGHF/TableProducer/candidateCreatorSigmac0plusplus.cxx b/PWGHF/TableProducer/candidateCreatorSigmac0plusplus.cxx index b95b69e4937..53a011487fd 100644 --- a/PWGHF/TableProducer/candidateCreatorSigmac0plusplus.cxx +++ b/PWGHF/TableProducer/candidateCreatorSigmac0plusplus.cxx @@ -95,7 +95,6 @@ struct HfCandidateCreatorSigmac0plusplus { Configurable ccdbPathGrp{"ccdbPathGrp", "GLO/GRP/GRP", "Path of the grp file (Run 2)"}; Configurable ccdbPathGrpMag{"ccdbPathGrpMag", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object (Run 3)"}; - HfHelper hfHelper; /// Cut selection object for soft π-,+ TrackSelection softPiCuts; @@ -206,7 +205,7 @@ struct HfCandidateCreatorSigmac0plusplus { } /// keep only the candidates Λc+ (and charge conj.) within the desired rapidity /// if not selected, skip it and go to the next one - if (yCandLcMax >= 0. && std::abs(hfHelper.yLc(candLc)) > yCandLcMax) { + if (yCandLcMax >= 0. && std::abs(HfHelper::yLc(candLc)) > yCandLcMax) { continue; } @@ -223,10 +222,10 @@ struct HfCandidateCreatorSigmac0plusplus { mPiKPCandLcMax = cutsMassLcMax->get(pTBin, "max piKp mass Lc"); } - if (candLc.isSelLcToPKPi() >= 1 && std::abs(hfHelper.invMassLcToPKPi(candLc) - MassLambdaCPlus) <= mPKPiCandLcMax) { + if (candLc.isSelLcToPKPi() >= 1 && std::abs(HfHelper::invMassLcToPKPi(candLc) - MassLambdaCPlus) <= mPKPiCandLcMax) { statusSpreadMinvPKPiFromPDG = 1; } - if (candLc.isSelLcToPiKP() >= 1 && std::abs(hfHelper.invMassLcToPiKP(candLc) - MassLambdaCPlus) <= mPiKPCandLcMax) { + if (candLc.isSelLcToPiKP() >= 1 && std::abs(HfHelper::invMassLcToPiKP(candLc) - MassLambdaCPlus) <= mPiKPCandLcMax) { statusSpreadMinvPiKPFromPDG = 1; } if (statusSpreadMinvPKPiFromPDG == 0 && statusSpreadMinvPiKPFromPDG == 0) { diff --git a/PWGHF/TableProducer/candidateCreatorSigmac0plusplusCascade.cxx b/PWGHF/TableProducer/candidateCreatorSigmac0plusplusCascade.cxx index c63bbf09ce4..01a04347140 100644 --- a/PWGHF/TableProducer/candidateCreatorSigmac0plusplusCascade.cxx +++ b/PWGHF/TableProducer/candidateCreatorSigmac0plusplusCascade.cxx @@ -75,8 +75,6 @@ struct HfCandidateCreatorSigmac0plusplusCascade { Configurable softPiDcaZMax{"softPiDcaZMax", 0.065, "Soft pion max dcaZ (cm)"}; Configurable addQA{"addQA", true, "Switch for the qa PLOTS"}; - HfHelper hfHelper; - using TracksWithPID = soa::Join; /// Filter the candidate Λc+ used for the Σc0,++ creation @@ -227,7 +225,7 @@ struct HfCandidateCreatorSigmac0plusplusCascade { auto ptCand = candidateLc.pt(); auto eta = candidateLc.eta(); auto phi = candidateLc.phi(); - auto invMassLcToK0sP = hfHelper.invMassLcToK0sP(candidateLc); + auto invMassLcToK0sP = HfHelper::invMassLcToK0sP(candidateLc); auto ptProng0 = candidateLc.ptProng0(); auto ptProng1 = candidateLc.ptProng1(); auto impactParameter0 = candidateLc.impactParameter0(); @@ -243,13 +241,13 @@ struct HfCandidateCreatorSigmac0plusplusCascade { auto mLambda = candidateLc.mLambda(); auto mAntiLambda = candidateLc.mAntiLambda(); auto mGamma = candidateLc.mGamma(); - auto ctV0K0Short = hfHelper.ctV0K0s(candidateLc); - auto ctV0Lambda = hfHelper.ctV0Lambda(candidateLc); + auto ctV0K0Short = HfHelper::ctV0K0s(candidateLc); + auto ctV0Lambda = HfHelper::ctV0Lambda(candidateLc); auto cpa = candidateLc.cpa(); auto cpaXY = candidateLc.cpaXY(); auto decayLength = candidateLc.decayLength(); auto decayLengthXY = candidateLc.decayLengthXY(); - auto ctLc = hfHelper.ctLc(candidateLc); + auto ctLc = HfHelper::ctLc(candidateLc); if (addQA) { registry.fill(HIST("lc/hPtCand"), ptCand); registry.fill(HIST("lc/hEtaCand"), eta); diff --git a/PWGHF/TableProducer/candidateCreatorXicc.cxx b/PWGHF/TableProducer/candidateCreatorXicc.cxx index 1d8058d09cb..c95a729b3a6 100644 --- a/PWGHF/TableProducer/candidateCreatorXicc.cxx +++ b/PWGHF/TableProducer/candidateCreatorXicc.cxx @@ -78,7 +78,6 @@ struct HfCandidateCreatorXicc { o2::vertexing::DCAFitterN<3> df3; // 3-prong vertex fitter to rebuild the Xic vertex o2::vertexing::DCAFitterN<2> df2; // 2-prong vertex fitter to build the Xicc vertex - HfHelper hfHelper; Filter filterSelectCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic); @@ -116,10 +115,10 @@ struct HfCandidateCreatorXicc { continue; } if (xicCand.isSelXicToPKPi() >= selectionFlagXic) { - hMassXic->Fill(hfHelper.invMassXicToPKPi(xicCand), xicCand.pt()); + hMassXic->Fill(HfHelper::invMassXicToPKPi(xicCand), xicCand.pt()); } if (xicCand.isSelXicToPiKP() >= selectionFlagXic) { - hMassXic->Fill(hfHelper.invMassXicToPiKP(xicCand), xicCand.pt()); + hMassXic->Fill(HfHelper::invMassXicToPiKP(xicCand), xicCand.pt()); } auto track0 = xicCand.prong0_as(); auto track1 = xicCand.prong1_as(); diff --git a/PWGHF/TableProducer/candidateSelectorB0ToDPi.cxx b/PWGHF/TableProducer/candidateSelectorB0ToDPi.cxx index dfcd47e3e1a..f0c3caf1a0c 100644 --- a/PWGHF/TableProducer/candidateSelectorB0ToDPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorB0ToDPi.cxx @@ -100,7 +100,6 @@ struct HfCandidateSelectorB0ToDPi { std::vector outputMl; o2::ccdb::CcdbApi ccdbApi; - HfHelper hfHelper; TrackSelectorPi selectorPion; using TracksPion = soa::Join; @@ -175,7 +174,7 @@ struct HfCandidateSelectorB0ToDPi { } // topological cuts - if (!hfHelper.selectionB0ToDPiTopol(hfCandB0, cuts, binsPt)) { + if (!HfHelper::selectionB0ToDPiTopol(hfCandB0, cuts, binsPt)) { hfSelB0ToDPiCandidate(statusB0); if (applyB0Ml) { hfMlB0ToDPiCandidate(outputMlNotPreselected); @@ -191,7 +190,7 @@ struct HfCandidateSelectorB0ToDPi { if constexpr (WithDmesMl) { std::copy(hfCandD.mlProbDplusToPiKPi().begin(), hfCandD.mlProbDplusToPiKPi().end(), std::back_inserter(mlScoresD)); - if (!hfHelper.selectionDmesMlScoresForB(hfCandD, cutsDmesMl, binsPtDmesMl, mlScoresD)) { + if (!HfHelper::selectionDmesMlScoresForB(hfCandD, cutsDmesMl, binsPtDmesMl, mlScoresD)) { hfSelB0ToDPiCandidate(statusB0); if (applyB0Ml) { hfMlB0ToDPiCandidate(outputMlNotPreselected); @@ -214,7 +213,7 @@ struct HfCandidateSelectorB0ToDPi { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackPi = selectorPion.statusTpcAndTof(trackPi); } - if (!hfHelper.selectionB0ToDPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionB0ToDPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { // LOGF(info, "B0 candidate selection failed at PID selection"); hfSelB0ToDPiCandidate(statusB0); if (applyB0Ml) { diff --git a/PWGHF/TableProducer/candidateSelectorBplusToD0Pi.cxx b/PWGHF/TableProducer/candidateSelectorBplusToD0Pi.cxx index 0a8e6503230..e351febf0c1 100644 --- a/PWGHF/TableProducer/candidateSelectorBplusToD0Pi.cxx +++ b/PWGHF/TableProducer/candidateSelectorBplusToD0Pi.cxx @@ -103,7 +103,6 @@ struct HfCandidateSelectorBplusToD0Pi { std::vector outputMl; o2::ccdb::CcdbApi ccdbApi; - HfHelper hfHelper; TrackSelectorPi selectorPion; using TracksPion = soa::Join; @@ -178,7 +177,7 @@ struct HfCandidateSelectorBplusToD0Pi { } // topological cuts - if (!hfHelper.selectionBplusToD0PiTopol(hfCandBp, cuts, binsPt)) { + if (!HfHelper::selectionBplusToD0PiTopol(hfCandBp, cuts, binsPt)) { hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { hfMlBplusToD0PiCandidate(outputMlNotPreselected); @@ -198,7 +197,7 @@ struct HfCandidateSelectorBplusToD0Pi { std::copy(hfCandD.mlProbD0bar().begin(), hfCandD.mlProbD0bar().end(), std::back_inserter(mlScoresD)); } - if (!hfHelper.selectionDmesMlScoresForB(hfCandD, cutsDmesMl, binsPtDmesMl, mlScoresD)) { + if (!HfHelper::selectionDmesMlScoresForB(hfCandD, cutsDmesMl, binsPtDmesMl, mlScoresD)) { hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { hfMlBplusToD0PiCandidate(outputMlNotPreselected); @@ -221,7 +220,7 @@ struct HfCandidateSelectorBplusToD0Pi { } else if (pionPidMethod == PidMethod::TpcAndTof) { pidTrackPi = selectorPion.statusTpcAndTof(trackPi); } - if (!hfHelper.selectionBplusToD0PiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionBplusToD0PiPid(pidTrackPi, acceptPIDNotApplicable.value)) { // LOGF(info, "B+ candidate selection failed at PID selection"); hfSelBplusToD0PiCandidate(statusBplus); if (applyBplusMl) { diff --git a/PWGHF/TableProducer/candidateSelectorBsToDsPi.cxx b/PWGHF/TableProducer/candidateSelectorBsToDsPi.cxx index 5e66076e670..af8c613b12d 100644 --- a/PWGHF/TableProducer/candidateSelectorBsToDsPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorBsToDsPi.cxx @@ -95,7 +95,6 @@ struct HfCandidateSelectorBsToDsPi { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; - HfHelper hfHelper; using TracksPidWithSel = soa::Join; @@ -174,7 +173,7 @@ struct HfCandidateSelectorBsToDsPi { } // topological cuts - if (!hfHelper.selectionBsToDsPiTopol(hfCandBs, cuts, binsPt)) { + if (!HfHelper::selectionBsToDsPiTopol(hfCandBs, cuts, binsPt)) { hfSelBsToDsPiCandidate(statusBsToDsPi); if (applyMl) { hfMlBsToDsPiCandidate(outputMl); @@ -198,7 +197,7 @@ struct HfCandidateSelectorBsToDsPi { if (usePid) { auto trackPi = hfCandBs.prong1_as(); int const pidTrackPi = selectorPion.statusTpcAndTof(trackPi); - if (!hfHelper.selectionBsToDsPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { + if (!HfHelper::selectionBsToDsPiPid(pidTrackPi, acceptPIDNotApplicable.value)) { hfSelBsToDsPiCandidate(statusBsToDsPi); if (applyMl) { hfMlBsToDsPiCandidate(outputMl); diff --git a/PWGHF/TableProducer/candidateSelectorCd.cxx b/PWGHF/TableProducer/candidateSelectorCd.cxx index b220bc130b8..230686d2c88 100644 --- a/PWGHF/TableProducer/candidateSelectorCd.cxx +++ b/PWGHF/TableProducer/candidateSelectorCd.cxx @@ -76,8 +76,6 @@ struct HfCandidateSelectorCd { // QA switch Configurable activateQA{"activateQA", false, "Flag to enable QA histogram"}; - HfHelper hfHelper; - TrackSelectorPi selectorPion; TrackSelectorKa selectorKaon; TrackSelectorDe selectorDeuteron; @@ -212,9 +210,9 @@ struct HfCandidateSelectorCd { float massCd{0.f}; if (trackDeuteron.globalIndex() == candidate.prong0Id()) { - massCd = hfHelper.invMassCdToDeKPi(candidate); + massCd = HfHelper::invMassCdToDeKPi(candidate); } else { - massCd = hfHelper.invMassCdToPiKDe(candidate); + massCd = HfHelper::invMassCdToPiKDe(candidate); } // cut on Cd->deKpi, piKde mass values diff --git a/PWGHF/TableProducer/candidateSelectorD0.cxx b/PWGHF/TableProducer/candidateSelectorD0.cxx index 48344fb7fa1..a3e8c0bda3a 100644 --- a/PWGHF/TableProducer/candidateSelectorD0.cxx +++ b/PWGHF/TableProducer/candidateSelectorD0.cxx @@ -105,7 +105,6 @@ struct HfCandidateSelectorD0 { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; TrackSelectorKa selectorKaon; - HfHelper hfHelper; HfTrigger2ProngCuts hfTriggerCuts; using TracksSel = soa::Join; @@ -248,8 +247,8 @@ struct HfCandidateSelectorD0 { massD0 = candidate.kfGeoMassD0(); massD0bar = candidate.kfGeoMassD0bar(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } if (trackPion.sign() > 0) { if (std::abs(massD0 - o2::constants::physics::MassD0) > cuts->get(pTBin, "m")) { @@ -279,11 +278,11 @@ struct HfCandidateSelectorD0 { // cut on cos(theta*) if (trackPion.sign() > 0) { - if (std::abs(hfHelper.cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } else { - if (std::abs(hfHelper.cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { + if (std::abs(HfHelper::cosThetaStarD0bar(candidate)) > cuts->get(pTBin, "cos theta*")) { return false; } } @@ -291,11 +290,11 @@ struct HfCandidateSelectorD0 { // in case only sideband candidates have to be stored, additional invariant-mass cut if (keepOnlySidebandCandidates) { if (trackPion.sign() > 0) { - if (std::abs(hfHelper.invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) < distanceFromD0MassForSidebands) { + if (std::abs(HfHelper::invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) < distanceFromD0MassForSidebands) { return false; } } else { - if (std::abs(hfHelper.invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) < distanceFromD0MassForSidebands) { + if (std::abs(HfHelper::invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) < distanceFromD0MassForSidebands) { return false; } } @@ -479,13 +478,13 @@ struct HfCandidateSelectorD0 { registry.fill(HIST("DebugBdt/hBdtScore1VsStatus"), outputMlD0[0], statusD0); registry.fill(HIST("DebugBdt/hBdtScore2VsStatus"), outputMlD0[1], statusD0); registry.fill(HIST("DebugBdt/hBdtScore3VsStatus"), outputMlD0[2], statusD0); - registry.fill(HIST("DebugBdt/hMassDmesonSel"), hfHelper.invMassD0ToPiK(candidate)); + registry.fill(HIST("DebugBdt/hMassDmesonSel"), HfHelper::invMassD0ToPiK(candidate)); } if (isSelectedMlD0bar) { registry.fill(HIST("DebugBdt/hBdtScore1VsStatus"), outputMlD0bar[0], statusD0bar); registry.fill(HIST("DebugBdt/hBdtScore2VsStatus"), outputMlD0bar[1], statusD0bar); registry.fill(HIST("DebugBdt/hBdtScore3VsStatus"), outputMlD0bar[2], statusD0bar); - registry.fill(HIST("DebugBdt/hMassDmesonSel"), hfHelper.invMassD0barToKPi(candidate)); + registry.fill(HIST("DebugBdt/hMassDmesonSel"), HfHelper::invMassD0barToKPi(candidate)); } } } diff --git a/PWGHF/TableProducer/candidateSelectorDplusToPiKPi.cxx b/PWGHF/TableProducer/candidateSelectorDplusToPiKPi.cxx index 1cb7e8d9a59..f626eb215f3 100644 --- a/PWGHF/TableProducer/candidateSelectorDplusToPiKPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorDplusToPiKPi.cxx @@ -99,7 +99,6 @@ struct HfCandidateSelectorDplusToPiKPi { o2::ccdb::CcdbApi ccdbApi; TrackSelectorPi selectorPion; TrackSelectorKa selectorKaon; - HfHelper hfHelper; HfTrigger3ProngCuts hfTriggerCuts; using TracksSel = soa::Join; @@ -167,10 +166,10 @@ struct HfCandidateSelectorDplusToPiKPi { return false; } // invariant-mass cut - if (std::abs(hfHelper.invMassDplusToPiKPi(candidate) - o2::constants::physics::MassDPlus) > cuts->get(pTBin, "deltaM")) { + if (std::abs(HfHelper::invMassDplusToPiKPi(candidate) - o2::constants::physics::MassDPlus) > cuts->get(pTBin, "deltaM")) { return false; } - if (useTriggerMassCut && !isCandidateInMassRange(hfHelper.invMassDplusToPiKPi(candidate), o2::constants::physics::MassDPlus, ptCand, hfTriggerCuts)) { + if (useTriggerMassCut && !isCandidateInMassRange(HfHelper::invMassDplusToPiKPi(candidate), o2::constants::physics::MassDPlus, ptCand, hfTriggerCuts)) { return false; } if (candidate.decayLength() < cuts->get(pTBin, "decay length")) { diff --git a/PWGHF/TableProducer/candidateSelectorDsToKKPi.cxx b/PWGHF/TableProducer/candidateSelectorDsToKKPi.cxx index 5f1f534cc27..9c1eca05757 100644 --- a/PWGHF/TableProducer/candidateSelectorDsToKKPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorDsToKKPi.cxx @@ -94,7 +94,6 @@ struct HfCandidateSelectorDsToKKPi { // Mass cut for trigger analysis Configurable useTriggerMassCut{"useTriggerMassCut", false, "Flag to enable parametrized pT differential mass cut for triggered data"}; - HfHelper hfHelper; o2::analysis::HfMlResponseDsToKKPi hfMlResponse; std::vector outputMlDsToKKPi; std::vector outputMlDsToPiKK; @@ -192,7 +191,7 @@ struct HfCandidateSelectorDsToKKPi { if (!isSelectedCandidateProngDca(candidate)) { return false; } - if (rejectCandsInDplusToPiKPiRegion && std::abs(hfHelper.invMassDplusToPiKPi(candidate) - o2::constants::physics::MassDPlus) < deltaMRegionDplusToPiKPi) { + if (rejectCandsInDplusToPiKPiRegion && std::abs(HfHelper::invMassDplusToPiKPi(candidate) - o2::constants::physics::MassDPlus) < deltaMRegionDplusToPiKPi) { return false; } return true; @@ -215,16 +214,16 @@ struct HfCandidateSelectorDsToKKPi { if (trackKaon1.pt() < cuts->get(pTBin, "pT K") || trackKaon2.pt() < cuts->get(pTBin, "pT K") || trackPion.pt() < cuts->get(pTBin, "pT Pi")) { return false; } - if (std::abs(hfHelper.invMassDsToKKPi(candidate) - o2::constants::physics::MassDS) > cuts->get(pTBin, "deltaM")) { + if (std::abs(HfHelper::invMassDsToKKPi(candidate) - o2::constants::physics::MassDS) > cuts->get(pTBin, "deltaM")) { return false; } - if (useTriggerMassCut && !isCandidateInMassRange(hfHelper.invMassDsToKKPi(candidate), o2::constants::physics::MassDS, candidate.pt(), hfTriggerCuts)) { + if (useTriggerMassCut && !isCandidateInMassRange(HfHelper::invMassDsToKKPi(candidate), o2::constants::physics::MassDS, candidate.pt(), hfTriggerCuts)) { return false; } - if (hfHelper.deltaMassPhiDsToKKPi(candidate) > cuts->get(pTBin, "deltaM Phi")) { + if (HfHelper::deltaMassPhiDsToKKPi(candidate) > cuts->get(pTBin, "deltaM Phi")) { return false; } - if (hfHelper.absCos3PiKDsToKKPi(candidate) < cuts->get(pTBin, "cos^3 theta_PiK")) { + if (HfHelper::absCos3PiKDsToKKPi(candidate) < cuts->get(pTBin, "cos^3 theta_PiK")) { return false; } return true; @@ -247,16 +246,16 @@ struct HfCandidateSelectorDsToKKPi { if (trackKaon1.pt() < cuts->get(pTBin, "pT K") || trackKaon2.pt() < cuts->get(pTBin, "pT K") || trackPion.pt() < cuts->get(pTBin, "pT Pi")) { return false; } - if (std::abs(hfHelper.invMassDsToPiKK(candidate) - o2::constants::physics::MassDS) > cuts->get(pTBin, "deltaM")) { + if (std::abs(HfHelper::invMassDsToPiKK(candidate) - o2::constants::physics::MassDS) > cuts->get(pTBin, "deltaM")) { return false; } - if (useTriggerMassCut && !isCandidateInMassRange(hfHelper.invMassDsToPiKK(candidate), o2::constants::physics::MassDS, candidate.pt(), hfTriggerCuts)) { + if (useTriggerMassCut && !isCandidateInMassRange(HfHelper::invMassDsToPiKK(candidate), o2::constants::physics::MassDS, candidate.pt(), hfTriggerCuts)) { return false; } - if (hfHelper.deltaMassPhiDsToPiKK(candidate) > cuts->get(pTBin, "deltaM Phi")) { + if (HfHelper::deltaMassPhiDsToPiKK(candidate) > cuts->get(pTBin, "deltaM Phi")) { return false; } - if (hfHelper.absCos3PiKDsToPiKK(candidate) < cuts->get(pTBin, "cos^3 theta_PiK")) { + if (HfHelper::absCos3PiKDsToPiKK(candidate) < cuts->get(pTBin, "cos^3 theta_PiK")) { return false; } return true; diff --git a/PWGHF/TableProducer/candidateSelectorDstarToD0Pi.cxx b/PWGHF/TableProducer/candidateSelectorDstarToD0Pi.cxx index ae30c15f231..af59d431ca7 100644 --- a/PWGHF/TableProducer/candidateSelectorDstarToD0Pi.cxx +++ b/PWGHF/TableProducer/candidateSelectorDstarToD0Pi.cxx @@ -106,7 +106,6 @@ struct HfCandidateSelectorDstarToD0Pi { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; o2::analysis::HfMlResponseDstarToD0Pi hfMlResponse; std::vector outputMlDstarToD0Pi; o2::ccdb::CcdbApi ccdbApi; diff --git a/PWGHF/TableProducer/candidateSelectorLbToLcPi.cxx b/PWGHF/TableProducer/candidateSelectorLbToLcPi.cxx index f698e250b27..d8c535d73d1 100644 --- a/PWGHF/TableProducer/candidateSelectorLbToLcPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorLbToLcPi.cxx @@ -63,8 +63,6 @@ struct HfCandidateSelectorLbToLcPi { Configurable> cuts{"cuts", {hf_cuts_lb_to_lc_pi::Cuts[0], hf_cuts_lb_to_lc_pi::NBinsPt, hf_cuts_lb_to_lc_pi::NCutVars, hf_cuts_lb_to_lc_pi::labelsPt, hf_cuts_lb_to_lc_pi::labelsCutVar}, "Lb0 candidate selection per pT bin"}; Configurable selectionFlagLc{"selectionFlagLc", 1, "Selection Flag for Lc+"}; - HfHelper hfHelper; - using TracksWExt = soa::Join; bool passesImpactParameterResolution(float pT, float d0Resolution) @@ -90,7 +88,7 @@ struct HfCandidateSelectorLbToLcPi { } // Λb0 mass cut - if (std::abs(hfHelper.invMassLbToLcPi(hfCandLb) - o2::constants::physics::MassLambdaB0) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassLbToLcPi(hfCandLb) - o2::constants::physics::MassLambdaB0) > cuts->get(pTBin, "m")) { // LOGF(debug, "Lb topol selection failed at mass diff check"); return false; } @@ -107,10 +105,10 @@ struct HfCandidateSelectorLbToLcPi { float lcMass = 0.; if (hfCandLc.isSelLcToPKPi()) { - lcMass = hfHelper.invMassLcToPKPi(hfCandLc); + lcMass = HfHelper::invMassLcToPKPi(hfCandLc); } if (hfCandLc.isSelLcToPiKP()) { - lcMass = hfHelper.invMassLcToPiKP(hfCandLc); + lcMass = HfHelper::invMassLcToPiKP(hfCandLc); } if (std::abs(lcMass - o2::constants::physics::MassLambdaCPlus) > cuts->get(pTBin, "DeltaMLc")) { return false; diff --git a/PWGHF/TableProducer/candidateSelectorLc.cxx b/PWGHF/TableProducer/candidateSelectorLc.cxx index 25a4ede94d3..b7279e04a78 100644 --- a/PWGHF/TableProducer/candidateSelectorLc.cxx +++ b/PWGHF/TableProducer/candidateSelectorLc.cxx @@ -107,7 +107,6 @@ struct HfCandidateSelectorLc { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; o2::analysis::HfMlResponseLcToPKPi hfMlResponseDCA; o2::analysis::HfMlResponseLcToPKPi hfMlResponseKF; std::vector outputMlLcToPKPi; @@ -305,11 +304,11 @@ struct HfCandidateSelectorLc { float massLc{0.f}, massKPi{0.f}; if constexpr (ReconstructionType == aod::hf_cand::VertexerType::DCAFitter) { if (trackProton.globalIndex() == candidate.prong0Id()) { - massLc = hfHelper.invMassLcToPKPi(candidate); - massKPi = hfHelper.invMassKPiPairLcToPKPi(candidate); + massLc = HfHelper::invMassLcToPKPi(candidate); + massKPi = HfHelper::invMassKPiPairLcToPKPi(candidate); } else { - massLc = hfHelper.invMassLcToPiKP(candidate); - massKPi = hfHelper.invMassKPiPairLcToPiKP(candidate); + massLc = HfHelper::invMassLcToPiKP(candidate); + massKPi = HfHelper::invMassKPiPairLcToPiKP(candidate); } } else if constexpr (ReconstructionType == aod::hf_cand::VertexerType::KfParticle) { if (trackProton.globalIndex() == candidate.prong0Id()) { diff --git a/PWGHF/TableProducer/candidateSelectorLcToK0sP.cxx b/PWGHF/TableProducer/candidateSelectorLcToK0sP.cxx index ae017847cf4..7015e028950 100644 --- a/PWGHF/TableProducer/candidateSelectorLcToK0sP.cxx +++ b/PWGHF/TableProducer/candidateSelectorLcToK0sP.cxx @@ -91,7 +91,6 @@ struct HfCandidateSelectorLcToK0sP { Configurable timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"}; Configurable loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"}; - HfHelper hfHelper; TrackSelectorPr selectorProtonLowP; TrackSelectorPr selectorProtonHighP; @@ -166,7 +165,7 @@ struct HfCandidateSelectorLcToK0sP { return false; // check that the candidate pT is within the analysis range } - if (std::abs(hfHelper.invMassLcToK0sP(hfCandCascade) - o2::constants::physics::MassLambdaCPlus) > cuts->get(ptBin, "mLc")) { + if (std::abs(HfHelper::invMassLcToK0sP(hfCandCascade) - o2::constants::physics::MassLambdaCPlus) > cuts->get(ptBin, "mLc")) { return false; // mass of the Lambda c } diff --git a/PWGHF/TableProducer/candidateSelectorXicToPKPi.cxx b/PWGHF/TableProducer/candidateSelectorXicToPKPi.cxx index cf6593c7c66..b89c5576c2a 100644 --- a/PWGHF/TableProducer/candidateSelectorXicToPKPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorXicToPKPi.cxx @@ -96,7 +96,6 @@ struct HfCandidateSelectorXicToPKPi { TrackSelectorPi selectorPion; TrackSelectorKa selectorKaon; TrackSelectorPr selectorProton; - HfHelper hfHelper; using TracksSel = soa::Join; @@ -189,7 +188,7 @@ struct HfCandidateSelectorXicToPKPi { } // candidate ct - if (hfHelper.ctXic(candidate) > cuts->get(pTBin, "ct")) { + if (HfHelper::ctXic(candidate) > cuts->get(pTBin, "ct")) { return false; } @@ -223,11 +222,11 @@ struct HfCandidateSelectorXicToPKPi { } if (trackProton.globalIndex() == candidate.prong0Id()) { - if (std::abs(hfHelper.invMassXicToPKPi(candidate) - o2::constants::physics::MassXiCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassXicToPKPi(candidate) - o2::constants::physics::MassXiCPlus) > cuts->get(pTBin, "m")) { return false; } } else { - if (std::abs(hfHelper.invMassXicToPiKP(candidate) - o2::constants::physics::MassXiCPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassXicToPiKP(candidate) - o2::constants::physics::MassXiCPlus) > cuts->get(pTBin, "m")) { return false; } } diff --git a/PWGHF/TableProducer/candidateSelectorXiccToPKPiPi.cxx b/PWGHF/TableProducer/candidateSelectorXiccToPKPiPi.cxx index 24057d1e59b..783523710b8 100644 --- a/PWGHF/TableProducer/candidateSelectorXiccToPKPiPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorXiccToPKPiPi.cxx @@ -58,7 +58,6 @@ struct HfCandidateSelectorXiccToPKPiPi { Configurable> binsPt{"binsPt", std::vector{hf_cuts_xicc_to_p_k_pi_pi::vecBinsPt}, "pT bin limits"}; Configurable> cuts{"cuts", {hf_cuts_xicc_to_p_k_pi_pi::Cuts[0], hf_cuts_xicc_to_p_k_pi_pi::NBinsPt, hf_cuts_xicc_to_p_k_pi_pi::NCutVars, hf_cuts_xicc_to_p_k_pi_pi::labelsPt, hf_cuts_xicc_to_p_k_pi_pi::labelsCutVar}, "Xicc candidate selection per pT bin"}; - HfHelper hfHelper; TrackSelectorPi selectorPion; using TracksSel = soa::Join; @@ -91,7 +90,7 @@ struct HfCandidateSelectorXiccToPKPiPi { } // check candidate mass is within a defined mass window - if (std::abs(hfHelper.invMassXiccToXicPi(hfCandXicc) - o2::constants::physics::MassXiCCPlusPlus) > cuts->get(pTBin, "m")) { + if (std::abs(HfHelper::invMassXiccToXicPi(hfCandXicc) - o2::constants::physics::MassXiCCPlusPlus) > cuts->get(pTBin, "m")) { return false; } diff --git a/PWGHF/TableProducer/derivedDataCreatorB0ToDPi.cxx b/PWGHF/TableProducer/derivedDataCreatorB0ToDPi.cxx index 862e3da3d38..4a06238bbcc 100644 --- a/PWGHF/TableProducer/derivedDataCreatorB0ToDPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorB0ToDPi.cxx @@ -91,7 +91,6 @@ struct HfDerivedDataCreatorB0ToDPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassB0}; @@ -206,7 +205,7 @@ struct HfDerivedDataCreatorB0ToDPi { candidate.pyProng1(), candidate.pzProng1(), candidate.errorImpactParameter1(), - hfHelper.cosThetaStarB0(candidate), + HfHelper::cosThetaStarB0(candidate), ct); } if (fillCandidateSel) { @@ -310,9 +309,9 @@ struct HfDerivedDataCreatorB0ToDPi { } auto prongCharm = candidate.template prong0_as(); auto prongBachelor = candidate.template prong1_as(); - double const ct = hfHelper.ctB0(candidate); - double const y = hfHelper.yB0(candidate); - float const massB0ToDPi = hfHelper.invMassB0ToDPi(candidate); + double const ct = HfHelper::ctB0(candidate); + double const y = HfHelper::yB0(candidate); + float const massB0ToDPi = HfHelper::invMassB0ToDPi(candidate); float mlScoreB0ToDPi{-1.f}; std::vector mlScoresDplus; std::copy(prongCharm.mlProbDplusToPiKPi().begin(), prongCharm.mlProbDplusToPiKPi().end(), std::back_inserter(mlScoresDplus)); diff --git a/PWGHF/TableProducer/derivedDataCreatorBplusToD0Pi.cxx b/PWGHF/TableProducer/derivedDataCreatorBplusToD0Pi.cxx index 6e33f7b4f1d..89ed2ae2758 100644 --- a/PWGHF/TableProducer/derivedDataCreatorBplusToD0Pi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorBplusToD0Pi.cxx @@ -92,7 +92,6 @@ struct HfDerivedDataCreatorBplusToD0Pi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassBPlus}; @@ -210,7 +209,7 @@ struct HfDerivedDataCreatorBplusToD0Pi { candidate.pyProng1(), candidate.pzProng1(), candidate.errorImpactParameter1(), - hfHelper.cosThetaStarBplus(candidate), + HfHelper::cosThetaStarBplus(candidate), ct); } if (fillCandidateSel) { @@ -313,9 +312,9 @@ struct HfDerivedDataCreatorBplusToD0Pi { } auto prongCharm = candidate.template prong0_as(); auto prongBachelor = candidate.template prong1_as(); - double const ct = hfHelper.ctBplus(candidate); - double const y = hfHelper.yBplus(candidate); - float const massBplusToD0Pi = hfHelper.invMassBplusToD0Pi(candidate); + double const ct = HfHelper::ctBplus(candidate); + double const y = HfHelper::yBplus(candidate); + float const massBplusToD0Pi = HfHelper::invMassBplusToD0Pi(candidate); float mlScoreBplusToD0Pi{-1.f}; std::vector mlScoresD0; bool const isD0 = prongBachelor.sign() < 0; diff --git a/PWGHF/TableProducer/derivedDataCreatorD0ToKPi.cxx b/PWGHF/TableProducer/derivedDataCreatorD0ToKPi.cxx index ece7eba03c4..6e9a18014a5 100644 --- a/PWGHF/TableProducer/derivedDataCreatorD0ToKPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorD0ToKPi.cxx @@ -87,7 +87,6 @@ struct HfDerivedDataCreatorD0ToKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassD0}; @@ -309,8 +308,8 @@ struct HfDerivedDataCreatorD0ToKPi { } } - double const ct = hfHelper.ctD0(candidate); - double const y = hfHelper.yD0(candidate); + double const ct = HfHelper::ctD0(candidate); + double const y = HfHelper::yD0(candidate); float massD0, massD0bar; float topolChi2PerNdf = -999.; if constexpr (ReconstructionType == aod::hf_cand::VertexerType::KfParticle) { @@ -318,8 +317,8 @@ struct HfDerivedDataCreatorD0ToKPi { massD0bar = candidate.kfGeoMassD0bar(); topolChi2PerNdf = candidate.kfTopolChi2OverNdf(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } std::vector mlScoresD0, mlScoresD0bar; if constexpr (IsMl) { @@ -327,10 +326,10 @@ struct HfDerivedDataCreatorD0ToKPi { std::copy(candidate.mlProbD0bar().begin(), candidate.mlProbD0bar().end(), std::back_inserter(mlScoresD0bar)); } if (candidate.isSelD0()) { - fillTablesCandidate(candidate, 0, massD0, hfHelper.cosThetaStarD0(candidate), topolChi2PerNdf, ct, y, flagMcRec, origin, mlScoresD0); + fillTablesCandidate(candidate, 0, massD0, HfHelper::cosThetaStarD0(candidate), topolChi2PerNdf, ct, y, flagMcRec, origin, mlScoresD0); } if (candidate.isSelD0bar()) { - fillTablesCandidate(candidate, 1, massD0bar, hfHelper.cosThetaStarD0bar(candidate), topolChi2PerNdf, ct, y, flagMcRec, origin, mlScoresD0bar); + fillTablesCandidate(candidate, 1, massD0bar, HfHelper::cosThetaStarD0bar(candidate), topolChi2PerNdf, ct, y, flagMcRec, origin, mlScoresD0bar); } } } diff --git a/PWGHF/TableProducer/derivedDataCreatorDplusToPiKPi.cxx b/PWGHF/TableProducer/derivedDataCreatorDplusToPiKPi.cxx index c8bf7a1ee3b..e41e66c5341 100644 --- a/PWGHF/TableProducer/derivedDataCreatorDplusToPiKPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorDplusToPiKPi.cxx @@ -85,7 +85,6 @@ struct HfDerivedDataCreatorDplusToPiKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassDPlus}; @@ -282,9 +281,9 @@ struct HfDerivedDataCreatorDplusToPiKPi { } } } - double const ct = hfHelper.ctDplus(candidate); - double const y = hfHelper.yDplus(candidate); - float const massDplusToPiKPi = hfHelper.invMassDplusToPiKPi(candidate); + double const ct = HfHelper::ctDplus(candidate); + double const y = HfHelper::yDplus(candidate); + float const massDplusToPiKPi = HfHelper::invMassDplusToPiKPi(candidate); std::vector mlScoresDplusToPiKPi; if constexpr (IsMl) { std::copy(candidate.mlProbDplusToPiKPi().begin(), candidate.mlProbDplusToPiKPi().end(), std::back_inserter(mlScoresDplusToPiKPi)); diff --git a/PWGHF/TableProducer/derivedDataCreatorDsToKKPi.cxx b/PWGHF/TableProducer/derivedDataCreatorDsToKKPi.cxx index 5eb404e57ab..399127efdca 100644 --- a/PWGHF/TableProducer/derivedDataCreatorDsToKKPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorDsToKKPi.cxx @@ -85,7 +85,6 @@ struct HfDerivedDataCreatorDsToKKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassDS}; @@ -288,9 +287,9 @@ struct HfDerivedDataCreatorDsToKKPi { } } } - double const ct = hfHelper.ctDs(candidate); - double const y = hfHelper.yDs(candidate); - float const massDsToKKPi = hfHelper.invMassDsToKKPi(candidate); + double const ct = HfHelper::ctDs(candidate); + double const y = HfHelper::yDs(candidate); + float const massDsToKKPi = HfHelper::invMassDsToKKPi(candidate); std::vector mlScoresDsToKKPi; if constexpr (IsMl) { std::copy(candidate.mlProbDsToKKPi().begin(), candidate.mlProbDsToKKPi().end(), std::back_inserter(mlScoresDsToKKPi)); diff --git a/PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx b/PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx index 86688ca2bb5..17ef58178ec 100644 --- a/PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx @@ -85,7 +85,6 @@ struct HfDerivedDataCreatorLcToPKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassLambdaCPlus}; @@ -288,10 +287,10 @@ struct HfDerivedDataCreatorLcToPKPi { } } } - double const ct = hfHelper.ctLc(candidate); - double const y = hfHelper.yLc(candidate); - float const massLcToPKPi = hfHelper.invMassLcToPKPi(candidate); - float const massLcToPiKP = hfHelper.invMassLcToPiKP(candidate); + double const ct = HfHelper::ctLc(candidate); + double const y = HfHelper::yLc(candidate); + float const massLcToPKPi = HfHelper::invMassLcToPKPi(candidate); + float const massLcToPiKP = HfHelper::invMassLcToPiKP(candidate); std::vector mlScoresLcToPKPi, mlScoresLcToPiKP; if constexpr (IsMl) { std::copy(candidate.mlProbLcToPKPi().begin(), candidate.mlProbLcToPKPi().end(), std::back_inserter(mlScoresLcToPKPi)); diff --git a/PWGHF/TableProducer/derivedDataCreatorXicToXiPiPi.cxx b/PWGHF/TableProducer/derivedDataCreatorXicToXiPiPi.cxx index 6dc0fac79d3..61d55ca2ae2 100644 --- a/PWGHF/TableProducer/derivedDataCreatorXicToXiPiPi.cxx +++ b/PWGHF/TableProducer/derivedDataCreatorXicToXiPiPi.cxx @@ -85,7 +85,6 @@ struct HfDerivedDataCreatorXicToXiPiPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; SliceCache cache; static constexpr double Mass{o2::constants::physics::MassXiCPlus}; @@ -285,8 +284,8 @@ struct HfDerivedDataCreatorXicToXiPiPi { } } float const massXicToXiPiPi = candidate.invMassXicPlus(); - double const ct = hfHelper.ctXic(candidate); - double const y = hfHelper.yXic(candidate); + double const ct = HfHelper::ctXic(candidate); + double const y = HfHelper::yXic(candidate); std::vector mlScoresXicToXiPiPi; if constexpr (IsMl) { std::copy(candidate.mlProbXicToXiPiPi().begin(), candidate.mlProbXicToXiPiPi().end(), std::back_inserter(mlScoresXicToXiPiPi)); diff --git a/PWGHF/TableProducer/treeCreatorB0ToDPi.cxx b/PWGHF/TableProducer/treeCreatorB0ToDPi.cxx index b354d7e5595..4a246da5ebf 100644 --- a/PWGHF/TableProducer/treeCreatorB0ToDPi.cxx +++ b/PWGHF/TableProducer/treeCreatorB0ToDPi.cxx @@ -182,8 +182,6 @@ struct HfTreeCreatorB0ToDPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using SelectedCandidatesMc = soa::Filtered>; using TracksWPid = soa::Join; @@ -232,14 +230,14 @@ struct HfTreeCreatorB0ToDPi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelB0ToDPi(), - hfHelper.invMassB0ToDPi(candidate), + HfHelper::invMassB0ToDPi(candidate), candidate.pt(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), candidate.eta(), candidate.phi(), - hfHelper.yB0(candidate), + HfHelper::yB0(candidate), flagMc, originMc); } else { @@ -279,17 +277,17 @@ struct HfTreeCreatorB0ToDPi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelB0ToDPi(), - hfHelper.invMassB0ToDPi(candidate), + HfHelper::invMassB0ToDPi(candidate), candidate.pt(), candidate.p(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), - hfHelper.ctB0(candidate), + HfHelper::ctB0(candidate), candidate.eta(), candidate.phi(), - hfHelper.yB0(candidate), - hfHelper.eB0(candidate), + HfHelper::yB0(candidate), + HfHelper::eB0(candidate), flagMc, originMc); } diff --git a/PWGHF/TableProducer/treeCreatorBplusToD0Pi.cxx b/PWGHF/TableProducer/treeCreatorBplusToD0Pi.cxx index a0e7b2a3597..96a49f6d2ea 100644 --- a/PWGHF/TableProducer/treeCreatorBplusToD0Pi.cxx +++ b/PWGHF/TableProducer/treeCreatorBplusToD0Pi.cxx @@ -238,8 +238,6 @@ struct HfTreeCreatorBplusToD0Pi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using SelectedCandidatesMc = soa::Filtered>; using TracksWPid = soa::Join; @@ -280,9 +278,9 @@ struct HfTreeCreatorBplusToD0Pi { auto d0Daughter1 = d0Cand.template prong1_as(); auto invMassD0 = 0.; if (prong1.signed1Pt() > 0) { - invMassD0 = hfHelper.invMassD0barToKPi(d0Cand); + invMassD0 = HfHelper::invMassD0barToKPi(d0Cand); } else if (prong1.signed1Pt() < 0) { - invMassD0 = hfHelper.invMassD0ToPiK(d0Cand); + invMassD0 = HfHelper::invMassD0ToPiK(d0Cand); } if (fillCandidateLiteTable) { rowCandidateLite( @@ -298,14 +296,14 @@ struct HfTreeCreatorBplusToD0Pi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelBplusToD0Pi(), - hfHelper.invMassBplusToD0Pi(candidate), + HfHelper::invMassBplusToD0Pi(candidate), candidate.pt(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), candidate.eta(), candidate.phi(), - hfHelper.yBplus(candidate), + HfHelper::yBplus(candidate), flagMc, originMc); } else { @@ -345,22 +343,22 @@ struct HfTreeCreatorBplusToD0Pi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelBplusToD0Pi(), - hfHelper.invMassBplusToD0Pi(candidate), + HfHelper::invMassBplusToD0Pi(candidate), candidate.pt(), candidate.p(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), - hfHelper.ctBplus(candidate), + HfHelper::ctBplus(candidate), candidate.eta(), candidate.phi(), - hfHelper.yBplus(candidate), - hfHelper.eBplus(candidate), + HfHelper::yBplus(candidate), + HfHelper::eBplus(candidate), flagMc, invMassD0, d0Cand.ptProng0(), d0Cand.ptProng1(), - hfHelper.yD0(d0Cand), + HfHelper::yD0(d0Cand), d0Cand.eta(), d0Cand.cpa(), d0Cand.cpaXY(), diff --git a/PWGHF/TableProducer/treeCreatorBsToDsPi.cxx b/PWGHF/TableProducer/treeCreatorBsToDsPi.cxx index 594aae65cd1..cf6da45643f 100644 --- a/PWGHF/TableProducer/treeCreatorBsToDsPi.cxx +++ b/PWGHF/TableProducer/treeCreatorBsToDsPi.cxx @@ -177,8 +177,6 @@ struct HfTreeCreatorBsToDsPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using SelectedCandidatesMc = soa::Filtered>; using TracksWPid = soa::Join; @@ -225,14 +223,14 @@ struct HfTreeCreatorBsToDsPi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelBsToDsPi(), - hfHelper.invMassBsToDsPi(candidate), + HfHelper::invMassBsToDsPi(candidate), candidate.pt(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), candidate.eta(), candidate.phi(), - hfHelper.yBs(candidate), + HfHelper::yBs(candidate), flagMc); } else { rowCandidateFull( @@ -270,17 +268,17 @@ struct HfTreeCreatorBsToDsPi { prong1.tpcNSigmaPi(), prong1.tofNSigmaPi(), candidate.isSelBsToDsPi(), - hfHelper.invMassBsToDsPi(candidate), + HfHelper::invMassBsToDsPi(candidate), candidate.pt(), candidate.p(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), - hfHelper.ctBs(candidate), + HfHelper::ctBs(candidate), candidate.eta(), candidate.phi(), - hfHelper.yBs(candidate), - hfHelper.eBs(candidate), + HfHelper::yBs(candidate), + HfHelper::eBs(candidate), flagMc); } } diff --git a/PWGHF/TableProducer/treeCreatorD0ToKPi.cxx b/PWGHF/TableProducer/treeCreatorD0ToKPi.cxx index dc962e7ed49..17093c0ef64 100644 --- a/PWGHF/TableProducer/treeCreatorD0ToKPi.cxx +++ b/PWGHF/TableProducer/treeCreatorD0ToKPi.cxx @@ -241,8 +241,6 @@ struct HfTreeCreatorD0ToKPi { Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; Configurable fillCorrBkgs{"fillCorrBkgs", false, "Flag to fill derived tables with correlated background candidates"}; - HfHelper hfHelper; - // using TracksWPid = soa::Join; using SelectedCandidatesMc = soa::Filtered>; using SelectedCandidatesMcMl = soa::Filtered>; @@ -329,7 +327,7 @@ struct HfTreeCreatorD0ToKPi { flagMcDecay, origin); } else { - double cosThetaStar = candFlag == 0 ? hfHelper.cosThetaStarD0(candidate) : hfHelper.cosThetaStarD0bar(candidate); + double cosThetaStar = candFlag == 0 ? HfHelper::cosThetaStarD0(candidate) : HfHelper::cosThetaStarD0bar(candidate); rowCandidateFull( candidate.posX(), candidate.posY(), @@ -434,9 +432,9 @@ struct HfTreeCreatorD0ToKPi { continue; } } - double const yD = hfHelper.yD0(candidate); - double const eD = hfHelper.eD0(candidate); - double const ctD = hfHelper.ctD0(candidate); + double const yD = HfHelper::yD0(candidate); + double const eD = HfHelper::eD0(candidate); + double const ctD = HfHelper::ctD0(candidate); float massD0, massD0bar; float topolChi2PerNdf = -999.; if constexpr (ReconstructionType == aod::hf_cand::VertexerType::KfParticle) { @@ -444,8 +442,8 @@ struct HfTreeCreatorD0ToKPi { massD0bar = candidate.kfGeoMassD0bar(); topolChi2PerNdf = candidate.kfTopolChi2OverNdf(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } if (candidate.isSelD0()) { fillTable(candidate, 0, massD0, topolChi2PerNdf, ctD, yD, eD, 0, 0, 0); @@ -535,9 +533,9 @@ struct HfTreeCreatorD0ToKPi { continue; } } - double const yD = hfHelper.yD0(candidate); - double const eD = hfHelper.eD0(candidate); - double const ctD = hfHelper.ctD0(candidate); + double const yD = HfHelper::yD0(candidate); + double const eD = HfHelper::eD0(candidate); + double const ctD = HfHelper::ctD0(candidate); float massD0, massD0bar; float topolChi2PerNdf = -999.; if constexpr (ReconstructionType == aod::hf_cand::VertexerType::KfParticle) { @@ -545,8 +543,8 @@ struct HfTreeCreatorD0ToKPi { massD0bar = candidate.kfGeoMassD0bar(); topolChi2PerNdf = candidate.kfTopolChi2OverNdf(); } else { - massD0 = hfHelper.invMassD0ToPiK(candidate); - massD0bar = hfHelper.invMassD0barToKPi(candidate); + massD0 = HfHelper::invMassD0ToPiK(candidate); + massD0bar = HfHelper::invMassD0barToKPi(candidate); } if (candidate.isSelD0()) { fillTable(candidate, 0, massD0, topolChi2PerNdf, ctD, yD, eD, candidate.flagMcMatchRec(), candidate.flagMcDecayChanRec(), candidate.originMcRec()); diff --git a/PWGHF/TableProducer/treeCreatorDplusToPiKPi.cxx b/PWGHF/TableProducer/treeCreatorDplusToPiKPi.cxx index dcee30bf93b..f932b3292b4 100644 --- a/PWGHF/TableProducer/treeCreatorDplusToPiKPi.cxx +++ b/PWGHF/TableProducer/treeCreatorDplusToPiKPi.cxx @@ -268,8 +268,6 @@ struct HfTreeCreatorDplusToPiKPi { Configurable> classMlIndexes{"classMlIndexes", {0, 2}, "Indexes of ML bkg and non-prompt scores."}; Configurable centEstimator{"centEstimator", 0, "Centrality estimation (None: 0, FT0C: 2, FT0M: 3)"}; - HfHelper hfHelper; - using SelectedCandidatesMc = soa::Filtered>; using MatchedGenCandidatesMc = soa::Filtered>; using SelectedCandidatesMcWithMl = soa::Filtered>; @@ -363,14 +361,14 @@ struct HfTreeCreatorDplusToPiKPi { candidate.tpcTofNSigmaPi2(), candidate.tpcTofNSigmaKa2(), candidate.isSelDplusToPiKPi(), - hfHelper.invMassDplusToPiKPi(candidate), + HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), candidate.eta(), candidate.phi(), - hfHelper.yDplus(candidate), + HfHelper::yDplus(candidate), cent, coll.numContrib(), flagMc, @@ -442,17 +440,17 @@ struct HfTreeCreatorDplusToPiKPi { candidate.tpcTofNSigmaPi2(), candidate.tpcTofNSigmaKa2(), candidate.isSelDplusToPiKPi(), - hfHelper.invMassDplusToPiKPi(candidate), + HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), candidate.p(), candidate.cpa(), candidate.cpaXY(), candidate.maxNormalisedDeltaIP(), - hfHelper.ctDplus(candidate), + HfHelper::ctDplus(candidate), candidate.eta(), candidate.phi(), - hfHelper.yDplus(candidate), - hfHelper.eDplus(candidate), + HfHelper::yDplus(candidate), + HfHelper::eDplus(candidate), cent, flagMc, originMc, diff --git a/PWGHF/TableProducer/treeCreatorDsToKKPi.cxx b/PWGHF/TableProducer/treeCreatorDsToKKPi.cxx index a68b673f732..91fc2285ac4 100644 --- a/PWGHF/TableProducer/treeCreatorDsToKKPi.cxx +++ b/PWGHF/TableProducer/treeCreatorDsToKKPi.cxx @@ -277,8 +277,6 @@ struct HfTreeCreatorDsToKKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using CandDsData = soa::Filtered>; using CandDsMcReco = soa::Filtered>; using CandDsMcGen = soa::Filtered>; @@ -335,13 +333,13 @@ struct HfTreeCreatorDsToKKPi { float deltaMassPhiKK = 0; float absCos3PiKDs = 0; if constexpr (MassHypo == 0) { - invMassDs = hfHelper.invMassDsToKKPi(candidate); - deltaMassPhiKK = hfHelper.deltaMassPhiDsToKKPi(candidate); - absCos3PiKDs = hfHelper.absCos3PiKDsToKKPi(candidate); + invMassDs = HfHelper::invMassDsToKKPi(candidate); + deltaMassPhiKK = HfHelper::deltaMassPhiDsToKKPi(candidate); + absCos3PiKDs = HfHelper::absCos3PiKDsToKKPi(candidate); } else if constexpr (MassHypo == 1) { - invMassDs = hfHelper.invMassDsToPiKK(candidate); - deltaMassPhiKK = hfHelper.deltaMassPhiDsToPiKK(candidate); - absCos3PiKDs = hfHelper.absCos3PiKDsToPiKK(candidate); + invMassDs = HfHelper::invMassDsToPiKK(candidate); + deltaMassPhiKK = HfHelper::deltaMassPhiDsToPiKK(candidate); + absCos3PiKDs = HfHelper::absCos3PiKDsToPiKK(candidate); } int8_t flagMc{0}; @@ -357,11 +355,11 @@ struct HfTreeCreatorDsToKKPi { channelMc = candidate.flagMcDecayChanRec(); isSwapped = candidate.isCandidateSwapped(); if (fillDplusMc && candidate.flagMcDecayChanRec() == channelsResonant[Mother::Dplus][decayChannel]) { - eCand = hfHelper.eDplus(candidate); - ctCand = hfHelper.ctDplus(candidate); + eCand = HfHelper::eDplus(candidate); + ctCand = HfHelper::ctDplus(candidate); } else { - eCand = hfHelper.eDs(candidate); - ctCand = hfHelper.ctDs(candidate); + eCand = HfHelper::eDs(candidate); + ctCand = HfHelper::ctDs(candidate); } } diff --git a/PWGHF/TableProducer/treeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/treeCreatorLbToLcPi.cxx index 899d2c2ca28..925a005022c 100644 --- a/PWGHF/TableProducer/treeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/treeCreatorLbToLcPi.cxx @@ -196,7 +196,6 @@ DECLARE_SOA_TABLE(HfCandLbFulls, "AOD", "HFCANDLBFULL", /// Writes the full information in an output TTree struct HfTreeCreatorLbToLcPi { Produces rowCandidateFull; - HfHelper hfHelper; using TracksWPid = soa::Join; @@ -266,10 +265,10 @@ struct HfTreeCreatorLbToLcPi { candLc.nSigTofPr0(), candLc.nSigTofKa1(), candLc.nSigTofPi2(), - hfHelper.invMassLcToPKPi(candLc), - hfHelper.ctLc(candLc), - hfHelper.yLc(candLc), - hfHelper.eLc(candLc), + HfHelper::invMassLcToPKPi(candLc), + HfHelper::ctLc(candLc), + HfHelper::yLc(candLc), + HfHelper::eLc(candLc), candLc.eta(), candLc.xSecondaryVertex(), candLc.ySecondaryVertex(), @@ -303,7 +302,7 @@ struct HfTreeCreatorLbToLcPi { tempConst, tempConst); }; - fillTable(candidate.isSelLbToLcPi(), hfHelper.invMassLbToLcPi(candidate), hfHelper.ctLb(candidate), hfHelper.yLb(candidate)); + fillTable(candidate.isSelLbToLcPi(), HfHelper::invMassLbToLcPi(candidate), HfHelper::ctLb(candidate), HfHelper::yLb(candidate)); } } }; diff --git a/PWGHF/TableProducer/treeCreatorLcToK0sP.cxx b/PWGHF/TableProducer/treeCreatorLcToK0sP.cxx index d80e3729507..e04dba0ff35 100644 --- a/PWGHF/TableProducer/treeCreatorLcToK0sP.cxx +++ b/PWGHF/TableProducer/treeCreatorLcToK0sP.cxx @@ -242,8 +242,6 @@ struct HfTreeCreatorLcToK0sP { constexpr static float UndefValueFloat = -999.f; - HfHelper hfHelper; - using TracksWPid = soa::Join; using SelectedCandidatesMc = soa::Filtered>; Filter filterSelectCandidates = aod::hf_sel_candidate_lc_to_k0s_p::isSelLcToK0sP >= 1; @@ -307,8 +305,8 @@ struct HfTreeCreatorLcToK0sP { candidate.mAntiLambda(), candidate.mK0Short(), candidate.mGamma(), - hfHelper.ctV0K0s(candidate), - hfHelper.ctV0Lambda(candidate), + HfHelper::ctV0K0s(candidate), + HfHelper::ctV0Lambda(candidate), candidate.dcaV0daughters(), candidate.ptV0Pos(), candidate.ptV0Neg(), @@ -316,15 +314,15 @@ struct HfTreeCreatorLcToK0sP { candidate.dcapostopv(), bach.tpcNSigmaPr(), bach.tofNSigmaPr(), - hfHelper.invMassLcToK0sP(candidate), + HfHelper::invMassLcToK0sP(candidate), candidate.pt(), candidate.cpa(), candidate.cpaXY(), - hfHelper.ctLc(candidate), + HfHelper::ctLc(candidate), candidate.eta(), candidate.phi(), - hfHelper.yLc(candidate), - hfHelper.eLc(candidate), + HfHelper::yLc(candidate), + HfHelper::eLc(candidate), flagMc, originMcRec, mlScoreFirstClass, @@ -373,8 +371,8 @@ struct HfTreeCreatorLcToK0sP { candidate.mAntiLambda(), candidate.mK0Short(), candidate.mGamma(), - hfHelper.ctV0K0s(candidate), - hfHelper.ctV0Lambda(candidate), + HfHelper::ctV0K0s(candidate), + HfHelper::ctV0Lambda(candidate), candidate.dcaV0daughters(), candidate.pxpos(), candidate.pypos(), @@ -388,16 +386,16 @@ struct HfTreeCreatorLcToK0sP { candidate.dcanegtopv(), bach.tpcNSigmaPr(), bach.tofNSigmaPr(), - hfHelper.invMassLcToK0sP(candidate), + HfHelper::invMassLcToK0sP(candidate), candidate.pt(), candidate.p(), candidate.cpa(), candidate.cpaXY(), - hfHelper.ctLc(candidate), + HfHelper::ctLc(candidate), candidate.eta(), candidate.phi(), - hfHelper.yLc(candidate), - hfHelper.eLc(candidate), + HfHelper::yLc(candidate), + HfHelper::eLc(candidate), flagMc, originMcRec, mlScoreFirstClass, diff --git a/PWGHF/TableProducer/treeCreatorLcToPKPi.cxx b/PWGHF/TableProducer/treeCreatorLcToPKPi.cxx index 7bc710c8a9e..91565245c8e 100644 --- a/PWGHF/TableProducer/treeCreatorLcToPKPi.cxx +++ b/PWGHF/TableProducer/treeCreatorLcToPKPi.cxx @@ -411,8 +411,6 @@ struct HfTreeCreatorLcToPKPi { constexpr static int UndefValueInt = -999; constexpr static float NanoToPico = 1000.f; - HfHelper hfHelper; - using TracksWPid = soa::Join; using Cents = soa::Join; @@ -571,8 +569,8 @@ struct HfTreeCreatorLcToPKPi { template std::pair evaluateInvariantMassesDCAFitter(CandType const& candidate, int candFlag) { - const float invMass = candFlag == 0 ? hfHelper.invMassLcToPKPi(candidate) : hfHelper.invMassLcToPiKP(candidate); - const float invMassKPi = candFlag == 0 ? hfHelper.invMassKPiPairLcToPKPi(candidate) : hfHelper.invMassKPiPairLcToPiKP(candidate); + const float invMass = candFlag == 0 ? HfHelper::invMassLcToPKPi(candidate) : HfHelper::invMassLcToPiKP(candidate); + const float invMassKPi = candFlag == 0 ? HfHelper::invMassKPiPairLcToPKPi(candidate) : HfHelper::invMassKPiPairLcToPiKP(candidate); return std::make_pair(invMass, invMassKPi); } @@ -613,8 +611,8 @@ struct HfTreeCreatorLcToPKPi { void fillLiteTable(CandType const& candidate, aod::HfMlLcToPKPi::iterator const& candidateMlScore, int candFlag) { auto [functionInvMass, functionInvMassKPi] = evaluateInvariantMassesDCAFitter(candidate, candFlag); - const float functionCt = hfHelper.ctLc(candidate); - const float functionY = hfHelper.yLc(candidate); + const float functionCt = HfHelper::ctLc(candidate); + const float functionY = HfHelper::yLc(candidate); int8_t functionFlagMcMatchRec{0}; int8_t functionOriginMcRec{0}; @@ -699,9 +697,9 @@ struct HfTreeCreatorLcToPKPi { void fillFullTable(CandType const& candidate, aod::HfMlLcToPKPi::iterator const& candidateMlScore, int candFlag) { auto [functionInvMass, functionInvMassKPi] = evaluateInvariantMassesDCAFitter(candidate, candFlag); - const float functionCt = hfHelper.ctLc(candidate); - const float functionY = hfHelper.yLc(candidate); - const float functionE = hfHelper.eLc(candidate); + const float functionCt = HfHelper::ctLc(candidate); + const float functionY = HfHelper::yLc(candidate); + const float functionE = HfHelper::eLc(candidate); int8_t functionFlagMcMatchRec{0}; int8_t functionOriginMcRec{0}; diff --git a/PWGHF/TableProducer/treeCreatorSigmacCorrBkg.cxx b/PWGHF/TableProducer/treeCreatorSigmacCorrBkg.cxx index 9a4cec7ef9e..433fec3e2cc 100644 --- a/PWGHF/TableProducer/treeCreatorSigmacCorrBkg.cxx +++ b/PWGHF/TableProducer/treeCreatorSigmacCorrBkg.cxx @@ -86,8 +86,6 @@ struct HfTreeCreatorSigmacCorrBkg { Configurable selectionFlagLc{"selectionFlagLc", 1, "Selection Flag for Lc"}; Configurable yCandRecoMax{"yCandRecoMax", -1, "Maximum Sc candidate rapidity"}; - HfHelper hfHelper; - using RecoLcMc = soa::Join; using RecoScMc = soa::Join; using ParticlesLcSigmac = soa::Join; @@ -98,8 +96,8 @@ struct HfTreeCreatorSigmacCorrBkg { /// void fillTable(RecoScMc::iterator candidateSc, RecoLcMc::iterator candLcDauSc, int motherPdg, int motherDecay = -1) { - const int8_t chargeSc = candidateSc.charge(); // either Σc0 or Σc++ - const float rapidity = chargeSc == 0 ? hfHelper.ySc0(candidateSc) : hfHelper.yScPlusPlus(candidateSc); // NB: since in data we cannot tag Sc(2455) and Sc(2520), then we use only Sc(2455) for y selection on reconstructed signal + const int8_t chargeSc = candidateSc.charge(); // either Σc0 or Σc++ + const float rapidity = chargeSc == 0 ? HfHelper::ySc0(candidateSc) : HfHelper::yScPlusPlus(candidateSc); // NB: since in data we cannot tag Sc(2455) and Sc(2520), then we use only Sc(2455) for y selection on reconstructed signal float massSc = -1.f; float massLc = -1.f; float deltaMass = -1.f; @@ -117,16 +115,16 @@ struct HfTreeCreatorSigmacCorrBkg { } if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PKPi)) && std::abs(candLcDauSc.template prong0_as().template mcParticle_as().pdgCode()) == kProton) { - massSc = hfHelper.invMassScRecoLcToPKPi(candidateSc, candLcDauSc); - massLc = hfHelper.invMassLcToPKPi(candLcDauSc); + massSc = HfHelper::invMassScRecoLcToPKPi(candidateSc, candLcDauSc); + massLc = HfHelper::invMassLcToPKPi(candLcDauSc); deltaMass = massSc - massLc; /// fill the tree rowCorrBkgSc(rapidity, candidateSc.pt(), massSc, deltaMass, chargeSc, motherPdg, motherDecay, aod::hf_sigmac_bkg::DecaysLambdac::PKPi, outputMl.at(0), outputMl.at(1)); } if ((TESTBIT(isCandPKPiPiKP, o2::aod::hf_cand_sigmac::Decays::PiKP)) && std::abs(candLcDauSc.template prong0_as().template mcParticle_as().pdgCode()) == kPiPlus) { - massSc = hfHelper.invMassScRecoLcToPiKP(candidateSc, candLcDauSc); - massLc = hfHelper.invMassLcToPiKP(candLcDauSc); + massSc = HfHelper::invMassScRecoLcToPiKP(candidateSc, candLcDauSc); + massLc = HfHelper::invMassLcToPiKP(candLcDauSc); deltaMass = massSc - massLc; /// fill the tree diff --git a/PWGHF/TableProducer/treeCreatorTccToD0D0Pi.cxx b/PWGHF/TableProducer/treeCreatorTccToD0D0Pi.cxx index 2791be74e04..cfda72231de 100644 --- a/PWGHF/TableProducer/treeCreatorTccToD0D0Pi.cxx +++ b/PWGHF/TableProducer/treeCreatorTccToD0D0Pi.cxx @@ -257,7 +257,6 @@ struct HfTreeCreatorTccToD0D0Pi { o2::vertexing::DCAFitterN<2> dfD1; // 2-prong vertex fitter (to rebuild D01 vertex) o2::vertexing::DCAFitterN<2> dfD2; // 2-prong vertex fitter (to rebuild D02 vertex) - HfHelper hfHelper; Service ccdb; o2::base::MatLayerCylSet* lut{}; o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT; @@ -509,23 +508,23 @@ struct HfTreeCreatorTccToD0D0Pi { if (candidateD1.isSelD0()) { candFlagD1 = (candidateD1.isSelD0bar()) ? 3 : 1; std::copy(candidateD1.mlProbD0().begin(), candidateD1.mlProbD0().end(), std::back_inserter(mlScoresD1)); - massD01 = hfHelper.invMassD0ToPiK(candidateD1); + massD01 = HfHelper::invMassD0ToPiK(candidateD1); } if (candidateD1.isSelD0bar() && !candidateD1.isSelD0()) { candFlagD1 = 2; std::copy(candidateD1.mlProbD0bar().begin(), candidateD1.mlProbD0bar().end(), std::back_inserter(mlScoresD1)); - massD01 = hfHelper.invMassD0barToKPi(candidateD1); + massD01 = HfHelper::invMassD0barToKPi(candidateD1); } if (candidateD2.isSelD0()) { candFlagD2 = (candidateD2.isSelD0bar()) ? 3 : 1; std::copy(candidateD2.mlProbD0().begin(), candidateD2.mlProbD0().end(), std::back_inserter(mlScoresD2)); - massD02 = hfHelper.invMassD0ToPiK(candidateD2); + massD02 = HfHelper::invMassD0ToPiK(candidateD2); } if (candidateD2.isSelD0bar() && !candidateD2.isSelD0()) { candFlagD2 = 2; std::copy(candidateD2.mlProbD0bar().begin(), candidateD2.mlProbD0bar().end(), std::back_inserter(mlScoresD2)); - massD02 = hfHelper.invMassD0barToKPi(candidateD2); + massD02 = HfHelper::invMassD0barToKPi(candidateD2); } // const auto massD0D0Pair = RecoDecay::m(std::array{pVecD1, pVecD2}, std::array{MassD0, MassD0}); @@ -625,8 +624,8 @@ struct HfTreeCreatorTccToD0D0Pi { impactParameterYSoftPi = impactParameterSoftPi.getY(); } // Retrieve properties of the two D0 candidates - float yD1 = hfHelper.yD0(candidateD1); - float yD2 = hfHelper.yD0(candidateD2); + float yD1 = HfHelper::yD0(candidateD1); + float yD2 = HfHelper::yD0(candidateD2); float deltaMassD01 = -999; float deltaMassD02 = -999; diff --git a/PWGHF/TableProducer/treeCreatorXicToPKPi.cxx b/PWGHF/TableProducer/treeCreatorXicToPKPi.cxx index 56e88a3b65e..81543b0e7bf 100644 --- a/PWGHF/TableProducer/treeCreatorXicToPKPi.cxx +++ b/PWGHF/TableProducer/treeCreatorXicToPKPi.cxx @@ -234,8 +234,6 @@ struct HfTreeCreatorXicToPKPi { Configurable downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"}; Configurable ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"}; - HfHelper hfHelper; - using CandXicData = soa::Filtered>; using CandXicMcReco = soa::Filtered>; using CandXicMcGen = soa::Filtered>; @@ -287,10 +285,10 @@ struct HfTreeCreatorXicToPKPi { if constexpr (MassHypo == 0) { // Xic->PKPi selStatusPiKP *= -1; - invMassXic = hfHelper.invMassXicToPKPi(candidate); + invMassXic = HfHelper::invMassXicToPKPi(candidate); } else if constexpr (MassHypo == 1) { // Xic->PiKP selStatusPKPi *= -1; - invMassXic = hfHelper.invMassXicToPiKP(candidate); + invMassXic = HfHelper::invMassXicToPiKP(candidate); } if (fillCandidateLiteTable) { rowCandidateLite( @@ -394,11 +392,11 @@ struct HfTreeCreatorXicToPKPi { candidate.p(), candidate.cpa(), candidate.cpaXY(), - hfHelper.ctXic(candidate), + HfHelper::ctXic(candidate), candidate.eta(), candidate.phi(), - hfHelper.yXic(candidate), - hfHelper.eXic(candidate), + HfHelper::yXic(candidate), + HfHelper::eXic(candidate), flagMc, originMc, candSwapped); diff --git a/PWGHF/TableProducer/treeCreatorXiccToPKPiPi.cxx b/PWGHF/TableProducer/treeCreatorXiccToPKPiPi.cxx index 9e4f0e3703c..ccda4145f98 100644 --- a/PWGHF/TableProducer/treeCreatorXiccToPKPiPi.cxx +++ b/PWGHF/TableProducer/treeCreatorXiccToPKPiPi.cxx @@ -172,8 +172,6 @@ struct HfTreeCreatorXiccToPKPiPi { Produces rowCandidateFullEvents; Produces rowCandidateFullParticles; - HfHelper hfHelper; - using TracksWPid = soa::Join; void init(InitContext const&) @@ -237,10 +235,10 @@ struct HfTreeCreatorXiccToPKPiPi { candidate.errorImpactParameter0(), candidate.errorImpactParameter1(), candidate.impactParameterProduct(), - hfHelper.invMassXicToPKPi(xicCand), - hfHelper.ctXic(xicCand), - hfHelper.yXic(xicCand), - hfHelper.eXic(xicCand), + HfHelper::invMassXicToPKPi(xicCand), + HfHelper::ctXic(xicCand), + HfHelper::yXic(xicCand), + HfHelper::eXic(xicCand), xicCand.eta(), xicCand.cpa(), xicCand.cpaXY(), @@ -268,7 +266,7 @@ struct HfTreeCreatorXiccToPKPiPi { } }; - fillTable(0, candidate.isSelXiccToPKPiPi(), hfHelper.invMassXiccToXicPi(candidate), hfHelper.ctXicc(candidate), hfHelper.yXicc(candidate)); + fillTable(0, candidate.isSelXiccToPKPiPi(), HfHelper::invMassXiccToXicPi(candidate), HfHelper::ctXicc(candidate), HfHelper::yXicc(candidate)); } // Filling particle properties diff --git a/PWGHF/Tasks/taskCharmHadImpactPar.cxx b/PWGHF/Tasks/taskCharmHadImpactPar.cxx index b8da8a09ffa..ca288dfa839 100644 --- a/PWGHF/Tasks/taskCharmHadImpactPar.cxx +++ b/PWGHF/Tasks/taskCharmHadImpactPar.cxx @@ -125,8 +125,6 @@ struct HfTaskCharmHadImpactPar { Configurable occEstimator{"occEstimator", 0, "Occupancy estimation (None: 0, ITS: 1, FT0C: 2)"}; Configurable fillOnlySignal{"fillOnlySignal", false, "Flag to store only matched candidates"}; - HfHelper hfHelper; - using Collisions = soa::Join; using CollisionsCent = soa::Join; using CandDplusData = soa::Filtered>; @@ -181,8 +179,8 @@ struct HfTaskCharmHadImpactPar { } } } - invMass = hfHelper.invMassDplusToPiKPi(candidate); - yCand = hfHelper.yDplus(candidate); + invMass = HfHelper::invMassDplusToPiKPi(candidate); + yCand = HfHelper::yDplus(candidate); if constexpr (WithMl) { for (auto iScore{0u}; iScore < candidate.mlProbDplusToPiKPi().size(); ++iScore) { outputMl[iScore] = candidate.mlProbDplusToPiKPi()[iScore]; @@ -200,8 +198,8 @@ struct HfTaskCharmHadImpactPar { } } } - invMass = hfHelper.invMassD0ToPiK(candidate); - yCand = hfHelper.yD0(candidate); + invMass = HfHelper::invMassD0ToPiK(candidate); + yCand = HfHelper::yD0(candidate); if constexpr (WithMl) { for (auto iScore{0u}; iScore < candidate.mlProbD0().size(); ++iScore) { outputMl[iScore] = candidate.mlProbD0()[iScore]; @@ -212,8 +210,8 @@ struct HfTaskCharmHadImpactPar { } } if (candidate.isSelD0bar()) { - invMass = hfHelper.invMassD0barToKPi(candidate); - yCand = hfHelper.yD0(candidate); + invMass = HfHelper::invMassD0barToKPi(candidate); + yCand = HfHelper::yD0(candidate); if constexpr (WithMl) { for (auto iScore{0u}; iScore < candidate.mlProbD0bar().size(); ++iScore) { outputMl[iScore] = candidate.mlProbD0bar()[iScore]; @@ -239,8 +237,8 @@ struct HfTaskCharmHadImpactPar { std::array phiProngs = {RecoDecay::phi(std::array{candidate.pxProng0(), candidate.pyProng0()}), RecoDecay::phi(std::array{candidate.pxProng1(), candidate.pyProng1()}), 99.}; std::array etaProngs = {RecoDecay::eta(std::array{candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0()}), RecoDecay::eta(std::array{candidate.pxProng1(), candidate.pyProng1(), candidate.pzProng1()}), 99.}; if constexpr (Channel == Channel::DplusToKPiPi) { // D+ -> Kpipi - invMass = hfHelper.invMassDplusToPiKPi(candidate); - yCand = hfHelper.yDplus(candidate); + invMass = HfHelper::invMassDplusToPiKPi(candidate); + yCand = HfHelper::yDplus(candidate); ptProngs[2] = candidate.ptProng2(); phiProngs[2] = RecoDecay::phi(candidate.pxProng2(), candidate.pyProng2()); etaProngs[2] = RecoDecay::eta(std::array{candidate.pxProng2(), candidate.pyProng2(), candidate.pzProng2()}); @@ -251,8 +249,8 @@ struct HfTaskCharmHadImpactPar { } } else if constexpr (Channel == Channel::DzeroToKPi) { if (candidate.isSelD0()) { // D0 -> Kpi - invMass = hfHelper.invMassD0ToPiK(candidate); - yCand = hfHelper.yD0(candidate); + invMass = HfHelper::invMassD0ToPiK(candidate); + yCand = HfHelper::yD0(candidate); if constexpr (WithMl) { for (auto iScore{0u}; iScore < candidate.mlProbD0().size(); ++iScore) { outputMl[iScore] = candidate.mlProbD0()[iScore]; @@ -260,8 +258,8 @@ struct HfTaskCharmHadImpactPar { } } if (candidate.isSelD0bar()) { - invMass = hfHelper.invMassD0barToKPi(candidate); - yCand = hfHelper.yD0(candidate); + invMass = HfHelper::invMassD0barToKPi(candidate); + yCand = HfHelper::yD0(candidate); if constexpr (WithMl) { for (auto iScore{0u}; iScore < candidate.mlProbD0bar().size(); ++iScore) { outputMl[iScore] = candidate.mlProbD0bar()[iScore]; diff --git a/PWGHF/Tasks/taskLcCentrality.cxx b/PWGHF/Tasks/taskLcCentrality.cxx index 96d4c03c2f3..7b3ea6ddcfd 100644 --- a/PWGHF/Tasks/taskLcCentrality.cxx +++ b/PWGHF/Tasks/taskLcCentrality.cxx @@ -57,8 +57,6 @@ struct HfTaskLcCentrality { Configurable yCandMax{"yCandMax", -1., "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc); HistogramRegistry registry{ @@ -98,14 +96,14 @@ struct HfTaskLcCentrality { if ((candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandMax) { continue; } if (candidate.isSelLcToPKPi() >= selectionFlagLc) { - registry.fill(HIST("hMass"), hfHelper.invMassLcToPKPi(candidate), candidate.pt(), centrality); + registry.fill(HIST("hMass"), HfHelper::invMassLcToPKPi(candidate), candidate.pt(), centrality); } if (candidate.isSelLcToPiKP() >= selectionFlagLc) { - registry.fill(HIST("hMass"), hfHelper.invMassLcToPiKP(candidate), candidate.pt(), centrality); + registry.fill(HIST("hMass"), HfHelper::invMassLcToPiKP(candidate), candidate.pt(), centrality); } registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hPtProng0"), candidate.ptProng0()); @@ -115,7 +113,7 @@ struct HfTaskLcCentrality { registry.fill(HIST("hd0Prong0"), candidate.impactParameter0(), candidate.pt()); registry.fill(HIST("hd0Prong1"), candidate.impactParameter1(), candidate.pt()); registry.fill(HIST("hd0Prong2"), candidate.impactParameter2(), candidate.pt()); - registry.fill(HIST("hCt"), hfHelper.ctLc(candidate), candidate.pt()); + registry.fill(HIST("hCt"), HfHelper::ctLc(candidate), candidate.pt()); registry.fill(HIST("hCPA"), candidate.cpa(), candidate.pt()); registry.fill(HIST("hEta"), candidate.eta(), candidate.pt()); registry.fill(HIST("hSelectionStatus"), candidate.isSelLcToPKPi(), candidate.pt()); @@ -135,8 +133,6 @@ struct HfTaskLcCentralityMc { Configurable yCandMax{"yCandMax", -1., "max. cand. rapidity"}; Configurable> binsPt{"binsPt", std::vector{hf_cuts_lc_to_p_k_pi::vecBinsPt}, "pT bin limits"}; - HfHelper hfHelper; - Filter filterSelectCandidates = (aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc); HistogramRegistry registry{ @@ -169,7 +165,7 @@ struct HfTaskLcCentralityMc { if ((candidate.hfflag() & 1 << aod::hf_cand_3prong::DecayType::LcToPKPi) == 0) { continue; } - if (yCandMax >= 0. && std::abs(hfHelper.yLc(candidate)) > yCandMax) { + if (yCandMax >= 0. && std::abs(HfHelper::yLc(candidate)) > yCandMax) { continue; } if (std::abs(candidate.flagMcMatchRec()) == hf_decay::hf_cand_3prong::DecayChannelMain::LcToPKPi) { diff --git a/PWGHF/Tasks/taskMcEfficiency.cxx b/PWGHF/Tasks/taskMcEfficiency.cxx index b4d17250c8f..3de53e342b4 100644 --- a/PWGHF/Tasks/taskMcEfficiency.cxx +++ b/PWGHF/Tasks/taskMcEfficiency.cxx @@ -69,7 +69,6 @@ struct HfTaskMcEfficiency { Configurable mcAcceptanceEta{"mcAcceptanceEta", 0.8, "MC Acceptance: upper eta limit"}; Service pdg; - HfHelper hfHelper; enum HFStep { kHFStepMC = 0, kHFStepMcInRapidity, // MC mothers in rapidity |y| < 0.5 @@ -257,23 +256,23 @@ struct HfTaskMcEfficiency { /// all candidates if (isHypoMass1TrackStep) { if (pdgCode == Pdg::kLambdaCPlus) { - massHypo1 = hfHelper.invMassLcToPKPi(candidate); + massHypo1 = HfHelper::invMassLcToPKPi(candidate); } else if (pdgCode == Pdg::kXiCPlus) { - massHypo1 = hfHelper.invMassXicToPKPi(candidate); + massHypo1 = HfHelper::invMassXicToPKPi(candidate); } else if (pdgCode == Pdg::kDPlus) { - massHypo1 = hfHelper.invMassDplusToPiKPi(candidate); + massHypo1 = HfHelper::invMassDplusToPiKPi(candidate); } else if (pdgCode == Pdg::kDS) { - massHypo1 = hfHelper.invMassDsToKKPi(candidate); + massHypo1 = HfHelper::invMassDsToKKPi(candidate); } hCandidates->Fill(kHFStepTracked, pt, massHypo1, pdgCode, cpa, collisionMatched, origin); } if (isHypoMass2TrackStep) { if (pdgCode == Pdg::kLambdaCPlus) { - massHypo2 = hfHelper.invMassLcToPiKP(candidate); + massHypo2 = HfHelper::invMassLcToPiKP(candidate); } else if (pdgCode == Pdg::kXiCPlus) { - massHypo2 = hfHelper.invMassXicToPiKP(candidate); + massHypo2 = HfHelper::invMassXicToPiKP(candidate); } else if (pdgCode == Pdg::kDS) { - massHypo2 = hfHelper.invMassDsToPiKK(candidate); + massHypo2 = HfHelper::invMassDsToPiKK(candidate); } hCandidates->Fill(kHFStepTracked, pt, massHypo2, pdgCode, cpa, collisionMatched, origin); } @@ -375,10 +374,10 @@ struct HfTaskMcEfficiency { float const pt = candidate.pt(); bool selected = false; if (pdgCode == Pdg::kD0) { - mass = hfHelper.invMassD0ToPiK(candidate); + mass = HfHelper::invMassD0ToPiK(candidate); selected = candidate.isSelD0() >= selectionFlagD0; } else if (pdgCode == Pdg::kD0Bar) { - mass = hfHelper.invMassD0barToKPi(candidate); + mass = HfHelper::invMassD0barToKPi(candidate); selected = candidate.isSelD0bar() >= selectionFlagD0bar; } LOGP(debug, "Candidate {} has prong {} and prong {} and pT {} and mass {}", candidate.globalIndex(), candidate.prong0Id(), candidate.prong1Id(), candidate.pt(), mass); diff --git a/Tutorials/PWGHF/taskMini.cxx b/Tutorials/PWGHF/taskMini.cxx index 813e9879ce4..65d0f3fc661 100644 --- a/Tutorials/PWGHF/taskMini.cxx +++ b/Tutorials/PWGHF/taskMini.cxx @@ -150,7 +150,6 @@ struct HfTaskMiniCandidateSelectorD0 { Configurable cpaMin{"cpaMin", 0.98, "Min. cosine of pointing angle"}; Configurable massWindow{"massWindow", 0.4, "Half-width of the invariant-mass window"}; - HfHelper hfHelper; TrackSelectorPi selectorPion; TrackSelectorKa selectorKaon; @@ -193,11 +192,11 @@ struct HfTaskMiniCandidateSelectorD0 { { // invariant-mass cut if (trackPion.sign() > 0) { - if (std::abs(hfHelper.invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > massWindow) { + if (std::abs(HfHelper::invMassD0ToPiK(candidate) - o2::constants::physics::MassD0) > massWindow) { return false; } } else { - if (std::abs(hfHelper.invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > massWindow) { + if (std::abs(HfHelper::invMassD0barToKPi(candidate) - o2::constants::physics::MassD0) > massWindow) { return false; } } @@ -286,8 +285,6 @@ struct HfTaskMiniD0 { Configurable selectionFlagD0{"selectionFlagD0", 1, "Selection flag for D0"}; Configurable selectionFlagD0bar{"selectionFlagD0bar", 1, "Selection flag for D0 bar"}; - HfHelper hfHelper; - Partition> selectedD0Candidates = aod::hf_selcandidate_d0::isSelD0 >= selectionFlagD0 || aod::hf_selcandidate_d0::isSelD0bar >= selectionFlagD0bar; HistogramRegistry registry{ @@ -308,10 +305,10 @@ struct HfTaskMiniD0 { { for (const auto& candidate : selectedD0Candidates) { if (candidate.isSelD0() >= selectionFlagD0) { - registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate)); + registry.fill(HIST("hMass"), HfHelper::invMassD0ToPiK(candidate)); } if (candidate.isSelD0bar() >= selectionFlagD0bar) { - registry.fill(HIST("hMass"), hfHelper.invMassD0barToKPi(candidate)); + registry.fill(HIST("hMass"), HfHelper::invMassD0barToKPi(candidate)); } registry.fill(HIST("hPtCand"), candidate.pt()); registry.fill(HIST("hCpaVsPtCand"), candidate.cpa(), candidate.pt());