Re: [ROOT] Problems using SetObjectFit/GetObjectFit

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Aug 20 2002 - 09:00:39 MEST


Hi Alex,

Is your class TUnbinFitObj derived from TObject?

Rene Brun

On Mon, 19 Aug 2002, Alex Smith wrote:

> 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