ROOT logo
ROOT » ROOFIT » ROOSTATS » RooStats::MCMCInterval

class RooStats::MCMCInterval: public RooStats::ConfInterval


MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface. It takes as input Markov Chain of data points in the parameter space generated by Monte Carlo using the Metropolis algorithm. The points in the Markov Chain are put into a histogram and the interval is then calculated by adding the heights of the bins in decreasing order until the desired level of confidence has been reached. Note that this means the actual confidence level is >= the confidence level prescribed by the client (unless the user calls SetStrict(false)). The level to use to make a contour plot is the cutoff histogram bin height. Because a histogram is used, MCMCInterval currently supports up to 3 dimensions for the interval (i.e. 3 parameters of interest).

This is not the only way for the confidence interval to be determined, and other possibilities are being considered being added, especially for the 1-dimensional case.

It one can ask an MCMCInterval for the lower and upper limits on a specific parameter of interest in the interval. Note that this works better for some distributions (ones with exactly one maximum) than others, and sometimes has little value.



Function Members (Methods)

public:
virtual~MCMCInterval()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tCheckParameters(RooArgSet& point) const
virtual Bool_tRooStats::ConfInterval::CheckParameters(RooArgSet&) const
static TClass*Class()
static TClass*RooStats::ConfInterval::Class()
static TClass*TNamed::Class()
static TClass*TObject::Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual Double_tConfidenceLevel() const
virtual Double_tRooStats::ConfInterval::ConfidenceLevel() const
virtual voidTNamed::Copy(TObject& named) 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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Double_tGetActualConfidenceLevel()
virtual const RooDataSet*GetChain()
virtual Double_tGetCutoff()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() 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 RooArgSet*GetParameters() const
virtual RooArgSet*RooStats::ConfInterval::GetParameters() const
virtual TH1*GetPosteriorHist()
virtual const char*TNamed::GetTitle() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
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
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual TClass*RooStats::ConfInterval::IsA() const
virtual TClass*TNamed::IsA() const
virtual TClass*TObject::IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tIsInInterval(RooArgSet& point)
virtual Bool_tRooStats::ConfInterval::IsInInterval(RooArgSet&)
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual Double_tLowerLimit(RooRealVar& param)
virtual voidTNamed::ls(Option_t* option = "") const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
RooStats::MCMCIntervalMCMCInterval()
RooStats::MCMCIntervalMCMCInterval(const char* name)
RooStats::MCMCIntervalMCMCInterval(const RooStats::MCMCInterval&)
RooStats::MCMCIntervalMCMCInterval(const char* name, const char* title)
RooStats::MCMCIntervalMCMCInterval(const char* name, const char* title, RooArgSet& parameters, RooDataSet& chain)
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::MCMCInterval&operator=(const RooStats::MCMCInterval&)
RooStats::ConfInterval&RooStats::ConfInterval::operator=(const RooStats::ConfInterval&)
TNamed&TNamed::operator=(const TNamed& rhs)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidTObject::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 = "")
virtual voidSetAxes(RooArgList& axes)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetConfidenceLevel(Double_t cl)
virtual voidRooStats::ConfInterval::SetConfidenceLevel(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)
virtual voidSetNumBins(Int_t numBins)
virtual voidSetNumBurnInSteps(Int_t numBurnInSteps)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetParameters(RooArgSet& parameters)
virtual voidSetStrict(Bool_t isStrict)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidRooStats::ConfInterval::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidTNamed::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidTObject::ShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
virtual voidRooStats::ConfInterval::Streamer(TBuffer& b)
virtual voidTNamed::Streamer(TBuffer& b)
virtual voidTObject::Streamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidRooStats::ConfInterval::StreamerNVirtual(TBuffer& b)
voidTNamed::StreamerNVirtual(TBuffer& b)
voidTObject::StreamerNVirtual(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
virtual Double_tUpperLimit(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
protected:
virtual voidCreateHistogram()
virtual voidDetermineInterval()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
enum { DEFAULT_NUM_BINS
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
RooRealVar**fAxesarray of pointers to RooRealVars representing
Double_tfConfidenceLevelRequested confidence level (eg. 0.95 for 95% CL)
Double_tfCutoffcutoff bin size to be in interval
RooDataSet*fDatathe markov chain
Int_tfDimensionnumber of variables
TH1*fHisthistogram generated from data to determine binning
Double_tfIntervalSumsum of heights of bins in the interval
Bool_tfIsStrictwhether the specified confidence level is a floor
TStringTNamed::fNameobject identifier
Int_t*fNumBinsnumber of bins for each dimension
Int_tfNumBurnInStepsnumber of steps to discard as burn in, starting from the first
RooArgSet*fParametersparameters of interest for this interval
Int_tfPreferredNumBinsnumber of bins client wants
TStringTNamed::fTitleobject title

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

MCMCInterval()
MCMCInterval(const char* name)
MCMCInterval(const char* name, const char* title)
MCMCInterval(const char* name, const char* title, RooArgSet& parameters, RooDataSet& chain)
Bool_t IsInInterval(RooArgSet& point)
void SetConfidenceLevel(Double_t cl)
void SetNumBins(Int_t numBins)
void SetAxes(RooArgList& axes)
void CreateHistogram()
void SetParameters(RooArgSet& parameters)
void DetermineInterval()
Double_t LowerLimit(RooRealVar& param)
Double_t UpperLimit(RooRealVar& param)
TH1* GetPosteriorHist()
RooArgSet* GetParameters() const
 returns list of parameters
Bool_t CheckParameters(RooArgSet& point) const
 check that the parameters are correct
MCMCInterval()
virtual ~MCMCInterval()
Double_t ConfidenceLevel() const
 get the desired confidence level (see GetActualConfidenceLevel())
Double_t GetCutoff()
 get the cutoff bin height for being considered in the
 confidence interval
{ return fCutoff; }
Double_t GetActualConfidenceLevel()
 get the actual value of the confidence level for this interval.
 It is >= the specified confidence level because the interval contains
 all bins with the cutoff height (or higher), until at least the desired
 confidence level is reached.
 Returns (Sum of bin heights in interval) / (Sum of all bin heights)
void SetStrict(Bool_t isStrict)
 whether the specified confidence level is a floor for the actual
 confidence level (strict), or a ceiling (not strict)
{ fIsStrict = isStrict; }
void SetNumBurnInSteps(Int_t numBurnInSteps)
 set the number of steps in the chain to discard as burn-in,
 starting from the first
{ fNumBurnInSteps = numBurnInSteps; }
const RooDataSet* GetChain()
 Get the markov chain on which this interval is based
{ return fData; }