12#ifndef RooStats_MCMCInterval 
   13#define RooStats_MCMCInterval 
  209      { 
return fChain->GetAsConstDataSet(); }
 
 
  223      { 
return fChain->GetNLLVar(); }
 
 
  227      { 
return fChain->GetWeightVar(); }
 
 
  233            coutE(InputArguments) << 
"MCMCInterval::SetEpsilon will not allow " 
  234                                  << 
"negative epsilon value" << std::endl;
 
 
  268            coutE(InputArguments) << 
"MCMCInterval::SetDelta will not allow " 
  269                                  << 
"negative delta value" << std::endl;
 
 
 
#define ClassDefOverride(name, id)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
virtual RooAbsArg * addClone(const RooAbsArg &var, bool silent=false)
Add a clone of the specified argument to list.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Container class to hold unbinned data.
 
Generic N-dimensional implementation of a kernel estimation p.d.f.
 
Represents the product of a given set of RooAbsReal objects.
 
Variable that can be changed from the outside.
 
ConfInterval is an interface class for a generic interval in the RooStats framework.
 
MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface.
 
virtual void CreateDataHist()
 
virtual bool GetUseKeys()
get whether we used kernel estimation to determine the interval
 
virtual void DetermineByDataHist()
 
virtual void DetermineShortestInterval()
 
virtual double GetActualConfidenceLevel()
virtual double GetKeysPdfCutoff() { return fKeysCutoff; }
 
double fKeysConfLevel
the actual conf level determined by keys
 
virtual void CreateVector(RooRealVar *param)
 
static constexpr const double DEFAULT_EPSILON
 
std::unique_ptr< Heaviside > fHeaviside
the Heaviside function
 
virtual double LowerLimitByDataHist(RooRealVar ¶m)
determine lower limit using histogram
 
double fDelta
topCutoff (a) considered == bottomCutoff (b) iff (std::abs(a - b) < std::abs(fDelta * (a + b)/2)); Th...
 
double fConfidenceLevel
Requested confidence level (eg. 0.95 for 95% CL)
 
virtual double UpperLimitBySparseHist(RooRealVar ¶m)
determine upper limit using histogram
 
std::unique_ptr< MarkovChain > fChain
the markov chain
 
virtual void SetUseSparseHist(bool useSparseHist)
set whether to use a sparse histogram.
 
enum IntervalType fIntervalType
 
virtual double UpperLimit(RooRealVar ¶m)
get the highest value of param that is within the confidence interval
 
std::unique_ptr< RooDataHist > fDataHist
the binned Markov Chain data
 
virtual void SetDelta(double delta)
kbelasco: The inner-workings of the class really should not be exposed like this in a comment,...
 
virtual RooFit::OwningPtr< RooDataSet > GetChainAsDataSet(RooArgSet *whichVars=nullptr)
Get a clone of the markov chain on which this interval is based as a RooDataSet.
 
virtual const RooDataSet * GetChainAsConstDataSet()
Get the markov chain on which this interval is based as a RooDataSet.
 
virtual enum IntervalType GetIntervalType()
Return the type of this interval.
 
virtual void SetAxes(RooArgList &axes)
Set which parameters go on which axis.
 
virtual void DetermineByKeys()
 
double fTFLower
lower limit of the tail-fraction interval
 
bool fUseSparseHist
whether to use sparse hist (vs. RooDataHist)
 
double fVecWeight
sum of weights of all entries in fVector
 
double fLeftSideTF
left side tail-fraction for interval
 
bool AcceptableConfLevel(double confLevel)
 
virtual void DetermineBySparseHist()
 
double GetKeysMax()
Determine the approximate maximum value of the Keys PDF.
 
virtual double LowerLimitBySparseHist(RooRealVar ¶m)
determine lower limit using histogram
 
bool WithinDeltaFraction(double a, double b)
 
double fKeysCutoff
cutoff keys pdf value to be in interval
 
virtual double LowerLimitShortest(RooRealVar ¶m)
get the lower limit of param in the shortest confidence interval Note that this works better for some...
 
virtual double LowerLimitTailFraction(RooRealVar ¶m)
determine lower limit of the lower confidence interval
 
virtual TH1 * GetPosteriorHist()
set the number of bins to use (same for all axes, for now) virtual void SetNumBins(Int_t numBins);
 
std::unique_ptr< RooRealVar > fCutoffVar
cutoff variable to use for integrating keys pdf
 
Int_t fDimension
number of variables
 
void SetConfidenceLevel(double cl) override
set the desired confidence level (see GetActualConfidenceLevel()) Note: calling this function trigger...
 
MCMCInterval(const char *name=nullptr)
default constructor
 
std::unique_ptr< RooProduct > fProduct
the (keysPdf * heaviside) product
 
virtual RooArgList * GetAxes()
return a list of RooRealVars representing the axes you own the returned RooArgList
 
virtual RooRealVar * GetWeightVar() const
Get a clone of the weight variable from the markov chain.
 
virtual void SetNumBurnInSteps(Int_t numBurnInSteps)
set the number of steps in the chain to discard as burn-in, starting from the first
 
std::vector< RooRealVar * > fAxes
array of pointers to RooRealVars representing
 
