handle err==0 for rounding.
This commit is contained in:
@@ -2311,6 +2311,17 @@ Bool_t PFitter::ExecuteSave(Bool_t firstSave)
|
|||||||
// CalcExpectedChiSquare handles both, chisq and mlh
|
// CalcExpectedChiSquare handles both, chisq and mlh
|
||||||
Bool_t ok;
|
Bool_t ok;
|
||||||
PDoubleVector par_r = ParamRound(param, err, ok);
|
PDoubleVector par_r = ParamRound(param, err, ok);
|
||||||
|
std::cout << "debug> ok=" << ok << std::endl;
|
||||||
|
std::cout << "debug> param=";
|
||||||
|
for (auto p : param) std::cout << p << ", ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
std::cout << "debug> err=";
|
||||||
|
for (auto e : param) std::cout << e << ", ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
std::cout << "debug> par_r=";
|
||||||
|
for (auto p : par_r) std::cout << p << ", ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
if (!ok)
|
if (!ok)
|
||||||
par_r = param;
|
par_r = param;
|
||||||
if (fDKSReady)
|
if (fDKSReady)
|
||||||
@@ -3198,9 +3209,13 @@ PDoubleVector PFitter::ParamRound(const PDoubleVector &par, const PDoubleVector
|
|||||||
int exp;
|
int exp;
|
||||||
double dval;
|
double dval;
|
||||||
for (unsigned int i=0; i<par.size(); i++) {
|
for (unsigned int i=0; i<par.size(); i++) {
|
||||||
|
if (err[i] != 0.0) {
|
||||||
exp = round(log10(fabs(err[i])))-2;
|
exp = round(log10(fabs(err[i])))-2;
|
||||||
dval = round(par[i]*pow(10.0, -exp))/pow(10.0, -exp);
|
dval = round(par[i]*pow(10.0, -exp))/pow(10.0, -exp);
|
||||||
par_r[i] = dval;
|
par_r[i] = dval;
|
||||||
|
} else {
|
||||||
|
par_r[i] = par[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return par_r;
|
return par_r;
|
||||||
|
|||||||
Reference in New Issue
Block a user