Skip to content

Commit d6e1362

Browse files
committed
Please consider the following formatting changes
1 parent c13bc33 commit d6e1362

File tree

8 files changed

+380
-336
lines changed

8 files changed

+380
-336
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7099,7 +7099,7 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
70997099
}
71007100

71017101
TString typeStr = obj["type"].GetString();
7102-
//int nClasses = (typeStr == "MultiClass") ? 3 : 1;
7102+
// int nClasses = (typeStr == "MultiClass") ? 3 : 1;
71037103

71047104
std::vector<std::string> namesInputFeatures;
71057105
if (obj.HasMember("inputFeatures") && obj["inputFeatures"].IsArray()) {
@@ -7123,7 +7123,8 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
71237123

71247124
for (auto member = obj.MemberBegin(); member != obj.MemberEnd(); ++member) {
71257125
TString key = member->name.GetString();
7126-
if (!key.Contains("AddCut")) continue;
7126+
if (!key.Contains("AddCut"))
7127+
continue;
71277128

71287129
const auto& cut = member->value;
71297130

@@ -7141,16 +7142,17 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
71417142

71427143
for (auto& sub : cut.GetObject()) {
71437144
TString subKey = sub.name.GetString();
7144-
if (!subKey.Contains("AddMLCut")) continue;
7145+
if (!subKey.Contains("AddMLCut"))
7146+
continue;
71457147

71467148
const auto& mlcut = sub.value;
7147-
//const char* var = mlcut["var"].GetString();
7149+
// const char* var = mlcut["var"].GetString();
71487150
double cutVal = mlcut.HasMember("cut") ? mlcut["cut"].GetDouble() : 0.5;
71497151
exclude = mlcut.HasMember("exclude") ? mlcut["exclude"].GetBool() : false;
71507152

71517153
binCuts.push_back(cutVal);
7152-
7153-
if (!cutDirsFilled) {
7154+
7155+
if (!cutDirsFilled) {
71547156
cutDirs.push_back(exclude ? 1 : 0);
71557157
cutDirsFilled = true;
71567158
}
@@ -7161,7 +7163,8 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
71617163

71627164
// bin edges
71637165
std::set<double> binEdges;
7164-
for (auto& b : ptBins) binEdges.insert(b.first);
7166+
for (auto& b : ptBins)
7167+
binEdges.insert(b.first);
71657168
binEdges.insert(ptBins.back().second);
71667169
std::vector<double> binsPt(binEdges.begin(), binEdges.end());
71677170

@@ -7184,7 +7187,7 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
71847187

71857188
return binaryCfg;
71867189

7187-
// MultiClass
7190+
// MultiClass
71887191
} else if (typeStr == "MultiClass") {
71897192
dqmlcuts::MultiClassBdtScoreConfig multiCfg;
71907193
multiCfg.inputFeatures = namesInputFeatures;
@@ -7204,8 +7207,8 @@ o2::aod::dqmlcuts::BdtScoreConfig o2::aod::dqmlcuts::GetBdtScoreCutsAndConfigFro
72047207
}
72057208

72067209
o2::framework::LabeledArray<double> o2::aod::dqmlcuts::makeLabeledCutsMl(const std::vector<std::vector<double>>& cuts,
7207-
const std::vector<std::string>& labelsPt,
7208-
const std::vector<std::string>& labelsClass)
7210+
const std::vector<std::string>& labelsPt,
7211+
const std::vector<std::string>& labelsClass)
72097212
{
72107213
const size_t nRows = cuts.size();
72117214
const size_t nCols = cuts.empty() ? 0 : cuts[0].size();
@@ -7218,4 +7221,3 @@ o2::framework::LabeledArray<double> o2::aod::dqmlcuts::makeLabeledCutsMl(const s
72187221
o2::framework::Array2D<double> arr(flat.data(), nRows, nCols);
72197222
return o2::framework::LabeledArray<double>(arr, labelsPt, labelsClass);
72207223
}
7221-

PWGDQ/Core/CutsLibrary.h

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -120,30 +120,30 @@ template <typename T>
120120
AnalysisCompositeCut* ParseJSONAnalysisCompositeCut(T key, const char* cutName);
121121
} // namespace dqcuts
122122
namespace dqmlcuts
123-
{
124-
struct BinaryBdtScoreConfig {
125-
std::vector<std::string> inputFeatures;
126-
std::vector<std::string> onnxFiles;
127-
std::vector<double> binsPt;
128-
o2::framework::LabeledArray<double> cutsMl;
129-
std::vector<int> cutDirs;
130-
};
123+
{
124+
struct BinaryBdtScoreConfig {
125+
std::vector<std::string> inputFeatures;
126+
std::vector<std::string> onnxFiles;
127+
std::vector<double> binsPt;
128+
o2::framework::LabeledArray<double> cutsMl;
129+
std::vector<int> cutDirs;
130+
};
131131

132-
struct MultiClassBdtScoreConfig {
133-
std::vector<std::string> inputFeatures;
134-
std::vector<std::string> onnxFiles;
135-
std::vector<double> binsPt;
136-
o2::framework::LabeledArray<double> cutsMl;
137-
std::vector<int> cutDirs;
138-
};
132+
struct MultiClassBdtScoreConfig {
133+
std::vector<std::string> inputFeatures;
134+
std::vector<std::string> onnxFiles;
135+
std::vector<double> binsPt;
136+
o2::framework::LabeledArray<double> cutsMl;
137+
std::vector<int> cutDirs;
138+
};
139139

140-
using BdtScoreConfig = std::variant<BinaryBdtScoreConfig, MultiClassBdtScoreConfig>;
140+
using BdtScoreConfig = std::variant<BinaryBdtScoreConfig, MultiClassBdtScoreConfig>;
141141

142-
BdtScoreConfig GetBdtScoreCutsAndConfigFromJSON(const char* json);
142+
BdtScoreConfig GetBdtScoreCutsAndConfigFromJSON(const char* json);
143143

144-
o2::framework::LabeledArray<double> makeLabeledCutsMl(const std::vector<std::vector<double>>& cuts,
145-
const std::vector<std::string>& labelsPt,
146-
const std::vector<std::string>& labelsClass);
144+
o2::framework::LabeledArray<double> makeLabeledCutsMl(const std::vector<std::vector<double>>& cuts,
145+
const std::vector<std::string>& labelsPt,
146+
const std::vector<std::string>& labelsClass);
147147
} // namespace dqmlcuts
148148
} // namespace o2::aod
149149

PWGDQ/Core/DQMlResponse.h

Lines changed: 91 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,24 @@
1717
#ifndef PWGDQ_CORE_DQMLRESPONSE_H_
1818
#define PWGDQ_CORE_DQMLRESPONSE_H_
1919

20+
#include "Tools/ML/MlResponse.h"
21+
2022
#include <map>
2123
#include <string>
2224
#include <vector>
2325

24-
#include "Tools/ML/MlResponse.h"
25-
2626
// Fill the map of available input features
2727
// the key is the feature's name (std::string)
2828
// the value is the corresponding value in EnumInputFeatures
29-
#define FILL_MAP(FEATURE) \
30-
{ \
29+
#define FILL_MAP(FEATURE) \
30+
{ \
3131
#FEATURE, static_cast<uint8_t>(InputFeatures::FEATURE) \
3232
}
3333

34-
3534
namespace o2::analysis
3635
{
3736

38-
enum class InputFeatures : uint8_t { //refer to DielectronsAll
37+
enum class InputFeatures : uint8_t { // refer to DielectronsAll
3938
fMass = 0,
4039
fPt,
4140
fEta,
@@ -69,37 +68,36 @@ enum class InputFeatures : uint8_t { //refer to DielectronsAll
6968
};
7069

7170
static const std::map<InputFeatures, std::string> gFeatureNameMap = {
72-
{InputFeatures::fMass, "fMass"},
73-
{InputFeatures::fPt, "fPt"},
74-
{InputFeatures::fEta, "fEta"},
75-
{InputFeatures::fPhi, "fPhi"},
76-
{InputFeatures::fPt1, "fPt1"},
77-
{InputFeatures::fITSChi2NCl1, "fITSChi2NCl1"},
78-
{InputFeatures::fTPCNClsCR1, "fTPCNClsCR1"},
79-
{InputFeatures::fTPCNClsFound1, "fTPCNClsFound1"},
80-
{InputFeatures::fTPCChi2NCl1, "fTPCChi2NCl1"},
81-
{InputFeatures::fDcaXY1, "fDcaXY1"},
82-
{InputFeatures::fDcaZ1, "fDcaZ1"},
83-
{InputFeatures::fTPCNSigmaEl1, "fTPCNSigmaEl1"},
84-
{InputFeatures::fTPCNSigmaPi1, "fTPCNSigmaPi1"},
85-
{InputFeatures::fTPCNSigmaPr1, "fTPCNSigmaPr1"},
86-
{InputFeatures::fTOFNSigmaEl1, "fTOFNSigmaEl1"},
87-
{InputFeatures::fTOFNSigmaPi1, "fTOFNSigmaPi1"},
88-
{InputFeatures::fTOFNSigmaPr1, "fTOFNSigmaPr1"},
89-
{InputFeatures::fPt2, "fPt2"},
90-
{InputFeatures::fITSChi2NCl2, "fITSChi2NCl2"},
91-
{InputFeatures::fTPCNClsCR2, "fTPCNClsCR2"},
92-
{InputFeatures::fTPCNClsFound2, "fTPCNClsFound2"},
93-
{InputFeatures::fTPCChi2NCl2, "fTPCChi2NCl2"},
94-
{InputFeatures::fDcaXY2, "fDcaXY2"},
95-
{InputFeatures::fDcaZ2, "fDcaZ2"},
96-
{InputFeatures::fTPCNSigmaEl2, "fTPCNSigmaEl2"},
97-
{InputFeatures::fTPCNSigmaPi2, "fTPCNSigmaPi2"},
98-
{InputFeatures::fTPCNSigmaPr2, "fTPCNSigmaPr2"},
99-
{InputFeatures::fTOFNSigmaEl2, "fTOFNSigmaEl2"},
100-
{InputFeatures::fTOFNSigmaPi2, "fTOFNSigmaPi2"},
101-
{InputFeatures::fTOFNSigmaPr2, "fTOFNSigmaPr2"}
102-
};
71+
{InputFeatures::fMass, "fMass"},
72+
{InputFeatures::fPt, "fPt"},
73+
{InputFeatures::fEta, "fEta"},
74+
{InputFeatures::fPhi, "fPhi"},
75+
{InputFeatures::fPt1, "fPt1"},
76+
{InputFeatures::fITSChi2NCl1, "fITSChi2NCl1"},
77+
{InputFeatures::fTPCNClsCR1, "fTPCNClsCR1"},
78+
{InputFeatures::fTPCNClsFound1, "fTPCNClsFound1"},
79+
{InputFeatures::fTPCChi2NCl1, "fTPCChi2NCl1"},
80+
{InputFeatures::fDcaXY1, "fDcaXY1"},
81+
{InputFeatures::fDcaZ1, "fDcaZ1"},
82+
{InputFeatures::fTPCNSigmaEl1, "fTPCNSigmaEl1"},
83+
{InputFeatures::fTPCNSigmaPi1, "fTPCNSigmaPi1"},
84+
{InputFeatures::fTPCNSigmaPr1, "fTPCNSigmaPr1"},
85+
{InputFeatures::fTOFNSigmaEl1, "fTOFNSigmaEl1"},
86+
{InputFeatures::fTOFNSigmaPi1, "fTOFNSigmaPi1"},
87+
{InputFeatures::fTOFNSigmaPr1, "fTOFNSigmaPr1"},
88+
{InputFeatures::fPt2, "fPt2"},
89+
{InputFeatures::fITSChi2NCl2, "fITSChi2NCl2"},
90+
{InputFeatures::fTPCNClsCR2, "fTPCNClsCR2"},
91+
{InputFeatures::fTPCNClsFound2, "fTPCNClsFound2"},
92+
{InputFeatures::fTPCChi2NCl2, "fTPCChi2NCl2"},
93+
{InputFeatures::fDcaXY2, "fDcaXY2"},
94+
{InputFeatures::fDcaZ2, "fDcaZ2"},
95+
{InputFeatures::fTPCNSigmaEl2, "fTPCNSigmaEl2"},
96+
{InputFeatures::fTPCNSigmaPi2, "fTPCNSigmaPi2"},
97+
{InputFeatures::fTPCNSigmaPr2, "fTPCNSigmaPr2"},
98+
{InputFeatures::fTOFNSigmaEl2, "fTOFNSigmaEl2"},
99+
{InputFeatures::fTOFNSigmaPi2, "fTOFNSigmaPi2"},
100+
{InputFeatures::fTOFNSigmaPr2, "fTOFNSigmaPr2"}};
103101

104102
template <typename TypeOutputScore = float>
105103
class DQMlResponse : public MlResponse<TypeOutputScore>
@@ -111,67 +109,66 @@ class DQMlResponse : public MlResponse<TypeOutputScore>
111109
virtual ~DQMlResponse() = default;
112110

113111
/// Method to get the input features vector needed for ML inference
114-
/// \return inputFeatures vector
115-
template <typename T1, typename T2, typename TValues>
116-
std::vector<float> getInputFeatures(const T1& t1,
117-
const T2& t2,
118-
const TValues& fg) const
119-
{
120-
using Accessor = std::function<float(const T1&, const T2&, const TValues&)>;
121-
static const std::unordered_map<std::string, Accessor> featureMap{
122-
{"fMass", [](auto const&, auto const&, auto const& v){ return v[VarManager::kMass]; }},
123-
{"fPt", [](auto const&, auto const&, auto const& v){ return v[VarManager::kPt]; }},
124-
{"fEta", [](auto const&, auto const&, auto const& v){ return v[VarManager::kEta]; }},
125-
{"fPhi", [](auto const&, auto const&, auto const& v){ return v[VarManager::kPhi]; }},
126-
127-
{"fPt1", [](auto const& t1, auto const&, auto const&) { return t1.pt(); }},
128-
{"fITSChi2NCl1", [](auto const& t1, auto const&, auto const&) { return t1.itsChi2NCl(); }},
129-
{"fTPCNClsCR1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNClsCrossedRows(); }},
112+
/// \return inputFeatures vector
113+
template <typename T1, typename T2, typename TValues>
114+
std::vector<float> getInputFeatures(const T1& t1,
115+
const T2& t2,
116+
const TValues& fg) const
117+
{
118+
using Accessor = std::function<float(const T1&, const T2&, const TValues&)>;
119+
static const std::unordered_map<std::string, Accessor> featureMap{
120+
{"fMass", [](auto const&, auto const&, auto const& v) { return v[VarManager::kMass]; }},
121+
{"fPt", [](auto const&, auto const&, auto const& v) { return v[VarManager::kPt]; }},
122+
{"fEta", [](auto const&, auto const&, auto const& v) { return v[VarManager::kEta]; }},
123+
{"fPhi", [](auto const&, auto const&, auto const& v) { return v[VarManager::kPhi]; }},
124+
125+
{"fPt1", [](auto const& t1, auto const&, auto const&) { return t1.pt(); }},
126+
{"fITSChi2NCl1", [](auto const& t1, auto const&, auto const&) { return t1.itsChi2NCl(); }},
127+
{"fTPCNClsCR1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNClsCrossedRows(); }},
130128
{"fTPCNClsFound1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNClsFound(); }},
131-
{"fTPCChi2NCl1", [](auto const& t1, auto const&, auto const&) { return t1.tpcChi2NCl(); }},
132-
{"fDcaXY1", [](auto const& t1, auto const&, auto const&) { return t1.dcaXY(); }},
133-
{"fDcaZ1", [](auto const& t1, auto const&, auto const&) { return t1.dcaZ(); }},
134-
{"fTPCNSigmaEl1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaEl(); }},
135-
{"fTPCNSigmaPi1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaPi(); }},
136-
{"fTPCNSigmaPr1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaPr(); }},
137-
{"fTOFNSigmaEl1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaEl(); }},
138-
{"fTOFNSigmaPi1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaPi(); }},
139-
{"fTOFNSigmaPr1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaPr(); }},
140-
141-
{"fPt2", [](auto const&, auto const& t2, auto const&) { return t2.pt(); }},
142-
{"fITSChi2NCl2", [](auto const&, auto const& t2, auto const&) { return t2.itsChi2NCl(); }},
143-
{"fTPCNClsCR2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNClsCrossedRows(); }},
129+
{"fTPCChi2NCl1", [](auto const& t1, auto const&, auto const&) { return t1.tpcChi2NCl(); }},
130+
{"fDcaXY1", [](auto const& t1, auto const&, auto const&) { return t1.dcaXY(); }},
131+
{"fDcaZ1", [](auto const& t1, auto const&, auto const&) { return t1.dcaZ(); }},
132+
{"fTPCNSigmaEl1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaEl(); }},
133+
{"fTPCNSigmaPi1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaPi(); }},
134+
{"fTPCNSigmaPr1", [](auto const& t1, auto const&, auto const&) { return t1.tpcNSigmaPr(); }},
135+
{"fTOFNSigmaEl1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaEl(); }},
136+
{"fTOFNSigmaPi1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaPi(); }},
137+
{"fTOFNSigmaPr1", [](auto const& t1, auto const&, auto const&) { return t1.tofNSigmaPr(); }},
138+
139+
{"fPt2", [](auto const&, auto const& t2, auto const&) { return t2.pt(); }},
140+
{"fITSChi2NCl2", [](auto const&, auto const& t2, auto const&) { return t2.itsChi2NCl(); }},
141+
{"fTPCNClsCR2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNClsCrossedRows(); }},
144142
{"fTPCNClsFound2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNClsFound(); }},
145-
{"fTPCChi2NCl2", [](auto const&, auto const& t2, auto const&) { return t2.tpcChi2NCl(); }},
146-
{"fDcaXY2", [](auto const&, auto const& t2, auto const&) { return t2.dcaXY(); }},
147-
{"fDcaZ2", [](auto const&, auto const& t2, auto const&) { return t2.dcaZ(); }},
148-
{"fTPCNSigmaEl2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaEl(); }},
149-
{"fTPCNSigmaPi2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaPi(); }},
150-
{"fTPCNSigmaPr2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaPr(); }},
151-
{"fTOFNSigmaEl2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaEl(); }},
152-
{"fTOFNSigmaPi2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaPi(); }},
153-
{"fTOFNSigmaPr2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaPr(); }}
154-
};
155-
156-
std::vector<float> dqInputFeatures;
157-
dqInputFeatures.reserve(MlResponse<TypeOutputScore>::mCachedIndices.size());
158-
159-
for (auto idx : MlResponse<TypeOutputScore>::mCachedIndices) {
160-
auto enumIdx = static_cast<InputFeatures>(idx);
161-
const auto& name = gFeatureNameMap.at(enumIdx);
162-
163-
auto acc = featureMap.find(name);
164-
if (acc == featureMap.end()) {
165-
LOG(error) << "Missing accessor for " << name;
166-
continue;
167-
} else {
168-
dqInputFeatures.push_back(acc->second(t1, t2, fg));
143+
{"fTPCChi2NCl2", [](auto const&, auto const& t2, auto const&) { return t2.tpcChi2NCl(); }},
144+
{"fDcaXY2", [](auto const&, auto const& t2, auto const&) { return t2.dcaXY(); }},
145+
{"fDcaZ2", [](auto const&, auto const& t2, auto const&) { return t2.dcaZ(); }},
146+
{"fTPCNSigmaEl2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaEl(); }},
147+
{"fTPCNSigmaPi2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaPi(); }},
148+
{"fTPCNSigmaPr2", [](auto const&, auto const& t2, auto const&) { return t2.tpcNSigmaPr(); }},
149+
{"fTOFNSigmaEl2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaEl(); }},
150+
{"fTOFNSigmaPi2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaPi(); }},
151+
{"fTOFNSigmaPr2", [](auto const&, auto const& t2, auto const&) { return t2.tofNSigmaPr(); }}};
152+
153+
std::vector<float> dqInputFeatures;
154+
dqInputFeatures.reserve(MlResponse<TypeOutputScore>::mCachedIndices.size());
155+
156+
for (auto idx : MlResponse<TypeOutputScore>::mCachedIndices) {
157+
auto enumIdx = static_cast<InputFeatures>(idx);
158+
const auto& name = gFeatureNameMap.at(enumIdx);
159+
160+
auto acc = featureMap.find(name);
161+
if (acc == featureMap.end()) {
162+
LOG(error) << "Missing accessor for " << name;
163+
continue;
164+
} else {
165+
dqInputFeatures.push_back(acc->second(t1, t2, fg));
166+
}
169167
}
168+
return dqInputFeatures;
170169
}
171-
return dqInputFeatures;
172-
}
173170

174-
protected:
171+
protected:
175172
void setAvailableInputFeatures()
176173
{
177174
MlResponse<TypeOutputScore>::mAvailableInputFeatures = {
@@ -212,4 +209,4 @@ std::vector<float> getInputFeatures(const T1& t1,
212209

213210
#undef FILL_MAP
214211

215-
#endif // PWGDQ_CORE_DQMLRESPONSE_H_
212+
#endif // PWGDQ_CORE_DQMLRESPONSE_H_

PWGDQ/Core/VarManager.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5524,7 +5524,6 @@ float VarManager::calculatePhiV(T1 const& t1, T2 const& t2)
55245524
return pairPhiV;
55255525
}
55265526

5527-
55285527
template <typename T1>
55295528
void VarManager::FillBdtScore(T1 const& bdtScore, float* values)
55305529
{
@@ -5536,8 +5535,8 @@ void VarManager::FillBdtScore(T1 const& bdtScore, float* values)
55365535
values[kBdtBackground] = bdtScore[0];
55375536
} else if (bdtScore.size() == 3) {
55385537
values[kBdtBackground] = bdtScore[0];
5539-
values[kBdtPrompt] = bdtScore[1];
5540-
values[kBdtNonprompt] = bdtScore[2];
5538+
values[kBdtPrompt] = bdtScore[1];
5539+
values[kBdtNonprompt] = bdtScore[2];
55415540
} else {
55425541
LOG(warning) << "Unexpected number of BDT outputs: " << bdtScore.size();
55435542
}

0 commit comments

Comments
 (0)