ROOT » ROOFIT » ROOSTATS » RooStats::LikelihoodInterval

class RooStats::LikelihoodInterval: public RooStats::ConfInterval

LikelihoodInterval is a concrete implementation of the RooStats::ConfInterval interface. It implements a connected N-dimensional intervals based on the contour of a likelihood ratio. The boundary of the inteval is equivalent to a MINUIT/MINOS contour about the maximum likelihood estimator [1]. The interval does not need to be an ellipse (eg. it is not the HESSE error matrix). The level used to make the contour is the same as that used in MINOS, eg. it uses Wilks' theorem, which states that under certain regularity conditions the function -2* log (profile likelihood ratio) is asymptotically distributed as a chi^2 with N-dof, where N is the number of parameters of interest.

Note, a boundary on the parameter space (eg. s>= 0) or a degeneracy (eg. mass of signal if Nsig = 0) can lead to violations of the conditions necessary for Wilks' theorem to be true.

Also note, one can use any RooAbsReal as the function that will be used in the contour; however, the level of the contour is based on Wilks' theorem as stated above.


1 F. James., Minuit.Long writeup D506, CERN, 1998.

Function Members (Methods)

voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tCheckParameters(const RooArgSet&) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Double_tConfidenceLevel() const
RooStats::ConfIntervalRooStats::ConfInterval::ConfInterval(const char* name = 0)
RooStats::ConfIntervalRooStats::ConfInterval::ConfInterval(const RooStats::ConfInterval&)
virtual voidTNamed::Copy(TObject& named) 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 voidTNamed::FillBuffer(char*& buffer)
Bool_tFindLimits(const RooRealVar& param, double& lower, double& upper)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
const RooArgSet*GetBestFitParameters() const
Int_tGetContourPoints(const RooRealVar& paramX, const RooRealVar& paramY, Double_t* x, Double_t* y, Int_t npoints = 30)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual RooArgSet*GetParameters() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tIsInInterval(const RooArgSet&) const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
RooStats::LikelihoodIntervalLikelihoodInterval(const char* name = 0)
RooStats::LikelihoodIntervalLikelihoodInterval(const RooStats::LikelihoodInterval&)
RooStats::LikelihoodIntervalLikelihoodInterval(const char* name, RooAbsReal*, const RooArgSet*, RooArgSet* = 0)
Double_tLowerLimit(const RooRealVar& param)
Double_tLowerLimit(const RooRealVar& param, bool& status)
virtual voidTNamed::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
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
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)
RooStats::LikelihoodInterval&operator=(const RooStats::LikelihoodInterval&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") 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 voidSetConfidenceLevel(Double_t cl)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual Int_tTNamed::Sizeof() const
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
Double_tUpperLimit(const RooRealVar& param)
Double_tUpperLimit(const RooRealVar& param, bool& status)
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
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const

Data Members

static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
RooArgSet*fBestFitParamssnapshot of the model parameters with best fit value (managed internally)
Double_tfConfidenceLevelRequested confidence level (eg. 0.95 for 95% CL)
shared_ptr<RooFunctor>fFunctor! transient pointer to functor class used by the minimizer
RooAbsReal*fLikelihoodRatiolikelihood ratio function used to make contours (managed internally)
map<string,double>fLowerLimitsmap with cached lower bound values
shared_ptr<ROOT::Math::IMultiGenFunction>fMinFunc! transient pointer to the minimization function
shared_ptr<ROOT::Math::Minimizer>fMinimizer! transient pointer to minimizer class used to find limits and contour
RooArgSetfParametersparameters of interest for this interval
map<string,double>fUpperLimitsmap with cached upper bound values

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

LikelihoodInterval(const char* name = 0)
 Default constructor with name and title
LikelihoodInterval(const char* name, RooAbsReal* , const RooArgSet* , RooArgSet* = 0)
 Alternate constructor taking a pointer to the profile likelihood ratio, parameter of interest and
 optionally a snaphot of best parameter of interest for interval
Bool_t IsInInterval(const RooArgSet& ) const
 This is the main method to satisfy the RooStats::ConfInterval interface.
 It returns true if the parameter point is in the interval.
RooArgSet* GetParameters() const
 returns list of parameters
Bool_t CheckParameters(const RooArgSet& ) const
 check that the parameters are correct
Double_t LowerLimit(const RooRealVar& param, bool& status)
 Compute lower limit, check first if limit has been computed
 status is a boolean flag which will b set to false in case of error
 and is true if calculation is successful
 in case of error return also a lower limit value of zero
Double_t UpperLimit(const RooRealVar& param, bool& status)
 Compute upper limit, check first if limit has been computed
 status is a boolean flag which will b set to false in case of error
 and is true if calculation is successful
 in case of error return also a lower limit value of zero
void ResetLimits()
 reset map with cached limits - called every time the test size or CL has been changed
bool CreateMinimizer()
 internal function to create minimizer object needed to find contours or interval limits
 (running MINOS).
 Minimizer must be Minuit or Minuit2
bool FindLimits(const RooRealVar& param, double& lower, double& upper)
 Method to find both lower and upper limits using MINOS
 If cached values exist (limits have been already found) return them in that case
 check first if limit has been computed
 otherwise compute limit using MINOS
 in case of failure lower and upper will mantain previous value (will not be modified)
Int_t GetContourPoints(const RooRealVar& paramX, const RooRealVar& paramY, Double_t* x, Double_t* y, Int_t npoints = 30)
 use Minuit to find the contour of the likelihood function at the desired CL
explicit LikelihoodInterval(const char* name = 0)
 default constructor
void SetConfidenceLevel(Double_t cl)
 set the confidence level for the interval (e.g 0.682 for a 1-sigma interval)
Double_t ConfidenceLevel() const
 return confidence level
Double_t LowerLimit(const RooRealVar& param)
 return the lower bound of the interval on a given parameter
{ bool ok; return LowerLimit(param,ok); }
Double_t UpperLimit(const RooRealVar& param)
 return the upper bound of the interval on a given parameter
{ bool ok; return UpperLimit(param,ok); }
RooAbsReal* GetLikelihoodRatio()
 return the profile log-likelihood ratio function
const RooArgSet * GetBestFitParameters() const
 return a pointer to a snapshot with best fit parameter of interest
{ return fBestFitParams; }