Hi,
I am trying to get covariance matrix of the errors. I have a fit
function which gives two paramertes, part of the code looks like
---------------------------------------------------
TF1 *func_1 = new TF1("fitf",fitf,0.0,6.28,2);
//Sets initial values and parameter names
func_1->SetParameters(0.02,1.0);
func_1->SetParNames("Constant","Offset");
Dca_phi_1->Fit("fitf");
TMatrixD A01(1,2); TMatrixD A02(2,2); TMatrixD A03(2,1);
TMatrixD A11(1,2); TMatrixD A12(2,2); TMatrixD A13(2,1);
TMatrixD B01(2,1); TMatrixD C01(1,1);
TMatrixD B11(2,1); TMatrixD C11(1,1);
gMinuit->mnemat(A02,2);
gMinuit->mnemat(A12,2);
double par10 = func_1->GetParameter("Constant") ;
double par11 = func_1->GetParameter("Offset") ;
double err_par10 = func_1->GetParError(0) ;
double err_par11 = func_1->GetParError(1) ;
-------------------------------------------------------
it gives me following **ERROR** after running the code.
--------------------------------------------------------------------------
FCN=140.116 FROM MIGRAD STATUS=CONVERGED 48 CALLS 49
TOTAL
EDM=1.65745e-17 STRATEGY= 1 ERROR MATRIX
ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 Constant 1.68390e-02 3.55273e-04 2.06067e-06 3.44811e-08
2 Offset 1.25291e+00 2.29010e-02 1.32831e-04 -2.51413e-07
Error: Can't call TMinuit::mnemat(A02,2) in current scope
FILE:/prj_root/837/ckm_1/avdhesh/beam_width/1ros/test.C LINE:198
Possible candidates are...
filename line:size busy function type and name (in TMinuit)
(compiled) 0:0 0 public: virtual void mnemat(Double_t*
emat,Int_t ndim);
filename line:size busy function type and name (in TNamed)
filename line:size busy function type and name (in TObject)
*** Interpreter error recovered ***
-------------------------------------------------------------------
I am not under standing why it is not working.
one more thing is that, if i am writing to get error
double err_par10 = func_1->GetParError("Constant") ;
double err_par11 = func_1->GetParError("Offset") ;
it does not works, insted of this i have to write
double err_par10 = func_1->GetParError(0) ;
double err_par11 = func_1->GetParError(1) ;
while to get parameters
double par10 = func_1->GetParameter("Constant") ;
double par11 = func_1->GetParameter("Offset") ;
works !
Thanks for help
Avdhesh
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:59 MET