Good afternoon!
I have upgraded Root up to version 6.32.04, and realized, that behavior of Minuit has changed. An addressing gMinuit leads to the error
Error in <HandleInterpreterException>: Trying to dereference null pointer or trying to call routine taking non-null arguments
Execution of your code was aborted.
In file included from input_line_8:1:
/home/natalia/Examples/TestMinuit/TestMinuit-1/testMinuit_1.C:27:5: warning: null passed to a callee that requires a non-null argument [-Wnonnull]
gMinuit->mnemat(matrix0.GetMatrixArray(), 2);
After searching in Internet I understood, that now there is no global variable gMinuit, and it has to be initialized manually.
This is an example of code, which for the version 6.28 returns covariance matrix.
In the branch #if RVERSION == 632 a TMinuit variable is defined, there is no errors anymore, but the returned matrix is zero.
#define RVERSION 628 // ROOT Version: 6.28/04
//#define RVERSION 632 //ROOT Version: 6.32.04
void testMinuit_1(){
int i;
double x[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0};
int n = (int)(sizeof(x) / sizeof(double));
for (i = 0; i < n; i++)
x[i] /= 3.0;
double y[] = {86.25, 85.2, 73.4, 75.3, 71.4, 68.4, 73.35, 64.4, 83.15, 68.4, 50.65};
double dy[] = {95.33, 94.35, 81.95, 83.77, 79.76, 76.63, 81.98, 72.54, 92.33, 76.69, 57.55};
for (i = 0; i < n; i++)
dy[i] -= y[i];
TGraphErrors *gr = new TGraphErrors(n, x, y, NULL, dy);
TF1 *f = new TF1("f", "[0] + [1]*x");
f->SetRange(0.33, 3.5);
TFitResultPtr fr = gr->Fit("f", "RS");
TMatrixD matrix0(2, 2);
#if RVERSION == 628
gMinuit->mnemat(matrix0.GetMatrixArray(), 2);
matrix0.Print();
#endif
#if RVERSION == 632
TMinuit *gM = new TMinuit();
gM->mnemat(matrix0.GetMatrixArray(), 2);
matrix0.Print();
#endif
#if RVERSION == 632
delete gM;
#endif
delete gr;
}
The question is, how to relate TMinuit variable to the needed fit?
Best regards,
Natalia
My system:
> lsb_release -d && uname -r
No LSB modules are available.
Description: Debian GNU/Linux 12 (bookworm)
6.3.0-2-amd64
> g++ --version | head -n 1
g++ (Debian 12.2.0-14) 12.2.0
> root --version
ROOT Version: 6.32.04
Built for linuxx8664gcc on Aug 26 2024, 10:55:24
From heads/master@tags/v6-32-04
> root --version
ROOT Version: 6.28/04
Built for linuxx8664gcc on May 08 2023, 02:44:07
From tags/v6-28-04@v6-28-04