ROOT logo
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
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)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
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)
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(basic_ostream<char,char_traits<char> >& 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, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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)
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

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)
auto_ptr<RooFunctor>fFunctor! transient pointer to functor class used by the minimizer
RooAbsReal*fLikelihoodRatiolikelihood ratio function used to make contours (managed internally)
map<std::string,double>fLowerLimitsmap with cached lower bound values
auto_ptr<ROOT::Math::IMultiGenFunction>fMinFunc! transient pointer to the minimization function
auto_ptr<ROOT::Math::Minimizer>fMinimizer! transient pointer to minimizer class used to find limits and contour
RooArgSetfParametersparameters of interest for this interval
map<std::string,double>fUpperLimitsmap with cached upper bound values

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

LikelihoodInterval(const char* name)
 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)
 compute the interval lower limit for the specified confidence level
 or size using  MINOS
 Note that both lower and upper limit are computed and cached internally so
 any subsequent calls (for the same CL will be fast to execute)
Double_t UpperLimit(const RooRealVar& param)
 compute the interval upper limit for the specified confidence level
 or size using  MINOS.
 Note that both lower and upper limit are computed and cached internally so
 any subsequent calls (for the same CL will be fast to execute)
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
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)
 defult 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
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; }