Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
xRooNode.h
Go to the documentation of this file.
1/*
2 * Project: xRooFit
3 * Author:
4 * Will Buttinger, RAL 2022
5 *
6 * Copyright (c) 2022, CERN
7 *
8 * Redistribution and use in source and binary forms,
9 * with or without modification, are permitted according to the terms
10 * listed in LICENSE (http://roofit.sourceforge.net/license.txt)
11 */
12
13#include "Config.h"
14
15#ifdef XROOFIT_USE_PRAGMA_ONCE
16#pragma once
17#endif
18#if !defined(XROOFIT_XROONODE_H) || defined(XROOFIT_USE_PRAGMA_ONCE)
19#ifndef XROOFIT_USE_PRAGMA_ONCE
20#define XROOFIT_XROONODE_H
21#endif
22
23#include "TNamed.h"
24#include <vector>
25#include <functional>
26
27class RooWorkspace;
28class RooAbsReal;
29class TH1;
30class RooAbsLValue;
31class RooArgList;
32class RooAbsBinning;
33class RooFitResult;
34class TGraph;
35class TAxis;
36class TGListTreeItem;
37class TGListTree;
38class TVirtualPad;
39class TStyle;
40
41#include "xRooFit.h"
42#include "RooLinkedList.h"
43#include "RooCmdArg.h"
44#include "TQObject.h"
45
47
48class xRooNode;
49class xRooNLLVar;
50
51class xRooNode : public TNamed, public std::vector<std::shared_ptr<xRooNode>> {
52
53public:
54 // functions of form value = f(orig,nom,nom_err)
55 // e.g. f = ratio would be simply orig/nom
56 // bool indicates if should be symmetrized
57 static std::map<std::string, std::tuple<std::function<double(double, double, double)>, bool>> auxFunctions;
58 static void SetAuxFunction(const char *title, const std::function<double(double, double, double)> &func,
59 bool symmetrize = false);
60
61 // this function is here because couldn't figure out how to check a null shared_ptr in pyroot
62 static inline bool isNull(const std::shared_ptr<xRooNode> &x) { return x == nullptr; }
63
64 // name of the node needn't match the name of the component that it points to
65 // the name of the node is how it is identified inside its parent
66 // In c++17 for constructors with a Node2& parent, could look at using shared_from_this and if it throws except then
67 // construct make_shared<Node2>(parent)
68 xRooNode(const char *type, const char *name, const char *title = "");
69 template <typename T>
70 xRooNode(const char *name, const char *title) : TNamed(name, title), fComp(std::make_shared<T>())
71 {
72 if (auto x = get<TNamed>(); x) {
73 x->SetNameTitle(name, title);
74 }
75 }
76 xRooNode(const char *name = "", const std::shared_ptr<TObject> &comp = nullptr,
77 const std::shared_ptr<xRooNode> &parent = nullptr);
78 xRooNode(const char *name, const std::shared_ptr<TObject> &comp, const xRooNode &parent)
79 : xRooNode(name, comp, std::make_shared<xRooNode>(parent))
80 {
81 }
82 xRooNode(const char *name, const TObject &comp, const std::shared_ptr<xRooNode> &parent)
83 : xRooNode(name, std::shared_ptr<TObject>(const_cast<TObject *>(&comp), [](TObject *) {}), parent)
84 {
85 } // needed to ensure passing a shared_ptr<Node2> for the parent doesnt become Node2(shared_ptr<Node2>) as parent
86 // because of Node2(shared_ptr<TObject>) constructor
87 xRooNode(const char *name, const TObject &comp, const xRooNode &parent)
88 : xRooNode(name, std::shared_ptr<TObject>(const_cast<TObject *>(&comp), [](TObject *) {}), parent)
89 {
90 }
91 xRooNode(const TObject &comp, const std::shared_ptr<xRooNode> &parent = nullptr);
92 xRooNode(const TObject &comp, const xRooNode &parent) : xRooNode(comp, std::make_shared<xRooNode>(parent)) {}
93 xRooNode(const std::shared_ptr<TObject> &comp, const std::shared_ptr<xRooNode> &parent = nullptr);
94 template <typename T>
95 xRooNode(const std::shared_ptr<T> &comp, const std::shared_ptr<xRooNode> &parent = nullptr)
96 : xRooNode(std::dynamic_pointer_cast<TObject>(comp), parent)
97 {
98 }
99 template <typename T>
100 xRooNode(const std::shared_ptr<T> &comp, const xRooNode &parent)
101 : xRooNode(std::dynamic_pointer_cast<TObject>(comp), std::make_shared<xRooNode>(parent))
102 {
103 }
104 template <typename T>
105 xRooNode(const std::shared_ptr<const T> &comp, const std::shared_ptr<xRooNode> &parent = nullptr)
106 : xRooNode(std::dynamic_pointer_cast<TObject>(std::const_pointer_cast<T>(comp)), parent)
107 {
108 }
109 template <typename T>
110 xRooNode(const std::shared_ptr<const T> &comp, const xRooNode &parent)
111 : xRooNode(std::dynamic_pointer_cast<TObject>(std::const_pointer_cast<T>(comp)),
112 std::make_shared<xRooNode>(parent))
113 {
114 }
115 xRooNode(double value);
116
117 virtual ~xRooNode();
118
119 void SetName(const char *name) override; // *MENU*
120 void SetTitle(const char *title) override
121 {
122 if (auto o = (get<TNamed>()); o)
123 o->SetTitle(title);
124 TNamed::SetTitle(title);
125 } // *MENU*
126
127 const char *GetNodeType() const;
128
129 explicit operator bool() const { return strlen(GetName()) || get(); } // the 'null' Component is the empty string
130
131 // at doesn't do an initial browse of the object, unlike [] operator
132 const std::shared_ptr<xRooNode> &at(size_t idx, bool browseResult = true) const
133 {
134 IsFolder();
135 auto &out = std::vector<std::shared_ptr<xRooNode>>::at(idx);
136 if (browseResult && out)
137 out->browse();
138 return out;
139 }
140 std::shared_ptr<xRooNode> at(const std::string &name, bool browseResult = true) const;
141
142 RooArgList argList() const;
143
144 std::shared_ptr<xRooNode> find(const std::string &name) const;
145 bool contains(const std::string &name) const; // doesn't trigger a browse of the found object, unlike find
146
147 // most users should use these methods: will do an initial browse and will browse the returned object too
148 std::shared_ptr<xRooNode> operator[](size_t idx) { return at(idx); }
149 std::shared_ptr<xRooNode> operator[](const std::string &name); // will create a child node if not existing
150
151 // needed in pyROOT to avoid it creating iterators that follow the 'get' to death
152 auto begin() const -> decltype(std::vector<std::shared_ptr<xRooNode>>::begin())
153 {
154 return std::vector<std::shared_ptr<xRooNode>>::begin();
155 }
156 auto end() const -> decltype(std::vector<std::shared_ptr<xRooNode>>::end())
157 {
158 return std::vector<std::shared_ptr<xRooNode>>::end();
159 }
160
161 void Browse(TBrowser *b = nullptr) override; // will browse the children that aren't "null" nodes
162 bool IsFolder() const override;
163 const char *GetIconName() const override;
164 void Inspect() const override; // *MENU*
165
166 xRooNode &browse(); // refreshes child nodes
167
168 std::string GetPath() const;
169 void Print(Option_t *opt = "") const override; // *MENU*
170 // void Reverse() {
171 // std::reverse(std::vector<std::shared_ptr<Node2>>::begin(),std::vector<std::shared_ptr<Node2>>::end()); } // *MENU*
172
173 xRooNode &operator=(const TObject &o);
174
175 TObject *get() const { return fComp.get(); }
176 template <typename T>
177 T *get() const
178 {
179 return dynamic_cast<T *>(get());
180 }
181
182 TObject *operator->() const { return get(); }
183
184 RooWorkspace *ws() const;
185 std::shared_ptr<TObject>
186 acquire(const std::shared_ptr<TObject> &arg, bool checkFactory = false, bool mustBeNew = false);
187 // common pattern for 'creating' an acquired object
188 template <typename T, typename... Args>
189 std::shared_ptr<T> acquire(Args &&...args)
190 {
191 return std::dynamic_pointer_cast<T>(acquire(std::make_shared<T>(std::forward<Args>(args)...)));
192 }
193 template <typename T, typename... Args>
194 std::shared_ptr<T> acquireNew(Args &&...args)
195 {
196 return std::dynamic_pointer_cast<T>(acquire(std::make_shared<T>(std::forward<Args>(args)...), false, true));
197 }
198 std::shared_ptr<TObject> getObject(const std::string &name, const std::string &type = "") const;
199 template <typename T>
200 std::shared_ptr<T> getObject(const std::string &name) const
201 {
202 return std::dynamic_pointer_cast<T>(getObject(name, T::Class_Name()));
203 }
204
205 xRooNode shallowCopy(const std::string &name, std::shared_ptr<xRooNode> parent = nullptr);
206
207 std::shared_ptr<TObject> convertForAcquisition(xRooNode &acquirer, const char *opt = "") const;
208
209 xRooNode vars() const; // obs,globs,floats,args
210 xRooNode obs() const; // robs and globs
211 xRooNode robs() const; // just the regular obs
212 xRooNode globs() const; // just the global obs
213 xRooNode pars() const; // floats and args/consts
214 xRooNode floats() const; // just floating pars
215 xRooNode args() const; // just const pars
216 xRooNode consts() const { return args(); }
217
218 xRooNode poi() const; // parameters of interest
219 xRooNode np() const; // nuisance parameters
220
221 xRooNode components() const; // additive children
222 xRooNode factors() const; // multiplicative children
223 xRooNode variations() const; // interpolated children (are bins a form of variation?)
224 xRooNode coefs() const;
225 xRooNode coords(bool setVals = true) const; // will move to the coords in the process if setVals=true
226 xRooNode bins() const;
227
228 xRooNode constraints() const; // pdfs other than the node's parent pdf where the deps of this node appear
229 xRooNode datasets()
230 const; // datasets corresponding to this pdf (parent nodes that do observable selections automatically applied)
231
232 xRooNode Remove(const xRooNode &child);
234 Add(const xRooNode &child,
235 Option_t *opt =
236 ""); // = components()[child.GetName()]=child; although need to handle case of adding same term multiple times
237 xRooNode Multiply(const xRooNode &child, Option_t *opt = ""); // = factors()[child.GetName()]=child;
238 xRooNode Vary(const xRooNode &child);
240
241 xRooNode Combine(const xRooNode &rhs); // combine rhs with this node
242
243 xRooNode reduced(const std::string &range = "")
244 const; // return a node representing reduced version of this node, will use the SetRange to reduce if blank
245
246 // following versions are for the menu in the GUI
247 void _Add_(const char *name, const char *opt); // *MENU*
248 xRooNode _Multiply_(const char *what) { return Multiply(what); } // *MENU*
249 void _Vary_(const char *what); // *MENU*
250 xRooNode _Constrain_(const char *what) { return Constrain(what); } // *MENU*
251
252 void _ShowVars_(Bool_t set = kTRUE); // *TOGGLE* *GETTER=_IsShowVars_
253 bool _IsShowVars_() const;
254
255 void SetHidden(Bool_t set = kTRUE); // *TOGGLE* *GETTER=IsHidden
256 bool IsHidden() const;
257
258 bool SetContents(const TObject &obj)
259 {
260 operator=(obj);
261 return true;
262 } // populates the node's comp (creating if necessary) from given object
263 bool SetContents(double value); // uses a RooConst
264 bool SetContents(double value, const char *par, double parVal = 1); // shortcut to setting a variation content
265 bool SetContents(const TObject &obj, const char *par, double parVal)
266 {
267 variations()[TString::Format("%s=%g", par, parVal).Data()]->operator=(obj);
268 return true;
269 }
270 bool SetBinError(int bin, double value);
271 bool SetBinContent(int bin, double value, const char *par = nullptr, double parVal = 1);
272 bool SetBinData(int bin, double value, const char *dataName = "obsData"); // only valid for pdf nodes
273
274 void _SetContents_(double value); // *MENU*
275 void _SetBinContent_(int bin, double value, const char *par = "", double parVal = 1); // *MENU*
276
277 bool SetXaxis(const RooAbsBinning &binning);
278 bool SetXaxis(const char *name, const char *title, int nbins, double low, double high);
279 bool SetXaxis(const char *name, const char *title, int nbins, double *bins);
280 bool SetXaxis(const char *title, int nbins, double low, double high)
281 {
282 return SetXaxis("xaxis", title, nbins, low, high);
283 }
284 bool SetXaxis(const char *title, int nbins, double *bins) { return SetXaxis("xaxis", title, nbins, bins); }
285 bool SetXaxis(int nbins, double low, double high) { return SetXaxis("xaxis", "", nbins, low, high); }
286 bool SetXaxis(int nbins, double *bins) { return SetXaxis("xaxis", "", nbins, bins); }
287
288 std::shared_ptr<TStyle> style(TObject *initObject = nullptr) const;
289
290 TAxis *GetXaxis() const;
291
292 double GetBinData(int bin, const char *dataName = "obsData");
293 double GetBinContent(int bin) const { return GetBinContents(bin, bin).at(0); }
294 std::vector<double> GetBinContents(int binStart = 1, int binEnd = 0) const; // default will get all bins
295 double GetBinError(int bin, const xRooNode &fr = "") const;
296 std::vector<double> GetBinErrors(int binStart = 1, int binEnd = 0, const xRooNode &fr = "") const;
297 std::pair<double, double> IntegralAndError(const xRooNode &fr = "", const char *rangeName = nullptr) const;
298
299 // methods to access default content and error
300 double GetContent() const { return GetBinContent(0); }
301 double GetError() const { return GetBinError(0); }
302
303 xRooNLLVar nll(const xRooNode &_data, std::initializer_list<RooCmdArg> nllOpts) const;
304 xRooNLLVar nll(const xRooNode &_data, const RooLinkedList &nllOpts) const;
305 xRooNLLVar nll(const xRooNode &_data = "") const; // uses xRooFit::createNLLOption for nllOpts
306
307 xRooNode fitResult(const char *opt = "") const; // todo: make this 'fitResults'
308 void SetFitResult(const RooFitResult *fr = nullptr); // null means will load prefit
309 void SetFitResult(const std::shared_ptr<const RooFitResult> &fr) { SetFitResult(fr.get()); }
310 void SetFitResult(const xRooNode &fr);
311
312 void _fitTo_(const char *datasetName = "", const char *constParValues = ""); // *MENU*
313 void _generate_(const char *name = "", bool expected = false); // *MENU*
314 // xRooNode fitTo(const char* datasetName) const;
315 // xRooNode fitTo(const xRooNode& _data) const;
316 // xRooNode generate(bool expected=false) const;
317 // void minosScan(const char* parName); // *MENU*
318 // void pllScan(const char* parName, int npoints=100); // *MENU*
319 // void breakdown(const char* parNames, const char* groupNames); // *MENU*
320
321 /*
322 double pll(Node2& data, const char* parName, double value, const Asymptotics::PLLType& pllType =
323 Asymptotics::TwoSided) const;
324 // pair is obs p_sb and p_b, vector is expected -2->+2 sigma p_sb (p_b are known by construction)
325 std::pair<std::pair<double,double>,std::vector<double>> pValue(Node2& data, const char* parName, double value,
326 double alt_value, const Asymptotics::PLLType& pllType); double sigma_mu(Node2& data, const char* parName, double
327 value, double alt_value) const;
328*/
329
330 void Checked(TObject *obj, bool val);
331 void SetChecked(bool val = true) { Checked(this, val); }
332
333 TGraph *BuildGraph(RooAbsLValue *v = nullptr, bool includeZeros = false, TVirtualPad *fromPad = nullptr) const;
334 TH1 *BuildHistogram(RooAbsLValue *v = nullptr, bool empty = false, bool errors = false, int binStart = 1,
335 int binEnd = 0) const;
336 xRooNode mainChild() const;
337 void Draw(Option_t *opt = "") override; // *MENU*
338
339 void SaveAs(const char *filename = "", Option_t *option = "") const override; // *MENU*
340
341 TGListTreeItem *GetTreeItem(TBrowser *b) const;
342 TGListTree *GetListTree(TBrowser *b) const;
343
344 static void Interactive_PLLPlot();
345 static void Interactive_Pull();
347 public:
348 void Interactive_PLLPlot(TVirtualPad *pad, TObject *obj, Int_t x, Int_t y);
350 };
352
353 mutable std::shared_ptr<TObject> fComp; //!
354 int fTimes = 1; // when the same comp appears multiple times in a parent node, this is increased to reflect that
355 int fBinNumber = -1; // used by 'bin' nodes (a node that refers to a specific bin of a parent)
356 std::shared_ptr<xRooNode> fParent; //!
357 std::string fFolder = ""; // folder to put this node in when 'organising' the parent
358
359 void SetRange(const char *range, double low = std::numeric_limits<double>::quiet_NaN(),
360 double high = std::numeric_limits<double>::quiet_NaN()); // *MENU*
361 const char *GetRange() const;
362 mutable std::string fRange; //! only here so can have char* GetRange return so can return nullptr for no range set
363 //! (required for RooCategory)
364
365 mutable std::shared_ptr<TAxis>
366 fXAxis; //! appears that if was fXaxis then dialog box for SetXaxis will take as current value
367
368 mutable bool fInterrupted = false;
369
370 bool fAcquirer = false; // if true, when acquiring will go into objects memory rather than pass onto parent
371 std::shared_ptr<xRooNode> fProvider; //! like a parent but only for use by getObject
372
373 std::shared_ptr<xRooNode> parentPdf() const; // find first parent that is a pdf
374
375 void sterilize();
376
377 std::vector<std::shared_ptr<xRooNode>> fBrowsables; // will appear in the browser tree but are not actual children
378 std::function<xRooNode(xRooNode *)> fBrowseOperation; // a way to specify a custom browsing operation
379
381};
382
384
385#endif // include guard
#define b(i)
Definition RSha256.hxx:100
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:337
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
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 filename
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 Int_t Int_t Window_t child
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 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 style
char name[80]
Definition TGX11.cxx:110
Binding & operator=(OUT(*fun)(void))
static void GetRange(const char *comments, Double_t &xmin, Double_t &xmax, Double_t &factor)
Parse comments to search for a range specifier of the style: [xmin,xmax] or [xmin,...
RooAbsBinning is the abstract base class for RooRealVar binning definitions.
Abstract base class for objects that are lvalues, i.e.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition RooAbsReal.h:62
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition RooArgList.h:22
RooFitResult is a container class to hold the input and output of a PDF fit to a dataset.
bool SetXaxis(int nbins, double low, double high)
Definition xRooNode.h:285
void SetTitle(const char *title) override
Set the title of the TNamed.
Definition xRooNode.h:120
bool SetXaxis(const char *title, int nbins, double low, double high)
Definition xRooNode.h:280
xRooNode(const char *name, const TObject &comp, const std::shared_ptr< xRooNode > &parent)
Definition xRooNode.h:82
auto end() const -> decltype(std::vector< std::shared_ptr< xRooNode > >::end())
Definition xRooNode.h:156
bool SetXaxis(const char *title, int nbins, double *bins)
Definition xRooNode.h:284
std::shared_ptr< TAxis > fXAxis
only here so can have char* GetRange return so can return nullptr for no range set (required for RooC...
Definition xRooNode.h:366
xRooNode _Constrain_(const char *what)
Definition xRooNode.h:250
std::shared_ptr< T > acquireNew(Args &&...args)
Definition xRooNode.h:194
std::shared_ptr< T > acquire(Args &&...args)
Definition xRooNode.h:189
xRooNode(const TObject &comp, const xRooNode &parent)
Definition xRooNode.h:92
xRooNode(const std::shared_ptr< const T > &comp, const std::shared_ptr< xRooNode > &parent=nullptr)
Definition xRooNode.h:105
xRooNLLVar nll(const xRooNode &_data, const RooLinkedList &nllOpts) const
bool SetContents(double value, const char *par, double parVal=1)
const std::shared_ptr< xRooNode > & at(size_t idx, bool browseResult=true) const
Definition xRooNode.h:132
xRooNode(const char *name, const std::shared_ptr< TObject > &comp, const xRooNode &parent)
Definition xRooNode.h:78
bool SetXaxis(int nbins, double *bins)
Definition xRooNode.h:286
bool SetContents(const TObject &obj, const char *par, double parVal)
Definition xRooNode.h:265
void SetFitResult(const std::shared_ptr< const RooFitResult > &fr)
Definition xRooNode.h:309
auto begin() const -> decltype(std::vector< std::shared_ptr< xRooNode > >::begin())
Definition xRooNode.h:152
xRooNode(const char *name, const TObject &comp, const xRooNode &parent)
Definition xRooNode.h:87
std::shared_ptr< xRooNode > fProvider
Definition xRooNode.h:371
std::shared_ptr< T > getObject(const std::string &name) const
Definition xRooNode.h:200
static InteractiveObject * gIntObj
Definition xRooNode.h:351
std::shared_ptr< TObject > fComp
Definition xRooNode.h:353
static std::map< std::string, std::tuple< std::function< double(double, double, double)>, bool > > auxFunctions
Definition xRooNode.h:57
xRooNode(const std::shared_ptr< T > &comp, const std::shared_ptr< xRooNode > &parent=nullptr)
Definition xRooNode.h:95
bool SetContents(const TObject &obj)
Definition xRooNode.h:258
xRooNode(const std::shared_ptr< T > &comp, const xRooNode &parent)
Definition xRooNode.h:100
std::vector< std::shared_ptr< xRooNode > > fBrowsables
Definition xRooNode.h:377
xRooNode(const char *name, const char *title)
Definition xRooNode.h:70
std::shared_ptr< xRooNode > operator[](size_t idx)
Definition xRooNode.h:148
xRooNode(const std::shared_ptr< const T > &comp, const xRooNode &parent)
Definition xRooNode.h:110
xRooNode(const char *type, const char *name, const char *title="")
static bool isNull(const std::shared_ptr< xRooNode > &x)
Definition xRooNode.h:62
std::function< xRooNode(xRooNode *)> fBrowseOperation
Definition xRooNode.h:378
void SetChecked(bool val=true)
Definition xRooNode.h:331
double GetBinContent(int bin) const
Definition xRooNode.h:293
xRooNode _Multiply_(const char *what)
Definition xRooNode.h:248
std::shared_ptr< xRooNode > fParent
Definition xRooNode.h:356
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
The RooWorkspace is a persistable container for RooFit projects.
Class to manage histogram axis.
Definition TAxis.h:30
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
A list tree is a widget that can contain a number of items arranged in a tree structure.
Definition TGListTree.h:195
A TGraph is an object made of two arrays X and Y with npoints each.
Definition TGraph.h:41
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:58
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Definition TNamed.cxx:164
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Definition TNamed.cxx:154
Mother of all ROOT objects.
Definition TObject.h:41
This is the ROOT implementation of the Qt object communication mechanism (see also http://www....
Definition TQObject.h:48
const char * Data() const
Definition TString.h:380
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition TString.cxx:2356
TStyle objects may be created to define special styles.
Definition TStyle.h:29
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition TVirtualPad.h:51
RooCmdArg Constrain(const RooArgSet &params)
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
gr SetName("gr")
TMatrixT< Element > & Add(TMatrixT< Element > &target, Element scalar, const TMatrixT< Element > &source)
Modify addition: target += scalar * source.
#define BEGIN_XROOFIT_NAMESPACE
Definition Config.h:24
#define END_XROOFIT_NAMESPACE
Definition Config.h:25
static const char * what
Definition stlLoader.cc:6
th1 Draw()