23 : TNamed(), ParValues(nullptr), ParError(nullptr), EPLUS(nullptr), EMINUS(nullptr), EPARAB(nullptr), GLOBCC(nullptr),
24 ERRORMATRIX(nullptr), CONTOX(nullptr), CONTOY(nullptr), CONTOCH(nullptr)
72 for (Int_t n = 0; n < nPars; n++)
87 EPLUS =
new TArrayD(nPars);
88 EMINUS =
new TArrayD(nPars);
89 EPARAB =
new TArrayD(nPars);
90 GLOBCC =
new TArrayD(nPars);
92 for (Int_t n = 0; n < nPars; n++)
104 Double_t *matrix =
new Double_t[nPars * nPars];
105 fMinuit->mnemat(matrix, nPars);
109 for (Int_t npar = 0; npar < nPars; npar++) {
111 Double_t val, err, bnd1, bnd2;
113 fMinuit->mnpout(npar, name, val, err, bnd1, bnd2, fixed);
116 for (Int_t n = nPars - 2; n >= npar - 1; n--)
117 for (Int_t i = 0; i < nPars; i++)
119 for (Int_t i = 0; i < nPars; i++)
122 for (Int_t n = nPars - 2; n >= npar - 1; n--)
123 for (Int_t i = 0; i < nPars; i++)
125 for (Int_t i = 0; i < nPars; i++)
135 Int_t sz = strlen(fMinuit->fChpt);
141 for (Int_t i = 0; i < sz; i++) {
142 (*CONTOX)[i] = fMinuit->fXpt[i];
143 (*CONTOY)[i] = fMinuit->fYpt[i];
144 (*CONTOCH)[i] = fMinuit->fChpt[i];
150 TNamed::Print(option);
151 std::cout << std::endl <<
"Minuit status:" << std::endl;
152 std::cout <<
" The best function value found so far " <<
FMIN << std::endl;
153 std::cout <<
" The estimated vertical distance remaining to minimum " <<
FEDM << std::endl;
154 std::cout <<
" The value of UP defining parameter uncertaintiesd " <<
ERRDEF << std::endl;
155 std::cout <<
" The number of currently variable parameters " <<
NPARI << std::endl;
156 std::cout <<
" The highest defined parameter number " <<
NPARX << std::endl;
157 std::cout <<
" Goodness of covariance matrix: " << std::endl <<
" ";
159 case 1: std::cout <<
"Diagonal approximation only, not accurate" << std::endl;
break;
160 case 2: std::cout <<
"Full matrix, but forced positive-defined" << std::endl;
break;
161 case 3: std::cout <<
"Full accurate covariance matrix (after MIGRAD)" << std::endl;
break;
162 default: std::cout <<
"Not calculated at all" << std::endl;
166 std::cout <<
"Current parameters valules and errors:" << std::endl;
167 for (Int_t n = 0; n <
ParValues->GetSize(); n++)
168 std::cout <<
" " << n <<
" " <<
ParValues->At(n) <<
" " <<
ParError->At(n) << std::endl;
172 std::cout <<
"Parameters errors, defined by MINOS routine" << std::endl;
173 std::cout <<
" NUM EPLUS EMINUS EPARAB GLOBCC" << std::endl;
174 for (Int_t n = 0; n <
EPLUS->GetSize(); n++)
175 std::cout <<
" " << n <<
" " <<
EPLUS->At(n) <<
" " <<
EMINUS->At(n) <<
" " <<
EPARAB->At(n) <<
" " 176 <<
GLOBCC->At(n) << std::endl;
180 std::cout <<
"Error matrix" << std::endl;
184 std::cout << std::endl;
void Print(Option_t *option="") const override
void GetContourPlot(TMinuit *fMinuit)
void CallMNERRS(TMinuit *fMinuit, Int_t nPars)
void CallMNEMAT(TMinuit *fMinuit, Int_t nPars, Bool_t DoTransform=kTRUE)
virtual ~TGo4FitMinuitResult()
void CallMNSTAT(TMinuit *fMinuit)
void CallMNPOUT(TMinuit *fMinuit, Int_t nPars)