/*****************************************************************************
 * Project: RooFit                                                           *
 *                                                                           *
  * This code was autogenerated by RooClassFactory                            * 
 *****************************************************************************/

#ifndef ROOTFNBINDING
#define ROOTFNBINDING

#include "RooAbsReal.h"
#include "RooListProxy.h"
#include "RooAbsReal.h"
class TF1 ;
class TF2 ;
class TF3 ;

class RooTFnBinding : public RooAbsReal {
public:
   RooTFnBinding() : _func(0) {} ; 
  RooTFnBinding(const char *name, const char *title, TF1* func, const RooArgList& list);
  RooTFnBinding(const char *name, const char *title, TF1* func, const RooArgList& list, const RooArgList& plist);
  RooTFnBinding(const RooTFnBinding& other, const char* name=0) ;
  virtual TObject* clone(const char* newname) const { return new RooTFnBinding(*this,newname); }
  inline virtual ~RooTFnBinding() { }

  void printArgs(std::ostream& os) const ;

protected:

  RooListProxy _olist ;
  RooListProxy _plist ;
  TF1* _func ;
  
  Double_t evaluate() const ;

private:

  ClassDef(RooTFnBinding,1) // RooAbsReal binding to ROOT TF[123] functions
};
 

namespace RooFit {

RooAbsReal* bindFunction(TF1* func,RooAbsReal& x) ;
RooAbsReal* bindFunction(TF2* func,RooAbsReal& x, RooAbsReal& y) ;
RooAbsReal* bindFunction(TF3* func,RooAbsReal& x, RooAbsReal& y, RooAbsReal& z) ;

RooAbsReal* bindFunction(TF1* func,RooAbsReal& x, const RooArgList& params) ;
RooAbsReal* bindFunction(TF2* func,RooAbsReal& x, RooAbsReal& y, const RooArgList& params) ;
RooAbsReal* bindFunction(TF3* func,RooAbsReal& x, RooAbsReal& y, RooAbsReal& z, const RooArgList& params) ;

}


#endif
 RooTFnBinding.h:1
 RooTFnBinding.h:2
 RooTFnBinding.h:3
 RooTFnBinding.h:4
 RooTFnBinding.h:5
 RooTFnBinding.h:6
 RooTFnBinding.h:7
 RooTFnBinding.h:8
 RooTFnBinding.h:9
 RooTFnBinding.h:10
 RooTFnBinding.h:11
 RooTFnBinding.h:12
 RooTFnBinding.h:13
 RooTFnBinding.h:14
 RooTFnBinding.h:15
 RooTFnBinding.h:16
 RooTFnBinding.h:17
 RooTFnBinding.h:18
 RooTFnBinding.h:19
 RooTFnBinding.h:20
 RooTFnBinding.h:21
 RooTFnBinding.h:22
 RooTFnBinding.h:23
 RooTFnBinding.h:24
 RooTFnBinding.h:25
 RooTFnBinding.h:26
 RooTFnBinding.h:27
 RooTFnBinding.h:28
 RooTFnBinding.h:29
 RooTFnBinding.h:30
 RooTFnBinding.h:31
 RooTFnBinding.h:32
 RooTFnBinding.h:33
 RooTFnBinding.h:34
 RooTFnBinding.h:35
 RooTFnBinding.h:36
 RooTFnBinding.h:37
 RooTFnBinding.h:38
 RooTFnBinding.h:39
 RooTFnBinding.h:40
 RooTFnBinding.h:41
 RooTFnBinding.h:42
 RooTFnBinding.h:43
 RooTFnBinding.h:44
 RooTFnBinding.h:45
 RooTFnBinding.h:46
 RooTFnBinding.h:47
 RooTFnBinding.h:48
 RooTFnBinding.h:49
 RooTFnBinding.h:50
 RooTFnBinding.h:51
 RooTFnBinding.h:52
 RooTFnBinding.h:53
 RooTFnBinding.h:54
 RooTFnBinding.h:55