7 #ifdef FAKEBKGTOOLS_ATLAS_ENVIRONMENT
29 for (
i = 1;
i <= fNpar; ++
i) { fP[
i + jh*fMaxpar - fMaxpar-1] = pnew[
i-1]; }
32 for (
i = 1;
i <= fNpar; ++
i) { fX[
i-1] = pnew[
i-1]; }
35 fCstatu =
"PROGRESS ";
40 for (j = 2; j <= nparp1; ++j) {
if (
y[j-1] >
y[jh-1]) jh = j; }
41 fEDM =
y[jh-1] -
y[jl-1];
42 if (fEDM <= 0)
goto L45;
43 for (
i = 1;
i <= fNpar; ++
i) {
46 for (j = 2; j <= nparp1; ++j) {
47 if (fP[
i + j*fMaxpar - fMaxpar-1] > pbig) pbig = fP[
i + j*fMaxpar - fMaxpar-1];
48 if (fP[
i + j*fMaxpar - fMaxpar-1] < plit) plit = fP[
i + j*fMaxpar - fMaxpar-1];
50 fDirin[
i-1] = pbig - plit;
56 Printf(
" FUNCTION VALUE DOES NOT SEEM TO DEPEND ON ANY OF THE %d VARIABLE PARAMETERS.",fNpar);
57 Printf(
" VERIFY THAT STEP SIZES ARE BIG ENOUGH AND CHECK FCN LOGIC.");
58 Printf(
" *******************************************************************************");
59 Printf(
" *******************************************************************************");
79 Double_t val2mi, val2pl;
80 Int_t nbad, ilax, ilax2, ngood, nfcnmi, iin, knt;
82 if (fNpar <= 0)
goto L700;
87 for (knt = 1; knt <= fNpar; ++knt) {
88 if (Int_t(fWord7[1]) == 0) {
89 ilax = fNexofi[knt-1];
92 ilax = Int_t(fWord7[knt]);
94 if (ilax > 0 && ilax <= fNu) {
95 if (fNiofex[ilax-1] > 0)
goto L565;
97 Printf(
" PARAMETER NUMBER %3d NOT A VARIABLE. IGNORED.",ilax);
103 mnmnot(ilax, ilax2, val2pl, val2mi);
104 if (fLnewmn)
goto L650;
106 iin = fNiofex[ilax-1];
107 if (fErp[iin-1] > 0) ++ngood;
109 if (fErn[iin-1] < 0) ++ngood;
116 fCstatu =
"UNCHANGED ";
117 if (ngood == 0 && nbad == 0)
goto L700;
118 if (ngood > 0 && nbad == 0) fCstatu =
"SUCCESSFUL";
119 if (ngood == 0 && nbad > 0) fCstatu =
"FAILURE ";
120 if (ngood > 0 && nbad > 0) fCstatu =
"PROBLEMS ";
121 if (fISW[4] >= 0) mnprin(4, fAmin);
122 if (fISW[4] >= 2) mnmatu(0);
128 fCstatu =
"NEW MINIMU";
131 Printf(
" NEW MINIMUM FOUND. GO BACK TO MINIMIZATION STEP.");
132 Printf(
" =================================================");
144 Printf(
" THERE ARE NO MINOS ERRORS TO CALCULATE.");
161 Int_t ndex, iext,
i, j;
165 Printf(
" FUNCTION MUST BE MINIMIZED BEFORE CALLING %s",(
const char*)fCfrom);
173 mnwarn(
"W", fCfrom,
"NO ERROR MATRIX. WILL IMPROVISE.");
174 for (
i = 1;
i <= fNpar; ++
i) {
176 for (j = 1; j <=
i-1; ++j) {
184 if (fNvarl[iext-1] > 1) {
185 mndxdi(fX[
i-1],
i-1, dxdi);
186 if (TMath::Abs(dxdi) < .001) wint = .01;
187 else wint /= TMath::Abs(dxdi);
189 fG2[
i-1] = fUp / (wint*wint);
191 fVhmat[ndex-1] = 2 / fG2[
i-1];