13#ifndef ROOCFUNCTION4BINDING
14#define ROOCFUNCTION4BINDING
37template <
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
42template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
63 return fmap().lookupArgName(
_ptr,iarg) ;
82 typedef VO (*
func_t)(VI1,VI2,VI3,VI4);
91template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
94template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
102template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
136template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
137RooCFunction4Binding<VO,VI1,VI2,VI3,VI4>::RooCFunction4Binding(
const char *
name,
const char *title, VO (*_func)(VI1,VI2,VI3,VI4),
141 x(func.argName(0),func.argName(0),this,_x),
142 y(func.argName(1),func.argName(1),this,_y),
143 z(func.argName(2),func.argName(2),this,_z),
144 w(func.argName(3),func.argName(3),this,_w)
153template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
166template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
200template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
201RooCFunction4PdfBinding<VO,VI1,VI2,VI3,VI4>::RooCFunction4PdfBinding(
const char *
name,
const char *title, VO (*_func)(VI1,VI2,VI3,VI4),
205 x(func.argName(0),func.argName(0),this,_x),
206 y(func.argName(1),func.argName(1),this,_y),
207 z(func.argName(2),func.argName(2),this,_z),
208 w(func.argName(3),func.argName(3),this,_w)
217template<
class VO,
class VI1,
class VI2,
class VI3,
class VI4>
int Int_t
Signed integer 4 bytes (int)
#define ClassDefOverride(name, id)
Abstract interface for all probability density functions.
Abstract base class for objects that represent a real value and implements functionality common to al...
RooCFunction4Binding is a templated implementation of class RooAbsReal that binds generic C(++) funct...
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
void printArgs(std::ostream &os) const override
Print object arguments, ie its proxies.
TObject * clone(const char *newname=nullptr) const override
RooCFunction4Ref< VO, VI1, VI2, VI3, VI4 > func
TObject * clone(const char *newname=nullptr) const override
void printArgs(std::ostream &os) const override
Print object arguments, ie its proxies.
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
RooCFunction4PdfBinding()
RooCFunction4Ref< VO, VI1, VI2, VI3, VI4 > func
static RooCFunction4Map< VO, VI1, VI2, VI3, VI4 > * _fmap
RooCFunction4Ref(VO(*ptr)(VI1, VI2, VI3, VI4)=nullptr)
void Streamer(TBuffer &) override
Stream an object of class TObject.
func_t _ptr
! Pointer to embedded function
const char * argName(Int_t iarg)
const char * name() const
VO(* func_t)(VI1, VI2, VI3, VI4)
VO operator()(VI1 x, VI2 y, VI3 z, VI4 w) const
static RooCFunction4Map< VO, VI1, VI2, VI3, VI4 > & fmap()
static VO dummyFunction(VI1, VI2, VI3, VI4)
Name <-> pointer mapping service for C functions of type Func, used to persist the RooCFunction[1-4]R...
Buffer base class used for serializing objects.
Mother of all ROOT objects.
void printCFunctionArgs(std::ostream &os, RooAbsArg const &arg, const char *funcName)
Print arguments of a function binding and name/address of the function pointer.
void streamCFunctionRef(TBuffer &R__b, TObject const &self, Func &ptr, Func dummyFunction, CFunctionMap< Func > &fmap)
Custom streamer for function pointer reference objects.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
double(* CFUNCD4DDDB)(double, double, double, bool)
double(* CFUNCD4DDDD)(double, double, double, double)
RooAbsPdf * bindPdf(const char *name, CFUNCD1D func, RooAbsReal &x)
double(* CFUNCD4DDDI)(double, double, double, Int_t)
RooAbsReal * bindFunction(const char *name, CFUNCD1D func, RooAbsReal &x)