ROOT logo
ROOT » ROOFIT » ROOFITCORE » RooIntegrator1D

class RooIntegrator1D: public RooAbsIntegrator



RooIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.

Function Members (Methods)

public:
RooIntegrator1D()
RooIntegrator1D(const RooIntegrator1D&)
RooIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config)
RooIntegrator1D(const RooAbsFunc& function, RooIntegrator1D::SummationRule rule = Trapezoid, Int_t maxSteps = 0, Double_t eps = 0)
RooIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config)
RooIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, RooIntegrator1D::SummationRule rule = Trapezoid, Int_t maxSteps = 0, Double_t eps = 0)
virtual~RooIntegrator1D()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Double_tRooAbsIntegrator::calculate(const Double_t* yvec = 0)
virtual Bool_tcanIntegrate1D() const
virtual Bool_tcanIntegrate2D() const
virtual Bool_tcanIntegrateND() const
virtual Bool_tcanIntegrateOpenEnded() const
virtual Bool_tcheckLimits() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual RooAbsIntegrator*clone(const RooAbsFunc& function, const RooNumIntConfig& config) const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
virtual Double_tintegral(const Double_t* yvec = 0)
const RooAbsFunc*RooAbsIntegrator::integrand() const
Double_tRooAbsIntegrator::integrand(const Double_t* x) const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tRooAbsIntegrator::isValid() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
Bool_tRooAbsIntegrator::printEvalCounter() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual Bool_tsetLimits(Double_t* xmin, Double_t* xmax)
static voidTObject::SetObjectStat(Bool_t stat)
voidRooAbsIntegrator::setPrintEvalCounter(Bool_t value)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual Bool_tsetUseIntegrandLimits(Bool_t flag)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
Double_taddMidpoints(Int_t n)
Double_taddTrapezoids(Int_t n)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidextrapolate(Int_t n)
Bool_tinitialize()
voidTObject::MakeZombie()
static voidregisterIntegrator(RooNumIntFactory& fact)
Double_t*xvec(Double_t& xx)

Data Members

public:
enum SummationRule { Trapezoid
Midpoint
};
enum { _nPoints
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Double_t*_c! Integrator workspace
Double_t*_d! Integrator workspace
Bool_t_doExtrapApply conversion step?
Double_t_epsAbsAbsolute convergence tolerance
Double_t_epsRelRelative convergence tolerance
Double_t_extrapError! Error on extrapolated value
Double_t_extrapValue! Extrapolated value
Int_t_fixStepsFixed number of steps
const RooAbsFunc*RooAbsIntegrator::_functionPointer to function binding of integrand
Double_t*_h! Integrator workspace
Int_t_maxStepsMaximum number of steps
Int_t_minStepsZeroMinimum number of steps to declare convergence to zero
Bool_tRooAbsIntegrator::_printEvalCounterIf true print number of function evaluation required for integration
Double_t_range! Size of integration range
RooIntegrator1D::SummationRule_rule
Double_t*_s! Integrator workspace
Double_t_savedResult! Integrator workspace
Bool_t_useIntegrandLimitsIf true limits of function binding are ued
Bool_tRooAbsIntegrator::_validIs integrator in valid state?
Double_t*_x! do not persist
Double_t_xmax! Upper integration bound
Double_t_xmin! Lower integration bound

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void registerIntegrator(RooNumIntFactory& fact)
 Register RooIntegrator1D, is parameters and capabilities with RooNumIntFactory
RooIntegrator1D()
 coverity[UNINIT_CTOR]
 Default constructor
RooIntegrator1D(const RooAbsFunc& function, RooIntegrator1D::SummationRule rule = Trapezoid, Int_t maxSteps = 0, Double_t eps = 0)
 Construct integrator on given function binding, using specified summation
 rule, maximum number of steps and conversion tolerance. The integration
 limits are taken from the function binding
RooIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, RooIntegrator1D::SummationRule rule = Trapezoid, Int_t maxSteps = 0, Double_t eps = 0)
 Construct integrator on given function binding for given range,
 using specified summation rule, maximum number of steps and
 conversion tolerance. The integration limits are taken from the
 function binding
RooIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config)
 Construct integrator on given function binding, using specified
 configuration object. The integration limits are taken from the
 function binding
RooIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config)
 Construct integrator on given function binding, using specified
 configuration object and integration range
RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const
 Clone integrator with new function binding and configuration. Needed by RooNumIntFactory
Bool_t initialize()
 Initialize the integrator
~RooIntegrator1D()
 Destructor
Bool_t setLimits(Double_t* xmin, Double_t* xmax)
 Change our integration limits. Return kTRUE if the new limits are
 ok, or otherwise kFALSE. Always returns kFALSE and does nothing
 if this object was constructed to always use our integrand's limits.
Bool_t checkLimits() const
 Check that our integration range is finite and otherwise return kFALSE.
 Update the limits from the integrand if requested.
Double_t integral(const Double_t* yvec = 0)
 Calculate numeric integral at given set of function binding parameters
Double_t addMidpoints(Int_t n)
 Calculate the n-th stage of refinement of the Second Euler-Maclaurin
 summation rule which has the useful property of not evaluating the
 integrand at either of its endpoints but requires more function
 evaluations than the trapezoidal rule. This rule can be used with
 a suitable change of variables to estimate improper integrals.
Double_t addTrapezoids(Int_t n)
 Calculate the n-th stage of refinement of the extended trapezoidal
 summation rule. This is the most efficient rule for a well behaved
 integrand that can be evaluated over its entire range, including the
 endpoints.
void extrapolate(Int_t n)
 Extrapolate result to final value
RooIntegrator1D()
Bool_t setUseIntegrandLimits(Bool_t flag)
{_useIntegrandLimits = flag ; return kTRUE ; }
Bool_t canIntegrate1D() const
{ return kTRUE ; }
Bool_t canIntegrate2D() const
{ return kFALSE ; }
Bool_t canIntegrateND() const
{ return kFALSE ; }
Bool_t canIntegrateOpenEnded() const
{ return kFALSE ; }
Double_t* xvec(Double_t& xx)
{ _x[0] = xx ; return _x ; }