52 RooRealVar numSeg(
"numSeg",
"Number of segments",3) ;
122 if (!limitsOK)
return false ;
135 for (i=0 ; i<
_nseg ; i++) {
167 oocoutE(
nullptr,
InputArguments) <<
"RooSegmentedIntegrator1D::setLimits: cannot override integrand's limits" << endl;
190 oocoutE(
nullptr,
InputArguments) <<
"RooIntegrator1D::checkLimits: bad range with min >= max" << endl;
199 for (i=0 ; i<
_nseg ; i++) {
219 for (i=0 ; i<
_nseg ; i++) {
RooIntegrator1D * pRooIntegrator1D
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
virtual double getMaxLimit(UInt_t dimension) const =0
virtual double getMinLimit(UInt_t dimension) const =0
RooAbsIntegrator is the abstract interface for integrators of real-valued functions that implement th...
bool isValid() const
Is integrator in valid state.
const RooAbsFunc * _function
Pointer to function binding of integrand.
const RooAbsFunc * integrand() const
Return integrand function binding.
RooIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.
double integral(const double *yvec=nullptr) override
Calculate numeric integral at given set of function binding parameters.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
RooNumIntConfig holds the configuration parameters of the various numeric integrators used by RooReal...
void setEpsRel(double newEpsRel)
Set relative convergence criteria (convergence if std::abs(Err)/abs(Int)<newEpsRel)
const RooArgSet & getConfigSection(const char *name) const
Retrieve configuration information specific to integrator with given name.
void setEpsAbs(double newEpsAbs)
Set absolute convergence criteria (convergence if std::abs(Err)<newEpsAbs)
RooNumIntFactory is a factory to instantiate numeric integrators from a given function binding and a ...
bool storeProtoIntegrator(RooAbsIntegrator *proto, const RooArgSet &defConfig, const char *depName="")
Method accepting registration of a prototype numeric integrator along with a RooArgSet of its default...
static constexpr int isInfinite(double x)
Return true if x is infinite by RooNumber internal specification.
RooRealVar represents a variable that can be changed from the outside.
RooSegmentedIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.
static void registerIntegrator(RooNumIntFactory &fact)
Register RooSegmentedIntegrator1D, its parameters, dependencies and capabilities with RooNumIntFactor...
double integral(const double *yvec=nullptr) override
Evaluate integral at given function binding parameter values.
bool checkLimits() const override
Check that our integration range is finite and otherwise return false.
~RooSegmentedIntegrator1D() override
Destructor.
RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const override
Virtual constructor with given function and configuration. Needed by RooNumIntFactory.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
RooSegmentedIntegrator1D()
Constructor.
RooIntegrator1D ** _array
Array of segment integrators.
bool initialize()
One-time integrator initialization.
virtual const char * GetName() const
Returns name of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
void function(const Char_t *name_, T fun, const Char_t *docstring=0)