fixed error handling in order to make it coherent
This commit is contained in:
@ -70,6 +70,7 @@ PFitter::PFitter(PMsrHandler *runInfo, PRunListCollection *runListCollection) :
|
||||
// init class variables
|
||||
fFitterFcn = 0;
|
||||
fFcnMin = 0;
|
||||
fMnUserParamState = 0;
|
||||
|
||||
// check msr minuit commands
|
||||
if (!CheckCommands()) {
|
||||
@ -324,6 +325,12 @@ bool PFitter::ExecuteHesse()
|
||||
return false;
|
||||
}
|
||||
|
||||
// keep the user parameter state
|
||||
if (fMnUserParamState) {
|
||||
delete fMnUserParamState;
|
||||
}
|
||||
fMnUserParamState = new ROOT::Minuit2::MnUserParameterState(mnState);
|
||||
|
||||
// fill parabolic errors
|
||||
for (unsigned int i=0; i<fParams.size(); i++) {
|
||||
fRunInfo->SetMsrParamStep(i, mnState.Error(i));
|
||||
@ -368,6 +375,12 @@ bool PFitter::ExecuteMigrad()
|
||||
}
|
||||
fFcnMin = new ROOT::Minuit2::FunctionMinimum(min);
|
||||
|
||||
// keep user parameter state
|
||||
if (fMnUserParamState) {
|
||||
delete fMnUserParamState;
|
||||
}
|
||||
fMnUserParamState = new ROOT::Minuit2::MnUserParameterState(min.UserState());
|
||||
|
||||
// fill run info
|
||||
for (unsigned int i=0; i<fParams.size(); i++) {
|
||||
fRunInfo->SetMsrParamValue(i, min.UserState().Value(i));
|
||||
@ -427,6 +440,12 @@ cout << endl << "maxfcn=" << maxfcn << endl;
|
||||
}
|
||||
fFcnMin = new ROOT::Minuit2::FunctionMinimum(min);
|
||||
|
||||
// keep user parameter state
|
||||
if (fMnUserParamState) {
|
||||
delete fMnUserParamState;
|
||||
}
|
||||
fMnUserParamState = new ROOT::Minuit2::MnUserParameterState(min.UserState());
|
||||
|
||||
// fill run info
|
||||
for (unsigned int i=0; i<fParams.size(); i++) {
|
||||
fRunInfo->SetMsrParamValue(i, min.UserState().Value(i));
|
||||
@ -568,7 +587,7 @@ bool PFitter::ExecuteSave()
|
||||
fout.setf(ios::left, ios::adjustfield);
|
||||
fout.precision(6);
|
||||
fout.width(11);
|
||||
fout << mnState.Error(i);
|
||||
fout << fMnUserParamState->Error(i);
|
||||
// write minos errors
|
||||
if (fParams[i].fPosErrorPresent) {
|
||||
fout.setf(ios::left, ios::adjustfield);
|
||||
|
Reference in New Issue
Block a user