16#ifndef ROO_WRAPPER_PDF
17#define ROO_WRAPPER_PDF
41 _func(
"inputFunction",
"Function to be converted into a PDF", this, inputFunction),
63 const char* rangeName=
nullptr)
const override {
64 return _func->getAnalyticalIntegralWN(allVars, analVars, normSet, rangeName);
67 const char* rangeName=
nullptr)
const override {
68 return _func->getAnalyticalIntegral(allVars, numVars, rangeName);
71 return _func->analyticalIntegralWN(code, normSet, rangeName);
74 return _func->analyticalIntegral(code, rangeName);
90 return _func.arg().getMaxVal(vars);
93 return _func.arg().maxVal(code);
96 return _func.arg().minTrialSamples(arGenObs);
101 return _func.arg().isBinnedDistribution(obs);
104 return _func.arg().binBoundaries(obs, xlo, xhi);
107 return _func.arg().plotSamplingHint(obs, xlo, xhi);
RooTemplateProxy< RooAbsReal > RooRealProxy
Compatibility typedef replacing the old RooRealProxy class.
int Int_t
Signed integer 4 bytes (int).
#define ClassDefOverride(name, id)
RooAbsArg()
Default constructor.
RooAbsPdf()
Default constructor.
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooWrapperPdf(const char *name, const char *title, RooAbsReal &inputFunction, bool selfNormalized=false)
Construct a new RooWrapperPdf.
RooWrapperPdf(const RooWrapperPdf &other, const char *name=nullptr)
double maxVal(Int_t code) const override
Return maximum value for set of observables identified by code assigned in getMaxVal.
Int_t getMaxVal(const RooArgSet &vars) const override
Get specialised generator. Since the underlying function is not a PDF, this will always return zero.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &numVars, const char *rangeName=nullptr) const override
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=nullptr) const override
Variant of getAnalyticalIntegral that is also passed the normalization set that should be applied to ...
bool isBinnedDistribution(const RooArgSet &obs) const override
Tests if the distribution is binned. Unless overridden by derived classes, this always returns false.
std::list< double > * plotSamplingHint(RooAbsRealLValue &obs, double xlo, double xhi) const override
Interface for returning an optional hint for initial sampling points when constructing a curve projec...
bool selfNormalized() const override
Shows if a PDF is self-normalized, which means that no attempt is made to add a normalization term.
bool forceAnalyticalInt(const RooAbsArg &) const override
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
double analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName) const override
Analytical integral with normalization (see RooAbsReal::analyticalIntegralWN() for further informatio...
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
std::list< double > * binBoundaries(RooAbsRealLValue &obs, double xlo, double xhi) const override
Retrieve bin boundaries if this distribution is binned in obs.
TObject * clone(const char *newname=nullptr) const override
Int_t minTrialSamples(const RooArgSet &arGenObs) const override
RooAbsReal const & function() const
Mother of all ROOT objects.