53 TNamed( results->GetName(), results->GetTitle() ),
84 enum Mode_t { Default, CLb, CLsPlusb, CLs };
85 Mode_t
type = Default;
87 else if (
option.Contains(
"CLS+B") ||
option.Contains(
"CLSPLUSB"))
type = CLsPlusb;
93 std::vector<unsigned int>
index(nEntries);
97 std::vector<double> xArray;
98 std::vector<double> yArray;
99 std::vector<double> yErrArray;
101 for (
int i=0; i<nEntries; i++) {
104 if (
type == Default) {
107 }
else if (
type == CLb) {
110 }
else if (
type == CLsPlusb) {
113 }
else if (
type == CLs) {
118 if (CLVal < 0. || !std::isfinite(CLVal)) {
119 Warning(
"HypoTestInverterPlot::MakePlot",
"Got a confidence level of %f at x=%f (failed fit?). Skipping this point.", CLVal,
fResults->
GetXValue(
index[i]));
123 yArray.push_back(CLVal);
124 yErrArray.push_back(CLErr);
130 if (
type == CLb ) pValueName =
"CLb";
135 graph->SetTitle(title);
136 graph->SetMarkerStyle(20);
137 graph->SetLineWidth(2);
152 bool doFirstBand = (nsig1 > 0);
153 bool doSecondBand = (nsig2 > nsig1);
155 nsig1 = std::abs(nsig1);
156 nsig2 = std::abs(nsig2);
159 std::vector<unsigned int>
index(nEntries);
171 if (nsig1 -
int(nsig1) < 0.01) {
179 if (nsig2 -
int(nsig2) < 0.01) {
195 for (
int j=0; j<nEntries; ++j) {
201 if (resultIsAsymptotic) {
203 double dsig = 2* maxSigma/ (values.size() -1) ;
216 double *
x =
const_cast<double *
>(&values[0]);
280 bool drawAxis = !
option.Contains(
"SAME");
281 bool drawObs =
option.Contains(
"OBS") || !
option.Contains(
"EXP");
282 bool drawExp =
option.Contains(
"EXP") || !
option.Contains(
"OBS");
283 bool drawCLb =
option.Contains(
"CLB");
284 bool draw2CL =
option.Contains(
"2CL");
297 else gobs->
Draw(
"PL");
305 if (drawAxis && !drawObs) {
364 double verticalSize = (gexp || draw2CL || drawCLb ) ? 0.3 : 0.15;
365 double y1 = y0 + verticalSize;
367 if (gobs)
l->AddEntry(gobs,
"",
"PEL");
368 if (gclsb)
l->AddEntry(gclsb,
"",
"PEL");
369 if (gcls)
l->AddEntry(gcls,
"",
"PEL");
370 if (gclb)
l->AddEntry(gclb,
"",
"PEL");
374 for (
int i = ngraphs-1; i>=0; --i) {
377 if (i == ngraphs-1) lopt =
"L";
378 if (obj)
l->AddEntry(obj,
"",lopt);
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Option_t Option_t TPoint TPoint const char y1
Common abstract base class for objects that represent a value and a "shape" in RooFit.
RooAbsArg * first() const
Class to plot a HypoTestInverterResult, the output of the HypoTestInverter calculator.
HypoTestInverterResult * fResults
void Draw(Option_t *opt="") override
Draw the scan result in the current canvas Possible options: "" (default): draw observed + expected w...
SamplingDistPlot * MakeTestStatPlot(int index, int type=0, int nbins=100)
Plot the test statistic distributions.
~HypoTestInverterPlot() override
destructor
HypoTestInverterPlot(HypoTestInverterResult *results)
constructor
TMultiGraph * MakeExpectedPlot(double sig1=1, double sig2=2)
Make the expected plot and the bands nsig1 and nsig2 indicates the n-sigma value for the bands if nsi...
TGraphErrors * MakePlot(Option_t *opt="")
return a TGraphErrors with the obtained observed p-values resultinf from the scan By default (Option ...
HypoTestInverterResult class holds the array of hypothesis test results and compute a confidence inte...
double GetYValue(int index) const
function to return the value of the confidence level for the i^th entry in the results
SamplingDistribution * GetSignalAndBackgroundTestStatDist(int index) const
get the signal and background test statistic distribution
int ArraySize() const
number of entries in the results array
std::vector< double > fXValues
double CLsplusbError(int index) const
return the observed CLsplusb value for the i-th entry
double CLsError(int index) const
return the observed CLb value for the i-th entry
double CLbError(int index) const
return the observed CLb value for the i-th entry
double GetXValue(int index) const
function to return the value of the parameter of interest for the i^th entry in the results
static double fgAsymptoticMaxSigma
max sigma value used to scan asymptotic expected p values
double CLs(int index) const
return the observed CLb value for the i-th entry
double GetYError(int index) const
function to return the estimated error on the value of the confidence level for the i^th entry in the...
double CLb(int index) const
return the observed CLb value for the i-th entry
TList fYObjects
list of HypoTestResult for each point
SamplingDistribution * GetExpectedPValueDist(int index) const
return expected distribution of p-values (Cls or Clsplusb)
double CLsplusb(int index) const
return the observed CLsplusb value for the i-th entry
SamplingDistribution * GetNullTestStatDist(int index) const
same in terms of alt and null
SamplingDistribution * GetAltTestStatDist(int index) const
SamplingDistribution * GetBackgroundTestStatDist(int index) const
get the background test statistic distribution
This class provides the plots for the result of a study performed with any of the HypoTestCalculatorG...
HypoTestResult is a base class for results from hypothesis tests.
This class provides simple and straightforward utilities to plot SamplingDistribution objects.
double AddSamplingDistribution(const SamplingDistribution *samplingDist, Option_t *drawOptions="NORMALIZE HIST")
adds the sampling distribution and returns the scale factor
This class simply holds a sampling distribution of some test statistic.
const std::vector< double > & GetSamplingDistribution() const
Get test statistics values.
RooArgSet fParameters
set containing the parameter of interest
double ConfidenceLevel() const override
return the confidence interval
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetLineStyle(Style_t lstyle)
Set the line 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 Int_t GetSize() const
Return the capacity of the collection, i.e.
TGraph with asymmetric error bars.
virtual void SetPointEYlow(Int_t i, Double_t eyl)
Set EYlow for point i.
virtual void SetPointEYhigh(Int_t i, Double_t eyh)
Set EYhigh for point i.
A TGraphErrors is a TGraph with error bars.
A TGraph is an object made of two arrays X and Y with npoints each.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
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.
virtual TH1F * GetHistogram() const
Returns a pointer to the histogram used to draw the axis Takes into account the two following cases.
void SetTitle(const char *title="") override
Change (i.e.
void SetTitle(const char *title) override
Change/set the title.
This class displays a legend box (TPaveText) containing several legend entries.
Use the TLine constructor to create a simple line.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
A TMultiGraph is a collection of TGraph (or derived) objects.
TList * GetListOfGraphs() const
TH1F * GetHistogram()
Returns a pointer to the histogram used to draw the axis.
void Draw(Option_t *chopt="") override
Draw this multigraph with its current attributes.
The TNamed class is the base class for all named ROOT classes.
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.
Mother of all ROOT objects.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
double normal_cdf(double x, double sigma=1, double x0=0)
Cumulative distribution function of the normal (Gaussian) distribution (lower tail).
Namespace for the RooStats classes.
void SortItr(Iterator first, Iterator last, IndexIterator index, Bool_t down=kTRUE)
Sort the n1 elements of the Short_t array defined by its iterators.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.
void Quantiles(Int_t n, Int_t nprob, Double_t *x, Double_t *quantiles, Double_t *prob, Bool_t isSorted=kTRUE, Int_t *index=nullptr, Int_t type=7)
Computes sample quantiles, corresponding to the given probabilities.