#ifndef ROOFUNCTOR1DBINDING
#define ROOFUNCTOR1DBINDING
#include "TString.h"
#include "RooAbsReal.h"
#include "RooArgList.h"
#include "RooListProxy.h"
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooMsgService.h"
#include <string>
#include <map>
#include <vector>
#include "Math/IFunction.h"
namespace RooFit {
RooAbsReal* bindFunction(const char* name, const ROOT::Math::IBaseFunctionOneDim& ftor, RooAbsReal& vars) ;
RooAbsPdf* bindPdf(const char* name, const ROOT::Math::IBaseFunctionOneDim& ftor, RooAbsReal& vars) ;
}
class RooFunctor1DBinding : public RooAbsReal {
public:
RooFunctor1DBinding() : func(0) {
} ;
RooFunctor1DBinding(const char *name, const char *title, const ROOT::Math::IBaseFunctionOneDim& ftor, RooAbsReal& var);
RooFunctor1DBinding(const RooFunctor1DBinding& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooFunctor1DBinding(*this,newname); }
inline virtual ~RooFunctor1DBinding() {}
void printArgs(std::ostream& os) const ;
protected:
Double_t evaluate() const ;
const ROOT::Math::IBaseFunctionOneDim* func ;
RooRealProxy var ;
private:
ClassDef(RooFunctor1DBinding,1)
};
class RooFunctor1DPdfBinding : public RooAbsPdf {
public:
RooFunctor1DPdfBinding() : func(0) {
} ;
RooFunctor1DPdfBinding(const char *name, const char *title, const ROOT::Math::IBaseFunctionOneDim& ftor, RooAbsReal& vars);
RooFunctor1DPdfBinding(const RooFunctor1DPdfBinding& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooFunctor1DPdfBinding(*this,newname); }
inline virtual ~RooFunctor1DPdfBinding() {}
void printArgs(std::ostream& os) const ;
protected:
Double_t evaluate() const ;
const ROOT::Math::IBaseFunctionOneDim* func ;
RooRealProxy var ;
private:
ClassDef(RooFunctor1DPdfBinding,1)
};
#endif