16 #ifndef ROO_DERIVATIVE
17 #define ROO_DERIVATIVE
31 class RooDerivative :
public RooAbsReal {
35 RooDerivative(
const char *name,
const char *title, RooAbsReal& func, RooRealVar& x, Int_t order=1, Double_t eps=0.001) ;
36 RooDerivative(
const char *name,
const char *title, RooAbsReal& func, RooRealVar& x,
const RooArgSet& nset, Int_t order=1, Double_t eps=0.001) ;
37 virtual ~RooDerivative() ;
39 RooDerivative(
const RooDerivative& other,
const char* name = 0);
40 virtual TObject* clone(
const char* newname)
const {
return new RooDerivative(*
this, newname); }
42 Int_t order()
const {
return _order ; }
43 Double_t eps()
const {
return _eps ; }
44 void setEps(Double_t e) { _eps = e ; }
46 Bool_t redirectServersHook(
const RooAbsCollection& , Bool_t , Bool_t , Bool_t ) ;
55 mutable RooFunctor* _ftor ;
56 mutable ROOT::Math::RichardsonDerivator *_rd ;
58 Double_t evaluate()
const;
60 ClassDef(RooDerivative,1)