51 return std::make_unique<RooImproperIntegrator1D>(function, config);
54 fact.registerPlugin(
"RooImproperIntegrator1D", creator, {},
67RooImproperIntegrator1D::RooImproperIntegrator1D(
const RooAbsFunc& function) :
69 _useIntegrandLimits(
true),
83 _useIntegrandLimits(
true),
99 _useIntegrandLimits(
false),
111void RooImproperIntegrator1D::initialize(
const RooAbsFunc* function)
114 oocoutE(
nullptr,Integration) <<
"RooImproperIntegrator: cannot integrate invalid function" << std::endl;
119 _function= std::make_unique<RooInvTransform>(*function);
131 RooRombergIntegrator::SummationRule
rule) {
133 newConfig.getConfigSection(
"RooIntegrator1D").setCatIndex(
"sumRule",
rule);
142 _integrator1 = std::make_unique<RooRombergIntegrator>(*function,_xmin,_xmax,_config);
182bool RooImproperIntegrator1D::setLimits(
double *
xmin,
double *
xmax)
184 if(_useIntegrandLimits) {
185 oocoutE(
nullptr,Integration) <<
"RooImproperIntegrator1D::setLimits: cannot override integrand's limits" << std::endl;
191 return checkLimits();
201bool RooImproperIntegrator1D::checkLimits()
const
204 if (_useIntegrandLimits) {
205 if(_xmin == integrand()->getMinLimit(0) &&
206 _xmax == integrand()->getMaxLimit(0))
return true;
247RooImproperIntegrator1D::LimitsCase RooImproperIntegrator1D::limitsCase()
const
250 if(
nullptr == integrand() || !integrand()->isValid())
return Invalid;
252 if (_useIntegrandLimits) {
253 _xmin= integrand()->getMinLimit(0);
254 _xmax= integrand()->getMaxLimit(0);
290double RooImproperIntegrator1D::integral(
const double*
yvec)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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...
Abstract interface for integrators of real-valued functions that implement the RooAbsFunc interface.
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.
Factory to instantiate numeric integrators from a given function binding and a given configuration.
static constexpr int isInfinite(double x)
Return true if x is infinite by RooNumber internal specification.
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
void initialize(typename Architecture_t::Matrix_t &A, EInitialization m)