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
|
||||
Bool_t 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)
|
||||
par_r = param;
|
||||
if (fDKSReady)
|
||||
@@ -3198,9 +3209,13 @@ PDoubleVector PFitter::ParamRound(const PDoubleVector &par, const PDoubleVector
|
||||
int exp;
|
||||
double dval;
|
||||
for (unsigned int i=0; i<par.size(); i++) {
|
||||
if (err[i] != 0.0) {
|
||||
exp = round(log10(fabs(err[i])))-2;
|
||||
dval = round(par[i]*pow(10.0, -exp))/pow(10.0, -exp);
|
||||
par_r[i] = dval;
|
||||
} else {
|
||||
par_r[i] = par[i];
|
||||
}
|
||||
}
|
||||
|
||||
return par_r;
|
||||
|
||||
Reference in New Issue
Block a user