36#define NaN std::numeric_limits<float>::quiet_NaN() 
   38#define IsNaN(a) TMath::IsNaN(a) 
  106      coutW(Plotting) << 
"Empty sampling distribution given to plot. Skipping." << endl;
 
  125      coutW(Plotting) << 
"Could not determine xmin and xmax of sampling distribution that was given to plot." << endl;
 
  134   double xlow = 
xmin - 1.5*binWidth;
 
  135   double xup  = 
xmax + 1.5*binWidth;
 
  147   for (
int w_idx = 0; valuesIt != 
fSamplingDistr.end(); ++valuesIt, ++w_idx) {
 
  154   double weightSum = 1.0;
 
  186      coutW(Plotting) << 
"Empty sampling distribution given to plot. Skipping." << endl;
 
  196   for (
int i=0; i<shaded->
GetNbinsX(); ++i) {
 
  264    std::cerr << 
fName << 
"::addObject: called with a null pointer" << std::endl;
 
  282     coutE(InputArguments) << 
fName << 
"::addOtherObject: called with a null pointer" << std::endl;
 
  299   double theMin(0.), theMax(0.), theYMin(
NaN), theYMax(0.);
 
  317     coutE(InputArguments) << 
"invalid variable to plot" << std::endl;
 
  321   if( !
IsNaN(theYMax) ) {
 
  325   if( !
IsNaN(theYMin) ) {
 
  330   for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  334      if( !
IsNaN(theYMax) ) {
 
  338      if( !
IsNaN(theYMin) ) {
 
  355      if(!
fApplyStyle) 
coutW(Plotting) << 
"gStyle will be changed to adjust SetOptLogx(...)" << endl;
 
  359      if(!
fApplyStyle) 
coutW(Plotting) << 
"gStyle will be changed to adjust SetOptLogy(...)" << endl;
 
  405  for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  406    if(obj->GetXaxis()->GetXmin() < tmpmin) tmpmin = obj->GetXaxis()->GetXmin();
 
  407    if(obj->GetXaxis()->GetXmax() > tmpmax) tmpmax = obj->GetXaxis()->GetXmax();
 
  408    if(obj->GetMaximum() > tmpYmax) tmpYmax = obj->GetMaximum() + 0.1*obj->GetMaximum();
 
  423   if (samplDist == 0) {
 
  427      shadedName += 
"_shaded";
 
  429      for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  430         if (!strcmp(obj->GetName(), shadedName.
Data())) {
 
  431            obj->SetLineColor(color);
 
  432            obj->SetFillColor(color);
 
  439      shadedName += 
"_shaded";
 
  441      for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  442         if (!strcmp(obj->GetName(), samplDist->
GetName())) {
 
  443            obj->SetLineColor(color);
 
  446         if (!strcmp(obj->GetName(), shadedName.
Data())) {
 
  447            obj->SetLineColor(color);
 
  448            obj->SetFillColor(color);
 
  465    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  466      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  467   obj->SetLineWidth(lwidth);
 
  484    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  485      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  486   obj->SetLineStyle(
style);
 
  503    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  504      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  505   obj->SetMarkerStyle(
style);
 
  522    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  523      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  524   obj->SetMarkerColor(color);
 
  541    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  542      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  543   obj->SetMarkerSize(
size);
 
  556  if(samplDist == 
nullptr){
 
  559    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  560      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  577    for(
auto * obj : static_range_cast<TH1F*>(
fItems)) {
 
  578      if(!strcmp(obj->GetName(),samplDist->
GetName())){
 
  579   obj->
Rebin(rebinFactor);
 
  595      cout << 
"Plot was not drawn yet. Dump can only be saved after it was drawn with Draw()." << endl;
 
  599   TFile ofile(RootFileName, 
option, ftitle, compress);
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
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 y2
 
Option_t Option_t TPoint TPoint const char y1
 
R__EXTERN TStyle * gStyle
 
RooPlot * frame(const RooCmdArg &arg1, 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
Create a new RooPlot on the heap with a drawing frame initialized for this object,...
 
void SetTitle(const char *name) override
Set the title of the RooPlot to 'title'.
 
void addObject(TObject *obj, Option_t *drawOptions="", bool invisible=false)
Add a generic object to this plot.
 
void addTH1(TH1 *hist, Option_t *drawOptions="", bool invisible=false)
Add a TH1 histogram object to this plot.
 
virtual void SetMinimum(double minimum=-1111)
Set minimum value of Y axis.
 
static bool addDirectoryStatus()
Query whether new instances of RooPlot will add themselves to gDirectory.
 
virtual void SetMaximum(double maximum=-1111)
Set maximum value of Y axis.
 
void Draw(Option_t *options=nullptr) override
Draw this plot and all of the elements it contains.
 
static bool setAddDirectoryStatus(bool flag)
Configure whether new instances of RooPlot will add themselves to gDirectory.
 
RooRealVar represents a variable that can be changed from the outside.
 
This class provides simple and straightforward utilities to plot SamplingDistribution objects.
 
void SetSampleWeights(const SamplingDistribution *samplingDist)
Determine if the sampling distribution has weights and store them.
 
TList fItems
holds TH1Fs only
 
void DumpToFile(const char *RootFileName, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
write to Root file
 
void RebinDistribution(Int_t rebinFactor, const SamplingDistribution *samplDist=nullptr)
 
~SamplingDistPlot() override
Destructor of SamplingDistribution.
 
void Draw(Option_t *options=nullptr) override
Draw this plot and all of the elements it contains.
 
void GetAbsoluteInterval(double &theMin, double &theMax, double &theYMax) const
 
void SetLineWidth(Width_t lwidth, const SamplingDistribution *samplDist=nullptr)
 
void SetLineStyle(Style_t style, const SamplingDistribution *samplDist=nullptr)
 
double AddSamplingDistributionShaded(const SamplingDistribution *samplingDist, double minShaded, double maxShaded, Option_t *drawOptions="NORMALIZE HIST")
Like AddSamplingDistribution, but also sets a shaded area in the minShaded and maxShaded boundaries.
 
void SetMarkerColor(Color_t color, const SamplingDistribution *samplDist=nullptr)
 
std::vector< double > fSampleWeights
 
void AddLine(double x1, double y1, double x2, double y2, const char *title=nullptr)
add a line
 
void SetLineColor(Color_t color, const SamplingDistribution *samplDist=nullptr)
Sets line color for given sampling distribution and fill color for the associated shaded TH1F.
 
void ApplyDefaultStyle(void)
Applies a predefined style if fApplyStyle is true (default).
 
void AddTH1(TH1 *h, Option_t *drawOptions="")
add a TH1
 
std::vector< double > fSamplingDistr
 
void AddTF1(TF1 *f, const char *title=nullptr, Option_t *drawOptions="SAME")
add a TF1
 
double AddSamplingDistribution(const SamplingDistribution *samplingDist, Option_t *drawOptions="NORMALIZE HIST")
adds the sampling distribution and returns the scale factor
 
void addOtherObject(TObject *obj, Option_t *drawOptions=nullptr)
Add a generic object to this plot.
 
void addObject(TObject *obj, Option_t *drawOptions=nullptr)
Add a generic object to this plot.
 
void SetMarkerSize(Size_t size, const SamplingDistribution *samplDist=nullptr)
 
TH1F * GetTH1F(const SamplingDistribution *samplDist=nullptr)
Returns the TH1F associated with the give SamplingDistribution.
 
SamplingDistPlot(Int_t nbins=100)
Constructors for SamplingDistribution.
 
void SetXRange(double mi, double ma)
change x range
 
void SetMarkerStyle(Style_t style, const SamplingDistribution *samplDist=nullptr)
 
TList fOtherItems
other objects to be drawn like TLine etc.
 
This class simply holds a sampling distribution of some test statistic.
 
const std::vector< double > & GetSampleWeights() const
Get the sampling weights.
 
const TString GetVarName() const
 
const std::vector< double > & GetSamplingDistribution() const
Get test statistics values.
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
 
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 void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
 
Bool_t cd() override
Change current directory to "this" directory.
 
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
 
void Close(Option_t *option="") override
Close a file.
 
1-D histogram with a float per channel (see TH1 documentation)}
 
TH1 is the base class of all histogram classes in ROOT.
 
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
 
virtual Double_t GetBinCenter(Int_t bin) const
Return bin center for 1D histogram.
 
Option_t * GetOption() const override
 
virtual Int_t GetNbinsX() const
 
virtual void SetMaximum(Double_t maximum=-1111)
 
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
 
virtual void SetMinimum(Double_t minimum=-1111)
 
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
 
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 TH1 * Rebin(Int_t ngroup=2, const char *newname="", const Double_t *xbins=nullptr)
Rebin this histogram.
 
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 Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
 
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
 
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
 
Use the TLine constructor to create a simple line.
 
void Add(TObject *obj) override
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
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 TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
 
virtual Option_t * GetOption() const
 
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
 
virtual const char * GetTitle() const
Returns title of object.
 
virtual void SetBorderSize(Int_t bordersize=4)
 
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
void ToUpper()
Change string to upper case.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
void SetPadBorderMode(Int_t mode=1)
 
void SetOptLogx(Int_t logx=1)
 
void SetCanvasColor(Color_t color=19)
 
void SetCanvasBorderMode(Int_t mode=1)
 
void SetFrameFillStyle(Style_t styl=0)
 
void SetFrameBorderMode(Int_t mode=1)
 
void SetOptLogy(Int_t logy=1)
 
void SetPaperSize(EPaperSize size)
Set paper size for PostScript output.
 
void SetStatColor(Color_t color=19)
 
void SetPadColor(Color_t color=19)
 
Namespace for the RooStats classes.
 
Double_t Infinity()
Returns an infinity as defined by the IEEE standard.