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.

References

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

```

```

Function Members (Methods)

public:
 virtual ~LikelihoodInterval() void TObject::AbstractMethod(const char* method) const virtual void TObject::AppendPad(Option_t* option = "") virtual void TObject::Browse(TBrowser* b) virtual Bool_t CheckParameters(const RooArgSet&) const static TClass* Class() virtual const char* TObject::ClassName() const virtual void TNamed::Clear(Option_t* option = "") virtual TObject* TNamed::Clone(const char* newname = "") const virtual Int_t TNamed::Compare(const TObject* obj) const virtual Double_t ConfidenceLevel() const RooStats::ConfInterval RooStats::ConfInterval::ConfInterval(const char* name = 0) RooStats::ConfInterval RooStats::ConfInterval::ConfInterval(const RooStats::ConfInterval&) virtual void TNamed::Copy(TObject& named) const virtual void TObject::Delete(Option_t* option = "")MENU virtual Int_t TObject::DistancetoPrimitive(Int_t px, Int_t py) virtual void TObject::Draw(Option_t* option = "") virtual void TObject::DrawClass() constMENU virtual TObject* TObject::DrawClone(Option_t* option = "") constMENU virtual void TObject::Dump() constMENU virtual void TObject::Error(const char* method, const char* msgfmt) const virtual void TObject::Execute(const char* method, const char* params, Int_t* error = 0) virtual void TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) virtual void TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) virtual void TObject::Fatal(const char* method, const char* msgfmt) const virtual void TNamed::FillBuffer(char*& buffer) Bool_t FindLimits(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_t GetContourPoints(const RooRealVar& paramX, const RooRealVar& paramY, Double_t* x, Double_t* y, Int_t npoints = 30) virtual Option_t* TObject::GetDrawOption() const static Long_t TObject::GetDtorOnly() virtual const char* TObject::GetIconName() const RooAbsReal* GetLikelihoodRatio() virtual const char* TNamed::GetName() const virtual char* TObject::GetObjectInfo(Int_t px, Int_t py) const static Bool_t TObject::GetObjectStat() virtual Option_t* TObject::GetOption() const virtual RooArgSet* GetParameters() const virtual const char* TNamed::GetTitle() const virtual UInt_t TObject::GetUniqueID() const virtual Bool_t TObject::HandleTimer(TTimer* timer) virtual ULong_t TNamed::Hash() const virtual void TObject::Info(const char* method, const char* msgfmt) const virtual Bool_t TObject::InheritsFrom(const char* classname) const virtual Bool_t TObject::InheritsFrom(const TClass* cl) const virtual void TObject::Inspect() constMENU void TObject::InvertBit(UInt_t f) virtual TClass* IsA() const virtual Bool_t TObject::IsEqual(const TObject* obj) const virtual Bool_t TObject::IsFolder() const virtual Bool_t IsInInterval(const RooArgSet&) const Bool_t TObject::IsOnHeap() const virtual Bool_t TNamed::IsSortable() const Bool_t TObject::IsZombie() const RooStats::LikelihoodInterval LikelihoodInterval(const char* name = 0) RooStats::LikelihoodInterval LikelihoodInterval(const RooStats::LikelihoodInterval&) RooStats::LikelihoodInterval LikelihoodInterval(const char* name, RooAbsReal*, const RooArgSet*, RooArgSet* = 0) Double_t LowerLimit(const RooRealVar& param) Double_t LowerLimit(const RooRealVar& param, bool& status) virtual void TNamed::ls(Option_t* option = "") const void TObject::MayNotUse(const char* method) const virtual Bool_t TObject::Notify() void TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const void TObject::operator delete(void* ptr) void TObject::operator delete(void* ptr, void* vp) void TObject::operator delete[](void* ptr) void TObject::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 void TObject::Paint(Option_t* option = "") virtual void TObject::Pop() virtual void TNamed::Print(Option_t* option = "") const virtual Int_t TObject::Read(const char* name) virtual void TObject::RecursiveRemove(TObject* obj) void TObject::ResetBit(UInt_t f) virtual void TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU virtual void TObject::SavePrimitive(ostream& out, Option_t* option = "") void TObject::SetBit(UInt_t f) void TObject::SetBit(UInt_t f, Bool_t set) virtual void SetConfidenceLevel(Double_t cl) virtual void TObject::SetDrawOption(Option_t* option = "")MENU static void TObject::SetDtorOnly(void* obj) virtual void TNamed::SetName(const char* name)MENU virtual void TNamed::SetNameTitle(const char* name, const char* title) static void TObject::SetObjectStat(Bool_t stat) virtual void TNamed::SetTitle(const char* title = "")MENU virtual void TObject::SetUniqueID(UInt_t uid) virtual void ShowMembers(TMemberInspector& insp) const virtual Int_t TNamed::Sizeof() const virtual void Streamer(TBuffer&) void StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) virtual void TObject::SysError(const char* method, const char* msgfmt) const Bool_t TObject::TestBit(UInt_t f) const Int_t TObject::TestBits(UInt_t f) const Double_t UpperLimit(const RooRealVar& param) Double_t UpperLimit(const RooRealVar& param, bool& status) virtual void TObject::UseCurrentStyle() virtual void TObject::Warning(const char* method, const char* msgfmt) const virtual Int_t TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) virtual Int_t TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
 bool CreateMinimizer() virtual void TObject::DoError(int level, const char* location, const char* fmt, va_list va) const void TObject::MakeZombie() void ResetLimits()

Data Members

public:
 static TObject::(anonymous) TObject::kBitMask static TObject::EStatusBits TObject::kCanDelete static TObject::EStatusBits TObject::kCannotPick static TObject::EStatusBits TObject::kHasUUID static TObject::EStatusBits TObject::kInvalidObject static TObject::(anonymous) TObject::kIsOnHeap static TObject::EStatusBits TObject::kIsReferenced static TObject::EStatusBits TObject::kMustCleanup static TObject::EStatusBits TObject::kNoContextMenu static TObject::(anonymous) TObject::kNotDeleted static TObject::EStatusBits TObject::kObjInCanvas static TObject::(anonymous) TObject::kOverwrite static TObject::(anonymous) TObject::kSingleKey static TObject::(anonymous) TObject::kWriteDelete static TObject::(anonymous) TObject::kZombie
protected:
 TString TNamed::fName object identifier TString TNamed::fTitle object title
private:
 RooArgSet* fBestFitParams snapshot of the model parameters with best fit value (managed internally) Double_t fConfidenceLevel Requested confidence level (eg. 0.95 for 95% CL) shared_ptr fFunctor ! transient pointer to functor class used by the minimizer RooAbsReal* fLikelihoodRatio likelihood ratio function used to make contours (managed internally) map fLowerLimits map with cached lower bound values shared_ptr fMinFunc ! transient pointer to the minimization function shared_ptr fMinimizer ! transient pointer to minimizer class used to find limits and contour RooArgSet fParameters parameters of interest for this interval map fUpperLimits map with cached upper bound values

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
```

``` Destructor
```
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)
```
`{fConfidenceLevel = cl; ResetLimits(); }`
Double_t ConfidenceLevel() const
``` return confidence level
```
`{return fConfidenceLevel;}`
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); }`

``` return the profile log-likelihood ratio function
```
`{return fLikelihoodRatio;}`
const RooArgSet * GetBestFitParameters() const
``` return a pointer to a snapshot with best fit parameter of interest
```
`{ return fBestFitParams; }`