48 RooFunctor::RooFunctor(
const RooAbsFunc& func)
50 _ownBinding = kFALSE ;
52 _x =
new Double_t[func.getDimension()] ;
54 _nobs = func.getDimension() ;
56 _binding = (RooAbsFunc*) &func ;
64 RooFunctor::RooFunctor(
const RooAbsReal& func,
const RooArgList& observables,
const RooArgList& parameters)
66 _nset.add(observables) ;
69 RooArgList allVars(observables) ;
70 allVars.add(parameters) ;
73 _binding =
new RooRealBinding(func,allVars,&_nset,kFALSE,0) ;
77 _x =
new Double_t[allVars.getSize()] ;
78 _nobs = observables.getSize() ;
79 _npar = parameters.getSize() ;
86 RooFunctor::RooFunctor(
const RooAbsReal& func,
const RooArgList& observables,
const RooArgList& parameters,
const RooArgSet& nset)
91 RooArgList allVars(observables) ;
92 allVars.add(parameters) ;
95 _binding =
new RooRealBinding(func,allVars,&_nset,kFALSE,0) ;
99 _x =
new Double_t[allVars.getSize()] ;
100 _nobs = observables.getSize() ;
101 _npar = parameters.getSize() ;
108 RooFunctor::RooFunctor(
const RooFunctor& other) :
109 _ownBinding(other._ownBinding),
115 if (other._ownBinding) {
116 _binding =
new RooRealBinding((RooRealBinding&)*other._binding,&_nset) ;
118 _binding = other._binding ;
120 _x =
new Double_t[_nobs+_npar] ;
129 RooFunctor::~RooFunctor()
131 if (_ownBinding)
delete _binding ;
139 Double_t RooFunctor::eval(
const Double_t *x)
const
141 return (*_binding)(x) ;
146 Double_t RooFunctor::eval(Double_t x)
const
148 return (*_binding)(&x) ;
153 Double_t RooFunctor::eval(
const Double_t *x,
const Double_t *p)
const
155 for (
int i=0 ; i<_nobs ; i++) {
158 for (
int i=0 ; i<_npar ; i++) {
161 return (*_binding)(_x) ;