Re: [ROOT] inheriting from TF2 and calling Eval

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Mar 06 2004 - 22:36:33 MET


Hi Andre,

In the CVS version, I have replaced the call to TF1::EvalPar by EvalPar.
This call was left following an old implementation of the class TF12.

Rene Brun

On 
Sat, 6 Mar 2004, André Holzner wrote:

> Hello,
> 
> I have a function inherting from TF2 (which calculates
> a chi2 based on two parameters). I implemented
> the calculation in the method
> 
>   virtual Double_t EvalPar(const Double_t *x, const Double_t *params)
> 
> in order to be able to call the Draw() method.
> Now, if I want to get a single value, using the Method Eval(..)
> in the interpreter interactively, it seems that this
> method is not called. Looking at the CVS HEAD of TF1.cxx, I see
> that TF1::EvalPar is explicitly called:
> 
>    Double_t TF1::Eval(Double_t x, Double_t y, Double_t z, Double_t t)
>    {
>      Double_t xx[4];
>      xx[0] = x;
>      xx[1] = y;
>      xx[2] = z;
>      xx[3] = t;
> 
>      InitArgs(xx,fParams);
> 
>      return TF1::EvalPar(xx,fParams);
>    }
> 
> and thus bypassing the effect of the 'virtual' of the EvalPar method..
> 
> My question: Is there a reason why TF1::EvalPar is called explicitly ?
> Where should I implement the calculation of my result value ?
> 
> best regards & thanks,
> 
> André
> 
> 
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET