Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 23 additions & 24 deletions PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,9 @@ struct HfTaskXic0ToXiPi {

void init(InitContext&)
{
std::array<bool, 16> doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M, \
doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M, \
doprocessMcWithKFParticle, doprocessMcWithKFParticleMl,doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl
};
std::array<bool, 16> doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M,
doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M,
doprocessMcWithKFParticle, doprocessMcWithKFParticleMl, doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl};
if ((std::accumulate(doprocess.begin(), doprocess.end(), 0)) != 1) {
LOGP(fatal, "One and only one process function should be enabled at a time.");
}
Expand Down Expand Up @@ -178,7 +177,7 @@ struct HfTaskXic0ToXiPi {
}
}

template < bool useCentrality, bool applyMl, typename CandType, typename CollType>
template <bool useCentrality, bool applyMl, typename CandType, typename CollType>
void processDataCent(const CandType& candidate, CollType const& collision)
{
if (candidate.resultSelections() != true) {
Expand Down Expand Up @@ -288,7 +287,7 @@ struct HfTaskXic0ToXiPi {
}
}
}

void processDataWithDCAFitter(Xic0Cands const& candidates,
CollisionsWithEvSels const& collisions)
{
Expand Down Expand Up @@ -316,7 +315,7 @@ struct HfTaskXic0ToXiPi {
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticle, "process HfTaskXic0ToXiPi with KFParticle", true);

void processDataWithDCAFitterMl(Xic0CandsMl const& candidates,
CollisionsWithEvSels const& collisions)
CollisionsWithEvSels const& collisions)
{
for (const auto& collision : collisions) {
auto thisCollId = collision.globalIndex();
Expand All @@ -342,7 +341,7 @@ struct HfTaskXic0ToXiPi {
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMl, "process HfTaskXic0ToXiPi with KFParticle and ML selections", false);

void processDataWithDCAFitterFT0C(Xic0Cands const& candidates,
CollisionsWithFT0C const& collisions)
CollisionsWithFT0C const& collisions)
{
for (const auto& collision : collisions) {
auto thisCollId = collision.globalIndex();
Expand All @@ -368,7 +367,7 @@ struct HfTaskXic0ToXiPi {
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleFT0C, "process HfTaskXic0ToXiPi with KFParticle and with FT0C centrality", false);

void processDataWithDCAFitterFT0M(Xic0Cands const& candidates,
CollisionsWithFT0M const& collisions)
CollisionsWithFT0M const& collisions)
{
for (const auto& collision : collisions) {
auto thisCollId = collision.globalIndex();
Expand All @@ -394,18 +393,18 @@ struct HfTaskXic0ToXiPi {
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleFT0M, "process HfTaskXic0ToXiPi with KFParticle and with FT0M centrality", false);

void processDataWithDCAFitterMlFT0C(Xic0CandsMl const& candidates,
CollisionsWithFT0C const& collisions)
CollisionsWithFT0C const& collisions)
{
for (const auto& collision : collisions) {
auto thisCollId = collision.globalIndex();
auto groupedXicCandidates = candidates.sliceBy(candXicMlPerCollision, thisCollId);
for (const auto& candidate : groupedXicCandidates) {
processDataCent<true, true>(candidate, collision);
}
}
}
}
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0C, "process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0C centrality", false);

void processDataWithKFParticleMlFT0C(Xic0CandsMlKF const& candidates,
CollisionsWithFT0C const& collisions)
{
Expand All @@ -415,20 +414,20 @@ struct HfTaskXic0ToXiPi {
for (const auto& candidate : groupedXicCandidates) {
processDataCent<true, true>(candidate, collision);
}
}
}
}
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0C, "process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0C centrality", false);

void processDataWithDCAFitterMlFT0M(Xic0CandsMl const& candidates,
CollisionsWithFT0M const& collisions)
CollisionsWithFT0M const& collisions)
{
for (const auto& collision : collisions) {
auto thisCollId = collision.globalIndex();
auto groupedXicCandidates = candidates.sliceBy(candXicMlPerCollision, thisCollId);
for (const auto& candidate : groupedXicCandidates) {
processDataCent<true, true>(candidate, collision);
}
}
}
}
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0M, "process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0M centrality", false);