virtual void DetermineTailFractionInterval()
 
double fTFConfLevel
the actual conf level of tail-fraction interval
 
double fHistConfLevel
the actual conf level determined by hist
 
virtual void CreateSparseHist()
 
double fFull
Value of intergral of fProduct.
 
std::unique_ptr< RooDataHist > fKeysDataHist
data hist representing product
 
virtual Int_t GetNumBurnInSteps()
get the number of steps in the chain to discard as burn-in,
 
virtual double UpperLimitByDataHist(RooRealVar ¶m)
determine upper limit using histogram
 
virtual void DetermineInterval()
 
std::unique_ptr< TH1 > fHist
the binned Markov Chain data
 
virtual RooRealVar * GetNLLVar() const
Get a clone of the NLL variable from the markov chain.
 
virtual void SetUseKeys(bool useKeys)
set whether to use kernel estimation to determine the interval
 
virtual void SetEpsilon(double epsilon)
set the acceptable level or error for Keys interval determination
 
virtual const MarkovChain * GetChain()
Get the markov chain on which this interval is based You do not own the returned MarkovChain*.
 
virtual double CalcConfLevel(double cutoff, double full)
 
virtual double LowerLimitByHist(RooRealVar ¶m)
determine lower limit using histogram
 
static constexpr const double DEFAULT_DELTA
 
virtual double LowerLimit(RooRealVar ¶m)
get the lowest value of param that is within the confidence interval
 
virtual double UpperLimitShortest(RooRealVar ¶m)
get the upper limit of param in the confidence interval Note that this works better for some distribu...
 
virtual void SetIntervalType(enum IntervalType intervalType)
Set the type of interval to find.
 
virtual void SetHistStrict(bool isHistStrict)
whether the specified confidence level is a floor for the actual confidence level (strict),...
 
bool CheckParameters(const RooArgSet &point) const override
check if parameters are correct. (dummy implementation to start)
 
std::vector< Int_t > fVector
vector containing the Markov chain data
 
virtual double LowerLimitByKeys(RooRealVar ¶m)
determine lower limit in the shortest interval by using keys pdf
 
virtual RooProduct * GetPosteriorKeysProduct()
Get a clone of the (keyspdf * heaviside) product of the posterior.
 
double fTFUpper
upper limit of the tail-fraction interval
 
double fHistCutoff
cutoff bin size to be in interval
 
virtual void SetLeftSideTailFraction(double a)
set the left-side tail fraction for a tail-fraction interval
 
RooArgSet * GetParameters() const override
return a set containing the parameters of this interval the caller owns the returned RooArgSet*
 
std::unique_ptr< RooNDKeysPdf > fKeysPdf
the kernel estimation pdf
 
virtual double UpperLimitTailFraction(RooRealVar ¶m)
determine upper limit of the lower confidence interval
 
bool fIsHistStrict
whether the specified confidence level is a floor for the actual confidence level (strict),...
 
virtual RooNDKeysPdf * GetPosteriorKeysPdf()
Get a clone of the keys pdf of the posterior.
 
virtual double UpperLimitByHist(RooRealVar ¶m)
determine upper limit using histogram
 
virtual void CreateKeysPdf()
 
virtual double UpperLimitByKeys(RooRealVar ¶m)
determine upper limit in the shortest interval by using keys pdf
 
Int_t fNumBurnInSteps
number of steps to discard as burn in, starting from the first
 
std::unique_ptr< THnSparse > fSparseHist
the binned Markov Chain data
 
virtual void CreateHist()
 
bool fUseKeys
whether to use kernel estimation
 
virtual void SetShortestInterval()
 
RooArgSet fParameters
parameters of interest for this interval
 
bool IsInInterval(const RooArgSet &point) const override
determine whether this point is in the confidence interval
 
virtual void DetermineByHist()
 
double ConfidenceLevel() const override
get the desired confidence level (see GetActualConfidenceLevel())
 
virtual void SetChain(MarkovChain &chain)
Set the MarkovChain that this interval is based on.
 
virtual void SetParameters(const RooArgSet ¶meters)
Set the parameters of interest for this interval and change other internal data members accordingly.
 
virtual Int_t GetDimension() const
Get the number of parameters of interest in this interval.
 
virtual void CreateKeysDataHist()
 
virtual THnSparse * GetChainAsSparseHist(RooArgSet *whichVars=nullptr)
Get a clone of the markov chain on which this interval is based as a THnSparse.
 
virtual RooFit::OwningPtr< RooDataHist > GetChainAsDataHist(RooArgSet *whichVars=nullptr)
Get a clone of the markov chain on which this interval is based as a RooDataHist.
 
double fEpsilon
acceptable error for Keys interval determination
 
virtual double GetKeysPdfCutoff()
get the cutoff RooNDKeysPdf value for being considered in the confidence interval
 
virtual double GetHistCutoff()
get the cutoff bin height for being considered in the confidence interval
 
Stores the steps in a Markov Chain of points.
 
TH1 is the base class of all histogram classes in ROOT.
 
Efficient multidimensional histogram.
 
T * OwningPtr
An alias for raw pointers for indicating that the return type of a RooFit function is an owning point...
 
Namespace for the RooStats classes.