diff --git a/ChangeLog b/ChangeLog index 0f1403d1..546a08f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,8 @@ NEW any2many: an attempt to write the universial musr-data-file converter. Just NEW musrt0: added the possibility to show the t0 saved in the data file 's'. Furthermore added the option --getT0FromPromptPeak, -g with : will, in non-interactive mode estimate the t0's from the prompt peak and write it into the msr-file (MUSR-133). +FIXED the formating of fixed parameters (step=0) where wrongly formatted (connected to MUSR-167). This + should be done correctly now. FIXED for single histogram fits, the chisq given was wrong (not the fit-result though). I missed some needed scaling when normalizing to 1/ns rather than bins. The same is true for log max. likelihood. I am rather depressed that nobody so far found this but only R. Scheuermann pointed out there might be a problem. diff --git a/src/classes/PMsrHandler.cpp b/src/classes/PMsrHandler.cpp index 53f578f9..99a4746a 100644 --- a/src/classes/PMsrHandler.cpp +++ b/src/classes/PMsrHandler.cpp @@ -498,8 +498,11 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages) fout << left << fParam[number].fName.Data(); fout << " "; // value of the parameter - neededPrec = NeededPrecision(fParam[number].fStep)+1; - if (fParam[number].fPosErrorPresent && (NeededPrecision(fParam[number].fPosError)+1 > neededPrec)) + if (fParam[number].fStep == 0.0) // if fixed parameter take all significant digits + neededPrec = LastSignificant(fParam[number].fValue); + else // step/neg.error given hence they will limited the output precission of the value + neededPrec = NeededPrecision(fParam[number].fStep)+1; + if ((fParam[number].fStep != 0.0) && fParam[number].fPosErrorPresent && (NeededPrecision(fParam[number].fPosError)+1 > neededPrec)) neededPrec = NeededPrecision(fParam[number].fPosError)+1; if (neededPrec < 6) neededWidth = 9; @@ -513,6 +516,8 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages) // value of step/error/neg.error fout.width(11); fout.setf(ios::fixed); + if (fParam[number].fStep == 0.0) + neededPrec = 0; fout.precision(neededPrec); fout << left << fParam[number].fStep; fout << " "; diff --git a/src/tests/CheckMusrfitInstall/ASlibs/test-nonlocal.msr b/src/tests/CheckMusrfitInstall/ASlibs/test-nonlocal.msr index bb71a9ed..6092d87f 100644 --- a/src/tests/CheckMusrfitInstall/ASlibs/test-nonlocal.msr +++ b/src/tests/CheckMusrfitInstall/ASlibs/test-nonlocal.msr @@ -2,16 +2,16 @@ Sn-210042 B=~48(G)/1.50(A), T=3.31(K), Tr=18.02(kV), Sa=-4.70(kV), En=21.97(keV) ############################################################### FITPARAMETER # Nr. Name Value Step Pos_Error Boundaries - 1 one 1.0 0.0 none - 2 zero 0.0 0.0 none + 1 one 1 0 none + 2 zero 0 0 none 3 Asy 0.2079 0.0066 none 0 0.33 - 4 energy 22.0 0.0 none - 5 redTemp 0.9 0.0 none - 6 thickness 5000.0 0.0 none - 7 ell 12000.0 0.0 none - 8 xi 94.0 0.0 none + 4 energy 22 0 none + 5 redTemp 0.8683 0 none + 6 thickness 5000 0 none + 7 ell 12000 0 none + 8 xi 94 0 none 9 lambdaL 46.0 1.2 none - 10 Bext 47.1 0.0 none + 10 Bext 47.11 0 none 11 deadLayer 20.730 0.051 none 0 none 12 RateSmear 0.327 0.022 none 13 N0_L 298.0 1.3 none @@ -80,8 +80,8 @@ phase 8.5 range 0.0 200.0 ############################################################### -STATISTIC --- 2011-02-06 14:54:40 - chisq = 417.37802066738652, NDF = 358, chisq/NDF = 1.1658603929256606 +STATISTIC --- 2011-02-07 13:00:38 + chisq = 417.37802304466283, NDF = 358, chisq/NDF = 1.1658603995660972