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
10 changes: 7 additions & 3 deletions Tools/PIDML/pidMl.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@
#ifndef TOOLS_PIDML_PIDML_H_
#define TOOLS_PIDML_PIDML_H_

#include "Framework/AnalysisDataModel.h"
#include "Common/DataModel/PIDResponse.h"
#include "Common/DataModel/Centrality.h"
#include "Common/DataModel/Multiplicity.h"
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/PIDResponseTPC.h"
#include "Common/DataModel/TrackSelectionTables.h"

#include <Framework/AnalysisDataModel.h>

#include <cstdint>

namespace o2::aod
{
Expand Down
43 changes: 30 additions & 13 deletions Tools/PIDML/pidMlBatchEffAndPurProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,39 @@
/// \author Michał Olędzki <m.oledzki@cern.ch>
/// \author Marek Mytkowski <marek.mytkowski@cern.ch>

#include <cstddef>
#include <string_view>
#include "Tools/PIDML/pidOnnxModel.h"
#include "Tools/PIDML/pidUtils.h"
//
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/PIDResponseTPC.h"
#include "Common/DataModel/TrackSelectionTables.h"

#include <CCDB/CcdbApi.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisHelpers.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/StaticFor.h>
#include <Framework/runDataProcessing.h>

#include <TH1.h>

#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <limits>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include <limits>

#include "Framework/AnalysisDataModel.h"
#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Framework/StaticFor.h"
#include "CCDB/CcdbApi.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/PIDResponse.h"
#include "Tools/PIDML/pidOnnxModel.h"
#include "Tools/PIDML/pidUtils.h"

using namespace o2;
using namespace o2::framework;
Expand Down
29 changes: 20 additions & 9 deletions Tools/PIDML/pidMlEffAndPurProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,27 @@
/// \author Michał Olędzki <m.oledzki@cern.ch>
/// \author Marek Mytkowski <marek.mytkowski@cern.ch>

#include <string>

#include "Framework/AnalysisDataModel.h"
#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "CCDB/CcdbApi.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/PIDResponse.h"
#include "Tools/PIDML/pidOnnxModel.h"
#include "Tools/PIDML/pidUtils.h"
//
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/PIDResponseTPC.h"
#include "Common/DataModel/TrackSelectionTables.h"

#include <CCDB/CcdbApi.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/runDataProcessing.h>

#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <string>

using namespace o2;
using namespace o2::framework;
Expand Down Expand Up @@ -91,7 +102,7 @@ struct PidMlEffAndPurProducer {
return nSigma;
}

bool isNSigmaAccept(const BigTracks::iterator& track, nSigma_t& nSigma)
bool isNSigmaAccept(const BigTracks::iterator& track, const nSigma_t& nSigma)
{
// FIXME: for current particles it works, but there are some particles,
// which can have different sign and pdgSign
Expand Down
35 changes: 25 additions & 10 deletions Tools/PIDML/pidMlProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,33 @@
/// \author Maja Kabus <mkabus@cern.ch>
/// \author Marek Mytkowski <marek.mytkowski@cern.ch>

#include <string_view>
#include <limits>
#include "Framework/AnalysisTask.h"
#include "Framework/StaticFor.h"
#include "Framework/AnalysisDataModel.h"
#include "Framework/HistogramRegistry.h"
#include "Framework/runDataProcessing.h"
#include "Common/DataModel/Centrality.h"
#include "Common/DataModel/Multiplicity.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Tools/PIDML/pidMl.h"
#include "Tools/PIDML/pidUtils.h"
//
#include "Common/DataModel/Multiplicity.h"
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/PIDResponseTPC.h"
#include "Common/DataModel/TrackSelectionTables.h"

#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisHelpers.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/runDataProcessing.h>

#include <TH1.h>
#include <TH2.h>
#include <TString.h>

#include <array>
#include <cstdint>
#include <limits>
#include <memory>
#include <string_view>

using namespace o2;
using namespace o2::framework;
Expand Down
16 changes: 10 additions & 6 deletions Tools/PIDML/pidOnnxInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,18 @@
#ifndef TOOLS_PIDML_PIDONNXINTERFACE_H_
#define TOOLS_PIDML_PIDONNXINTERFACE_H_

#include <string>
#include <array>
#include "Tools/PIDML/pidOnnxModel.h"
//
#include <CCDB/CcdbApi.h>
#include <Framework/Array2D.h>
#include <Framework/Logger.h>

#include <cstddef>
#include <cstdint>
#include <set>
#include <string>
#include <vector>

#include "Framework/Array2D.h"
#include "Tools/PIDML/pidOnnxModel.h"

namespace pidml_pt_cuts
{
static constexpr int NPids = 6;
Expand Down Expand Up @@ -110,7 +114,7 @@ struct PidONNXInterface {
}

std::vector<PidONNXModel<T>> mModels;
std::size_t mNPids;
std::size_t mNPids{0};
o2::framework::LabeledArray<double> mPLimits;
};
#endif // TOOLS_PIDML_PIDONNXINTERFACE_H_
39 changes: 22 additions & 17 deletions Tools/PIDML/pidOnnxModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,31 @@
#ifndef TOOLS_PIDML_PIDONNXMODEL_H_
#define TOOLS_PIDML_PIDONNXMODEL_H_

#include "Tools/PIDML/pidUtils.h"
//
#include <CCDB/CcdbApi.h>
#include <Framework/ASoA.h>
#include <array>
#include <Framework/Logger.h>

#include <onnxruntime_c_api.h>
#include <onnxruntime_cxx_api.h>
#include <rapidjson/document.h>
#include <rapidjson/filereadstream.h>

#include <algorithm>
#include <array>
#include <cassert>
#include <cstdint>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <limits>
#include <map>
#include <memory>
#include <optional>
#include <sstream>
#include <string>
#include <map>
#include <type_traits>
#include <utility>
#include <memory>
#include <vector>
#include <onnxruntime_cxx_api.h>

#include "rapidjson/document.h"
#include "rapidjson/filereadstream.h"
#include "CCDB/CcdbApi.h"
#include "Tools/PIDML/pidUtils.h"

enum PidMLDetector {
kTPCOnly = 0,
Expand All @@ -57,7 +62,7 @@ constexpr MomentumLimitsMatrix defaultModelPLimits({0.0, 0.5, 0.8});
// TODO: Copied from cefpTask, shall we put it in some common utils code?
namespace
{
bool readJsonFile(const std::string& config, rapidjson::Document& d)
bool readJsonFile(std::string const& config, rapidjson::Document& d)
{
FILE* fp = fopen(config.data(), "rb");
if (!fp) {
Expand All @@ -77,7 +82,7 @@ bool readJsonFile(const std::string& config, rapidjson::Document& d)
template <typename T>
struct PidONNXModel {
public:
PidONNXModel(std::string& localPath, std::string& ccdbPath, bool useCCDB, o2::ccdb::CcdbApi& ccdbApi, uint64_t timestamp,
PidONNXModel(std::string const& localPath, std::string const& ccdbPath, bool useCCDB, o2::ccdb::CcdbApi const& ccdbApi, uint64_t timestamp,
int pid, double minCertainty, const double* pLimits = &pidml_pt_cuts::defaultModelPLimits[0])
: mPid(pid), mMinCertainty(minCertainty), mPLimits(pLimits, pLimits + kNDetectors)
{
Expand Down Expand Up @@ -136,8 +141,8 @@ struct PidONNXModel {
return getModelOutput(track) >= mMinCertainty;
}

int mPid;
double mMinCertainty;
int mPid{0};
double mMinCertainty{0};

private:
void getModelPaths(std::string const& path, std::string& modelDir, std::string& modelFile, std::string& modelPath, int pid, std::string const& ext)
Expand All @@ -155,7 +160,7 @@ struct PidONNXModel {
modelPath = modelDir + "/" + modelFile;
}

void downloadFromCCDB(o2::ccdb::CcdbApi& ccdbApi, std::string const& ccdbFile, uint64_t timestamp, std::string const& localDir, std::string const& localFile)
void downloadFromCCDB(o2::ccdb::CcdbApi const& ccdbApi, std::string const& ccdbFile, uint64_t timestamp, std::string const& localDir, std::string const& localFile)
{
std::map<std::string, std::string> metadata;
bool retrieveSuccess = ccdbApi.retrieveBlob(ccdbFile, localDir, metadata, timestamp, false, localFile);
Expand All @@ -167,7 +172,7 @@ struct PidONNXModel {
}
}

void loadInputFiles(std::string const& localPath, std::string const& ccdbPath, bool useCCDB, o2::ccdb::CcdbApi& ccdbApi, uint64_t timestamp, int pid, std::string& modelPath)
void loadInputFiles(std::string const& localPath, std::string const& ccdbPath, bool useCCDB, o2::ccdb::CcdbApi const& ccdbApi, uint64_t timestamp, int pid, std::string& modelPath)
{
rapidjson::Document trainColumnsDoc;
rapidjson::Document scalingParamsDoc;
Expand Down
30 changes: 22 additions & 8 deletions Tools/PIDML/qaPid.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,29 @@
/// \author Łukasz Sawicki
/// \since

#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Framework/HistogramRegistry.h"
#include "Framework/StaticFor.h"
#include "Common/DataModel/PIDResponseCombined.h"
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/PIDResponseTPC.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/PIDResponse.h"
#include <TParameter.h>

#include <Framework/ASoA.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/Expressions.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/StaticFor.h>
#include <Framework/runDataProcessing.h>
#include <ReconstructionDataFormats/PID.h>

#include <TPDGCode.h>

#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <string_view>

using namespace o2;
using namespace o2::framework;
using namespace o2::framework::expressions;
Expand Down Expand Up @@ -371,7 +385,7 @@ struct QaPid {
for (int j = 0; j < kArrLen; ++j) {
if (p < PSwitch[j]) {
particleNSigma[j] = std::abs(tpcNSigmas[j]);
} else if (p >= PSwitch[j]) {
} else {
particleNSigma[j] = combinedSignal(tpcNSigmas[j], tofNSigmas[j]);
}
}
Expand Down Expand Up @@ -409,7 +423,7 @@ struct QaPid {
for (int j = 0; j < kArrLen; ++j) {
if (p < PSwitch[j]) {
particleNSigma[j] = std::abs(tpcNSigmas[j]);
} else if (p >= PSwitch[j]) {
} else {
particleNSigma[j] = combinedSignal(tpcNSigmas[j], tofNSigmas[j]);
}
}
Expand Down
31 changes: 21 additions & 10 deletions Tools/PIDML/qaPidMl.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,28 @@
/// \author Łukasz Sawicki
/// \since

#include <string>

#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Framework/HistogramRegistry.h"
#include "Framework/StaticFor.h"
#include "Tools/PIDML/pidOnnxModel.h"
//
#include "Common/DataModel/PIDResponseTOF.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/PIDResponse.h"
#include <TParameter.h>

#include <CCDB/CcdbApi.h>
#include <Framework/ASoA.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/Expressions.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/StaticFor.h>
#include <Framework/runDataProcessing.h>

#include <TPDGCode.h>
#include "Tools/PIDML/pidOnnxModel.h"

#include <cstddef>
#include <string>
#include <string_view>

using namespace o2;
using namespace o2::framework;
Expand Down Expand Up @@ -311,7 +322,7 @@ struct QaPidMl {

static constexpr float kCertaintyThreshold = 0.5f;

int getParticlePdg(float pidCertainties[])
int getParticlePdg(const float pidCertainties[])
{
// index of the biggest value in an array
int index = 0;
Expand Down
Loading
Loading