/usr/include/root/RooWorkspace.h is in libroot-roofit-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | /*****************************************************************************
* Project: RooFit *
* Package: RooFitCore *
* File: $Id: RooWorkspace.h,v 1.3 2007/07/16 21:04:28 wouter Exp $
* Authors: *
* WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
* DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
* *
* Copyright (c) 2000-2005, Regents of the University of California *
* and Stanford University. All rights reserved. *
* *
* Redistribution and use in source and binary forms, *
* with or without modification, are permitted according to the terms *
* listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
*****************************************************************************/
#ifndef ROO_WORKSPACE
#define ROO_WORKSPACE
#include "RooPrintable.h"
#include "RooArgSet.h"
#include "RooLinkedList.h"
#include "RooCmdArg.h"
#include "RooExpensiveObjectCache.h"
#include "TUUID.h"
#include <map>
#include <list>
#include <string>
class TClass ;
class RooAbsPdf ;
class RooAbsData ;
class RooRealVar ;
class RooCategory ;
class RooAbsReal ;
class RooAbsCategory ;
class RooFactoryWSTool ;
class RooAbsStudy ;
#include "TNamed.h"
#include "TDirectoryFile.h"
class RooWorkspace : public TNamed {
public:
RooWorkspace() ;
RooWorkspace(const char* name, Bool_t doCINTExport) ;
RooWorkspace(const char* name, const char* title=0) ;
RooWorkspace(const RooWorkspace& other) ;
~RooWorkspace() ;
void exportToCint(const char* namespaceName=0) ;
Bool_t importClassCode(const char* pat="*", Bool_t doReplace=kFALSE) ;
Bool_t importClassCode(TClass* theClass, Bool_t doReplace=kFALSE) ;
// Import functions for dataset, functions, generic objects
Bool_t import(const RooAbsArg& arg,
const RooCmdArg& arg1=RooCmdArg(),const RooCmdArg& arg2=RooCmdArg(),const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCmdArg(),const RooCmdArg& arg9=RooCmdArg()) ;
Bool_t import(const RooArgSet& args,
const RooCmdArg& arg1=RooCmdArg(),const RooCmdArg& arg2=RooCmdArg(),const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCmdArg(),const RooCmdArg& arg9=RooCmdArg()) ;
Bool_t import(RooAbsData& data,
const RooCmdArg& arg1=RooCmdArg(),const RooCmdArg& arg2=RooCmdArg(),const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCmdArg(),const RooCmdArg& arg9=RooCmdArg()) ;
Bool_t import(const char *fileSpec,
const RooCmdArg& arg1=RooCmdArg(),const RooCmdArg& arg2=RooCmdArg(),const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCmdArg(),const RooCmdArg& arg9=RooCmdArg()) ;
Bool_t import(TObject& object, Bool_t replaceExisting=kFALSE) ;
Bool_t import(TObject& object, const char* aliasName, Bool_t replaceExisting=kFALSE) ;
// Transaction management interface for multi-step import operations
Bool_t startTransaction() ;
Bool_t cancelTransaction() ;
Bool_t commitTransaction() ;
// Named set management
Bool_t defineSet(const char* name, const RooArgSet& aset, Bool_t importMissing=kFALSE) ;
Bool_t defineSet(const char* name, const char* contentList) ;
Bool_t extendSet(const char* name, const char* newContents) ;
Bool_t renameSet(const char* name, const char* newName) ;
Bool_t removeSet(const char* name) ;
const RooArgSet* set(const char* name) ;
// Import, load and save parameter value snapshots
Bool_t saveSnapshot(const char* name, const char* paramNames) ;
Bool_t saveSnapshot(const char* name, const RooArgSet& params, Bool_t importValues=kFALSE) ;
Bool_t loadSnapshot(const char* name) ;
const RooArgSet* getSnapshot(const char* name) const ;
void merge(const RooWorkspace& /*other*/) {} ;
// Join p.d.f.s and datasets for simultaneous analysis
// RooAbsPdf* joinPdf(const char* jointPdfName, const char* indexName, const char* inputMapping) ;
// RooAbsData* joinData(const char* jointDataName, const char* indexName, const char* inputMapping) ;
// Accessor functions
RooAbsPdf* pdf(const char* name) const ;
RooAbsReal* function(const char* name) const ;
RooRealVar* var(const char* name) const ;
RooCategory* cat(const char* name) const ;
RooAbsCategory* catfunc(const char* name) const ;
RooAbsData* data(const char* name) const ;
RooAbsData* embeddedData(const char* name) const ;
RooAbsArg* arg(const char* name) const ;
RooAbsArg* fundArg(const char* name) const ;
RooArgSet argSet(const char* nameList) const ;
TIterator* componentIterator() const { return _allOwnedNodes.createIterator() ; }
const RooArgSet& components() const { return _allOwnedNodes ; }
TObject* genobj(const char* name) const ;
TObject* obj(const char* name) const ;
// Group accessors
RooArgSet allVars() const;
RooArgSet allCats() const ;
RooArgSet allFunctions() const ;
RooArgSet allCatFunctions() const ;
RooArgSet allPdfs() const ;
RooArgSet allResolutionModels() const ;
std::list<RooAbsData*> allData() const ;
std::list<RooAbsData*> allEmbeddedData() const ;
std::list<TObject*> allGenericObjects() const ;
Bool_t makeDir() ;
Bool_t cd(const char* path = 0) ;
Bool_t writeToFile(const char* fileName, Bool_t recreate=kTRUE) ;
// Tools management
RooFactoryWSTool& factory() ;
RooAbsArg* factory(const char* expr) ;
// RooStudyManager modules
Bool_t addStudy(RooAbsStudy& study) ;
TIterator* studyIterator() { return _studyMods.MakeIterator() ; }
void clearStudies() ;
// Print function
void Print(Option_t* opts=0) const ;
static void autoImportClassCode(Bool_t flag) ;
static void addClassDeclImportDir(const char* dir) ;
static void addClassImplImportDir(const char* dir) ;
static void setClassFileExportDir(const char* dir=0) ;
const TUUID& uuid() const { return _uuid ; }
RooExpensiveObjectCache& expensiveObjectCache() { return _eocache ; }
class CodeRepo : public TObject {
public:
CodeRepo(RooWorkspace* wspace=0) : _wspace(wspace), _compiledOK(kTRUE) {} ;
CodeRepo(const CodeRepo& other, RooWorkspace* wspace=0) : TObject(other) ,
_wspace(wspace?wspace:other._wspace),
_c2fmap(other._c2fmap),
_fmap(other._fmap),
_ehmap(other._ehmap),
_compiledOK(other._compiledOK) {} ;
virtual ~CodeRepo() {} ;
Bool_t autoImportClass(TClass* tc, Bool_t doReplace=kFALSE) ;
Bool_t compileClasses() ;
Bool_t compiledOK() const { return _compiledOK ; }
std::string listOfClassNames() const ;
class ClassRelInfo {
public:
TString _baseName;
TString _fileBase ;
} ;
class ClassFiles {
public:
ClassFiles() : _extracted(kFALSE) {}
TString _hext ;
TString _hfile ;
TString _cxxfile ;
Bool_t _extracted ;
} ;
class ExtraHeader {
public:
TString _hname ;
TString _hfile ;
} ;
protected:
RooWorkspace* _wspace ; // owning workspace
std::map<TString,ClassRelInfo> _c2fmap ; // List of contained classes
std::map<TString,ClassFiles> _fmap ; // List of contained files
std::map<TString,ExtraHeader> _ehmap ; // List of extra header files
Bool_t _compiledOK ; //! Flag indicating that classes compiled OK
ClassDef(CodeRepo,2) ; // Code repository for RooWorkspace
} ;
class WSDir : public TDirectoryFile {
public:
WSDir(const char* name, const char* title, RooWorkspace* wspace) :
TDirectoryFile(name,title,"RooWorkspace::WSDir",0),
_wspace(wspace)
{
}
virtual ~WSDir() { Clear("nodelete") ; } ;
#if ROOT_VERSION_CODE <= 332546
virtual void Add(TObject*) ;
virtual void Append(TObject*) ;
#else
virtual void Add(TObject*,Bool_t) ;
virtual void Append(TObject*,Bool_t) ;
#endif
protected:
friend class RooWorkspace ;
void InternalAppend(TObject* obj) ;
RooWorkspace* _wspace ; //! do not persist
ClassDef(WSDir,1) ; // TDirectory representation of RooWorkspace
} ;
private:
Bool_t isValidCPPID(const char* name) ;
void exportObj(TObject* obj) ;
void unExport() ;
friend class CodeRepo ;
static std::list<std::string> _classDeclDirList ;
static std::list<std::string> _classImplDirList ;
static std::string _classFileExportDir ;
TUUID _uuid ; // Unique workspace ID
static Bool_t _autoClass ; // Automatic import of non-distribution class code
CodeRepo _classes ; // Repository of embedded class code. This data member _must_ be first
RooArgSet _allOwnedNodes ; // List of owned pdfs and components
RooLinkedList _dataList ; // List of owned datasets
RooLinkedList _embeddedDataList ; // List of owned datasets that are embedded in pdfs
RooLinkedList _views ; // List of model views
RooLinkedList _snapshots ; // List of parameter snapshots
RooLinkedList _genObjects ; // List of generic objects
RooLinkedList _studyMods ; // List if StudyManager modules
std::map<std::string,RooArgSet> _namedSets ; // Map of named RooArgSets
WSDir* _dir ; //! Transient ROOT directory representation of workspace
RooExpensiveObjectCache _eocache ; // Cache for expensive objects
RooFactoryWSTool* _factory ; //! Factory tool associated with workspace
Bool_t _doExport ; //! Export contents of workspace to CINT?
std::string _exportNSName ; //! Name of CINT namespace to which contents are exported
Bool_t _openTrans ; //! Is there a transaction open?
RooArgSet _sandboxNodes ; //! Sandbox for incoming objects in a transaction
ClassDef(RooWorkspace,8) // Persistable project container for (composite) pdfs, functions, variables and datasets
} ;
#endif
|