Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
MCMCIntervalPlot.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  * Project: RooStats *
6  * Package: RooFit/RooStats *
7  *************************************************************************
8  * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
9  * All rights reserved. *
10  * *
11  * For the licensing terms see $ROOTSYS/LICENSE. *
12  * For the list of contributors see $ROOTSYS/README/CREDITS. *
13  *************************************************************************/
14 
15 #ifndef ROOSTATS_MCMCIntervalPlot
16 #define ROOSTATS_MCMCIntervalPlot
17 
18 #include "RooPrintable.h"
19 #include "RooArgSet.h"
20 #include "TNamed.h"
21 #include "TH1.h"
22 #include "RooStats/MCMCInterval.h"
23 #include "RooNDKeysPdf.h"
24 #include "RooProduct.h"
25 
26 namespace RooStats {
27 
28  class MCMCIntervalPlot : public TNamed, public RooPrintable {
29 
30  public:
31  MCMCIntervalPlot();
32  MCMCIntervalPlot(MCMCInterval& interval);
33 
34  /// Destructor of SamplingDistribution
35  virtual ~MCMCIntervalPlot();
36 
37  void SetMCMCInterval(MCMCInterval& interval);
38  void SetLineColor(Color_t color) {fLineColor = color;}
39  void SetLineWidth(Int_t width) {fLineWidth = width;}
40  void SetShadeColor(Color_t color) {fShadeColor = color;}
41  void SetShowBurnIn(Bool_t showBurnIn) { fShowBurnIn = showBurnIn; }
42 
43  void Draw(const Option_t* options = NULL);
44 
45  void DrawChainScatter(RooRealVar& xVar, RooRealVar& yVar);
46  void DrawParameterVsTime(RooRealVar& param);
47  void DrawNLLVsTime();
48  void DrawNLLHist(const Option_t* options = NULL);
49  void DrawWeightHist(const Option_t* options = NULL);
50 
51  private:
52 
53  MCMCInterval *fInterval;
54  RooArgSet *fParameters;
55  TH1* fPosteriorHist;
56  RooNDKeysPdf* fPosteriorKeysPdf;
57  RooProduct* fPosteriorKeysProduct;
58  TH1* fNLLHist;
59  TH1* fWeightHist;
60  TH1* fPosteriorHistHistCopy;
61  TH1* fPosteriorHistTFCopy;
62  Int_t fDimension;
63  Color_t fLineColor;
64  Color_t fShadeColor;
65  Int_t fLineWidth;
66  Bool_t fShowBurnIn;
67  TGraph* fWalk;
68  TGraph* fBurnIn;
69  TGraph* fFirst;
70  TGraph* fParamGraph;
71  TGraph* fNLLGraph;
72 
73  protected:
74  void DrawPosterior(const Option_t* options = NULL);
75  void* DrawPosteriorHist(const Option_t* options = NULL,
76  const char* title = NULL, Bool_t scale = kTRUE);
77  void* DrawPosteriorKeysPdf(const Option_t* options = NULL);
78  void* DrawPosteriorKeysProduct(const Option_t* options = NULL);
79 
80  void DrawInterval(const Option_t* options = NULL);
81  void DrawShortestInterval(const Option_t* options = NULL);
82  void DrawHistInterval(const Option_t* options = NULL);
83  void DrawKeysPdfInterval(const Option_t* options = NULL);
84  void DrawTailFractionInterval(const Option_t* options = NULL);
85 
86  ClassDef(MCMCIntervalPlot,1) /// Class containing the results of the MCMCCalculator
87  };
88 }
89 
90 #endif