Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooGlobalFunc.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * File: $Id: RooGlobalFunc.h,v 1.14 2007/07/16 21:04:28 wouter Exp $
5  * Authors: *
6  * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7  * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8  * *
9  * Copyright (c) 2000-2005, Regents of the University of California *
10  * and Stanford University. All rights reserved. *
11  * *
12  * Redistribution and use in source and binary forms, *
13  * with or without modification, are permitted according to the terms *
14  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15  *****************************************************************************/
16 #ifndef ROO_GLOBAL_FUNC
17 #define ROO_GLOBAL_FUNC
18 
19 #include "RooCmdArg.h"
20 #include <map>
21 #include <string>
22 //#include "RooDataHist.h"
23 //#include "RooAbsPdf.h"
24 //#include "RooRealConstant.h"
25 //#include "RooMsgService.h"
26 
27 class RooDataHist ;
28 class RooDataSet ;
29 class RooFitResult ;
30 class RooAbsPdf ;
31 class RooAbsRealLValue ;
32 class RooRealConstant ;
33 class RooMsgService ;
34 class RooFormulaVar ;
35 class RooAbsData ;
36 class RooArgSet ;
37 class RooCategory ;
38 class RooAbsReal ;
39 class RooAbsBinning ;
40 class RooAbsCollection ;
41 class RooAbsPdf ;
42 class RooConstVar ;
43 class RooRealVar ;
44 class RooAbsCategory ;
45 class RooNumIntConfig ;
46 class RooArgList ;
47 class RooAbsCollection ;
48 class TH1 ;
49 class TF1 ;
50 class TF2 ;
51 class TF3 ;
52 class TTree ;
53 
54 /*! \namespace RooFit
55 The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs
56 (or other types of arguments).
57 
58 These switches are documented with the relevant functions, e.g. RooAbsPdf::fitTo().
59 For an introduction to RooFit (not the namespace), check the [user's guides](https://root.cern.ch/root-user-guides-and-manuals),
60 [courses](https://root.cern.ch/courses) or [RooFit in 20 minutes](https://root.cern.ch/roofit-20-minutes).
61 */
62 namespace RooFit {
63 
64 /// Verbosity level for RooMsgService::StreamConfig in RooMsgService
65 enum MsgLevel { DEBUG=0, INFO=1, PROGRESS=2, WARNING=3, ERROR=4, FATAL=5 } ;
66 /// Topics for a RooMsgService::StreamConfig in RooMsgService
67 enum MsgTopic { Generation=1, Minimization=2, Plotting=4, Fitting=8, Integration=16, LinkStateMgmt=32,
68  Eval=64, Caching=128, Optimization=256, ObjectHandling=512, InputArguments=1024, Tracing=2048,
69  Contents=4096, DataHandling=8192, NumIntegration=16384, FastEvaluations=1<<15 } ;
70 enum MPSplit { BulkPartition=0, Interleave=1, SimComponents=2, Hybrid=3 } ;
71 
72 // RooAbsReal::plotOn arguments
73 RooCmdArg DrawOption(const char* opt) ;
74 RooCmdArg Normalization(Double_t scaleFactor) ;
75 RooCmdArg Slice(const RooArgSet& sliceSet) ;
76 RooCmdArg Slice(RooCategory& cat, const char* label) ;
77 RooCmdArg Project(const RooArgSet& projSet) ;
78 RooCmdArg ProjWData(const RooAbsData& projData, Bool_t binData=kFALSE) ;
79 RooCmdArg ProjWData(const RooArgSet& projSet, const RooAbsData& projData, Bool_t binData=kFALSE) ;
80 RooCmdArg Asymmetry(const RooCategory& cat) ;
81 RooCmdArg Precision(Double_t prec) ;
82 RooCmdArg ShiftToZero() ;
83 RooCmdArg Range(const char* rangeName, Bool_t adjustNorm=kTRUE) ;
84 RooCmdArg Range(Double_t lo, Double_t hi, Bool_t adjustNorm=kTRUE) ;
85 RooCmdArg NormRange(const char* rangeNameList) ;
86 RooCmdArg VLines() ;
87 RooCmdArg LineColor(Color_t color) ;
88 RooCmdArg LineStyle(Style_t style) ;
89 RooCmdArg LineWidth(Width_t width) ;
90 RooCmdArg FillColor(Color_t color) ;
91 RooCmdArg FillStyle(Style_t style) ;
92 RooCmdArg ProjectionRange(const char* rangeName) ;
93 RooCmdArg Name(const char* name) ;
94 RooCmdArg Invisible(bool inv=true) ;
95 RooCmdArg AddTo(const char* name, double wgtSel=1.0, double wgtOther=1.0) ;
96 RooCmdArg EvalErrorValue(Double_t value) ;
97 RooCmdArg MoveToBack() ;
98 RooCmdArg VisualizeError(const RooDataSet& paramData, Double_t Z=1) ;
99 RooCmdArg VisualizeError(const RooFitResult& fitres, Double_t Z=1, Bool_t linearMethod=kTRUE) ;
100 RooCmdArg VisualizeError(const RooFitResult& fitres, const RooArgSet& param, Double_t Z=1, Bool_t linearMethod=kTRUE) ;
101 RooCmdArg ShowProgress() ;
102 
103 // RooAbsPdf::plotOn arguments
104 RooCmdArg Normalization(Double_t scaleFactor, Int_t scaleType) ;
105 RooCmdArg Components(const RooArgSet& compSet) ;
106 RooCmdArg Components(const char* compSpec) ;
107 
108 // RooAbsData::plotOn arguments
109 RooCmdArg Cut(const char* cutSpec) ;
110 RooCmdArg Cut(const RooFormulaVar& cutVar) ;
111 RooCmdArg Binning(const RooAbsBinning& binning) ;
112 RooCmdArg Binning(const char* binningName) ;
113 RooCmdArg Binning(Int_t nBins, Double_t xlo=0., Double_t xhi=0.) ;
114 RooCmdArg MarkerStyle(Style_t style) ;
115 RooCmdArg MarkerSize(Size_t size) ;
116 RooCmdArg MarkerColor(Color_t color) ;
117 RooCmdArg CutRange(const char* rangeName) ;
118 RooCmdArg XErrorSize(Double_t width) ;
119 RooCmdArg RefreshNorm() ;
120 RooCmdArg Efficiency(const RooCategory& cat) ;
121 RooCmdArg Rescale(Double_t factor) ;
122 
123 // RooDataHist::ctor arguments
124 RooCmdArg Weight(Double_t wgt) ;
125 RooCmdArg Index(RooCategory& icat) ;
126 RooCmdArg Import(const char* state, TH1& histo) ;
127 RooCmdArg Import(const std::map<std::string,TH1*>&) ;
128 RooCmdArg Import(const char* state, RooDataHist& dhist) ;
129 RooCmdArg Import(const std::map<std::string,RooDataHist*>&) ;
130 RooCmdArg Import(TH1& histo, Bool_t importDensity=kFALSE) ;
131 
132 // RooDataSet::ctor arguments
133 RooCmdArg WeightVar(const char* name, Bool_t reinterpretAsWeight=kFALSE) ;
134 RooCmdArg WeightVar(const RooRealVar& arg, Bool_t reinterpretAsWeight=kFALSE) ;
135 RooCmdArg Import(const char* state, RooDataSet& data) ;
136 RooCmdArg Import(const std::map<std::string,RooDataSet*>& ) ;
137 RooCmdArg Link(const char* state, RooAbsData& data) ;
138 RooCmdArg Link(const std::map<std::string,RooAbsData*>&) ;
139 RooCmdArg Import(RooDataSet& data) ;
140 RooCmdArg Import(TTree& tree) ;
141 RooCmdArg ImportFromFile(const char* fname, const char* tname) ;
142 RooCmdArg StoreError(const RooArgSet& aset) ;
143 RooCmdArg StoreAsymError(const RooArgSet& aset) ;
144 RooCmdArg OwnLinked() ;
145 
146 // RooChi2Var::ctor / RooNLLVar arguments
147 RooCmdArg Extended(Bool_t flag=kTRUE) ;
148 RooCmdArg DataError(Int_t) ;
149 RooCmdArg NumCPU(Int_t nCPU, Int_t interleave=0) ;
150 RooCmdArg BatchMode(bool flag=true);
151 
152 // RooAbsPdf::printLatex arguments
153 RooCmdArg Columns(Int_t ncol) ;
154 RooCmdArg OutputFile(const char* fileName) ;
155 RooCmdArg Format(const char* format, Int_t sigDigit) ;
156 RooCmdArg Format(const char* what, const RooCmdArg& arg1=RooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(),
157  const RooCmdArg& arg3=RooCmdArg::none(),const RooCmdArg& arg4=RooCmdArg::none(),
158  const RooCmdArg& arg5=RooCmdArg::none(),const RooCmdArg& arg6=RooCmdArg::none(),
159  const RooCmdArg& arg7=RooCmdArg::none(),const RooCmdArg& arg8=RooCmdArg::none()) ;
160 RooCmdArg Sibling(const RooAbsCollection& sibling) ;
161 
162 // RooAbsRealLValue::frame arguments
163 RooCmdArg Title(const char* name) ;
164 RooCmdArg Bins(Int_t nbin) ;
165 RooCmdArg AutoSymRange(const RooAbsData& data, Double_t marginFactor=0.1) ;
166 RooCmdArg AutoRange(const RooAbsData& data, Double_t marginFactor=0.1) ;
167 
168 // RooAbsData::createHistogram arguments
169 RooCmdArg AutoSymBinning(Int_t nbins=100, Double_t marginFactor=0.1) ;
170 RooCmdArg AutoBinning(Int_t nbins=100, Double_t marginFactor=0.1) ;
171 
172 // RooAbsReal::fillHistogram arguments
173 RooCmdArg IntegratedObservables(const RooArgSet& intObs) ;
174 
175 // RooAbsData::reduce arguments
176 RooCmdArg SelectVars(const RooArgSet& vars) ;
177 RooCmdArg EventRange(Int_t nStart, Int_t nStop) ;
178 
179 // RooAbsPdf::fitTo arguments
180 RooCmdArg PrefitDataFraction(Double_t data_ratio = 0.0) ;
181 RooCmdArg FitOptions(const char* opts) ;
182 RooCmdArg Optimize(Int_t flag=2) ;
183 RooCmdArg ProjectedObservables(const RooArgSet& set) ; // obsolete, for backward compatibility
184 RooCmdArg ConditionalObservables(const RooArgSet& set) ;
185 RooCmdArg Verbose(Bool_t flag=kTRUE) ;
186 RooCmdArg Save(Bool_t flag=kTRUE) ;
187 RooCmdArg Timer(Bool_t flag=kTRUE) ;
188 RooCmdArg PrintLevel(Int_t code) ;
189 RooCmdArg Warnings(Bool_t flag=kTRUE) ;
190 RooCmdArg Strategy(Int_t code) ;
191 RooCmdArg InitialHesse(Bool_t flag=kTRUE) ;
192 RooCmdArg Hesse(Bool_t flag=kTRUE) ;
193 RooCmdArg Minos(Bool_t flag=kTRUE) ;
194 RooCmdArg Minos(const RooArgSet& minosArgs) ;
195 RooCmdArg SplitRange(Bool_t flag=kTRUE) ;
196 RooCmdArg SumCoefRange(const char* rangeName) ;
197 RooCmdArg Constrain(const RooArgSet& params) ;
198 RooCmdArg GlobalObservables(const RooArgSet& globs) ;
199 RooCmdArg GlobalObservablesTag(const char* tagName) ;
200 //RooCmdArg Constrained() ;
201 RooCmdArg ExternalConstraints(const RooArgSet& constraintPdfs) ;
202 RooCmdArg PrintEvalErrors(Int_t numErrors) ;
203 RooCmdArg EvalErrorWall(Bool_t flag) ;
204 RooCmdArg SumW2Error(Bool_t flag) ;
205 RooCmdArg AsymptoticError(Bool_t flag) ;
206 RooCmdArg CloneData(Bool_t flag) ;
207 RooCmdArg Integrate(Bool_t flag) ;
208 RooCmdArg Minimizer(const char* type, const char* alg=0) ;
209 RooCmdArg Offset(Bool_t flag=kTRUE) ;
210 
211 // RooAbsPdf::paramOn arguments
212 RooCmdArg Label(const char* str) ;
213 RooCmdArg Layout(Double_t xmin, Double_t xmax=0.99, Double_t ymin=0.95) ;
214 RooCmdArg Parameters(const RooArgSet& params) ;
215 RooCmdArg ShowConstants(Bool_t flag=kTRUE) ;
216 
217 // RooTreeData::statOn arguments
218 RooCmdArg What(const char* str) ;
219 
220 // RooProdPdf::ctor arguments
221 RooCmdArg Conditional(const RooArgSet& pdfSet, const RooArgSet& depSet, Bool_t depsAreCond=kFALSE) ;
222 
223 // RooAbsPdf::generate arguments
224 RooCmdArg ProtoData(const RooDataSet& protoData, Bool_t randomizeOrder=kFALSE, Bool_t resample=kFALSE) ;
225 RooCmdArg NumEvents(Int_t numEvents) ;
226 RooCmdArg NumEvents(Double_t numEvents) ;
227 RooCmdArg AutoBinned(Bool_t flag=kTRUE) ;
228 RooCmdArg GenBinned(const char* tag) ;
229 RooCmdArg AllBinned() ;
230 RooCmdArg ExpectedData(Bool_t flag=kTRUE) ;
231 RooCmdArg Asimov(Bool_t flag=kTRUE) ;
232 
233 // RooAbsRealLValue::createHistogram arguments
234 RooCmdArg YVar(const RooAbsRealLValue& var, const RooCmdArg& arg=RooCmdArg::none()) ;
235 RooCmdArg ZVar(const RooAbsRealLValue& var, const RooCmdArg& arg=RooCmdArg::none()) ;
236 RooCmdArg AxisLabel(const char* name) ;
237 RooCmdArg Scaling(Bool_t flag) ;
238 
239 
240 // RooAbsReal::createHistogram arguments
241 RooCmdArg IntrinsicBinning(Bool_t flag=kTRUE) ;
242 
243 // RooAbsReal::createIntegral arguments
244 RooCmdArg NormSet(const RooArgSet& nset) ;
245 RooCmdArg NumIntConfig(const RooNumIntConfig& cfg) ;
246 
247 // RooMCStudy::ctor arguments
248 RooCmdArg Silence(Bool_t flag=kTRUE) ;
249 RooCmdArg FitModel(RooAbsPdf& pdf) ;
250 RooCmdArg FitOptions(const RooCmdArg& arg1 ,const RooCmdArg& arg2=RooCmdArg::none(),
251  const RooCmdArg& arg3=RooCmdArg::none(),const RooCmdArg& arg4=RooCmdArg::none(),
252  const RooCmdArg& arg5=RooCmdArg::none(),const RooCmdArg& arg6=RooCmdArg::none()) ;
253 RooCmdArg Binned(Bool_t flag=kTRUE) ;
254 
255 // RooMCStudy::plot* arguments
256 RooCmdArg Frame(const RooCmdArg& arg1 ,const RooCmdArg& arg2=RooCmdArg::none(),
257  const RooCmdArg& arg3=RooCmdArg::none(),const RooCmdArg& arg4=RooCmdArg::none(),
258  const RooCmdArg& arg5=RooCmdArg::none(),const RooCmdArg& arg6=RooCmdArg::none()) ;
259 RooCmdArg FrameBins(Int_t nbins) ;
260 RooCmdArg FrameRange(Double_t xlo, Double_t xhi) ;
261 RooCmdArg FitGauss(Bool_t flag=kTRUE) ;
262 
263 // RooRealVar::format arguments
264 RooCmdArg AutoPrecision(Int_t ndigit=2) ;
265 RooCmdArg FixedPrecision(Int_t ndigit=2) ;
266 RooCmdArg TLatexStyle(Bool_t flag=kTRUE) ;
267 RooCmdArg LatexStyle(Bool_t flag=kTRUE) ;
268 RooCmdArg LatexTableStyle(Bool_t flag=kTRUE) ;
269 RooCmdArg VerbatimName(Bool_t flag=kTRUE) ;
270 
271 // RooMsgService::addReportingStream arguments
272 RooCmdArg Topic(Int_t topic) ;
273 RooCmdArg ObjectName(const char* name) ;
274 RooCmdArg ClassName(const char* name) ;
275 RooCmdArg BaseClassName(const char* name) ;
276 RooCmdArg TagName(const char* name) ;
277 RooCmdArg OutputStream(std::ostream& os) ;
278 RooCmdArg Prefix(Bool_t flag) ;
279 RooCmdArg Color(Color_t color) ;
280 
281 // RooWorkspace::import() arguments
282 RooCmdArg RenameConflictNodes(const char* suffix, Bool_t renameOrigNodes=kFALSE) ;
283 RooCmdArg RenameAllNodes(const char* suffix) ;
284 RooCmdArg RenameAllVariables(const char* suffix) ;
285 RooCmdArg RenameAllVariablesExcept(const char* suffix,const char* exceptionList) ;
286 RooCmdArg RenameVariable(const char* inputName, const char* outputName) ;
287 RooCmdArg Rename(const char* suffix) ;
288 RooCmdArg RecycleConflictNodes(Bool_t flag=kTRUE) ;
289 RooCmdArg Embedded(Bool_t flag=kTRUE) ;
290 RooCmdArg NoRecursion(Bool_t flag=kTRUE) ;
291 
292 // RooSimCloneTool::build() arguments
293 RooCmdArg SplitParam(const char* varname, const char* catname) ;
294 RooCmdArg SplitParam(const RooRealVar& var, const RooAbsCategory& cat) ;
295 RooCmdArg SplitParamConstrained(const char* varname, const char* catname, const char* rsname) ;
296 RooCmdArg SplitParamConstrained(const RooRealVar& var, const RooAbsCategory& cat, const char* rsname) ;
297 RooCmdArg Restrict(const char* catName, const char* stateNameList) ;
298 
299 // RooAbsPdf::createCdf() arguments
300 RooCmdArg SupNormSet(const RooArgSet& nset) ;
301 RooCmdArg ScanParameters(Int_t nbins,Int_t intOrder) ;
302 RooCmdArg ScanNumCdf() ;
303 RooCmdArg ScanAllCdf() ;
304 RooCmdArg ScanNoCdf() ;
305 
306 // Generic container arguments (to be able to supply more command line arguments)
307 RooCmdArg MultiArg(const RooCmdArg& arg1, const RooCmdArg& arg2,
308  const RooCmdArg& arg3=RooCmdArg::none(),const RooCmdArg& arg4=RooCmdArg::none(),
309  const RooCmdArg& arg5=RooCmdArg::none(),const RooCmdArg& arg6=RooCmdArg::none(),
310  const RooCmdArg& arg7=RooCmdArg::none(),const RooCmdArg& arg8=RooCmdArg::none()) ;
311 
312 RooConstVar& RooConst(Double_t val) ;
313 
314 
315 }
316 
317 namespace RooFitShortHand {
318 
319 RooArgSet S(const RooAbsArg& v1) ;
320 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2) ;
321 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3) ;
322 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4) ;
323 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5) ;
324 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
325  const RooAbsArg& v6) ;
326 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
327  const RooAbsArg& v6, const RooAbsArg& v7) ;
328 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
329  const RooAbsArg& v6, const RooAbsArg& v7, const RooAbsArg& v8) ;
330 RooArgSet S(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
331  const RooAbsArg& v6, const RooAbsArg& v7, const RooAbsArg& v8, const RooAbsArg& v9) ;
332 
333 RooArgList L(const RooAbsArg& v1) ;
334 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2) ;
335 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3) ;
336 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4) ;
337 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5) ;
338 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
339  const RooAbsArg& v6) ;
340 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
341  const RooAbsArg& v6, const RooAbsArg& v7) ;
342 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
343  const RooAbsArg& v6, const RooAbsArg& v7, const RooAbsArg& v8) ;
344 RooArgList L(const RooAbsArg& v1, const RooAbsArg& v2, const RooAbsArg& v3, const RooAbsArg& v4, const RooAbsArg& v5,
345  const RooAbsArg& v6, const RooAbsArg& v7, const RooAbsArg& v8, const RooAbsArg& v9) ;
346 
347 RooConstVar& C(Double_t value) ;
348 
349 } // End namespace ShortHand
350 
351 class RooGlobalFunc {};
352 
353 #endif