Persistable container for RooFit projects.
A workspace can contain and own variables, p.d.f.s, functions and datasets. All objects that live in the workspace are owned by the workspace. The import()
method enforces consistency of objects upon insertion into the workspace (e.g. no duplicate object with the same name are allowed) and makes sure all objects in the workspace are connected to each other. Easy accessor methods like pdf()
, var()
and data()
allow to refer to the contents of the workspace by object name. The entire RooWorkspace can be saved into a ROOT TFile and organises the consistent streaming of its contents without duplication. If a RooWorkspace contains custom classes, i.e. classes not in the ROOT distribution, portability of workspaces can be enhanced by storing the source code of those classes in the workspace as well. This process is also organized by the workspace through the importClassCode()
method.
When reading or loading workspaces with deeply nested PDFs, one can encounter ouf-of-memory errors if the stack size is too small. This manifests in crashes at seemingly random locations, or in the process silently ending. Unfortunately, ROOT neither recover from this situation, nor warn or give useful instructions. When suspecting to have run out of stack memory, check
and try reading again.
The RooWorkspace::import function can't be used in PyROOT because import
is a reserved python keyword. For this reason, an alternative with a capitalized name is provided:
Definition at line 43 of file RooWorkspace.h.
Classes | |
class | CodeRepo |
class | WSDir |
Public Member Functions | |
RooWorkspace () | |
Default constructor. | |
RooWorkspace (const char *name, bool doCINTExport) | |
Construct empty workspace with given name and option to export reference to all workspace contents to a CINT namespace with the same name. | |
RooWorkspace (const char *name, const char *title=nullptr) | |
Construct empty workspace with given name and title. | |
RooWorkspace (const RooWorkspace &other) | |
Workspace copy constructor. | |
~RooWorkspace () override | |
Workspace destructor. | |
bool | addStudy (RooAbsStudy &study) |
Insert RooStudyManager module. | |
RooArgSet | allCatFunctions () const |
Return set with all category function objects. | |
RooArgSet | allCats () const |
Return set with all category objects. | |
std::list< RooAbsData * > | allData () const |
Return list of all dataset in the workspace. | |
std::list< RooAbsData * > | allEmbeddedData () const |
Return list of all dataset in the workspace. | |
RooArgSet | allFunctions () const |
Return set with all function objects. | |
std::list< TObject * > | allGenericObjects () const |
Return list of all generic objects in the workspace. | |
RooArgSet | allPdfs () const |
Return set with all probability density function objects. | |
RooArgSet | allResolutionModels () const |
Return set with all resolution model objects. | |
RooArgSet | allVars () const |
Return set with all variable objects. | |
RooAbsArg * | arg (RooStringView name) const |
Return RooAbsArg with given name. A null pointer is returned if none is found. | |
RooArgSet | argSet (RooStringView nameList) const |
Return set of RooAbsArgs matching to given list of names. | |
bool | cancelTransaction () |
Cancel an ongoing import transaction. | |
RooCategory * | cat (RooStringView name) const |
Retrieve discrete variable (RooCategory) with given name. A null pointer is returned if not found. | |
RooAbsCategory * | catfunc (RooStringView name) const |
Retrieve discrete function (RooAbsCategory) with given name. A null pointer is returned if not found. | |
bool | cd (const char *path=nullptr) |
void | clearStudies () |
Remove all RooStudyManager modules. | |
TObject * | Clone (const char *newname="") const override |
TObject::Clone() needs to be overridden. | |
bool | commitTransaction () |
TIterator * | componentIterator () const R__DEPRECATED(6 |
const RooArgSet & | components () const |
RooAbsData * | data (RooStringView name) const |
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found. | |
bool | defineSet (const char *name, const char *contentList) |
Define a named set in the workspace through a comma separated list of names of objects already in the workspace. | |
bool | defineSet (const char *name, const RooArgSet &aset, bool importMissing=false) |
Define a named RooArgSet with given constituents. | |
RooAbsData * | embeddedData (RooStringView name) const |
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found. | |
RooExpensiveObjectCache & | expensiveObjectCache () |
bool | extendSet (const char *name, const char *newContents) |
Define a named set in the workspace through a comma separated list of names of objects already in the workspace. | |
RooFactoryWSTool & | factory () |
Return instance to factory tool. | |
RooAbsArg * | factory (RooStringView expr) |
Short-hand function for factory()->process(expr); | |
RooAbsReal * | function (RooStringView name) const |
Retrieve function (RooAbsReal) with given name. Note that all RooAbsPdfs are also RooAbsReals. A null pointer is returned if not found. | |
RooAbsArg * | fundArg (RooStringView name) const |
Return fundamental (i.e. | |
TObject * | genobj (RooStringView name) const |
Return generic object with given name. | |
const RooArgSet * | getSnapshot (const char *name) const |
Return the RooArgSet containing a snapshot of variables contained in the workspace. | |
RooLinkedList const & | getSnapshots () const |
bool | import (const char *fileSpec, 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={}) |
Import a RooAbsArg or RooAbsData set from a workspace in a file. | |
bool | import (const RooAbsArg &arg, 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={}) |
Import a RooAbsArg object, e.g. | |
bool | import (const RooArgSet &args, 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={}) |
Import multiple RooAbsArg objects into workspace. | |
bool | import (RooAbsData const &data, 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={}) |
Import a dataset (RooDataSet or RooDataHist) into the workspace. | |
bool | import (TObject const &object, bool replaceExisting=false) |
Import a clone of a generic TObject into workspace generic object container. | |
bool | import (TObject const &object, const char *aliasName, bool replaceExisting=false) |
Import a clone of a generic TObject into workspace generic object container. | |
bool | importClassCode (const char *pat="*", bool doReplace=false) |
Import code of all classes in the workspace that have a class name that matches pattern 'pat' and which are not found to be part of the standard ROOT distribution. | |
bool | importClassCode (TClass *theClass, bool doReplace=false) |
TClass * | IsA () const override |
bool | loadSnapshot (const char *name) |
Load the values and attributes of the parameters in the snapshot saved with the given name. | |
bool | makeDir () |
Create transient TDirectory representation of this workspace. | |
void | merge (const RooWorkspace &) |
TObject * | obj (RooStringView name) const |
Return any type of object (RooAbsArg, RooAbsData or generic object) with given name) | |
RooAbsPdf * | pdf (RooStringView name) const |
Retrieve p.d.f (RooAbsPdf) with given name. A null pointer is returned if not found. | |
void | Print (Option_t *opts=nullptr) const override |
Print contents of the workspace. | |
void | RecursiveRemove (TObject *obj) override |
If one of the TObject we have a referenced to is deleted, remove the reference. | |
bool | removeSet (const char *name) |
Remove a named set from the workspace. | |
bool | renameSet (const char *name, const char *newName) |
Rename set to a new name. | |
bool | saveSnapshot (RooStringView, const char *paramNames) |
Save snapshot of values and attributes (including "Constant") of given parameters. | |
bool | saveSnapshot (RooStringView, const RooArgSet ¶ms, bool importValues=false) |
Save snapshot of values and attributes (including "Constant") of parameters 'params'. | |
const RooArgSet * | set (RooStringView name) |
Return pointer to previously defined named set with given nmame If no such set is found a null pointer is returned. | |
const std::map< std::string, RooArgSet > & | sets () const |
bool | startTransaction () |
Open an import transaction operations. | |
void | Streamer (TBuffer &) override |
Stream an object of class RooWorkspace. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
TIterator * | studyIterator () |
void | useFindsWithHashLookup (bool flag) |
Make internal collection use an unordered_map for faster searching. | |
const TUUID & | uuid () const |
RooRealVar * | var (RooStringView name) const |
Retrieve real-valued variable (RooRealVar) with given name. A null pointer is returned if not found. | |
bool | writeToFile (const char *fileName, bool recreate=true) |
Save this current workspace into given file. | |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. | |
void | Clear (Option_t *option="") override |
Set name and title to empty strings (""). | |
TObject * | Clone (const char *newname="") const override |
Make a clone of an object using the Streamer facility. | |
Int_t | Compare (const TObject *obj) const override |
Compare two TNamed objects. | |
void | Copy (TObject &named) const override |
Copy this to obj. | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. | |
const char * | GetName () const override |
Returns name of object. | |
const char * | GetTitle () const override |
Returns title of object. | |
ULong_t | Hash () const override |
Return hash value for this object. | |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
List TNamed name and title. | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. | |
void | Print (Option_t *option="") const override |
Print TNamed name and title. | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. | |
void | Streamer (TBuffer &) override |
Stream an object of class TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual void | Delete (Option_t *option="") |
Delete this object. | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). | |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
IsDestructed. | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification (the base implementation is no-op). | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete (void *ptr, void *vp) |
Only called by placement new when throwing an exception. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void | operator delete[] (void *ptr, void *vp) |
Only called by placement new[] when throwing an exception. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
Static Public Member Functions | |
static void | addClassDeclImportDir (const char *dir) |
Add dir to search path for class declaration (header) files. | |
static void | addClassImplImportDir (const char *dir) |
Add dir to search path for class implementation (.cxx) files. | |
static void | autoImportClassCode (bool flag) |
If flag is true, source code of classes not the ROOT distribution is automatically imported if on object of such a class is imported in the workspace. | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static void | setClassFileExportDir (const char *dir=nullptr) |
Specify the name of the directory in which embedded source code is unpacked and compiled. | |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
Private Member Functions | |
bool | defineSetInternal (const char *name, const RooArgSet &aset) |
Private Attributes | |
RooArgSet | _allOwnedNodes |
List of owned pdfs and components. | |
CodeRepo | _classes |
RooLinkedList | _dataList |
List of owned datasets. | |
WSDir * | _dir = nullptr |
! Transient ROOT directory representation of workspace | |
bool | _doExport |
! Export contents of workspace to CINT? | |
RooLinkedList | _embeddedDataList |
List of owned datasets that are embedded in pdfs. | |
RooExpensiveObjectCache | _eocache |
Cache for expensive objects. | |
std::string | _exportNSName |
! Name of CINT namespace to which contents are exported | |
std::unique_ptr< RooFactoryWSTool > | _factory |
! Factory tool associated with workspace | |
RooLinkedList | _genObjects |
List of generic objects. | |
std::map< std::string, RooArgSet > | _namedSets |
Map of named RooArgSets. | |
bool | _openTrans = false |
! Is there a transaction open? | |
RooArgSet | _sandboxNodes |
! Sandbox for incoming objects in a transaction | |
RooLinkedList | _snapshots |
List of parameter snapshots. | |
RooLinkedList | _studyMods |
List if StudyManager modules. | |
TUUID | _uuid |
RooLinkedList | _views |
List of model views. | |
Static Private Attributes | |
static bool | _autoClass = false |
static std::list< std::string > | _classDeclDirList |
static std::string | _classFileExportDir = ".wscode.%s.%s" |
static std::list< std::string > | _classImplDirList |
Friends | |
class | CodeRepo |
class | RooAbsArg |
class | RooAbsPdf |
class | RooConstraintSum |
Additional Inherited Members | |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
#include <RooWorkspace.h>
RooWorkspace::RooWorkspace | ( | ) |
Default constructor.
Definition at line 168 of file RooWorkspace.cxx.
RooWorkspace::RooWorkspace | ( | const char * | name, |
bool | doCINTExport | ||
) |
Construct empty workspace with given name and option to export reference to all workspace contents to a CINT namespace with the same name.
Definition at line 186 of file RooWorkspace.cxx.
RooWorkspace::RooWorkspace | ( | const char * | name, |
const char * | title = nullptr |
||
) |
Construct empty workspace with given name and title.
Definition at line 177 of file RooWorkspace.cxx.
RooWorkspace::RooWorkspace | ( | const RooWorkspace & | other | ) |
Workspace copy constructor.
Definition at line 195 of file RooWorkspace.cxx.
|
override |
Workspace destructor.
Definition at line 246 of file RooWorkspace.cxx.
|
static |
Add dir
to search path for class declaration (header) files.
This is needed to find class headers custom classes are imported into the workspace.
Definition at line 123 of file RooWorkspace.cxx.
|
static |
Add dir
to search path for class implementation (.cxx) files.
This is needed to find class headers custom classes are imported into the workspace.
Definition at line 132 of file RooWorkspace.cxx.
bool RooWorkspace::addStudy | ( | RooAbsStudy & | study | ) |
Insert RooStudyManager module.
Definition at line 1983 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allCatFunctions | ( | ) | const |
Return set with all category function objects.
Definition at line 1387 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allCats | ( | ) | const |
Return set with all category objects.
Definition at line 1347 of file RooWorkspace.cxx.
std::list< RooAbsData * > RooWorkspace::allData | ( | ) | const |
Return list of all dataset in the workspace.
Definition at line 1444 of file RooWorkspace.cxx.
std::list< RooAbsData * > RooWorkspace::allEmbeddedData | ( | ) | const |
Return list of all dataset in the workspace.
Definition at line 1457 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allFunctions | ( | ) | const |
Return set with all function objects.
Definition at line 1366 of file RooWorkspace.cxx.
std::list< TObject * > RooWorkspace::allGenericObjects | ( | ) | const |
Return list of all generic objects in the workspace.
Definition at line 1471 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allPdfs | ( | ) | const |
Return set with all probability density function objects.
Definition at line 1425 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allResolutionModels | ( | ) | const |
Return set with all resolution model objects.
Definition at line 1406 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::allVars | ( | ) | const |
Return set with all variable objects.
Definition at line 1329 of file RooWorkspace.cxx.
RooAbsArg * RooWorkspace::arg | ( | RooStringView | name | ) | const |
Return RooAbsArg with given name. A null pointer is returned if none is found.
Definition at line 1260 of file RooWorkspace.cxx.
RooArgSet RooWorkspace::argSet | ( | RooStringView | nameList | ) | const |
Return set of RooAbsArgs matching to given list of names.
Definition at line 1270 of file RooWorkspace.cxx.
|
static |
If flag is true, source code of classes not the ROOT distribution is automatically imported if on object of such a class is imported in the workspace.
Definition at line 158 of file RooWorkspace.cxx.
bool RooWorkspace::cancelTransaction | ( | ) |
Cancel an ongoing import transaction.
All objects imported since startTransaction() will be removed and the transaction will be terminated. Return true if cancel operation succeeds, return false if there was no open transaction
Definition at line 1049 of file RooWorkspace.cxx.
RooCategory * RooWorkspace::cat | ( | RooStringView | name | ) | const |
Retrieve discrete variable (RooCategory) with given name. A null pointer is returned if not found.
Definition at line 1241 of file RooWorkspace.cxx.
RooAbsCategory * RooWorkspace::catfunc | ( | RooStringView | name | ) | const |
Retrieve discrete function (RooAbsCategory) with given name. A null pointer is returned if not found.
Definition at line 1250 of file RooWorkspace.cxx.
bool RooWorkspace::cd | ( | const char * | path = nullptr | ) |
Definition at line 2044 of file RooWorkspace.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 282 of file RooWorkspace.h.
void RooWorkspace::clearStudies | ( | ) |
Remove all RooStudyManager modules.
Definition at line 1996 of file RooWorkspace.cxx.
|
overridevirtual |
TObject::Clone() needs to be overridden.
Reimplemented from TObject.
Definition at line 233 of file RooWorkspace.cxx.
bool RooWorkspace::commitTransaction | ( | ) |
Definition at line 1068 of file RooWorkspace.cxx.
TIterator * RooWorkspace::componentIterator | ( | ) | const |
Definition at line 2946 of file RooWorkspace.cxx.
|
inline |
Definition at line 115 of file RooWorkspace.h.
RooAbsData * RooWorkspace::data | ( | RooStringView | name | ) | const |
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found.
Definition at line 1309 of file RooWorkspace.cxx.
|
inlinestatic |
Definition at line 282 of file RooWorkspace.h.
bool RooWorkspace::defineSet | ( | const char * | name, |
const char * | contentList | ||
) |
Define a named set in the workspace through a comma separated list of names of objects already in the workspace.
Definition at line 902 of file RooWorkspace.cxx.
bool RooWorkspace::defineSet | ( | const char * | name, |
const RooArgSet & | aset, | ||
bool | importMissing = false |
||
) |
Define a named RooArgSet with given constituents.
If importMissing is true, any constituents of aset that are not in the workspace will be imported, otherwise an error is returned for missing components
Definition at line 844 of file RooWorkspace.cxx.
Definition at line 878 of file RooWorkspace.cxx.
RooAbsData * RooWorkspace::embeddedData | ( | RooStringView | name | ) | const |
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found.
Definition at line 1318 of file RooWorkspace.cxx.
|
inline |
Definition at line 166 of file RooWorkspace.h.
bool RooWorkspace::extendSet | ( | const char * | name, |
const char * | newContents | ||
) |
Define a named set in the workspace through a comma separated list of names of objects already in the workspace.
Definition at line 937 of file RooWorkspace.cxx.
RooFactoryWSTool & RooWorkspace::factory | ( | ) |
Return instance to factory tool.
Definition at line 2067 of file RooWorkspace.cxx.
RooAbsArg * RooWorkspace::factory | ( | RooStringView | expr | ) |
Short-hand function for factory()->process(expr);
Create a RooFit object from the given expression.
Creating variables | |
---|---|
x[-10,10] | Create variable x with given range and put it in workspace |
x[3,-10,10] | Create variable x with given range and initial value and put it in workspace |
x[3] | Create variable x with given constant value |
<numeric literal> | Numeric literal expressions (0.5, -3 etc..) are converted to a RooConst(<numeric literal>) wherever a RooAbsReal or RooAbsArg argument is expected |
Creating categories | |
c[lep,kao,nt1,nt2] | Create category c with given state names |
tag[B0=1,B0bar=-1] | Create category tag with given state names and index assignments |
Creating functions and pdfs | |
MyPdf::g(x,m,s) | Create pdf or function of type MyPdf with name g with argument x,m,s Interpretation and number of arguments are mapped to the constructor arguments of the class (after the name and title). |
MyPdf(x,m,s) | As above, but with an implicitly defined (unique) object name |
Creating sets and lists (to be used as inputs above) | |
{a,b,c} | Create RooArgSet or RooArgList (as determined by context) from given contents |
Objects that are not created, are assumed to exist in the workspace Object creation expressions as shown above can be nested, e.g. one can do
to create a pdf and its variables in one go. This nesting can be applied recursively e.g.
creates the sum of a Gaussian and a Chebychev and all its variables.
A separate series of operator meta-type exists to simplify the construction of composite expressions meta-types in all capitals (SUM) create pdfs, meta types in lower case (sum) create functions.
Expression | Effect |
---|---|
SUM::name(f1*pdf1,f2*pdf2,pdf3] | Create sum pdf name with value f1*pdf1+f2*pdf2+(1-f1-f2)*pdf3 |
RSUM::name(f1*pdf1,f2*pdf2,pdf3] | Create recursive sum pdf name with value f1*pdf1 + (1-f1)(f2*pdf2 + (1-f2)pdf3) |
ASUM::name(f1*amp1,f2*amp2,amp3] | Create sum pdf name with value f1*amp1+f2*amp2+(1-f1-f2)*amp3 where amplX are amplitudes of type RooAbsReal |
sum::name(a1,a2,a3] | Create sum function with value a1+a2+a3 |
sum::name(a1*b1,a2*b2,a3*b 3] | Create sum function with value a1*b1+a2*b2+a3*b3 |
PROD::name(pdf1,pdf2] | Create product of pdf with name with given input pdfs |
PROD::name(pdf1|x,pdf2] | Create product of conditional pdf pdf1 given x and pdf2 |
prod::name(a,b,c] | Create production function with value a*b*c |
SIMUL::name(cat,a=pdf1,b=pdf2] | Create simultaneous pdf index category cat . Make pdf1 to state a , pdf2 to state b |
EXPR::name(<expr>,var,...] | Create a generic pdf that interprets the given expression |
expr::name(<expr>,var,...] | Create a generic function that interprets the given expression |
taylorexpand::name(func,{var1,var2,...},val,order,eps1,eps2] | Create a taylor expansion of func w.r.t. {var1,var2,..} around val up to order |
‘lagrangianmorph::name("$fileName('infile.root’),$observableName(obs),$couplings({var1[-10,10],var2[-10,10]}),$folders({'sample1,sample2,sample3'}),$NewPhysics(var1=1,var2=0)"]<td> Create a RooLagrangianMorphFunc function for the observable obs as a function of var1, var2` based on input templates stored in the folders in the file |
The functionality of high-level object creation tools like RooSimWSTool, RooCustomizer and RooClassFactory is also interfaced through meta-types in the factory.
Interface to RooSimWSTool | |
---|---|
SIMCLONE::name( modelPdf, $ParamSplit(...), $ParamSplitConstrained(...), $Restrict(...) ] | Clone-and-customize modelPdf according to ParamSplit and ParamSplitConstrained() specifications and return a RooSimultaneous pdf of all built clones |
MSIMCLONE::name( masterIndex, $AddPdf(mstate1, modelPdf1, $ParamSplit(...)), $AddPdf(mstate2,modelPdf2),...) ] | Clone-and-customize multiple models (modelPdf1,modelPdf2) according to ParamSplit and ParamSplitConstrained() specifications and return a RooSimultaneous pdf of all built clones, using the specified master index to map prototype pdfs to master states |
Interface to RooCustomizer | |
EDIT::name( orig, substNode=origNode), ... ] | Create a clone of input object orig, with the specified replacements operations executed |
EDIT::name( orig, origNode=$REMOVE(), ... ] | Create clone of input removing term origNode from all PROD() terms that contained it |
EDIT::name( orig, origNode=$REMOVE(prodname,...), ... ] | As above, but restrict removal of origNode to PROD term(s) prodname,... |
Interface to RooClassFactory | |
CEXPR::name(<expr>,var,...] | Create a custom compiled pdf that evaluates the given expression |
cexpr::name(<expr>,var,...] | Create a custom compiled function that evaluates the given expression |
$MetaType(...) | Meta argument that does not result in construction of an object but is used logically organize input arguments in certain operator pdf constructions. The defined meta arguments are context dependent. The only meta argument that is defined globally is $Alias(typeName,aliasName) to define aliases for type names. For the definition of meta arguments in operator pdfs see the definitions below. |
Definition at line 2084 of file RooWorkspace.cxx.
RooAbsReal * RooWorkspace::function | ( | RooStringView | name | ) | const |
Retrieve function (RooAbsReal) with given name. Note that all RooAbsPdfs are also RooAbsReals. A null pointer is returned if not found.
Definition at line 1223 of file RooWorkspace.cxx.
RooAbsArg * RooWorkspace::fundArg | ( | RooStringView | name | ) | const |
Return fundamental (i.e.
non-derived) RooAbsArg with given name. Fundamental types are e.g. RooRealVar, RooCategory. A null pointer is returned if none is found.
Definition at line 1295 of file RooWorkspace.cxx.
TObject * RooWorkspace::genobj | ( | RooStringView | name | ) | const |
Return generic object with given name.
Definition at line 2026 of file RooWorkspace.cxx.
const RooArgSet * RooWorkspace::getSnapshot | ( | const char * | name | ) | const |
Return the RooArgSet containing a snapshot of variables contained in the workspace.
Note that the variables of the objects in the snapshots are copies of the variables in the workspace. To load the values of a snapshot in the workspace variables, use loadSnapshot() instead.
Definition at line 1205 of file RooWorkspace.cxx.
|
inline |
Definition at line 100 of file RooWorkspace.h.
RooWorkspace::import | ( | const char * | fileSpec, |
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 = {} |
||
) |
Import a RooAbsArg or RooAbsData set from a workspace in a file.
Filespec should be constructed as "filename:wspacename:objectname" The arguments will be passed to the relevant import() or import(RooAbsData&, ...) import calls
Import()
, since import
is a reserved keyword.
Support the C++ import()
as Import()
in python
Definition at line 270 of file RooWorkspace.cxx.
RooWorkspace::import | ( | const RooAbsArg & | arg, |
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 = {} |
||
) |
Import a RooAbsArg object, e.g.
function, p.d.f or variable into the workspace. This import function clones the input argument and will own the clone. If a composite object is offered for import, e.g. a p.d.f with parameters and observables, the complete tree of objects is imported. If any of the variables of a composite object (parameters/observables) are already in the workspace the imported p.d.f. is connected to the already existing variables. If any of the function objects (p.d.f, formulas) to be imported already exists in the workspace an error message is printed and the import of the entire tree of objects is cancelled. Several optional arguments can be provided to modify the import procedure.
Accepted arguments | |
---|---|
RenameConflictNodes(const char* suffix) | Add suffix to branch node name if name conflicts with existing node in workspace |
RenameAllNodes(const char* suffix) | Add suffix to all branch node names including top level node. |
RenameAllVariables(const char* suffix) | Add suffix to all variables of objects being imported. |
RenameAllVariablesExcept(const char* suffix, const char* exceptionList) | Add suffix to all variables names, except ones listed |
RenameVariable(const char* inputName, const char* outputName) | Rename a single variable as specified upon import. |
RecycleConflictNodes() | If any of the function objects to be imported already exist in the name space, connect the imported expression to the already existing nodes.
|
Silence() | Do not issue any info message |
The RenameConflictNodes, RenameNodes and RecycleConflictNodes arguments are mutually exclusive. The RenameVariable argument can be repeated as often as necessary to rename multiple variables. Alternatively, a single RenameVariable argument can be given with two comma separated lists.
Import()
, since import
is a reserved keyword.
Support the C++ import()
as Import()
in python
The RooWorkspace constructor is pythonized with the command argument pythonization. The keywords must correspond to the CmdArgs of the constructor.
Definition at line 370 of file RooWorkspace.cxx.
bool RooWorkspace::import | ( | const RooArgSet & | args, |
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 = {} |
||
) |
Import multiple RooAbsArg objects into workspace.
For details on arguments see documentation of import() method for single RooAbsArg
Import()
, since import
is a reserved keyword. Definition at line 330 of file RooWorkspace.cxx.
bool RooWorkspace::import | ( | RooAbsData const & | inData, |
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 = {} |
||
) |
Import a dataset (RooDataSet or RooDataHist) into the workspace.
The workspace will contain a copy of the data. The dataset and its variables can be renamed upon insertion with the options below
Accepted arguments | |
---|---|
Rename(const char* suffix) | Rename dataset upon insertion |
RenameVariable(const char* inputName, const char* outputName) | Change names of observables in dataset upon insertion |
Silence | Be quiet, except in case of errors
|
Definition at line 726 of file RooWorkspace.cxx.
Import a clone of a generic TObject into workspace generic object container.
Imported object can be retrieved by name through the obj() method. The object is cloned upon importation and the input argument does not need to live beyond the import call
Returns true if an error has occurred.
Definition at line 1912 of file RooWorkspace.cxx.
bool RooWorkspace::import | ( | TObject const & | object, |
const char * | aliasName, | ||
bool | replaceExisting = false |
||
) |
Import a clone of a generic TObject into workspace generic object container.
The imported object will be stored under the given alias name rather than its own name. Imported object can be retrieved its alias name through the obj() method. The object is cloned upon importation and the input argument does not need to live beyond the import call This method is mostly useful for importing objects that do not have a settable name such as TMatrix
Returns true if an error has occurred.
Definition at line 1952 of file RooWorkspace.cxx.
Import code of all classes in the workspace that have a class name that matches pattern 'pat' and which are not found to be part of the standard ROOT distribution.
If doReplace is true any existing class code saved in the workspace is replaced
Definition at line 1112 of file RooWorkspace.cxx.
Definition at line 1099 of file RooWorkspace.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 282 of file RooWorkspace.h.
bool RooWorkspace::loadSnapshot | ( | const char * | name | ) |
Load the values and attributes of the parameters in the snapshot saved with the given name.
Definition at line 1182 of file RooWorkspace.cxx.
bool RooWorkspace::makeDir | ( | ) |
Create transient TDirectory representation of this workspace.
This directory will appear as a subdirectory of the directory that contains the workspace and will have the name of the workspace suffixed with "Dir". The TDirectory interface is read-only. Any attempt to insert objects into the workspace directory representation will result in an error message. Note that some ROOT object like TH1 automatically insert themselves into the current directory when constructed. This will give error messages when done in a workspace directory.
Definition at line 1887 of file RooWorkspace.cxx.
|
inline |
Definition at line 102 of file RooWorkspace.h.
TObject * RooWorkspace::obj | ( | RooStringView | name | ) | const |
Return any type of object (RooAbsArg, RooAbsData or generic object) with given name)
Definition at line 2007 of file RooWorkspace.cxx.
RooAbsPdf * RooWorkspace::pdf | ( | RooStringView | name | ) | const |
Retrieve p.d.f (RooAbsPdf) with given name. A null pointer is returned if not found.
Definition at line 1214 of file RooWorkspace.cxx.
|
overridevirtual |
Print contents of the workspace.
Reimplemented from TObject.
Definition at line 2095 of file RooWorkspace.cxx.
|
overridevirtual |
If one of the TObject we have a referenced to is deleted, remove the reference.
Reimplemented from TObject.
Definition at line 2909 of file RooWorkspace.cxx.
bool RooWorkspace::removeSet | ( | const char * | name | ) |
Remove a named set from the workspace.
Definition at line 1007 of file RooWorkspace.cxx.
bool RooWorkspace::renameSet | ( | const char * | name, |
const char * | newName | ||
) |
Rename set to a new name.
Definition at line 976 of file RooWorkspace.cxx.
bool RooWorkspace::saveSnapshot | ( | RooStringView | name, |
const char * | paramNames | ||
) |
Save snapshot of values and attributes (including "Constant") of given parameters.
[in] | name | Name of the snapshot. |
[in] | paramNames | Comma-separated list of parameter names to be snapshot. |
Definition at line 1137 of file RooWorkspace.cxx.
bool RooWorkspace::saveSnapshot | ( | RooStringView | name, |
const RooArgSet & | params, | ||
bool | importValues = false |
||
) |
Save snapshot of values and attributes (including "Constant") of parameters 'params'.
If importValues is FALSE, the present values from the object in the workspace are saved. If importValues is TRUE, the values of the objects passed in the 'params' argument are saved
Definition at line 1152 of file RooWorkspace.cxx.
const RooArgSet * RooWorkspace::set | ( | RooStringView | name | ) |
Return pointer to previously defined named set with given nmame If no such set is found a null pointer is returned.
Definition at line 964 of file RooWorkspace.cxx.
|
static |
Specify the name of the directory in which embedded source code is unpacked and compiled.
The specified string may contain one 's' token which will be substituted by the workspace name
Definition at line 143 of file RooWorkspace.cxx.
|
inline |
Definition at line 91 of file RooWorkspace.h.
bool RooWorkspace::startTransaction | ( | ) |
Open an import transaction operations.
Returns true if successful, false if there is already an ongoing transaction
Definition at line 1029 of file RooWorkspace.cxx.
|
overridevirtual |
Stream an object of class RooWorkspace.
This is a standard ROOT streamer for the I/O part. This custom function exists to detach all external client links from the payload prior to writing the payload so that these client links are not persisted. (Client links occur if external function objects use objects contained in the workspace as input) After the actual writing, these client links are restored.
Reimplemented from TObject.
Definition at line 2457 of file RooWorkspace.cxx.
|
inline |
Definition at line 282 of file RooWorkspace.h.
|
inline |
Definition at line 152 of file RooWorkspace.h.
|
inline |
Make internal collection use an unordered_map for faster searching.
Important when large trees are imported / or modified in the workspace. Note that RooAbsCollection may eventually switch this on by itself.
Definition at line 140 of file RooWorkspace.h.
|
inline |
Definition at line 164 of file RooWorkspace.h.
RooRealVar * RooWorkspace::var | ( | RooStringView | name | ) | const |
Retrieve real-valued variable (RooRealVar) with given name. A null pointer is returned if not found.
Definition at line 1232 of file RooWorkspace.cxx.
Save this current workspace into given file.
Definition at line 2055 of file RooWorkspace.cxx.
|
friend |
Definition at line 250 of file RooWorkspace.h.
|
friend |
Definition at line 245 of file RooWorkspace.h.
|
friend |
Definition at line 246 of file RooWorkspace.h.
|
friend |
Definition at line 247 of file RooWorkspace.h.
|
private |
List of owned pdfs and components.
Definition at line 261 of file RooWorkspace.h.
|
staticprivate |
Definition at line 257 of file RooWorkspace.h.
|
staticprivate |
Definition at line 251 of file RooWorkspace.h.
|
private |
Definition at line 259 of file RooWorkspace.h.
|
staticprivate |
Definition at line 253 of file RooWorkspace.h.
|
staticprivate |
Definition at line 252 of file RooWorkspace.h.
|
private |
List of owned datasets.
Definition at line 262 of file RooWorkspace.h.
|
private |
! Transient ROOT directory representation of workspace
Definition at line 270 of file RooWorkspace.h.
|
private |
! Export contents of workspace to CINT?
Definition at line 276 of file RooWorkspace.h.
|
private |
List of owned datasets that are embedded in pdfs.
Definition at line 263 of file RooWorkspace.h.
|
private |
Cache for expensive objects.
Definition at line 272 of file RooWorkspace.h.
|
private |
! Name of CINT namespace to which contents are exported
Definition at line 277 of file RooWorkspace.h.
|
private |
! Factory tool associated with workspace
Definition at line 274 of file RooWorkspace.h.
|
private |
List of generic objects.
Definition at line 266 of file RooWorkspace.h.
|
private |
Map of named RooArgSets.
Definition at line 268 of file RooWorkspace.h.
|
private |
! Is there a transaction open?
Definition at line 279 of file RooWorkspace.h.
|
private |
! Sandbox for incoming objects in a transaction
Definition at line 280 of file RooWorkspace.h.
|
private |
List of parameter snapshots.
Definition at line 265 of file RooWorkspace.h.
|
private |
List if StudyManager modules.
Definition at line 267 of file RooWorkspace.h.
|
private |
Definition at line 255 of file RooWorkspace.h.
|
private |
List of model views.
Definition at line 264 of file RooWorkspace.h.