125 const char* title,
bool scale)
131 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawPosteriorHist: "
132 <<
"Couldn't get posterior histogram." << std::endl;
169 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawPosteriorKeysPdf: "
170 <<
"Couldn't get posterior Keys PDF." << std::endl;
180 if (frame ==
nullptr) {
181 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawPosteriorKeysPdf: "
182 <<
"Invalid parameter" << std::endl;
186 frame->
SetTitle((
"Posterior Keys PDF for " + std::string(
v->GetName())).c_str());
203 Form(
"MCMC histogram of posterior Keys PDF for %s, %s",
228 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawInterval(): " <<
229 "Interval type not supported" << std::endl;
273 frame->
GetYaxis()->
SetTitle((
"Posterior for parameter " + std::string(
p->GetName())).c_str());
289 frame->
Draw(options);
305 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawKeysPdfInterval: "
306 <<
"Couldn't get posterior Keys PDF." << std::endl;
338 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawKeysPdfInterval: "
339 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported" << std::endl;
360 if (hist ==
nullptr)
return;
366 hist->
GetYaxis()->
SetTitle((
"Posterior for parameter " + std::string(
p->GetName())).c_str());
374 for (i = 1; i <= nBins; i++) {
390 copy->
Draw(
"HIST SAME");
408 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawHistInterval: "
409 <<
"Couldn't get posterior histogram." << std::endl;
438 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawHistInterval: "
439 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported" << std::endl;
458 if (hist ==
nullptr)
return;
472 for (i = 1; i <= nBins; i++) {
487 copy->
Draw(
"hist same");
499 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawTailFractionInterval: "
500 <<
" Sorry: " <<
fDimension <<
"-D plots not currently supported"
513 coutE(InputArguments) <<
"MCMCIntervalPlot::DrawPosteriorKeysProduct: "
514 <<
"Couldn't get posterior Keys product." << std::endl;
525 if (!frame)
return nullptr;
527 frame->
SetTitle(
Form(
"Posterior Keys PDF * Heaviside product for %s",
535 frame->
Draw(options);
544 Form(
"MCMC Posterior Keys Product Hist. for %s, %s",
599 walk->SetTitle(
Form(
"2-D Scatter Plot of Markov chain for %s, %s",
606 walk->GetXaxis()->SetTitle(
xVar.GetName());
608 walk->GetYaxis()->SetTitle(
yVar.GetName());
610 walk->SetMarkerStyle(6);
612 walk->Draw(
"A,L,P,same");
618 burnIn->SetMarkerStyle(6);
628 first->
Draw(
"L,P,same");
647 double*
value =
new double[numEntries];
648 double* time =
new double[numEntries];
656 value[2*i + 1] = val;
671 paramGraph->GetXaxis()->SetTitle(
"Time (discrete steps)");
687 double*
nllValue =
new double[numEntries];
688 double* time =
new double[numEntries];
707 nllGraph->SetTitle(
"NLL value vs. time in Markov chain");
711 nllGraph->GetXaxis()->SetTitle(
"Time (discrete steps)");
712 nllGraph->GetYaxis()->SetTitle(
"NLL (-log(likelihood))");
734 fNLLHist =
new TH1F(
"mcmc_nll_hist",
"MCMC NLL Histogram",
770 // 3-d plot of the parameter points
772 // also plot the points in the markov chain
773 RooDataSet* markovChainData = ((MCMCInterval*)mcmcint)->GetChainAsDataSet();
775 TTree& chain = ((RooTreeDataStore*) markovChainData->store())->tree();
776 chain.SetMarkerStyle(6);
777 chain.SetMarkerColor(kRed);
778 chain.Draw("s:ratioSigEff:ratioBkgEff","","box"); // 3-d box proportional to posterior
780 // the points used in the profile construction
781 TTree& parameterScan = ((RooTreeDataStore*) fc.GetPointsToScan()->store())->tree();
782 parameterScan.SetMarkerStyle(24);
783 parameterScan.Draw("s:ratioSigEff:ratioBkgEff","","same");
785 chain.SetMarkerStyle(6);
786 chain.SetMarkerColor(kRed);
787 //chain.Draw("s:ratioSigEff:ratioBkgEff", "_MarkovChain_local_nll","box");
788 //chain.Draw("_MarkovChain_local_nll");
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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.
RooAbsArg * first() const
RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}, const RooCmdArg &arg9={}, const RooCmdArg &arg10={}) const override
Helper calling plotOn(RooPlot*, RooLinkedList&) const.
virtual Int_t getBins(const char *name=nullptr) const
Get number of bins of currently defined range.
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...
virtual RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}, const RooCmdArg &arg9={}, const RooCmdArg &arg10={}) const
Plot (project) PDF on specified frame.
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.
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.
Variable that can be changed from the outside.
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)
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 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 SetMarkerSize(Size_t msize=1)
Set the marker size.
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.
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/set the title.
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.
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
RooCmdArg YVar(const RooAbsRealLValue &var, const RooCmdArg &arg={})
RooCmdArg Scaling(bool flag)
RooCmdArg FillColor(TColorNumber color)
RooCmdArg DrawOption(const char *opt)
RooCmdArg Range(const char *rangeName, bool adjustNorm=true)
RooCmdArg Normalization(double scaleFactor)
Namespace for the RooStats classes.