ROOT logo
ROOT » ROOFIT » ROOFITCORE » RooImproperIntegrator1D

class RooImproperIntegrator1D: public RooAbsIntegrator



Special numeric integrator that can handle integrals over open domains. To this end the range is cut in up three pieces: [-inf,-1],[-1,+1] and [+1,inf] and the outer two pieces, if required are calculated using a 1/x transform

Function Members (Methods)

public:
RooImproperIntegrator1D()
RooImproperIntegrator1D(const RooAbsFunc& function)
RooImproperIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config)
RooImproperIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config)
virtual~RooImproperIntegrator1D()
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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidinitialize(const RooAbsFunc* function = 0)
RooImproperIntegrator1D::LimitsCaselimitsCase() const
voidTObject::MakeZombie()
static voidregisterIntegrator(RooNumIntFactory& fact)

Data Members

public:
enum LimitsCase { Invalid
ClosedBothEnds
OpenBothEnds
OpenBelowSpansZero
OpenBelow
OpenAboveSpansZero
OpenAbove
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
RooImproperIntegrator1D::LimitsCase_caseConfiguration of limits
RooNumIntConfig_configConfiguration object
RooInvTransform*_functionBinding with inverse of function
const RooAbsFunc*RooAbsIntegrator::_functionPointer to function binding of integrand
RooIntegrator1D*_integrator1
RooIntegrator1D*_integrator2
RooIntegrator1D*_integrator3Piece integrators
RooAbsFunc*_origFuncOriginal function binding
Bool_tRooAbsIntegrator::_printEvalCounterIf true print number of function evaluation required for integration
Bool_t_useIntegrandLimitsUse limits in function binding?
Bool_tRooAbsIntegrator::_validIs integrator in valid state?
Double_t_xmaxValue of limits
Double_t_xmin

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void registerIntegrator(RooNumIntFactory& fact)
 Register RooImproperIntegrator1D, its parameters and capabilities with RooNumIntFactory
RooImproperIntegrator1D()
 Default constructor
RooImproperIntegrator1D(const RooAbsFunc& function)
 Constructor with function binding. The integration range is taken from the
 definition in the function binding
RooImproperIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config)
 Constructor with function binding and configuration object. The integration range is taken
 from the definition in the function binding
RooImproperIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config)
 Constructor with function binding, definition of integration range and configuration object
RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const
 Return clone of integrator with given function and configuration. Needed by RooNumIntFactory.
void initialize(const RooAbsFunc* function = 0)
 Initialize the integrator, construct and initialize subintegrators
~RooImproperIntegrator1D()
 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 if the limits are valid. For this integrator all limit configurations
 are valid, but if the limits change between two calculate() calls it
 may be necessary to reconfigure (e.g. if an open ended range becomes
 a closed range
Double_t integral(const Double_t* yvec = 0)
 Calculate the integral at the given parameter values of the function binding
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 kTRUE ; }
LimitsCase limitsCase() const