56 RooRealVar numBins(
"numBins",
"Number of bins in range",100) ;
95 oocoutW((
TObject*)0,Integration) <<
"RooBinIntegrator::RooBinIntegrator WARNING: integrand provide no binning definition observable #"
96 << i <<
" substituting default binning of " <<
_numBins <<
" bins" << endl ;
97 tmp =
new list<Double_t> ;
102 _binb.push_back(tmp) ;
130 oocoutW((
TObject*)0,Integration) <<
"RooBinIntegrator::RooBinIntegrator WARNING: integrand provide no binning definition observable #"
131 << i <<
" substituting default binning of " <<
_numBins <<
" bins" << endl ;
132 tmp =
new list<Double_t> ;
137 _binb.push_back(tmp) ;
162 for (vector<list<Double_t>*>::iterator iter =
_binb.begin() ; iter!=
_binb.end() ; ++iter) {
177 oocoutE((
TObject*)0,Integration) <<
"RooBinIntegrator::setLimits: cannot override integrand's limits" << endl;
203 oocoutE((
TObject*)0,Integration) <<
"RooBinIntegrator::checkLimits: bad range with min >= max (_xmin = " <<
_xmin[i] <<
" _xmax = " <<
_xmax[i] <<
")" << endl;
225 list<Double_t>::iterator iter =
_binb[0]->begin() ;
227 for (; iter!=
_binb[0]->end() ; ++iter) {
239 list<Double_t>::iterator iter1 =
_binb[0]->begin() ;
242 for (; iter1!=
_binb[0]->end() ; ++iter1) {
247 list<Double_t>::iterator iter2 =
_binb[1]->begin() ;
249 for (; iter2!=
_binb[1]->end() ; ++iter2) {
265 list<Double_t>::iterator iter1 =
_binb[0]->begin() ;
268 for (; iter1!=
_binb[0]->end() ; ++iter1) {
273 list<Double_t>::iterator iter2 =
_binb[1]->begin() ;
275 for (; iter2!=
_binb[1]->end() ; ++iter2) {
280 list<Double_t>::iterator iter3 =
_binb[2]->begin() ;
282 for (; iter3!=
_binb[2]->end() ; ++iter3) {
Double_t getRealValue(const char *name, Double_t defVal=0, Bool_t verbose=kFALSE) const
Get value of a RooAbsReal stored in set with given name.
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
virtual Double_t getMinLimit(UInt_t dimension) const =0
virtual std::list< Double_t > * binBoundaries(Int_t) const
virtual Double_t getMaxLimit(UInt_t dimension) const =0
UInt_t getDimension() const
RooAbsIntegrator is the abstract interface for integrators of real-valued functions that implement th...
const RooAbsFunc * _function
const RooAbsFunc * integrand() const
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooBinIntegrator computes the integral over a binned distribution by summing the bin contents of all ...
std::vector< std::list< Double_t > * > _binb
Upper integration bound.
std::vector< Double_t > _xmin
static void registerIntegrator(RooNumIntFactory &fact)
Register RooBinIntegrator, is parameters and capabilities with RooNumIntFactory.
Double_t * xvec(Double_t &xx)
Int_t _numBins
list of bin boundaries
std::vector< Double_t > _xmax
Lower integration bound.
virtual ~RooBinIntegrator()
Destructor.
Bool_t _useIntegrandLimits
Size of integration range.
virtual RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const
Clone integrator with new function binding and configuration. Needed by RooNumIntFactory.
virtual Bool_t checkLimits() const
Check that our integration range is finite and otherwise return kFALSE.
virtual Double_t integral(const Double_t *yvec=0)
Calculate numeric integral at given set of function binding parameters.
Bool_t setLimits(Double_t *xmin, Double_t *xmax)
Change our integration limits.
RooBinIntegrator()
Default constructor.
virtual Bool_t setLabel(const char *label, bool printError=true) override
Set value by specifying the name of the desired state.
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.
static RooNumIntConfig & defaultConfig()
Return reference to instance of default numeric integrator configuration object.
RooNumIntFactory is a factory to instantiate numeric integrators from a given function binding and a ...
Bool_t 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 Int_t isInfinite(Double_t x)
Return true if x is infinite by RooNumBer internal specification.
RooRealVar represents a variable that can be changed from the outside.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
static uint64_t sum(uint64_t i)