8 #ifdef FAKEBKGTOOLS_ATLAS_ENVIRONMENT
30 for (
i = 1;
i <= fNpar; ++
i) { fP[
i + jh*fMaxpar - fMaxpar-1] = pnew[
i-1]; }
33 for (
i = 1;
i <= fNpar; ++
i) { fX[
i-1] = pnew[
i-1]; }
36 fCstatu =
"PROGRESS ";
41 for (j = 2; j <= nparp1; ++j) {
if (
y[j-1] >
y[jh-1]) jh = j; }
42 fEDM =
y[jh-1] -
y[jl-1];
43 if (fEDM <= 0)
goto L45;
44 for (
i = 1;
i <= fNpar; ++
i) {
47 for (j = 2; j <= nparp1; ++j) {
48 if (fP[
i + j*fMaxpar - fMaxpar-1] > pbig) pbig = fP[
i + j*fMaxpar - fMaxpar-1];
49 if (fP[
i + j*fMaxpar - fMaxpar-1] < plit) plit = fP[
i + j*fMaxpar - fMaxpar-1];
51 fDirin[
i-1] = pbig - plit;
57 Printf(
" FUNCTION VALUE DOES NOT SEEM TO DEPEND ON ANY OF THE %d VARIABLE PARAMETERS.",fNpar);
58 Printf(
" VERIFY THAT STEP SIZES ARE BIG ENOUGH AND CHECK FCN LOGIC.");
59 Printf(
" *******************************************************************************");
60 Printf(
" *******************************************************************************");
80 Double_t val2mi, val2pl;
81 Int_t nbad, ilax, ilax2, ngood, nfcnmi, iin, knt;
83 if (fNpar <= 0)
goto L700;
88 for (knt = 1; knt <= fNpar; ++knt) {
89 if (Int_t(fWord7[1]) == 0) {
90 ilax = fNexofi[knt-1];
93 ilax = Int_t(fWord7[knt]);
95 if (ilax > 0 && ilax <= fNu) {
96 if (fNiofex[ilax-1] > 0)
goto L565;
98 Printf(
" PARAMETER NUMBER %3d NOT A VARIABLE. IGNORED.",ilax);
104 mnmnot(ilax, ilax2, val2pl, val2mi);
105 if (fLnewmn)
goto L650;
107 iin = fNiofex[ilax-1];
108 if (fErp[iin-1] > 0) ++ngood;
110 if (fErn[iin-1] < 0) ++ngood;
117 fCstatu =
"UNCHANGED ";
118 if (ngood == 0 && nbad == 0)
goto L700;
119 if (ngood > 0 && nbad == 0) fCstatu =
"SUCCESSFUL";
120 if (ngood == 0 && nbad > 0) fCstatu =
"FAILURE ";
121 if (ngood > 0 && nbad > 0) fCstatu =
"PROBLEMS ";
122 if (fISW[4] >= 0) mnprin(4, fAmin);
123 if (fISW[4] >= 2) mnmatu(0);
129 fCstatu =
"NEW MINIMU";
132 Printf(
" NEW MINIMUM FOUND. GO BACK TO MINIMIZATION STEP.");
133 Printf(
" =================================================");
145 Printf(
" THERE ARE NO MINOS ERRORS TO CALCULATE.");
162 Int_t ndex, iext,
i, j;
166 Printf(
" FUNCTION MUST BE MINIMIZED BEFORE CALLING %s",(
const char*)fCfrom);
174 mnwarn(
"W", fCfrom,
"NO ERROR MATRIX. WILL IMPROVISE.");
175 for (
i = 1;
i <= fNpar; ++
i) {
177 for (j = 1; j <=
i-1; ++j) {
185 if (fNvarl[iext-1] > 1) {
186 mndxdi(fX[
i-1],
i-1, dxdi);
187 if (TMath::Abs(dxdi) < .001) wint = .01;
188 else wint /= TMath::Abs(dxdi);
190 fG2[
i-1] = fUp / (wint*wint);
192 fVhmat[ndex-1] = 2 / fG2[
i-1];