59  _case(ClosedBothEnds), _xmin(-10), _xmax(10), _useIntegrandLimits(true)
 
   70  _useIntegrandLimits(true),
 
   84  _useIntegrandLimits(true),
 
  100  _useIntegrandLimits(false),
 
  125    oocoutE(
nullptr,Integration) << 
"RooImproperIntegrator: cannot integrate invalid function" << std::endl;
 
  130    _function= std::make_unique<RooInvTransform>(*function);
 
  140  auto makeIntegrator1D = [&](
RooAbsFunc const& func,
 
  145      return std::make_unique<RooIntegrator1D>(func, 
xmin, 
xmax, newConfig);
 
  196    oocoutE(
nullptr,Integration) << 
"RooIntegrator1D::setLimits: cannot override integrand's limits" << std::endl;
 
  274  else if(inf1 && inf2) {
 
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
 
bool setCatIndex(const char *name, Int_t newVal=0, bool verbose=false)
Set index value of a RooAbsCategoryLValue stored in set with given name to newVal.
 
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 * integrand() const
Return integrand function binding.
 
bool _valid
Is integrator in valid state?
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Special numeric integrator that can handle integrals over open domains.
 
std::unique_ptr< RooInvTransform > _function
Binding with inverse of function.
 
std::unique_ptr< RooIntegrator1D > _integrator2
Piece integrator 2.
 
LimitsCase limitsCase() const
Classify the type of limits we have: OpenBothEnds,ClosedBothEnds,OpenBelow or OpenAbove.
 
double integral(const double *yvec=nullptr) override
Calculate the integral at the given parameter values of the function binding.
 
RooImproperIntegrator1D()
Default constructor.
 
LimitsCase _case
Configuration of limits.
 
double _xmax
Value of limits.
 
bool checkLimits() const override
Check if the limits are valid.
 
RooAbsFunc * _origFunc
Original function binding.
 
std::unique_ptr< RooIntegrator1D > _integrator3
Piece integrator 3.
 
void initialize(const RooAbsFunc *function=nullptr)
Initialize the integrator, construct and initialize subintegrators.
 
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
 
RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const override
Return clone of integrator with given function and configuration. Needed by RooNumIntFactory.
 
std::unique_ptr< RooIntegrator1D > _integrator1
Piece integrator 1.
 
RooNumIntConfig _config
Configuration object.
 
static void registerIntegrator(RooNumIntFactory &fact)
Register RooImproperIntegrator1D, its parameters and capabilities with RooNumIntFactory.
 
bool _useIntegrandLimits
Use limits in function binding?
 
RooNumIntConfig holds the configuration parameters of the various numeric integrators used by RooReal...
 
const RooArgSet & getConfigSection(const char *name) const
Retrieve configuration information specific to integrator with given name.
 
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.
 
virtual const char * GetName() const
Returns name of object.