Skip to content

Commit fe43fa1

Browse files
committed
[HS3] Reset default bin setting for backport
1 parent 7dff3c6 commit fe43fa1

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

roofit/hs3/src/Domains.cxx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,21 @@ void Domains::ProductDomain::readVariable(RooRealVar const &var)
132132

133133
void Domains::ProductDomain::readBinning(ProductDomainElement &elem, RooAbsBinning const &binning)
134134
{
135+
elem.hasNBins = false;
136+
elem.nBins = 0;
137+
elem.edges.clear();
138+
139+
const int nBins = binning.numBins();
140+
if (nBins <= 0) {
141+
return;
142+
}
143+
135144
if (binning.isUniform()) {
136145
elem.hasNBins = true;
137-
elem.nBins = binning.numBins();
138-
elem.edges.clear();
146+
elem.nBins = nBins;
139147
} else {
140-
elem.hasNBins = false;
141-
elem.edges.clear();
142148
elem.edges.push_back(binning.binLow(0));
143-
for (int i = 0; i < binning.numBins(); ++i) {
149+
for (int i = 0; i < nBins; ++i) {
144150
elem.edges.push_back(binning.binHigh(i));
145151
}
146152
}
@@ -178,7 +184,7 @@ void Domains::ProductDomain::applyBinning(RooRealVar &var, ProductDomainElement
178184
binning.addBoundary(edge);
179185
}
180186
var.setBinning(binning, name);
181-
} else if (elem.hasNBins) {
187+
} else if (elem.hasNBins && elem.nBins != 0) {
182188
var.setBins(elem.nBins, name);
183189
}
184190
}
@@ -190,7 +196,7 @@ void Domains::ProductDomain::writeBinning(RooFit::Detail::JSONNode &node, Produc
190196
for (double edge : elem.edges) {
191197
edges.append_child() << edge;
192198
}
193-
} else if (elem.hasNBins) {
199+
} else if (elem.hasNBins && elem.nBins != 0) {
194200
node["nbins"] << elem.nBins;
195201
}
196202
}
@@ -255,8 +261,8 @@ void Domains::ProductDomain::readJSON(RooFit::Detail::JSONNode const &node)
255261
}
256262
}
257263
} else if (varNode.has_child("nbins")) {
258-
elem.hasNBins = true;
259264
elem.nBins = varNode["nbins"].val_int();
265+
elem.hasNBins = elem.nBins != 0;
260266
elem.edges.clear();
261267
}
262268
}

0 commit comments

Comments
 (0)