Logo ROOT   6.08/07
Reference Guide
MCMCInterval.h
Go to the documentation of this file.
1 // @(#)root/roostats:$Id$
2 // Authors: Kevin Belasco 17/06/2009
3 // Authors: Kyle Cranmer 17/06/2009
4 /*************************************************************************
5  * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef RooStats_MCMCInterval
13 #define RooStats_MCMCInterval
14 
15 #ifndef ROOT_Rtypes
16 #include "Rtypes.h"
17 #endif
18 
19 #ifndef ROOSTATS_ConfInterval
20 #include "RooStats/ConfInterval.h"
21 #endif
22 #ifndef ROO_ARG_SET
23 #include "RooArgSet.h"
24 #endif
25 #ifndef ROO_ARG_LIST
26 #include "RooArgList.h"
27 #endif
28 #ifndef ROOSTATS_MarkovChain
29 #include "RooStats/MarkovChain.h"
30 #endif
31 
32 class RooNDKeysPdf;
33 class RooProduct;
34 
35 
36 namespace RooStats {
37 
38  class Heaviside;
39 
40 
41 /**
42 
43  \ingroup Roostats
44 
45  MCMCInterval is a concrete implementation of the RooStats::ConfInterval
46  interface. It takes as input Markov Chain of data points in the parameter
47  space generated by Monte Carlo using the Metropolis algorithm. From the Markov
48  Chain, the confidence interval can be determined in two ways:
49 
50 #### Using a Kernel-Estimated PDF: (not the default method)
51 
52  A RooNDKeysPdf is constructed from the data set using adaptive kernel width.
53  With this RooNDKeysPdf F, we then integrate over the most likely domain in the
54  parameter space (tallest points in the posterior RooNDKeysPdf) until the target
55  confidence level is reached within an acceptable neighborhood as defined by
56  SetEpsilon(). More specifically: we calculate the following for different
57  cutoff values C until we reach the target confidence level: \f$\int_{ F >= C } F
58  d{normset} \f$.
59  Important note: this is not the default method because of a bug in constructing
60  the RooNDKeysPdf from a weighted data set. Configure to use this method by
61  calling SetUseKeys(true), and the data set will be interpreted without weights.
62 
63 
64 #### Using a binned data set: (the default method)
65 
66  This is the binned analog of the continuous integrative method that uses the
67  kernel-estimated PDF. The points in the Markov Chain are put into a binned
68  data set and the interval is then calculated by adding the heights of the bins
69  in decreasing order until the desired level of confidence has been reached.
70  Note that this means the actual confidence level is >= the confidence level
71  prescribed by the client (unless the user calls SetHistStrict(kFALSE)). This
72  method is the default but may not remain as such in future releases, so you may
73  wish to explicitly configure to use this method by calling SetUseKeys(false)
74 
75 
76  These are not the only ways for the confidence interval to be determined, and
77  other possibilities are being considered being added, especially for the
78  1-dimensional case.
79 
80 
81  One can ask an MCMCInterval for the lower and upper limits on a specific
82  parameter of interest in the interval. Note that this works better for some
83  distributions (ones with exactly one local maximum) than others, and sometimes
84  has little value.
85 */
86 
87 
88  class MCMCInterval : public ConfInterval {
89 
90 
91  public:
92 
93  /// default constructor
94  explicit MCMCInterval(const char* name = 0);
95 
96  /// constructor from parameter of interest and Markov chain object
97  MCMCInterval(const char* name, const RooArgSet& parameters,
98  MarkovChain& chain);
99 
100  enum {DEFAULT_NUM_BINS = 50};
102 
103  virtual ~MCMCInterval();
104 
105  /// determine whether this point is in the confidence interval
106  virtual Bool_t IsInInterval(const RooArgSet& point) const;
107 
108  /// set the desired confidence level (see GetActualConfidenceLevel())
109  /// Note: calling this function triggers the algorithm that determines
110  /// the interval, so call this after initializing all other aspects
111  /// of this IntervalCalculator
112  /// Also, calling this function again with a different confidence level
113  /// retriggers the calculation of the interval
114  virtual void SetConfidenceLevel(Double_t cl);
115 
116  /// get the desired confidence level (see GetActualConfidenceLevel())
117  virtual Double_t ConfidenceLevel() const {return fConfidenceLevel;}
118 
119  /// return a set containing the parameters of this interval
120  /// the caller owns the returned RooArgSet*
121  virtual RooArgSet* GetParameters() const;
122 
123  /// get the cutoff bin height for being considered in the
124  /// confidence interval
125  virtual Double_t GetHistCutoff();
126 
127  /// get the cutoff RooNDKeysPdf value for being considered in the
128  /// confidence interval
129  virtual Double_t GetKeysPdfCutoff();
130  ///virtual Double_t GetKeysPdfCutoff() { return fKeysCutoff; }
131 
132  /// get the actual value of the confidence level for this interval.
134 
135  /// whether the specified confidence level is a floor for the actual
136  /// confidence level (strict), or a ceiling (not strict)
137  virtual void SetHistStrict(Bool_t isHistStrict)
138  { fIsHistStrict = isHistStrict; }
139 
140  /// check if parameters are correct. (dummy implementation to start)
141  Bool_t CheckParameters(const RooArgSet& point) const;
142 
143  /// Set the parameters of interest for this interval
144  /// and change other internal data members accordingly
145  virtual void SetParameters(const RooArgSet& parameters);
146 
147  /// Set the MarkovChain that this interval is based on
148  virtual void SetChain(MarkovChain& chain) { fChain = &chain; }
149 
150  /// Set which parameters go on which axis. The first list element
151  /// goes on the x axis, second (if it exists) on y, third (if it
152  /// exists) on z, etc
153  virtual void SetAxes(RooArgList& axes);
154 
155  /// return a list of RooRealVars representing the axes
156  /// you own the returned RooArgList
157  virtual RooArgList* GetAxes()
158  {
159  RooArgList* axes = new RooArgList();
160  for (Int_t i = 0; i < fDimension; i++)
161  axes->addClone(*fAxes[i]);
162  return axes;
163  }
164 
165  /// get the lowest value of param that is within the confidence interval
166  virtual Double_t LowerLimit(RooRealVar& param);
167 
168  /// determine lower limit of the lower confidence interval
170 
171  /// get the lower limit of param in the shortest confidence interval
172  /// Note that this works better for some distributions (ones with exactly
173  /// one maximum) than others, and sometimes has little value.
174  virtual Double_t LowerLimitShortest(RooRealVar& param);
175 
176  /// determine lower limit in the shortest interval by using keys pdf
177  virtual Double_t LowerLimitByKeys(RooRealVar& param);
178 
179  /// determine lower limit using histogram
180  virtual Double_t LowerLimitByHist(RooRealVar& param);
181 
182  /// determine lower limit using histogram
184 
185  /// determine lower limit using histogram
186  virtual Double_t LowerLimitByDataHist(RooRealVar& param);
187 
188  /// get the highest value of param that is within the confidence interval
189  virtual Double_t UpperLimit(RooRealVar& param);
190 
191  /// determine upper limit of the lower confidence interval
193 
194  /// get the upper limit of param in the confidence interval
195  /// Note that this works better for some distributions (ones with exactly
196  /// one maximum) than others, and sometimes has little value.
197  virtual Double_t UpperLimitShortest(RooRealVar& param);
198 
199  /// determine upper limit in the shortest interval by using keys pdf
200  virtual Double_t UpperLimitByKeys(RooRealVar& param);
201 
202  /// determine upper limit using histogram
203  virtual Double_t UpperLimitByHist(RooRealVar& param);
204 
205  /// determine upper limit using histogram
207 
208  /// determine upper limit using histogram
209  virtual Double_t UpperLimitByDataHist(RooRealVar& param);
210 
211  /// Determine the approximate maximum value of the Keys PDF
213 
214  /// set the number of steps in the chain to discard as burn-in,
215  /// starting from the first
216  virtual void SetNumBurnInSteps(Int_t numBurnInSteps)
217  { fNumBurnInSteps = numBurnInSteps; }
218 
219  /// set whether to use kernel estimation to determine the interval
220  virtual void SetUseKeys(Bool_t useKeys) { fUseKeys = useKeys; }
221 
222  /// set whether to use a sparse histogram. you MUST also call
223  /// SetUseKeys(kFALSE) to use a histogram.
224  virtual void SetUseSparseHist(Bool_t useSparseHist)
225  { fUseSparseHist = useSparseHist; }
226 
227  /// get whether we used kernel estimation to determine the interval
228  virtual Bool_t GetUseKeys() { return fUseKeys; }
229 
230  /// get the number of steps in the chain to disard as burn-in,
231 
232  /// get the number of steps in the chain to disard as burn-in,
233  /// starting from the first
235 
236  /// set the number of bins to use (same for all axes, for now)
237  ///virtual void SetNumBins(Int_t numBins);
238 
239  /// Get a clone of the histogram of the posterior
240  virtual TH1* GetPosteriorHist();
241 
242  /// Get a clone of the keys pdf of the posterior
244 
245  /// Get a clone of the (keyspdf * heaviside) product of the posterior
247 
248  /// Get the number of parameters of interest in this interval
249  virtual Int_t GetDimension() const { return fDimension; }
250 
251  /// Get the markov chain on which this interval is based
252  /// You do not own the returned MarkovChain*
253  virtual const MarkovChain* GetChain() { return fChain; }
254 
255  /// Get a clone of the markov chain on which this interval is based
256  /// as a RooDataSet. You own the returned RooDataSet*
258  { return fChain->GetAsDataSet(whichVars); }
259 
260  /// Get the markov chain on which this interval is based
261  /// as a RooDataSet. You do not own the returned RooDataSet*
263  { return fChain->GetAsConstDataSet(); }
264 
265  /// Get a clone of the markov chain on which this interval is based
266  /// as a RooDataHist. You own the returned RooDataHist*
268  { return fChain->GetAsDataHist(whichVars); }
269 
270  /// Get a clone of the markov chain on which this interval is based
271  /// as a THnSparse. You own the returned THnSparse*
273  { return fChain->GetAsSparseHist(whichVars); }
274 
275  /// Get a clone of the NLL variable from the markov chain
276  virtual RooRealVar* GetNLLVar() const
277  { return fChain->GetNLLVar(); }
278 
279  /// Get a clone of the weight variable from the markov chain
280  virtual RooRealVar* GetWeightVar() const
281  { return fChain->GetWeightVar(); }
282 
283  /// set the acceptable level or error for Keys interval determination
285  {
286  if (epsilon < 0)
287  coutE(InputArguments) << "MCMCInterval::SetEpsilon will not allow "
288  << "negative epsilon value" << std::endl;
289  else
290  fEpsilon = epsilon;
291  }
292 
293  /// Set the type of interval to find. This will only have an effect for
294  /// 1-D intervals. If is more than 1 parameter of interest, then a
295  /// "shortest" interval will always be used, since it generalizes directly
296  /// to N dimensions
297  virtual void SetIntervalType(enum IntervalType intervalType)
298  { fIntervalType = intervalType; }
299 
300  /// Return the type of this interval
301  virtual enum IntervalType GetIntervalType() { return fIntervalType; }
302 
303  /// set the left-side tail fraction for a tail-fraction interval
305 
306  /// kbelasco: The inner-workings of the class really should not be exposed
307  /// like this in a comment, but it seems to be the only way to give
308  /// the user any control over this process, if they desire it
309  ///
310  /// Set the fraction delta such that
311  /// topCutoff (a) is considered == bottomCutoff (b) iff
312  /// (TMath::Abs(a - b) < TMath::Abs(fDelta * (a + b)/2))
313  /// when determining the confidence interval by Keys
314  virtual void SetDelta(Double_t delta)
315  {
316  if (delta < 0.)
317  coutE(InputArguments) << "MCMCInterval::SetDelta will not allow "
318  << "negative delta value" << std::endl;
319  else
320  fDelta = delta;
321  }
322 
323  private:
324  inline Bool_t AcceptableConfLevel(Double_t confLevel);
326 
327  protected:
328  // data members
329  RooArgSet fParameters; // parameters of interest for this interval
330  MarkovChain* fChain; // the markov chain
331  Double_t fConfidenceLevel; // Requested confidence level (eg. 0.95 for 95% CL)
332 
333  RooDataHist* fDataHist; // the binned Markov Chain data
334  THnSparse* fSparseHist; // the binned Markov Chain data
335  Double_t fHistConfLevel; // the actual conf level determined by hist
336  Double_t fHistCutoff; // cutoff bin size to be in interval
337 
338  RooNDKeysPdf* fKeysPdf; // the kernel estimation pdf
339  RooProduct* fProduct; // the (keysPdf * heaviside) product
340  Heaviside* fHeaviside; // the Heaviside function
341  RooDataHist* fKeysDataHist; // data hist representing product
342  RooRealVar* fCutoffVar; // cutoff variable to use for integrating keys pdf
343  Double_t fKeysConfLevel; // the actual conf level determined by keys
344  Double_t fKeysCutoff; // cutoff keys pdf value to be in interval
345  Double_t fFull; // Value of intergral of fProduct
346 
347  Double_t fLeftSideTF; // left side tail-fraction for interval
348  Double_t fTFConfLevel; // the actual conf level of tail-fraction interval
349  std::vector<Int_t> fVector; // vector containing the Markov chain data
350  Double_t fVecWeight; // sum of weights of all entries in fVector
351  Double_t fTFLower; // lower limit of the tail-fraction interval
352  Double_t fTFUpper; // upper limit of the tail-fraction interval
353 
354  TH1* fHist; // the binned Markov Chain data
355 
356  Bool_t fUseKeys; // whether to use kernel estimation
357  Bool_t fUseSparseHist; // whether to use sparse hist (vs. RooDataHist)
358  Bool_t fIsHistStrict; // whether the specified confidence level is a
359  // floor for the actual confidence level (strict),
360  // or a ceiling (not strict) for determination by
361  // histogram
362  Int_t fDimension; // number of variables
363  Int_t fNumBurnInSteps; // number of steps to discard as burn in, starting
364  // from the first
365  // LM (not used) Double_t fIntervalSum; // sum of heights of bins in the interval
366  RooRealVar** fAxes; // array of pointers to RooRealVars representing
367  // the axes of the histogram
368  // fAxes[0] represents x-axis, [1] y, [2] z, etc
369 
370  Double_t fEpsilon; // acceptable error for Keys interval determination
371 
372  Double_t fDelta; // topCutoff (a) considered == bottomCutoff (b) iff
373  // (TMath::Abs(a - b) < TMath::Abs(fDelta * (a + b)/2));
374  // Theoretically, the Abs is not needed here, but
375  // floating-point arithmetic does not always work
376  // perfectly, and the Abs doesn't hurt
378 
379 
380  // functions
381  virtual void DetermineInterval();
382  virtual void DetermineShortestInterval();
383  virtual void DetermineTailFractionInterval();
384  virtual void DetermineByHist();
385  virtual void DetermineBySparseHist();
386  virtual void DetermineByDataHist();
387  virtual void DetermineByKeys();
388  virtual void CreateHist();
389  virtual void CreateSparseHist();
390  virtual void CreateDataHist();
391  virtual void CreateKeysPdf();
392  virtual void CreateKeysDataHist();
393  virtual void CreateVector(RooRealVar* param);
394  inline virtual Double_t CalcConfLevel(Double_t cutoff, Double_t full);
395 
396  ClassDef(MCMCInterval,1) // Concrete implementation of a ConfInterval based on MCMC calculation
397 
398  };
399 }
400 
401 #endif
virtual Bool_t IsInInterval(const RooArgSet &point) const
determine whether this point is in the confidence interval
MarkovChain * fChain
Definition: MCMCInterval.h:330
virtual const RooDataSet * GetChainAsConstDataSet()
Get the markov chain on which this interval is based as a RooDataSet.
Definition: MCMCInterval.h:262
#define coutE(a)
Definition: RooMsgService.h:35
virtual Double_t LowerLimitShortest(RooRealVar &param)
get the lower limit of param in the shortest confidence interval Note that this works better for some...
virtual RooRealVar * GetNLLVar() const
Get a clone of the NLL variable from the markov chain.
Definition: MCMCInterval.h:276
virtual Double_t UpperLimitBySparseHist(RooRealVar &param)
determine upper limit using histogram
virtual Double_t LowerLimitTailFraction(RooRealVar &param)
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); ...
virtual RooAbsArg * addClone(const RooAbsArg &var, Bool_t silent=kFALSE)
Add a clone of the specified argument to list.
virtual void SetNumBurnInSteps(Int_t numBurnInSteps)
set the number of steps in the chain to discard as burn-in, starting from the first ...
Definition: MCMCInterval.h:216
virtual RooArgSet * GetParameters() const
return a set containing the parameters of this interval the caller owns the returned RooArgSet* ...
virtual RooProduct * GetPosteriorKeysProduct()
Get a clone of the (keyspdf * heaviside) product of the posterior.
virtual void CreateKeysPdf()
virtual RooDataSet * GetChainAsDataSet(RooArgSet *whichVars=NULL)
Get a clone of the markov chain on which this interval is based as a RooDataSet.
Definition: MCMCInterval.h:257
virtual void DetermineByKeys()
virtual void CreateVector(RooRealVar *param)
virtual Double_t GetHistCutoff()
get the cutoff bin height for being considered in the confidence interval
std::vector< Int_t > fVector
Definition: MCMCInterval.h:349
RooRealVar * fCutoffVar
Definition: MCMCInterval.h:342
virtual Bool_t GetUseKeys()
get whether we used kernel estimation to determine the interval
Definition: MCMCInterval.h:228
virtual Double_t UpperLimitByKeys(RooRealVar &param)
determine upper limit in the shortest interval by using keys pdf
virtual void SetAxes(RooArgList &axes)
Set which parameters go on which axis.
virtual THnSparse * GetChainAsSparseHist(RooArgSet *whichVars=NULL)
Get a clone of the markov chain on which this interval is based as a THnSparse.
Definition: MCMCInterval.h:272
virtual RooArgList * GetAxes()
return a list of RooRealVars representing the axes you own the returned RooArgList ...
Definition: MCMCInterval.h:157
virtual void DetermineInterval()
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
TArc * a
Definition: textangle.C:12
virtual RooRealVar * GetWeightVar() const
Get a clone of the weight variable from the markov chain.
Definition: MCMCInterval.h:280
virtual void CreateKeysDataHist()
virtual void DetermineShortestInterval()
virtual RooDataHist * GetAsDataHist(RooArgSet *whichVars=NULL) const
get this MarkovChain as a RooDataHist whose entries contain the values of whichVars.
virtual void CreateHist()
virtual Double_t LowerLimitByHist(RooRealVar &param)
determine lower limit using histogram
RooDataSet is a container class to hold N-dimensional binned data.
Definition: RooDataHist.h:40
virtual void SetEpsilon(Double_t epsilon)
set the acceptable level or error for Keys interval determination
Definition: MCMCInterval.h:284
RooNDKeysPdf * fKeysPdf
Definition: MCMCInterval.h:338
Bool_t WithinDeltaFraction(Double_t a, Double_t b)
#define ClassDef(name, id)
Definition: Rtypes.h:254
Efficient multidimensional histogram.
Definition: THnSparse.h:52
virtual Double_t UpperLimitByHist(RooRealVar &param)
determine upper limit using histogram
virtual THnSparse * GetAsSparseHist(RooAbsCollection *whichVars=NULL) const
Get a clone of the markov chain on which this interval is based as a sparse histogram.
virtual Int_t GetDimension() const
Get the number of parameters of interest in this interval.
Definition: MCMCInterval.h:249
virtual void SetChain(MarkovChain &chain)
Set the MarkovChain that this interval is based on.
Definition: MCMCInterval.h:148
RooRealVar represents a fundamental (non-derived) real valued object.
Definition: RooRealVar.h:37
virtual const MarkovChain * GetChain()
Get the markov chain on which this interval is based You do not own the returned MarkovChain*.
Definition: MCMCInterval.h:253
RooDataHist * fKeysDataHist
Definition: MCMCInterval.h:341
virtual void DetermineByDataHist()
MCMCInterval(const char *name=0)
default constructor
enum IntervalType fIntervalType
Definition: MCMCInterval.h:377
virtual Double_t GetKeysPdfCutoff()
get the cutoff RooNDKeysPdf value for being considered in the confidence interval ...
virtual RooNDKeysPdf * GetPosteriorKeysPdf()
Get a clone of the keys pdf of the posterior.
virtual Double_t LowerLimitBySparseHist(RooRealVar &param)
determine lower limit using histogram
virtual const RooDataSet * GetAsConstDataSet() const
Definition: MarkovChain.h:100
virtual void SetIntervalType(enum IntervalType intervalType)
Set the type of interval to find.
Definition: MCMCInterval.h:297
virtual void DetermineByHist()
virtual void SetLeftSideTailFraction(Double_t a)
set the left-side tail fraction for a tail-fraction interval
Definition: MCMCInterval.h:304
RooDataHist * fDataHist
Definition: MCMCInterval.h:333
virtual Double_t UpperLimit(RooRealVar &param)
get the highest value of param that is within the confidence interval
virtual void SetConfidenceLevel(Double_t cl)
set the desired confidence level (see GetActualConfidenceLevel()) Note: calling this function trigger...
RooDataSet is a container class to hold unbinned data.
Definition: RooDataSet.h:29
Represents the Heaviside function.
Definition: Heaviside.h:37
Generic N-dimensional implementation of a kernel estimation p.d.f.
Definition: RooNDKeysPdf.h:45
REAL epsilon
Definition: triangle.c:617
RooProduct a RooAbsReal implementation that represent the product of a given set of other RooAbsReal ...
Definition: RooProduct.h:32
virtual Double_t GetActualConfidenceLevel()
virtual Double_t GetKeysPdfCutoff() { return fKeysCutoff; }
virtual void SetUseKeys(Bool_t useKeys)
set whether to use kernel estimation to determine the interval
Definition: MCMCInterval.h:220
ConfInterval is an interface class for a generic interval in the RooStats framework.
Definition: ConfInterval.h:44
Stores the steps in a Markov Chain of points.
Definition: MarkovChain.h:53
Namespace for the RooStats classes.
Definition: Asimov.h:20
double Double_t
Definition: RtypesCore.h:55
virtual void SetHistStrict(Bool_t isHistStrict)
whether the specified confidence level is a floor for the actual confidence level (strict)...
Definition: MCMCInterval.h:137
virtual void CreateDataHist()
virtual Double_t LowerLimit(RooRealVar &param)
get the lowest value of param that is within the confidence interval
The TH1 histogram class.
Definition: TH1.h:80
virtual RooDataSet * GetAsDataSet(RooArgSet *whichVars=NULL) const
get this MarkovChain as a RooDataSet whose entries contain the values of whichVars.
Bool_t AcceptableConfLevel(Double_t confLevel)
virtual RooRealVar * GetWeightVar() const
get a clone of the weight variable
Definition: MarkovChain.h:127
Double_t GetKeysMax()
Determine the approximate maximum value of the Keys PDF.
virtual void CreateSparseHist()
virtual void DetermineTailFractionInterval()
virtual Double_t ConfidenceLevel() const
get the desired confidence level (see GetActualConfidenceLevel())
Definition: MCMCInterval.h:117
virtual enum IntervalType GetIntervalType()
Return the type of this interval.
Definition: MCMCInterval.h:301
virtual RooRealVar * GetNLLVar() const
get a clone of the NLL variable
Definition: MarkovChain.h:123
virtual Double_t UpperLimitByDataHist(RooRealVar &param)
determine upper limit using histogram
virtual void SetDelta(Double_t delta)
kbelasco: The inner-workings of the class really should not be exposed like this in a comment...
Definition: MCMCInterval.h:314
virtual void SetParameters(const RooArgSet &parameters)
Set the parameters of interest for this interval and change other internal data members accordingly...
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
#define NULL
Definition: Rtypes.h:82
virtual Double_t UpperLimitTailFraction(RooRealVar &param)
determine upper limit of the lower confidence interval
virtual Double_t LowerLimitByKeys(RooRealVar &param)
determine lower limit in the shortest interval by using keys pdf
MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface.
Definition: MCMCInterval.h:88
virtual void DetermineBySparseHist()
virtual Double_t UpperLimitShortest(RooRealVar &param)
get the upper limit of param in the confidence interval Note that this works better for some distribu...
virtual Double_t CalcConfLevel(Double_t cutoff, Double_t full)
virtual Int_t GetNumBurnInSteps()
get the number of steps in the chain to disard as burn-in,
Definition: MCMCInterval.h:234
char name[80]
Definition: TGX11.cxx:109
Bool_t CheckParameters(const RooArgSet &point) const
check if parameters are correct. (dummy implementation to start)
virtual RooDataHist * GetChainAsDataHist(RooArgSet *whichVars=NULL)
Get a clone of the markov chain on which this interval is based as a RooDataHist. ...
Definition: MCMCInterval.h:267
virtual Double_t LowerLimitByDataHist(RooRealVar &param)
determine lower limit using histogram
virtual void SetUseSparseHist(Bool_t useSparseHist)
set whether to use a sparse histogram.
Definition: MCMCInterval.h:224