164      const char* title, 
bool scale)
 
  170      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawPosteriorHist: " 
  171         << 
"Couldn't get posterior histogram." << endl;
 
  208      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawPosteriorKeysPdf: " 
  209         << 
"Couldn't get posterior Keys PDF." << endl;
 
  214   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  219      if (frame == 
nullptr) {
 
  220         coutE(InputArguments) << 
"MCMCIntervalPlot::DrawPosteriorKeysPdf: " 
  221                               << 
"Invalid parameter" << endl;
 
  225         frame->
SetTitle(
Form(
"Posterior Keys PDF for %s", 
v->GetName()));
 
  241               Form(
"MCMC histogram of posterior Keys PDF for %s, %s",
 
  246      keysHist->
Draw(options);
 
  265         coutE(InputArguments) << 
"MCMCIntervalPlot::DrawInterval(): " <<
 
  266            "Interval type not supported" << endl;
 
  286   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  325   frame->
Draw(options);
 
  334      llLine->
Draw(options);
 
  335      ulLine->
Draw(options);
 
  341         coutE(InputArguments) << 
"MCMCIntervalPlot::DrawKeysPdfInterval: " 
  342            << 
"Couldn't get posterior Keys PDF." << endl;
 
  373      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawKeysPdfInterval: " 
  374         << 
" Sorry: " << 
fDimension << 
"-D plots not currently supported" << endl;
 
  383   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  395      if (hist == 
nullptr) 
return;
 
  409      for (i = 1; i <= nBins; i++) {
 
  412         if (
height < histCutoff) {
 
  425      copy->
Draw(
"HIST SAME");
 
  435      llLine->
Draw(options);
 
  436      ulLine->
Draw(options);
 
  443         coutE(InputArguments) << 
"MCMCIntervalPlot::DrawHistInterval: " 
  444            << 
"Couldn't get posterior histogram." << endl;
 
  472      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawHistInterval: " 
  473         << 
" Sorry: " << 
fDimension << 
"-D plots not currently supported" << endl;
 
  482   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  492      if (hist == 
nullptr) 
return;
 
  505      for (i = 1; i <= nBins; i++) {
 
  508         if (center < ll || center > ul) {
 
  520      copy->
Draw(
"hist same");
 
  529      llLine->
Draw(options);
 
  530      ulLine->
Draw(options);
 
  532      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawTailFractionInterval: " 
  533         << 
" Sorry: " << 
fDimension << 
"-D plots not currently supported" 
  546      coutE(InputArguments) << 
"MCMCIntervalPlot::DrawPosteriorKeysProduct: " 
  547         << 
"Couldn't get posterior Keys product." << endl;
 
  554   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  558      if (!frame) 
return nullptr;
 
  560         frame->
SetTitle(
Form(
"Posterior Keys PDF * Heaviside product for %s",
 
  567      frame->
Draw(options);
 
  576               Form(
"MCMC Posterior Keys Product Hist. for %s, %s",
 
  580      productHist->
Draw(options);
 
  600   double* 
x = 
new double[
size - burnInSteps];
 
  601   double* 
y = 
new double[
size - burnInSteps];
 
  602   double* burnInX = 
nullptr;
 
  603   double* burnInY = 
nullptr;
 
  604   if (burnInSteps > 0) {
 
  605      burnInX = 
new double[burnInSteps];
 
  606      burnInY = 
new double[burnInSteps];
 
  611   for (
Int_t i = burnInSteps; i < 
size; i++) {
 
  616   for (
Int_t i = 0; i < burnInSteps; i++) {
 
  625   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  629      walk->
SetTitle(
Form(
"2-D Scatter Plot of Markov chain for %s, %s",
 
  641   walk->
Draw(
"A,L,P,same");
 
  644   if (burnInX != 
nullptr && burnInY != 
nullptr) {
 
  645      burnIn = 
new TGraph(burnInSteps - 1, burnInX, burnInY);
 
  649      burnIn->
Draw(
"L,P,same");
 
  654   first->SetMarkerStyle(3);
 
  655   first->SetMarkerSize(2);
 
  657   first->Draw(
"L,P,same");
 
  662   if (burnInX != 
nullptr) 
delete [] burnInX;
 
  663   if (burnInY != 
nullptr) 
delete [] burnInY;
 
  676   double* 
value = 
new double[numEntries];
 
  677   double* time = 
new double[numEntries];
 
  685      value[2*i + 1] = val;
 
  692   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  702   paramGraph->
Draw(
"A,L,same");
 
  715   double* nllValue = 
new double[numEntries];
 
  716   double* time = 
new double[numEntries];
 
  721      nll = markovChain->
NLL(i);
 
  724      nllValue[2*i + 1] = nll;
 
  731   bool isEmpty = (title.
CompareTo(
"") == 0);
 
  733   TGraph* nllGraph = 
new TGraph(numEntries, time, nllValue);
 
  735      nllGraph->
SetTitle(
"NLL value vs. time in Markov chain");
 
  741   nllGraph->
Draw(
"A,L,same");
 
  757         if (markovChain->
NLL(i) > maxNLL)
 
  758            maxNLL = markovChain->
NLL(i);
 
  760      fNLLHist = 
new TH1F(
"mcmc_nll_hist", 
"MCMC NLL Histogram",
 
  763      bool isEmpty = (title.
CompareTo(
"") == 0);
 
  780      double maxWeight = 0;
 
  783         if (markovChain->
Weight(i) > maxWeight)
 
  784            maxWeight = markovChain->
Weight(i);
 
  786            (
Int_t)(maxWeight + 1), 0, maxWeight * 1.02);
 
  795  // 3-d plot of the parameter points
 
  797  // also plot the points in the markov chain
 
  798  RooDataSet* markovChainData = ((MCMCInterval*)mcmcint)->GetChainAsDataSet();
 
  800  TTree& chain =  ((RooTreeDataStore*) markovChainData->store())->tree();
 
  801  chain.SetMarkerStyle(6);
 
  802  chain.SetMarkerColor(kRed);
 
  803  chain.Draw("s:ratioSigEff:ratioBkgEff","","box"); // 3-d box proportional to posterior
 
  805  // the points used in the profile construction
 
  806  TTree& parameterScan =  ((RooTreeDataStore*) fc.GetPointsToScan()->store())->tree();
 
  807  parameterScan.SetMarkerStyle(24);
 
  808  parameterScan.Draw("s:ratioSigEff:ratioBkgEff","","same");
 
  810  chain.SetMarkerStyle(6);
 
  811  chain.SetMarkerColor(kRed);
 
  812  //chain.Draw("s:ratioSigEff:ratioBkgEff", "_MarkovChain_local_nll","box");
 
  813  //chain.Draw("_MarkovChain_local_nll");
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
double getRealValue(const char *name, double defVal=0.0, bool verbose=false) const
Get value of a RooAbsReal stored in set with given name.
 
RooAbsArg * first() const
 
RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none(), const RooCmdArg &arg9=RooCmdArg::none(), const RooCmdArg &arg10=RooCmdArg::none()) const override
Helper calling plotOn(RooPlot*, RooLinkedList&) const.
 
Int_t numBins(const char *rangeName=nullptr) const override
 
virtual Int_t getBins(const char *name=nullptr) const
Get number of bins of currently defined range.
 
virtual double getMax(const char *name=nullptr) const
Get maximum of currently defined range.
 
virtual double getMin(const char *name=nullptr) const
Get minimum of currently defined range.
 
virtual RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg(), const RooCmdArg &arg2=RooCmdArg(), const RooCmdArg &arg3=RooCmdArg(), const RooCmdArg &arg4=RooCmdArg(), const RooCmdArg &arg5=RooCmdArg(), const RooCmdArg &arg6=RooCmdArg(), const RooCmdArg &arg7=RooCmdArg(), const RooCmdArg &arg8=RooCmdArg(), const RooCmdArg &arg9=RooCmdArg(), const RooCmdArg &arg10=RooCmdArg()) const
Plot (project) PDF on specified frame.
 
TH1 * createHistogram(RooStringView varNameList, Int_t xbins=0, Int_t ybins=0, Int_t zbins=0) const
Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function for the variables w...
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
 
A RooPlot is a plot frame and a container for graphics objects within that frame.
 
static RooPlot * frame(const RooAbsRealLValue &var, double xmin, double xmax, Int_t nBins)
Create a new frame for a given variable in x.
 
void SetTitle(const char *name) override
Set the title of the RooPlot to 'title'.
 
void Draw(Option_t *options=nullptr) override
Draw this plot and all of the elements it contains.
 
RooRealVar represents a variable that can be changed from the outside.
 
This class provides simple and straightforward utilities to plot a MCMCInterval object.
 
void DrawNLLHist(const Option_t *options=nullptr)
 
void Draw(const Option_t *options=nullptr) override
 
void * DrawPosteriorHist(const Option_t *options=nullptr, const char *title=nullptr, bool scale=true)
 
RooProduct * fPosteriorKeysProduct
 
void DrawChainScatter(RooRealVar &xVar, RooRealVar &yVar)
 
TH1 * fPosteriorHistTFCopy
 
void DrawTailFractionInterval(const Option_t *options=nullptr)
 
TH1 * fPosteriorHistHistCopy
 
void SetMCMCInterval(MCMCInterval &interval)
 
~MCMCIntervalPlot() override
Destructor of SamplingDistribution.
 
void DrawPosterior(const Option_t *options=nullptr)
 
void DrawHistInterval(const Option_t *options=nullptr)
 
void * DrawPosteriorKeysProduct(const Option_t *options=nullptr)
 
void DrawWeightHist(const Option_t *options=nullptr)
 
void DrawInterval(const Option_t *options=nullptr)
 
void DrawParameterVsTime(RooRealVar ¶m)
 
void * DrawPosteriorKeysPdf(const Option_t *options=nullptr)
 
void DrawShortestInterval(const Option_t *options=nullptr)
 
void DrawKeysPdfInterval(const Option_t *options=nullptr)
 
RooNDKeysPdf * fPosteriorKeysPdf
 
MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface.
 
virtual bool GetUseKeys()
get whether we used kernel estimation to determine the interval
 
virtual enum IntervalType GetIntervalType()
Return the type of this interval.
 
double GetKeysMax()
Determine the approximate maximum value of the Keys PDF.
 
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);
 
virtual RooArgList * GetAxes()
return a list of RooRealVars representing the axes you own the returned RooArgList
 
virtual Int_t GetNumBurnInSteps()
get the number of steps in the chain to discard as burn-in,
 
virtual RooRealVar * GetNLLVar() const
Get a clone of the NLL variable from the markov chain.
 
virtual const MarkovChain * GetChain()
Get the markov chain on which this interval is based You do not own the returned MarkovChain*.
 
virtual double LowerLimitByHist(RooRealVar ¶m)
determine lower limit using histogram
 
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.
 
RooArgSet * GetParameters() const override
return a set containing the parameters of this interval the caller owns the returned RooArgSet*
 
virtual double UpperLimitTailFraction(RooRealVar ¶m)
determine upper limit of the lower confidence interval
 
virtual RooNDKeysPdf * GetPosteriorKeysPdf()
Get a clone of the keys pdf of the posterior.
 
virtual double UpperLimitByHist(RooRealVar ¶m)
determine upper limit using histogram
 
virtual double UpperLimitByKeys(RooRealVar ¶m)
determine upper limit in the shortest interval by using keys pdf
 
virtual Int_t GetDimension() const
Get the number of parameters of interest in this interval.
 
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.
 
virtual double NLL(Int_t i) const
get the NLL value of entry at position i
 
virtual const RooArgSet * Get(Int_t i) const
get the entry at position i
 
virtual double Weight() const
get the weight of the current (last indexed) entry
 
virtual Int_t Size() const
get the number of steps in the chain
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
 
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
 
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
virtual void Set(Int_t nbins, Double_t xmin, Double_t xmax)
Initialize axis with fix bins.
 
A TGraph is an object made of two arrays X and Y with npoints each.
 
void Draw(Option_t *chopt="") override
Draw this graph with its current attributes.
 
TAxis * GetXaxis() const
Get x axis of the graph.
 
TAxis * GetYaxis() const
Get y axis of the graph.
 
void SetTitle(const char *title="") override
Change (i.e.
 
1-D histogram with a float per channel (see TH1 documentation)}
 
virtual Double_t GetBinCenter(Int_t bin) const
Return bin center for 1D histogram.
 
void SetTitle(const char *title) override
Change (i.e.
 
virtual Int_t GetNbinsX() const
 
virtual void SetBinError(Int_t bin, Double_t error)
Set the bin Error Note that this resets the bin eror option to be of Normal Type and for the non-empt...
 
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
 
void Draw(Option_t *option="") override
Draw this histogram with options.
 
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
 
virtual Int_t GetMaximumBin() const
Return location of bin with maximum value in the range.
 
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
 
virtual void SetContour(Int_t nlevels, const Double_t *levels=nullptr)
Set the number and values of contour levels.
 
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
 
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
 
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
 
2-D histogram with a float per channel (see TH1 documentation)}
 
Use the TLine constructor to create a simple line.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
 
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
 
const char * Data() const
 
TString & Append(const char *cs)
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
RooCmdArg YVar(const RooAbsRealLValue &var, const RooCmdArg &arg=RooCmdArg::none())
 
RooCmdArg Scaling(bool flag)
 
RooCmdArg FillColor(Color_t color)
 
RooCmdArg DrawOption(const char *opt)
 
RooCmdArg Range(const char *rangeName, bool adjustNorm=true)
 
RooCmdArg Normalization(double scaleFactor)
 
Namespace for the RooStats classes.