TVirtualFitter usage


I was wondering how one is supposed to get out the Chi2 of a fit from the TVirtualFitter class ?
Is there a doc somewhere how to do fit using only that interface ?


Maybe this help:

  TH1F *h1 = new TH1F("h1","",100,-10,10);
  TVirtualFitter *fitter = TVirtualFitter::GetFitter();
  Printf("chi2 = %g", ((TF1*)fitter->GetUserFunc())->GetChisquare() );

and see also minuit2*.C in tutorials.


Hum, not so sure.

I’m using the TVirtualFitter from a class, giving it a custom function to fit, and I already use the UserFunc to pass out information to the FCN (which cannot be a member function), so I doubt this will work for me.



Could you explain why the solution indicated by Jan would not wprk for you.
I am afraid that you have to give more info on your setup.


Hi Rene,

You’re right. Here are some more details. The point is that I use Set/GetUserFunc already to pass objects to my FCN, so that UserFunc is not of type TF1 at all. Maybe what I do is just plain wrong ? (which is why I asked for a doc :wink: )

TVirtualFitter* fitter = TVirtualFitter::Fitter(0,2);

Double_t arg(-1);

fitter->ExecuteCommand(“SET PRINT”,&arg,1); // disable printout

fitter->SetParameter(0,“cluster X position”,xCOG,stepX,0,0);
fitter->SetParameter(1,“cluster Y position”,yCOG,stepY,0,0);

TObjArray userObjects;

userObjects.Add(fMathieson); // both objects here are instance variables

// I use the SetUserFunc to pass things to the FitFunction


Double_t results[] = { fitter->GetParameter(0),
fitter->GetParameter(1) };

Double_t errors[] = { fitter->GetParError(0),
fitter->GetParError(1) };

/// etc…
where the FitFunction then uses the GetUserFunc to get back the stuff I pass to it :

FitFunction(Int_t&, Double_t*, Double_t& f, Double_t* par, Int_t = 3)
TObjArray* userObjects = static_cast(TVirtualFitter::GetFitter()->GetUserFunc());

AliMUONCluster* cluster = static_cast(userObjects->At(0));
AliMUONMathieson* mathieson = static_cast(userObjects->At(1));
// compute f here, using information from cluster and mathieson objects