00001
00002
00003
00004
00005
00006
00007 #ifndef ROOTFNPDFBINDING
00008 #define ROOTFNPDFBINDING
00009
00010 #include "RooListProxy.h"
00011 #include "RooAbsPdf.h"
00012 class TF1 ;
00013 class TF2 ;
00014 class TF3 ;
00015
00016 class RooTFnPdfBinding : public RooAbsPdf {
00017 public:
00018 RooTFnPdfBinding() {} ;
00019 RooTFnPdfBinding(const char *name, const char *title, TF1* _func, const RooArgList& _list);
00020 RooTFnPdfBinding(const RooTFnPdfBinding& other, const char* name=0) ;
00021 virtual TObject* clone(const char* newname) const { return new RooTFnPdfBinding(*this,newname); }
00022 inline virtual ~RooTFnPdfBinding() { }
00023
00024 void printArgs(ostream& os) const ;
00025
00026 protected:
00027
00028 RooListProxy list ;
00029 TF1* func ;
00030
00031 Double_t evaluate() const ;
00032
00033 private:
00034
00035 ClassDef(RooTFnPdfBinding,1)
00036 };
00037
00038
00039 namespace RooFit {
00040
00041 RooAbsPdf* bindPdf(TF1* func,RooAbsReal& x) ;
00042 RooAbsPdf* bindPdf(TF2* func,RooAbsReal& x, RooAbsReal& y) ;
00043 RooAbsPdf* bindPdf(TF3* func,RooAbsReal& x, RooAbsReal& y, RooAbsReal& z) ;
00044
00045 }
00046
00047
00048 #endif