Expand All @@ -441,15 +440,15 @@ struct HfTaskXic0ToXiPi {
for (const auto& candidate : groupedXicCandidates) {
processDataCent<true, true>(candidate, collision);
}
}
}
}
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0M, "process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0M centrality", false);

void processMcWithDCAFitter(Xic0CandsMc const& Xic0CandidatesMc,
Xic0Gen const& mcParticles,
TracksMc const& tracks,
CollisionsWithMcLabels const& collisions,
aod::McCollisions const& mcCollisions)
Xic0Gen const& mcParticles,
TracksMc const& tracks,
CollisionsWithMcLabels const& collisions,
aod::McCollisions const& mcCollisions)
{
processMc<false>(Xic0CandidatesMc, mcParticles, tracks, collisions, mcCollisions);
}
Expand All @@ -466,10 +465,10 @@ struct HfTaskXic0ToXiPi {
PROCESS_SWITCH(HfTaskXic0ToXiPi, processMcWithKFParticle, "Process MC with KFParticle", false);

void processMcWithDCAFitterMl(Xic0CandsMlMc const& Xic0CandidatesMlMc,
Xic0Gen const& mcParticles,
TracksMc const& tracks,
CollisionsWithMcLabels const& collisions,
aod::McCollisions const& mcCollisions)
Xic0Gen const& mcParticles,
TracksMc const& tracks,
CollisionsWithMcLabels const& collisions,
aod::McCollisions const& mcCollisions)
{
processMc<true>(Xic0CandidatesMlMc, mcParticles, tracks, collisions, mcCollisions);
}
Expand Down
12 changes: 5 additions & 7 deletions PWGHF/TableProducer/candidateSelectorToXiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,8 @@
/// \author Federica Zanone <federica.zanone@cern.ch>, Heidelberg University
/// \author Tao Fang <tao.fang@cern.ch>, Central China Normal University

#include <string>
#include <vector>

#include "PWGHF/Core/HfMlResponseXic0ToXiPi.h"
#include "PWGHF/Core/SelectorCuts.h"

#include "PWGHF/DataModel/CandidateReconstructionTables.h"
#include "PWGHF/DataModel/CandidateSelectionTables.h"
#include "PWGHF/Utils/utilsAnalysis.h"
Expand All @@ -45,6 +41,8 @@

#include <cstdint>
#include <cstdlib>
#include <string>
#include <vector>

using namespace o2;
using namespace o2::aod;
Expand Down Expand Up @@ -144,14 +142,14 @@ struct HfCandidateSelectorToXiPi {
Configurable<LabeledArray<double>> cutsMl{"cutsMl", {hf_cuts_ml::Cuts[0], hf_cuts_ml::NBinsPt, hf_cuts_ml::NCutScores, hf_cuts_ml::labelsPt, hf_cuts_ml::labelsCutScore}, "ML selections per pT bin"};
Configurable<int> nClassesMl{"nClassesMl", static_cast<int>(hf_cuts_ml::NCutScores), "Number of classes in ML model"};
Configurable<std::vector<std::string>> namesInputFeatures{"namesInputFeatures", std::vector<std::string>{"feature1", "feature2"}, "Names of ML model input features"};

// CCDB configuration
Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Configurable<std::vector<std::string>> modelPathsCCDB{"modelPathsCCDB", std::vector<std::string>{"EventFiltering/PWGHF/BDTXic0ToXipiKf"}, "Paths of models on CCDB"};
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"ModelHandler_onnx_Xic0ToXipiKf.onnx"}, "ONNX file names for each pT bin (if not from CCDB full path)"};
Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"};
Configurable<bool> loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"};

o2::analysis::HfMlResponseXic0ToXiPi<float> hfMlResponse;
std::vector<float> outputMlXic0ToXiPi = {};
o2::ccdb::CcdbApi ccdbApi;
Expand Down Expand Up @@ -558,7 +556,7 @@ struct HfCandidateSelectorToXiPi {
} else {
registry.fill(HIST("hSelMassCharmBaryon"), 0);
}

// ML selections
if (applyMl) {
bool isSelectedMlXic0 = false;
Expand Down