[ROOT] Problems using SetObjectFit/GetObjectFit

From: Alex Smith (smith@hep.umn.edu)
Date: Mon Aug 19 2002 - 20:02:10 MEST


Hi,
   
    I am trying to use SetObjectFit to specify my own object to feed to 
a minuit FCN.   I create an object of my own class TUnbinFitObj which is 
just an NTUPLE, a FUNCTION and a list of names of the Ntuple variables 
to be fed into my function (the arguments, not the parameters).    The 
class definition is included below.

As in a previous roottalk solution, I try using SetObjectFit to pass 
this object to my Minuit fcn.  This is done in the constructor for my 
TUnbinnedFit object which will fit the object of class TUnbinFitObj.

When I try to run the code included below this I get the message:

  TUnbinFitObj* fitobject;
 
  gMinuit = new TMinuit(nparam); 
  fitobject = new TUnbinFitObj( "MassFit", "Mass Fit",  func, ntuple, 
x_name );
  gMinuit->SetFCN(NtFitLikelihood);
  gMinuit->SetObjectFit( fitobject );    //FAILS HERE!!
 




Error: Can't call TMinuit::SetObjectFit(fitobject) in current scope 
FILE:TUnbinnedFit.cxx LINE:152
Possible candidates are...
filename       line:size busy function type and name  (in TMinuit)
(compiled)        0:0    0 public: virtual void SetObjectFit(TObject* obj);
filename       line:size busy function type and name  (in TNamed)
filename       line:size busy function type and name  (in TObject)
Error: Symbol gMinuit is not defined in current scope  
FILE:TUnbinnedFit.cxx LINE:152
Error: Failed to evaluate gMinuit->SetObjectFit(fitobject)Possible 
candidates are...
filename       line:size busy function type and name 
*** Interpreter error recovered ***



What am I doing wrong?!?

    Thanks,

    Alex Smith









------------------------------------
Object I'm trying to pass
------------------------------------

class TUnbinFitObj {
 
   private:
      const char* name;
      char* title;
      TF1 *func;  // pointer to probability function
      TNtuple* ntuple;  // pointer to data ntuple
      Double_t x_val; // values of fit variables
      Int_t nparam;  // number of function parameters
      Int_t ndim;  // dimension of fit probability fn
                   // (number of fit variables)
      char* x_name;  // list of parameters to fit
      Int_t nevent;   // number of events in Ntuple

   public:
      TUnbinFitObj( const char* name, char* title, TF1 *func, TNtuple* 
ntuple, char* x_name );
      ~TUnbinFitObj();
      Double_t GetFunctionValue(Int_t index);
      Int_t GetNumEvent();
      Int_t GetNumPar();
      Int_t GetNumDim();
      char* GetName();
      char* GetTitle();
//      char*[] GetXNames();
      ClassDef (TUnbinFitObj,1)  //  Unbinned Fit object

};



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:05 MET