fixed fitting issue for boundaries none/none (MUSR-136), and some minor cleanup in PFitter

This commit is contained in:
nemu 2010-08-31 06:02:06 +00:00
parent 1688a904f6
commit 6774573f7a
3 changed files with 5 additions and 5 deletions

View File

@ -19,6 +19,7 @@ NEW integration of a few external musrfit plug-ins into the standard build proce
NEW default estimates for 'data' and 'background' entries in RUN blocks NEW default estimates for 'data' and 'background' entries in RUN blocks
NEW directory with some msr- and data-files for quick testing of new musrfit installations NEW directory with some msr- and data-files for quick testing of new musrfit installations
NEW option to musrt0: the key 'T' will set the t0 cursor to the maximum of the histogram NEW option to musrt0: the key 'T' will set the t0 cursor to the maximum of the histogram
FIXED fitting issue for boundaries none/none (MUSR-136)
FIXED formatting of the ASCII fit output file for long parameter names (MUSR-142) FIXED formatting of the ASCII fit output file for long parameter names (MUSR-142)
FIXED time window frame bug in musrview (MUSR-138) FIXED time window frame bug in musrview (MUSR-138)
FIXED calculation of LF relaxation functions for big static widths (MUSR-139) FIXED calculation of LF relaxation functions for big static widths (MUSR-139)

View File

@ -543,19 +543,15 @@ Bool_t PFitter::SetParameters()
} else { // add free parameter } else { // add free parameter
// check if boundaries are given // check if boundaries are given
if (fParams[i].fNoOfParams > 5) { // boundaries given if (fParams[i].fNoOfParams > 5) { // boundaries given
//cout << endl << ">> name=" << fParams[i].fName.Data() << ", lower=" << fParams[i].fLowerBoundaryPresent << ", upper=" << fParams[i].fUpperBoundaryPresent;
if (fParams[i].fLowerBoundaryPresent && if (fParams[i].fLowerBoundaryPresent &&
fParams[i].fUpperBoundaryPresent) { // upper and lower boundaries given fParams[i].fUpperBoundaryPresent) { // upper and lower boundaries given
//cout << endl << ">> lower and upper";
fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep, fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep,
fParams[i].fLowerBoundary, fParams[i].fUpperBoundary); fParams[i].fLowerBoundary, fParams[i].fUpperBoundary);
} else if (fParams[i].fLowerBoundaryPresent && } else if (fParams[i].fLowerBoundaryPresent &&
!fParams[i].fUpperBoundaryPresent) { // lower boundary limited !fParams[i].fUpperBoundaryPresent) { // lower boundary limited
//cout << endl << ">> lower only";
fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep); fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep);
fMnUserParams.SetLowerLimit(fParams[i].fName.Data(), fParams[i].fLowerBoundary); fMnUserParams.SetLowerLimit(fParams[i].fName.Data(), fParams[i].fLowerBoundary);
} else { // upper boundary limited } else { // upper boundary limited
//cout << endl << ">> upper only";
fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep); fMnUserParams.Add(fParams[i].fName.Data(), fParams[i].fValue, fParams[i].fStep);
fMnUserParams.SetUpperLimit(fParams[i].fName.Data(), fParams[i].fUpperBoundary); fMnUserParams.SetUpperLimit(fParams[i].fName.Data(), fParams[i].fUpperBoundary);
} }
@ -564,7 +560,6 @@ Bool_t PFitter::SetParameters()
} }
} }
} }
//cout << endl;
// check if there is an unused parameter, if so, fix it // check if there is an unused parameter, if so, fix it
for (UInt_t i=0; i<fParams.size(); i++) { for (UInt_t i=0; i<fParams.size(); i++) {

View File

@ -2167,6 +2167,10 @@ Bool_t PMsrHandler::HandleFitParameterEntry(PMsrLines &lines)
error = true; error = true;
} }
} }
// check for lower-/upper-boundaries = none/none
if (!param.fLowerBoundary && !param.fUpperBoundary)
param.fNoOfParams = 5; // since there are no real boundaries present
} }
} }