86RooPlot::RooPlot() : _hist(0), _plotVarClone(0), _plotVarSet(0), _normVars(0), _normObj(0), _dir(0)
98 _hist(0), _items(), _plotVarClone(0), _plotVarSet(0), _normObj(0),
99 _defYmin(1
e-5), _defYmax(1), _dir(0)
117 _hist(0), _items(), _plotVarClone(0),
118 _plotVarSet(0), _normObj(0), _defYmin(1
e-5), _defYmax(0), _dir(0)
137 _plotVarClone(0), _plotVarSet(0), _normObj(0), _defYmin(1
e-5), _defYmax(0), _dir(0)
145 coutE(InputArguments) <<
"RooPlot::RooPlot: cannot create plot for variable without finite limits: "
150 coutE(InputArguments) <<
"RooPlot::RooPlot: cannot create plot for variable without finite limits: "
169 _hist(0), _items(), _plotVarClone(0),
170 _plotVarSet(0), _normObj(0), _defYmin(1
e-5), _defYmax(0), _dir(0)
191 _plotVarClone(0), _plotVarSet(0), _normObj(0), _defYmin(1
e-5), _defYmax(1), _dir(0)
217 _plotVarClone(0), _plotVarSet(0), _normObj(0), _defYmin(1
e-5), _defYmax(1), _dir(0)
231 TString title(
"A RooPlot of \"");
271 for(
int i=0; i<nbins; ++i){
283 TString title(
"A RooPlot of \"");
425 coutE(InputArguments) <<
fName <<
"::addObject: called with a null pointer" << endl;
444 coutE(InputArguments) <<
fName <<
"::addTH1: called with a null pointer" << endl;
449 coutE(InputArguments) <<
fName <<
"::addTH1: cannot plot histogram with "
475 if(
graph->GetXaxis()->IsAlphanumeric())
return;
481 std::vector<double>
x;
482 std::vector<double>
y;
493 for(
int i=0; i<
n; ++i){
499 std::map<int,double> minValues;
500 std::map<int,double> maxValues;
504 for(
int i=0; i<
n; ++i){
507 if(maxValues.find(bin)!=maxValues.end()){
508 maxValues[bin] = std::max(maxValues[bin],
y);
512 if(minValues.find(bin)!=minValues.end()){
513 minValues[bin] = std::min(minValues[bin],
y);
524 for(
auto it = maxValues.begin(); it != maxValues.end(); ++it){
528 for(
auto it = minValues.rbegin(); it != minValues.rend(); ++it){
542 if(
graph->GetXaxis()->IsAlphanumeric())
return;
549 for(
int i=0; i<
n; ++i){
550 if(
graph->GetPoint(i,
x,
y)!=i)
break;
581 coutE(InputArguments) <<
fName <<
"::add: cross-cast to TObject failed (nothing added)" << endl;
606 const TAxis* xa = ((
TH1*)hist)->GetXaxis() ;
621 if (!refreshNorm) return ;
628 coutI(Plotting) <<
"RooPlot::updateFitRangeNorm: New event count of " << rp->
getFitRangeNEvt()/corFac
629 <<
" will supercede previous event count of " <<
_normNumEvts <<
" for normalization of PDF projections" << endl ;
706 while((obj= _iterator->Next())) {
707 DrawOpt opt(_iterator->GetOption()) ;
744 os << IsA()->GetName() ;
771 while((obj= _iterator->Next())) {
803 os <<
indent <<
"RooPlot " <<
GetName() <<
" (" <<
GetTitle() <<
") has no associated plot variable" << endl ;
811 while((obj= _iterator->Next())) {
812 os << deeper <<
"[" << i++ <<
"] (Options=\"" << _iterator->GetOption() <<
"\") ";
838 coutE(InputArguments) <<
"RooPlot::nameOf(" <<
GetName() <<
") index " << idx <<
" out of range" << endl ;
854 coutE(InputArguments) <<
"RooPlot::getObject(" <<
GetName() <<
") index " << idx <<
" out of range" << endl ;
934 coutE(InputArguments) <<
"RooPlot::remove(" <<
GetName() <<
") ERROR: no object found with name " <<
name << endl ;
936 coutE(InputArguments) <<
"RooPlot::remove(" <<
GetName() <<
") ERROR: plot frame is empty, cannot remove last object" << endl ;
988 while((obj=iter->
Next())) {
990 (!clas || (obj->IsA()==clas))) {
997 coutE(InputArguments) <<
"RooPlot::findObject(" <<
GetName() <<
") cannot find object " << (
name?
name:
"<last>") << endl ;
1022 if(0 == link)
return kFALSE;
1037 if(0 == link)
return kFALSE;
1069 if(strlen(method)) {
1071 name.Append(method);
1116 coutE(InputArguments) <<
"RooPlot::chiSquare(" <<
GetName() <<
") cannot find curve" << endl ;
1123 coutE(InputArguments) <<
"RooPlot::chiSquare(" <<
GetName() <<
") cannot find histogram" << endl ;
1127 return curve->
chiSquare(*hist,nFitParam) ;
1143 coutE(InputArguments) <<
"RooPlot::residHist(" <<
GetName() <<
") cannot find curve" << endl ;
1150 coutE(InputArguments) <<
"RooPlot::residHist(" <<
GetName() <<
") cannot find histogram" << endl ;
1154 auto residhist = hist->
makeResidHist(*curve,normalize,useAverage);
1174 const char* extraOpt = strtok(0,
":") ;
1186 static char buf[128] ;
1187 strlcpy(buf,drawOptions,128) ;
1189 strlcat(buf,
":I",128) ;
1210 coutW(Plotting) <<
"RooPlot::getFitRangeNEvt(" <<
GetName() <<
") WARNING: Unable to obtain event count in range "
1211 << xlo <<
" to " << xhi <<
", substituting full event count" << endl ;
1356void RooPlot::Streamer(
TBuffer &R__b)
1379 _hist->TH1::Streamer(R__b);
1382 RooPrintable::Streamer(R__b);
1407 std::unique_ptr<TLegend>
leg(
new TLegend(0.5, 0.7, 0.9, 0.9));
1408 leg->SetBorderSize(0);
1409 leg->SetFillStyle(0);
static void indent(ostringstream &buf, int indent_level)
include TDocParser_001 C image html pict1_TDocParser_001 png width
char * Form(const char *fmt,...)
virtual Double_t binLow(Int_t bin) const =0
Int_t numBins() const
Return number of bins.
virtual Double_t binHigh(Int_t bin) const =0
virtual Double_t binCenter(Int_t bin) const =0
virtual Int_t binNumber(Double_t x) const =0
RooAbsArg * find(const char *name) const
Find object with given name in list.
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual Double_t getMax(const char *name=0) const
Get maximum of currently defined range.
Bool_t hasMax(const char *name=0) const
Check if variable has an upper bound.
virtual const RooAbsBinning & getBinning(const char *name=0, Bool_t verbose=kTRUE, Bool_t createOnTheFly=kFALSE) const =0
Retrive binning configuration with given name or default binning.
Bool_t hasMin(const char *name=0) const
Check if variable has a lower bound.
virtual Double_t getMin(const char *name=0) const
Get miniminum of currently defined range.
TString getTitle(Bool_t appendUnit=kFALSE) const
Return this variable's title string.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooArgSet * snapshot(bool deepCopy=true) const
Use RooAbsCollection::snapshot(), but return as RooArgSet.
A RooCurve is a one-dimensional graphical representation of a real-valued function.
Double_t chiSquare(const RooHist &hist, int nFitParam) const
Calculate the chi^2/NDOF of this curve with respect to the histogram 'hist' accounting nFitParam floa...
A RooHist is a graphical representation of binned data based on the TGraphAsymmErrors class.
RooHist * makeResidHist(const RooCurve &curve, bool normalize=false, bool useAverage=false) const
Create and return RooHist containing residuals w.r.t to given curve.
TObjOptLink * findLink(const char *name, const char *caller=0) const
Find the link corresponding to the named object in this list.
Bool_t moveAfter(const char *after, const char *target, const char *caller=0)
Move the target object immediately after the specified object, preserving any Option_t associated wit...
Bool_t moveBefore(const char *before, const char *target, const char *caller=0)
Move the target object immediately before the specified object, preserving any Option_t associated wi...
void initialize(const char *_rawOpt)
Initialize the DrawOpt helper class.
const char * rawOpt() const
Return the raw draw options.
A RooPlot is a plot frame and a container for graphics objects within that frame.
RooPlot()
Default constructor coverity[UNINIT_CTOR].
void SetAxisColor(Color_t color=1, Option_t *axis="X")
static Bool_t setAddDirectoryStatus(Bool_t flag)
Configure whether new instances of RooPlot will add themselves to gDirectory.
Bool_t drawAfter(const char *after, const char *target)
Change the order in which our contained objects are drawn so that the target object is drawn just aft...
void SetMarkerSize(Size_t msize=1)
const RooPlotable * _normObj
RooAbsRealLValue * _plotVarClone
RooHist * residHist(const char *histname=0, const char *pdfname=0, bool normalize=false, bool useAverage=true) const
Return a RooHist (derives from TGraphAsymErrors) containing the residuals of histogram 'histname' wit...
virtual void printTitle(std::ostream &os) const
Print frame title.
virtual Int_t defaultPrintContents(Option_t *opt) const
Define default print options, for a given print style.
static Bool_t _addDirStatus
non-persistent
Bool_t drawBefore(const char *before, const char *target)
Change the order in which our contained objects are drawn so that the target object is drawn just bef...
void SetMarkerColor(Color_t tcolor=1)
Double_t chiSquare(int nFitParam=0) const
Shortcut for RooPlot::chiSquare(const char* pdfname, const char* histname, int nFitParam=0)
virtual void printClassName(std::ostream &os) const
Print frame class name.
void SetContourLevel(Int_t level, Double_t value)
void SetXTitle(const char *title)
void SetFillColor(Color_t fcolor)
TAttMarker * getAttMarker(const char *name=0) const
Return a pointer to the marker attributes of the named object in this plot, or zero if the named obje...
void SetStats(Bool_t stats=kTRUE)
Like TH1::SetStats(), but statistics boxes are off by default in RooFit.
void SetNdivisions(Int_t n=510, Option_t *axis="X")
TString histName() const
Construct automatic name of internal TH1.
void updateYAxis(Double_t ymin, Double_t ymax, const char *label="")
Update our y-axis limits to accomodate an object whose spread in y is (ymin,ymax).
void SetMarkerStyle(Style_t mstyle=1)
void addObject(TObject *obj, Option_t *drawOptions="", Bool_t invisible=kFALSE)
Add a generic object to this plot.
TString getDrawOptions(const char *name) const
Return the Draw() options registered for the named object.
virtual void printArgs(std::ostream &os) const
Interface for printing of object arguments.
void SetDrawOption(Option_t *option="")
void SetZTitle(const char *title)
Double_t GetMinimum(Double_t minval=-FLT_MAX) const
void SetContour(Int_t nlevels, const Double_t *levels=0)
Double_t getFitRangeNEvt() const
Return the number of events in the fit range.
Double_t getPadFactor() const
void SetDirectory(TDirectory *dir)
Set the directory that this plot is associated to.
TAttFill * getAttFill(const char *name=0) const
Return a pointer to the fill attributes of the named object in this plot, or zero if the named object...
void SetTitle(const char *name)
Set the title of the RooPlot to 'title'.
virtual void printName(std::ostream &os) const
Print frame name.
void SetLabelOffset(Float_t offset=0.005, Option_t *axis="X")
void SetLineWidth(Width_t lwidth)
void SetTickLength(Float_t length=0.02, Option_t *axis="X")
virtual Stat_t GetBinContent(Int_t) const
A plot object is a frame without any bin contents of its own so this method always returns zero.
Double_t _normNumEvts
Pointer to normalization object ;.
TAttText * getAttText(const char *name=0) const
Return a pointer to the text attributes of the named object in this plot, or zero if the named object...
void SetLabelSize(Float_t size=0.02, Option_t *axis="X")
virtual void SetMinimum(Double_t minimum=-1111)
Set minimum value of Y axis.
void SetOption(Option_t *option=" ")
TObject * getObject(Int_t idx) const
Return the name of the object at slot 'idx' in this RooPlot.
void SetNameTitle(const char *name, const char *title)
Set the name and title of the RooPlot to 'name' and 'title'.
void SetName(const char *name)
Set the name of the RooPlot to 'name'.
void SetLabelFont(Style_t font=62, Option_t *axis="X")
void SetLineStyle(Style_t lstyle)
void setPadFactor(Double_t factor)
TAttLine * getAttLine(const char *name=0) const
Return a pointer to the line attributes of the named object in this plot, or zero if the named object...
void SetTitleFont(Style_t font=62, Option_t *axis="X")
void SetLineColor(Color_t lcolor)
void SetFillStyle(Style_t fstyle)
const char * nameOf(Int_t idx) const
Return the name of the object at slot 'idx' in this RooPlot.
Bool_t getInvisible(const char *name) const
Returns true of object with given name is set to be invisible.
void updateNormVars(const RooArgSet &vars)
Install the given set of observables are reference normalization variables for this frame.
RooPlot * emptyClone(const char *name)
Return empty clone of current RooPlot.
void SetMarkerAttributes()
Double_t GetMaximum(Double_t maxval=FLT_MAX) const
static RooPlot * frame(const RooAbsRealLValue &var, Double_t xmin, Double_t xmax, Int_t nBins)
Create a new frame for a given variable in x.
virtual ~RooPlot()
Destructor.
Bool_t setDrawOptions(const char *name, TString options)
Register the specified drawing options for the named object.
void SetLabelColor(Color_t color=1, Option_t *axis="X")
void addPlotable(RooPlotable *plotable, Option_t *drawOptions="", Bool_t invisible=kFALSE, Bool_t refreshNorm=kFALSE)
Add the specified plotable object to our plot.
void setInvisible(const char *name, Bool_t flag=kTRUE)
If flag is true object with 'name' is set to be invisible i.e.
void addTH1(TH1 *hist, Option_t *drawOptions="", Bool_t invisible=kFALSE)
Add a TH1 histogram object to this plot.
virtual void SetMaximum(Double_t maximum=-1111)
Set maximum value of Y axis.
void SetYTitle(const char *title)
TObject * findObject(const char *name, const TClass *clas=0) const
Find the named object in our list of items and return a pointer to it.
void Browse(TBrowser *b)
Plot RooPlot when double-clicked in browser.
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Frame detailed printing.
std::unique_ptr< TLegend > BuildLegend() const
Build a legend that contains all objects that have been drawn on the plot.
void updateFitRangeNorm(const TH1 *hist)
Update our plot normalization over our plot variable's fit range, which will be determined by the fir...
RooCurve * getCurve(const char *name=0) const
Return a RooCurve pointer of the named object in this plot, or zero if the named object does not exis...
void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
static Bool_t addDirectoryStatus()
Query whether new instances of RooPlot will add themselves to gDirectory.
virtual void Draw(Option_t *options=0)
Draw this plot and all of the elements it contains.
void SetBarOffset(Float_t offset=0.25)
void SetBarWidth(Float_t width=0.5)
Int_t GetNdivisions(Option_t *axis="X") const
void SetAxisRange(Double_t xmin, Double_t xmax, Option_t *axis="X")
TString caller(const char *method) const
Utility function.
void initialize()
Perform initialization that is common to all constructors.
static RooPlot * frameWithLabels(const RooAbsRealLValue &var)
Create a new frame for a given variable in x, adding bin labels.
void remove(const char *name=0, Bool_t deleteToo=kTRUE)
Remove object with given name, or last object added if no name is given.
void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
RooHist * getHist(const char *name=0) const
Return a RooCurve pointer of the named object in this plot, or zero if the named object does not exis...
virtual void printValue(std::ostream &os) const
Print frame arguments.
Class RooPotable is a base class for objects that can be inserted into RooPlots and take advantage of...
Double_t getYAxisMin() const
virtual Double_t getFitRangeNEvt() const =0
Double_t getYAxisMax() const
virtual Double_t getFitRangeBinW() const =0
TObject * crossCast()
Return cast of RooPlotable as TObject.
const char * getYAxisLabel() const
RooPlotable is a 'mix-in' base class that define the standard RooFit plotting and printing methods.
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer,...
void Set(Int_t n)
Set size of this array to n doubles.
Fill Area Attributes class.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillAttributes()
Invoke the DialogCanvas Fill attributes.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual void SetLineAttributes()
Invoke the DialogCanvas Line attributes.
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 SetMarkerAttributes()
Invoke the DialogCanvas Marker attributes.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Class to manage histogram axis.
virtual void SetBinLabel(Int_t bin, const char *label)
Set label for bin.
Bool_t IsAlphanumeric() const
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
const char * GetBinLabel(Int_t bin) const
Return label for bin.
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
Set the viewing range for the axis from ufirst to ulast (in user coordinates, that is,...
const char * GetTitle() const
Returns title of object.
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
Using a TBrowser one can browse all ROOT objects.
Buffer base class used for serializing objects.
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
TClass instances represent classes, structs and namespaces in the ROOT type system.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Describe directory structure in memory.
virtual TList * GetList() const
virtual void Append(TObject *obj, Bool_t replace=kFALSE)
Append object to this directory.
virtual TObject * Remove(TObject *)
Remove an object from the in-memory list.
TGraph with asymmetric error bars.
A TGraph is an object made of two arrays X and Y with npoints each.
@ kIsSortedX
graph is sorted in X points
TH1F * GetHistogram() const
Returns a pointer to the histogram used to draw the axis Takes into account the two following cases.
1-D histogram with a double per channel (see TH1 documentation)}
1-D histogram with a float per channel (see TH1 documentation)}
TH1 is the base class of all histogram classes in ROOT.
virtual void SetLabelFont(Style_t font=62, Option_t *axis="X")
Set font number used to draw axis labels.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
virtual void SetTitle(const char *title)
See GetStatOverflows for more information.
virtual void SetBarOffset(Float_t offset=0.25)
Set the bar offset as fraction of the bin width for drawing mode "B".
virtual void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
Set the axis' title size.
virtual void SetLabelOffset(Float_t offset=0.005, Option_t *axis="X")
Set offset between axis and axis' labels.
virtual void SetXTitle(const char *title)
virtual Int_t GetDimension() const
static void AddDirectory(Bool_t add=kTRUE)
Sets the flag controlling the automatic add of histograms in memory.
virtual void SetContourLevel(Int_t level, Double_t value)
Set value for one contour level.
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
virtual void SetNdivisions(Int_t n=510, Option_t *axis="X")
Set the number of divisions to draw an axis.
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
virtual Int_t GetNbinsX() const
virtual void SetMaximum(Double_t maximum=-1111)
virtual void SetContour(Int_t nlevels, const Double_t *levels=0)
Set the number and values of contour levels.
virtual Int_t GetNdivisions(Option_t *axis="X") const
Return the number of divisions for "axis".
virtual void SetMinimum(Double_t minimum=-1111)
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 Double_t GetEntries() const
Return the current number of entries.
virtual void SetZTitle(const char *title)
virtual void Draw(Option_t *option="")
Draw this histogram with options.
virtual TArrayD * GetSumw2()
virtual void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
Specify a parameter offset to control the distance between the axis and the axis' title.
virtual void SetLabelColor(Color_t color=1, Option_t *axis="X")
Set axis labels color.
virtual void SetAxisColor(Color_t color=1, Option_t *axis="X")
Set color to draw the axis line and tick marks.
virtual void SetOption(Option_t *option=" ")
virtual void SetAxisRange(Double_t xmin, Double_t xmax, Option_t *axis="X")
Set the "axis" range.
virtual void SetYTitle(const char *title)
virtual void SetTitleFont(Style_t font=62, Option_t *axis="X")
Set the axis' title font.
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
virtual void SetLabelSize(Float_t size=0.02, Option_t *axis="X")
Set size of axis' labels.
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
static Bool_t AddDirectoryStatus()
Static function: cannot be inlined on Windows/NT.
virtual void SetBarWidth(Float_t width=0.5)
Set the width of bars as fraction of the bin width for drawing mode "B".
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
virtual void SetTickLength(Float_t length=0.02, Option_t *axis="X")
Set the axis' tick marks length.
Iterator abstract base class.
virtual TObject * Next()=0
This class displays a legend box (TPaveText) containing several legend entries.
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
virtual void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const
Return a list iterator.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual void SetName(const char *name)
Set the name of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Option_t * GetOption() const
void SetOption(Option_t *option)
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void SetDrawOption(Option_t *option="")
Set drawing option for object.
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
void ToLower()
Change string to lower-case.
const char * Data() const
void ToUpper()
Change string to upper case.
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const