69MCMCIntervalPlot::MCMCIntervalPlot()
169 const char* title,
Bool_t scale)
176 <<
"Couldn't get posterior histogram." << endl;
214 <<
"Couldn't get posterior Keys PDF." << endl;
226 <<
"Invalid parameter" << endl;
230 frame->
SetTitle(
Form(
"Posterior Keys PDF for %s",
v->GetName()));
246 Form(
"MCMC histogram of posterior Keys PDF for %s, %s",
251 keysHist->
Draw(options);
271 "Interval type not supported" << endl;
330 frame->
Draw(options);
339 llLine->
Draw(options);
340 ulLine->
Draw(options);
347 <<
"Couldn't get posterior Keys PDF." << endl;
379 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported" << endl;
400 if (hist == NULL)
return;
414 for (i = 1; i <= nBins; i++) {
417 if (height < histCutoff) {
430 copy->
Draw(
"HIST SAME");
440 llLine->
Draw(options);
441 ulLine->
Draw(options);
449 <<
"Couldn't get posterior histogram." << endl;
478 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported" << endl;
497 if (hist == NULL)
return;
510 for (i = 1; i <= nBins; i++) {
513 if (center < ll || center > ul) {
525 copy->
Draw(
"hist same");
534 llLine->
Draw(options);
535 ulLine->
Draw(options);
538 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported"
552 <<
"Couldn't get posterior Keys product." << endl;
563 if (!frame)
return NULL;
565 frame->
SetTitle(
Form(
"Posterior Keys PDF * Heaviside product for %s",
572 frame->
Draw(options);
581 Form(
"MCMC Posterior Keys Product Hist. for %s, %s",
585 productHist->
Draw(options);
609 if (burnInSteps > 0) {
610 burnInX =
new Double_t[burnInSteps];
611 burnInY =
new Double_t[burnInSteps];
616 for (
Int_t i = burnInSteps; i < size; i++) {
621 for (
Int_t i = 0; i < burnInSteps; i++) {
634 walk->
SetTitle(
Form(
"2-D Scatter Plot of Markov chain for %s, %s",
646 walk->
Draw(
"A,L,P,same");
649 if (burnInX != NULL && burnInY != NULL) {
650 burnIn =
new TGraph(burnInSteps - 1, burnInX, burnInY);
654 burnIn->
Draw(
"L,P,same");
659 first->SetMarkerStyle(3);
660 first->SetMarkerSize(2);
662 first->Draw(
"L,P,same");
667 if (burnInX != NULL)
delete [] burnInX;
668 if (burnInY != NULL)
delete [] burnInY;
680 Int_t numEntries = 2 * size;
686 for (
Int_t i = 0; i < size; i++) {
690 value[2*i + 1] = val;
699 TGraph* paramGraph =
new TGraph(numEntries, time, value);
707 paramGraph->
Draw(
"A,L,same");
719 Int_t numEntries = 2 * size;
725 for (
Int_t i = 0; i < size; i++) {
726 nll = markovChain->
NLL(i);
729 nllValue[2*i + 1] = nll;
738 TGraph* nllGraph =
new TGraph(numEntries, time, nllValue);
740 nllGraph->
SetTitle(
"NLL value vs. time in Markov chain");
746 nllGraph->
Draw(
"A,L,same");
761 for (
Int_t i = 0; i < size; i++)
762 if (markovChain->
NLL(i) > maxNLL)
763 maxNLL = markovChain->
NLL(i);
765 fNLLHist =
new TH1F(
"mcmc_nll_hist",
"MCMC NLL Histogram",
772 for (
Int_t i = 0; i < size; i++)
787 for (
Int_t i = 0; i < size; i++)
788 if (markovChain->
Weight(i) > maxWeight)
789 maxWeight = markovChain->
Weight(i);
791 (
Int_t)(maxWeight + 1), 0, maxWeight * 1.02);
792 for (
Int_t i = 0; i < size; i++)
800 // 3-d plot of the parameter points
802 // also plot the points in the markov chain
803 RooDataSet* markovChainData = ((MCMCInterval*)mcmcint)->GetChainAsDataSet();
805 TTree& chain = ((RooTreeDataStore*) markovChainData->store())->tree();
806 chain.SetMarkerStyle(6);
807 chain.SetMarkerColor(kRed);
808 chain.Draw("s:ratioSigEff:ratioBkgEff","","box"); // 3-d box proportional to posterior
810 // the points used in the profile construction
811 TTree& parameterScan = ((RooTreeDataStore*) fc.GetPointsToScan()->store())->tree();
812 parameterScan.SetMarkerStyle(24);
813 parameterScan.Draw("s:ratioSigEff:ratioBkgEff","","same");
815 chain.SetMarkerStyle(6);
816 chain.SetMarkerColor(kRed);
817 //chain.Draw("s:ratioSigEff:ratioBkgEff", "_MarkovChain_local_nll","box");
818 //chain.Draw("_MarkovChain_local_nll");
char * Form(const char *fmt,...)
RooAbsArg * first() const
virtual 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
Helper calling plotOn(RooPlot*, RooLinkedList&) const.
virtual Double_t getMax(const char *name=0) const
Get maximum of currently defined range.
virtual Int_t numBins(const char *rangeName=0) const
virtual Int_t getBins(const char *name=0) const
Get number of bins of currently defined range.
virtual Double_t getMin(const char *name=0) const
Get miniminum 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(const char *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.
Double_t getRealValue(const char *name, Double_t defVal=0, Bool_t verbose=kFALSE) const
Get value of a RooAbsReal stored in set with given name.
A RooPlot is a plot frame and a container for graphics objects within that frame.
void SetTitle(const char *name)
Set the title of the RooPlot to 'title'.
virtual void Draw(Option_t *options=0)
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 DrawWeightHist(const Option_t *options=NULL)
void DrawKeysPdfInterval(const Option_t *options=NULL)
void DrawInterval(const Option_t *options=NULL)
RooProduct * fPosteriorKeysProduct
void * DrawPosteriorHist(const Option_t *options=NULL, const char *title=NULL, Bool_t scale=kTRUE)
void DrawChainScatter(RooRealVar &xVar, RooRealVar &yVar)
void * DrawPosteriorKeysProduct(const Option_t *options=NULL)
TH1 * fPosteriorHistTFCopy
TH1 * fPosteriorHistHistCopy
void SetMCMCInterval(MCMCInterval &interval)
void * DrawPosteriorKeysPdf(const Option_t *options=NULL)
void DrawTailFractionInterval(const Option_t *options=NULL)
void DrawPosterior(const Option_t *options=NULL)
void DrawHistInterval(const Option_t *options=NULL)
void DrawShortestInterval(const Option_t *options=NULL)
void DrawParameterVsTime(RooRealVar ¶m)
virtual ~MCMCIntervalPlot()
Destructor of SamplingDistribution.
RooNDKeysPdf * fPosteriorKeysPdf
void DrawNLLHist(const Option_t *options=NULL)
void Draw(const Option_t *options=NULL)
MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface.
virtual Double_t UpperLimitByKeys(RooRealVar ¶m)
determine upper limit in the shortest interval by using keys pdf
virtual Bool_t GetUseKeys()
get whether we used kernel estimation to determine the interval
virtual enum IntervalType GetIntervalType()
Return the type of this interval.
virtual TH1 * GetPosteriorHist()
set the number of bins to use (same for all axes, for now) virtual void SetNumBins(Int_t numBins);
virtual Double_t LowerLimitByKeys(RooRealVar ¶m)
determine lower limit in the shortest interval by using keys pdf
virtual Double_t GetHistCutoff()
get the cutoff bin height for being considered in the confidence interval
virtual Double_t UpperLimitTailFraction(RooRealVar ¶m)
determine upper limit of the lower confidence interval
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_t GetKeysPdfCutoff()
get the cutoff RooNDKeysPdf value for being considered in the confidence interval
virtual Double_t LowerLimitTailFraction(RooRealVar ¶m)
determine lower limit of the lower confidence interval
virtual RooProduct * GetPosteriorKeysProduct()
Get a clone of the (keyspdf * heaviside) product of the posterior.
virtual Double_t UpperLimitByHist(RooRealVar ¶m)
determine upper limit using histogram
virtual Double_t LowerLimitByHist(RooRealVar ¶m)
determine lower limit using histogram
virtual RooNDKeysPdf * GetPosteriorKeysPdf()
Get a clone of the keys pdf of the posterior.
virtual Int_t GetDimension() const
Get the number of parameters of interest in this interval.
Double_t GetKeysMax()
Determine the approximate maximum value of the Keys PDF.
virtual RooArgSet * GetParameters() const
return a set containing the parameters of this interval the caller owns the returned RooArgSet*
Stores the steps in a Markov Chain of points.
virtual Double_t Weight() const
get the weight of the current (last indexed) entry
virtual Double_t 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 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 Graph is a graphics object made of two arrays X and Y with npoints each.
virtual void SetTitle(const char *title="")
Change (i.e.
virtual void Draw(Option_t *chopt="")
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.
1-D histogram with a float per channel (see TH1 documentation)}
virtual void SetTitle(const char *title)
See GetStatOverflows for more information.
virtual Double_t GetBinCenter(Int_t bin) const
Return bin center for 1D histogram.
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
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.
virtual void SetContour(Int_t nlevels, const Double_t *levels=0)
Set the number and values of contour levels.
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 void Draw(Option_t *option="")
Draw this histogram with options.
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 Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
2-D histogram with a float per channel (see TH1 documentation)}
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual const char * GetTitle() const
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 Scaling(Bool_t flag)
RooCmdArg YVar(const RooAbsRealLValue &var, const RooCmdArg &arg=RooCmdArg::none())
RooCmdArg DrawOption(const char *opt)
RooCmdArg FillColor(Color_t color)
RooCmdArg Range(const char *rangeName, Bool_t adjustNorm=kTRUE)
RooCmdArg Normalization(Double_t scaleFactor)
Namespace for the RooStats classes.