Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooGlobalFunc.cxx
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * @(#)root/roofitcore:$Id$
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
17// Global helper functions
18
19#include <RooGlobalFunc.h>
20
21#include <RooAbsData.h>
22#include <RooAbsPdf.h>
23#include <RooBatchCompute.h>
24#include <RooCategory.h>
25#include <RooDataHist.h>
26#include <RooDataSet.h>
27#include <RooFitResult.h>
28#include <RooFormulaVar.h>
29#include <RooHelpers.h>
30#include <RooMsgService.h>
31#include <RooNumIntConfig.h>
32#include <RooRealConstant.h>
33#include <RooRealVar.h>
34
35#include "RooEvaluatorWrapper.h"
36
37#include <TH1.h>
38#include <TInterpreter.h>
39
40#include <algorithm>
41
42namespace RooFit {
43
44/// Get the global choice for the RooBatchCompute library that RooFit will load.
45/// \see RooFit::setBatchCompute().
50
51/// Globally select the RooBatchCompute CPU implementation that will be loaded
52/// in RooFit.
53/// Supported options are "auto" (default), "avx512", "avx2", "avx", "sse", "generic".
54/// \note It is not possible to change the selection after RooFit has already
55/// loaded a library (which is usually triggered by likelihood creation or fitting).
56void setBatchCompute(std::string const &value)
57{
59}
60
61// anonymous namespace for helper functions for the implementation of the global functions
62namespace {
63
64template <class T>
65RooCmdArg processImportItem(std::string const &key, T *val)
66{
67 return Import(key.c_str(), *val);
68}
69
70template <class T>
71RooCmdArg processLinkItem(std::string const &key, T *val)
72{
73 return Link(key.c_str(), *val);
74}
75
76RooCmdArg processSliceItem(RooCategory *key, std::string const &val)
77{
78 return Slice(*key, val.c_str());
79}
80
81template <class Key_t, class Val_t, class Func_t>
82RooCmdArg processMap(const char *name, Func_t func, std::map<Key_t, Val_t> const &map)
83{
84 RooCmdArg container(name, 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
85 for (auto const &item : map) {
86 container.addArg(func(item.first, item.second));
87 }
88 container.setProcessRecArgs(true, false);
89 return container;
90}
91
92template <class Key_t, class Val_t, class Func_t>
93RooCmdArg processFlatMap(const char *name, Func_t func, Detail::FlatMap<Key_t, Val_t> const &map)
94{
95 RooCmdArg container(name, 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
96 for (std::size_t i = 0; i < map.keys.size(); ++i) {
97 container.addArg(func(map.keys[i], map.vals[i]));
98 }
99 container.setProcessRecArgs(true, false);
100 return container;
101}
102
103int interpretString(std::string const &s)
104{
105 return gInterpreter->ProcessLine(s.c_str());
106}
107
108Style_t interpretLineStyleString(std::string const &style)
109{
110 using Map = std::unordered_map<std::string, Style_t>;
111 // Style dictionary to define matplotlib conventions
112 static Map styleMap{{"-", kSolid}, {"--", kDashed}, {":", kDotted}, {"-.", kDashDotted}};
113 auto found = styleMap.find(style);
114 if (found != styleMap.end())
115 return found->second;
116 // Use interpreter if style was not matched in the style map
117 return gInterpreter->ProcessLine(style.c_str());
118}
119
120} // namespace
121
122namespace Experimental {
123
125{
126 return RooCmdArg("ParallelGradientOptions", enable, chainFactor, orderStrategy, 0, nullptr, nullptr, nullptr,
127 nullptr);
128}
130{
131 return RooCmdArg("ParallelDescentOptions", enable, numSplits, splitStrategy, 0, nullptr, nullptr, nullptr, nullptr);
132}
133
134void writeCodegenDebugMacro(RooAbsReal const &absReal, std::string const &name)
135{
136 if (auto *wrapper = dynamic_cast<RooEvaluatorWrapper const *>(&absReal)) {
137 wrapper->writeDebugMacro(name);
138 }
139}
140
141} // namespace Experimental
142
143// RooAbsReal::plotOn arguments
144RooCmdArg DrawOption(const char *opt)
145{
146 return RooCmdArg("DrawOption", 0, 0, 0, 0, opt, nullptr, nullptr, nullptr);
147}
149{
150 RooCmdArg out{"SliceVars", 0};
151 out.setSet(0, sliceSet);
152 return out;
153}
154RooCmdArg Slice(RooCategory &cat, const char *label)
155{
156 // We don't support adding multiple slices for a single category by
157 // concatenating labels with a comma. Users were trying to do that, and were
158 // surprised it did not work. So we explicitly check if there is a comma,
159 // and if there is, we will give some helpful advice on how to get to the
160 // desired plot.
161 std::string lbl{label};
162 if (lbl.find(',') != std::string::npos) {
163 std::stringstream errorMsg;
164 errorMsg << "RooFit::Slice(): you tried to pass a comma-separated list of state labels \"" << label
165 << "\" for a given category, but selecting multiple slices like this is not supported!"
166 << " If you want to make a plot of multiple slices, use the ProjWData() command where you pass a "
167 "dataset that includes "
168 "the desired slices. If the slices are a subset of all slices, then you can create such a dataset "
169 "with RooAbsData::reduce(RooFit::Cut(\"cat==cat::label_1 || cat==cat::label_2 || ...\")). You can "
170 "find some examples in the rf501_simultaneouspdf tutorial.";
171 oocoutE(nullptr, InputArguments) << errorMsg.str() << std::endl;
172 throw std::invalid_argument(errorMsg.str().c_str());
173 }
174 return RooCmdArg("SliceCat", 0, 0, 0, 0, label, nullptr, &cat, nullptr);
175}
176RooCmdArg Slice(std::map<RooCategory *, std::string> const &arg)
177{
178 return processMap("SliceCatMany", processSliceItem, arg);
179}
180
182{
183 RooCmdArg out{"Project", 0};
184 out.setSet(0, projSet);
185 return out;
186}
187RooCmdArg ProjWData(const RooArgSet &projSet, const RooAbsData &projData, bool binData)
188{
189 RooCmdArg out{"ProjData", binData, 0, 0, 0, nullptr, nullptr, nullptr, &projData};
190 out.setSet(0, projSet);
191 return out;
192}
193RooCmdArg ProjWData(const RooAbsData &projData, bool binData)
194{
195 return RooCmdArg("ProjData", binData, 0, 0, 0, nullptr, nullptr, nullptr, &projData);
196}
198{
199 return RooCmdArg("Asymmetry", 0, 0, 0, 0, nullptr, nullptr, &cat, nullptr);
200}
202{
203 return RooCmdArg("Precision", 0, 0, prec, 0, nullptr, nullptr, nullptr, nullptr);
204}
206{
207 return RooCmdArg("ShiftToZero", 1);
208}
209RooCmdArg Normalization(double scaleFactor)
210{
211 return RooCmdArg("Normalization", RooAbsReal::Relative, 0, scaleFactor, 0, nullptr, nullptr, nullptr, nullptr);
212}
214{
215 return RooCmdArg("RangeWithName", adjustNorm, 0, 0, 0, rangeName, nullptr, nullptr, nullptr);
216}
217RooCmdArg Range(double lo, double hi, bool adjustNorm)
218{
219 return RooCmdArg("Range", adjustNorm, 0, lo, hi, nullptr, nullptr, nullptr, nullptr);
220}
222{
223 return RooCmdArg("NormRange", 0, 0, 0, 0, rangeNameList, nullptr, nullptr, nullptr);
224}
226{
227 return RooCmdArg("VLines", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
228}
230{
231 return RooCmdArg("LineColor", color.number());
232}
234{
235 return RooCmdArg("LineStyle", style);
236}
237RooCmdArg LineStyle(std::string const &style)
238{
240}
242{
243 return RooCmdArg("LineWidth", width);
244}
246{
247 return RooCmdArg("FillColor", color.number());
248}
250{
251 return RooCmdArg("FillStyle", style);
252}
253RooCmdArg FillStyle(std::string const &style)
254{
256}
258{
259 return RooCmdArg("ProjectionRange", 0, 0, 0, 0, rangeName, nullptr, nullptr, nullptr);
260}
261RooCmdArg Name(const char *name)
262{
263 return RooCmdArg("Name", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
264}
266{
267 return RooCmdArg("Invisible", inv, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
268}
269RooCmdArg AddTo(const char *name, double wgtSel, double wgtOther)
270{
271 return RooCmdArg("AddTo", 0, 0, wgtSel, wgtOther, name, nullptr, nullptr, nullptr);
272}
274{
275 return RooCmdArg("EvalErrorValue", 1, 0, val, 0, nullptr, nullptr, nullptr, nullptr);
276}
278{
279 return RooCmdArg("MoveToBack", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
280}
282{
283 return RooCmdArg("VisualizeError", EVmethod, 0, Z, 0, nullptr, nullptr, &fitres, nullptr);
284}
285RooCmdArg VisualizeError(const RooFitResult &fitres, const RooArgSet &param, double Z, bool EVmethod)
286{
287 return RooCmdArg("VisualizeError", EVmethod, 0, Z, 0, nullptr, nullptr, &fitres, nullptr, nullptr, nullptr, &param);
288}
290{
291 return RooCmdArg("VisualizeErrorData", 0, 0, Z, 0, nullptr, nullptr, &paramData, nullptr);
292}
294{
295 return RooCmdArg("ShowProgress", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
296}
297
298// RooAbsPdf::plotOn arguments
300{
301 return RooCmdArg("SelectCompSpec", 0, 0, 0, 0, compSpec, nullptr, nullptr, nullptr);
302}
304{
305 return RooCmdArg("Normalization", scaleType, 0, scaleFactor, 0, nullptr, nullptr, nullptr, nullptr);
306}
307
308// RooAbsData::plotOn arguments
310{
311 return RooCmdArg("CutSpec", 0, 0, 0, 0, cutSpec, nullptr, nullptr, nullptr);
312}
314{
315 return RooCmdArg("CutVar", 0, 0, 0, 0, nullptr, nullptr, &cutVar, nullptr);
316}
318{
319 return RooCmdArg("Binning", 0, 0, 0, 0, nullptr, nullptr, &binning, nullptr);
320}
321RooCmdArg Binning(const char *binningName)
322{
323 return RooCmdArg("BinningName", 0, 0, 0, 0, binningName, nullptr, nullptr, nullptr);
324}
325RooCmdArg Binning(int nBins, double xlo, double xhi)
326{
327 return RooCmdArg("BinningSpec", nBins, 0, xlo, xhi, nullptr, nullptr, nullptr, nullptr);
328}
330{
331 return RooCmdArg("MarkerStyle", style, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
332}
333RooCmdArg MarkerStyle(std::string const &color)
334{
335 return MarkerStyle(interpretString(color));
336}
338{
339 return RooCmdArg("MarkerSize", 0, 0, size, 0, nullptr, nullptr, nullptr, nullptr);
340}
342{
343 return RooCmdArg("MarkerColor", color.number());
344}
346{
347 return RooCmdArg("CutRange", 0, 0, 0, 0, rangeName, nullptr, nullptr, nullptr);
348}
350{
351 return RooCmdArg("XErrorSize", 0, 0, width, 0, nullptr, nullptr, nullptr, nullptr);
352}
354{
355 return RooCmdArg("RefreshNorm", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
356}
358{
359 return RooCmdArg("Efficiency", 0, 0, 0, 0, nullptr, nullptr, &cat, nullptr);
360}
361RooCmdArg Rescale(double factor)
362{
363 return RooCmdArg("Rescale", 0, 0, factor, 0, nullptr, nullptr, nullptr, nullptr);
364}
365
366// RooDataHist::ctor arguments
368{
369 return RooCmdArg("Weight", 0, 0, wgt, 0, nullptr, nullptr, nullptr, nullptr);
370}
372{
373 return RooCmdArg("IndexCat", 0, 0, 0, 0, nullptr, nullptr, &icat, nullptr);
374}
375RooCmdArg Import(const char *state, TH1 &histo)
376{
377 return RooCmdArg("ImportDataSlice", 0, 0, 0, 0, state, nullptr, &histo, nullptr);
378}
379RooCmdArg Import(const char *state, RooDataHist &dhist)
380{
381 return RooCmdArg("ImportDataSlice", 0, 0, 0, 0, state, nullptr, &dhist, nullptr);
382}
384{
385 return RooCmdArg("ImportHisto", importDensity, 0, 0, 0, nullptr, nullptr, &histo, nullptr);
386}
387
388RooCmdArg Import(const std::map<std::string, RooDataHist *> &arg)
389{
390 return processMap("ImportDataSliceMany", processImportItem<RooDataHist>, arg);
391}
392RooCmdArg Import(const std::map<std::string, TH1 *> &arg)
393{
394 return processMap("ImportDataSliceMany", processImportItem<TH1>, arg);
395}
396
397// RooDataSet::ctor arguments
399{
400 if (name == nullptr)
401 return RooCmdArg::none(); // Passing a nullptr name means no weight variable
402 return RooCmdArg("WeightVarName", reinterpretAsWeight, 0, 0, 0, name, nullptr, nullptr, nullptr);
403}
405{
406 return RooCmdArg("WeightVar", reinterpretAsWeight, 0, 0, 0, nullptr, nullptr, &arg, nullptr);
407}
408RooCmdArg Link(const char *state, RooAbsData &data)
409{
410 return RooCmdArg("LinkDataSlice", 0, 0, 0, 0, state, nullptr, &data, nullptr);
411}
412RooCmdArg Import(const char *state, RooAbsData &data)
413{
414 return RooCmdArg("ImportDataSlice", 0, 0, 0, 0, state, nullptr, &data, nullptr);
415}
417{
418 return RooCmdArg("ImportData", 0, 0, 0, 0, nullptr, nullptr, &data, nullptr);
419}
421{
422 return RooCmdArg("ImportTree", 0, 0, 0, 0, nullptr, nullptr, reinterpret_cast<TObject *>(&tree), nullptr);
423}
424RooCmdArg ImportFromFile(const char *fname, const char *tname)
425{
426 return RooCmdArg("ImportFromFile", 0, 0, 0, 0, fname, tname, nullptr, nullptr);
427}
429{
430 return RooCmdArg("StoreError", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &aset);
431}
433{
434 return RooCmdArg("StoreAsymError", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &aset);
435}
437{
438 return RooCmdArg("OwnLinked", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
439}
440
441RooCmdArg Import(const std::map<std::string, RooDataSet *> &arg)
442{
443 return processMap("ImportDataSliceMany", processImportItem<RooDataSet>, arg);
444}
445RooCmdArg Link(const std::map<std::string, RooAbsData *> &arg)
446{
447 return processMap("LinkDataSliceMany", processLinkItem<RooAbsData>, arg);
448}
449
450// RooChi2Var::ctor / RooNLLVar arguments
452{
453 return RooCmdArg("Extended", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
454}
456{
457 return RooCmdArg("DataError", etype);
458}
459RooCmdArg DataError(std::string const &etype)
460{
462}
464{
465 return RooCmdArg("NumCPU", nCPU, interleave, 0, 0, nullptr, nullptr, nullptr, nullptr);
466}
468{
469 return RooCmdArg("ModularL", flag, 0, 0, 0, nullptr, nullptr, nullptr);
470}
472{
473 return RooCmdArg("Parallelize", nWorkers, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
474}
476{
477 return RooCmdArg("TimingAnalysis", flag, 0, 0, 0, nullptr, nullptr, nullptr);
478}
479namespace {
480
481RooCmdArg batchModeImpl(std::string const &batchMode)
482{
483 oocoutW(nullptr, InputArguments)
484 << "The BatchMode() command argument is deprecated and will be removed in ROOT 6.44, together with the legacy\n"
485 "evaluation backend that corresponds to BatchMode(\"off\"). Please use EvalBackend() instead, or simply pass\n"
486 "no command argument to get the default \"cpu\" evaluation backend."
487 << std::endl;
488 std::string lower = batchMode;
489 std::transform(lower.begin(), lower.end(), lower.begin(), [](unsigned char c) { return std::tolower(c); });
490 if (lower == "off") {
492 } else if (lower == "cpu") {
494 } else if (lower == "cuda") {
496 }
497 throw std::runtime_error("Only supported string values for BatchMode() are \"off\", \"cpu\", or \"cuda\".");
498}
499
500} // namespace
501
502RooCmdArg BatchMode(std::string const &batchMode)
503{
504 return batchModeImpl(batchMode);
505}
507{
508 return batchModeImpl(batchMode);
509}
511{
512 return batchModeImpl(batchModeOn ? "cpu" : "off");
513}
514/// Integrate the PDF over bins. Improves accuracy for binned fits. Switch off using `0.` as argument. \see
515/// RooAbsPdf::fitTo().
516RooCmdArg IntegrateBins(double precision)
517{
518 return RooCmdArg("IntegrateBins", 0, 0, precision);
519}
520
521// RooAbsCollection::printLatex arguments
523{
524 return RooCmdArg("Columns", ncol, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
525}
526RooCmdArg OutputFile(const char *fileName)
527{
528 return RooCmdArg("OutputFile", 0, 0, 0, 0, fileName, nullptr, nullptr, nullptr);
529}
531{
532 return RooCmdArg("Sibling", 0, 0, 0, 0, nullptr, nullptr, &sibling, nullptr);
533}
534RooCmdArg Format(const char *what, const RooCmdArg &arg1, const RooCmdArg &arg2, const RooCmdArg &arg3,
535 const RooCmdArg &arg4, const RooCmdArg &arg5, const RooCmdArg &arg6, const RooCmdArg &arg7,
536 const RooCmdArg &arg8)
537{
538 RooCmdArg ret("FormatArgs", 0, 0, 0, 0, what, nullptr, nullptr, nullptr);
539 ret.addArg(arg1);
540 ret.addArg(arg2);
541 ret.addArg(arg3);
542 ret.addArg(arg4);
543 ret.addArg(arg5);
544 ret.addArg(arg6);
545 ret.addArg(arg7);
546 ret.addArg(arg8);
547 ret.setProcessRecArgs(false);
548 return ret;
549}
550
551// RooAbsRealLValue::frame arguments
552RooCmdArg Title(const char *name)
553{
554 return RooCmdArg("Title", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
555}
557{
558 return RooCmdArg("Bins", nbin, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
559}
561{
562 return RooCmdArg("AutoRange", 1, 0, marginFactor, 0, nullptr, nullptr, &data, nullptr);
563}
565{
566 return RooCmdArg("AutoRange", 0, 0, marginFactor, 0, nullptr, nullptr, &data, nullptr);
567}
568
569// RooAbsData::reduce arguments
571{
572 RooCmdArg out{"SelectVars", 0};
573 out.setSet(0, vars);
574 return out;
575}
577{
578 return RooCmdArg("EventRange", nStart, nStop, 0, 0, nullptr, nullptr, nullptr, nullptr);
579}
580
581// RooAbsPdf::fitTo arguments
582
584{
585#ifndef ROOFIT_CLAD
586 if (value == Value::Codegen) {
587 oocoutE(nullptr, InputArguments)
588 << "RooFit was built without clad. The \"codegen\" backend is unavailable. Falling back to default.\n";
589 setInt(0, static_cast<int>(defaultValue()));
590 }
591#endif
592}
593EvalBackend::EvalBackend(std::string const &name) : EvalBackend{toValue(name)} {}
595{
596 std::string lower = name;
597 std::transform(lower.begin(), lower.end(), lower.begin(), [](unsigned char c) { return std::tolower(c); });
598 if (lower == toName(Value::Legacy))
599 return Value::Legacy;
600 if (lower == toName(Value::Cpu))
601 return Value::Cpu;
602 if (lower == toName(Value::Cuda))
603 return Value::Cuda;
605 return Value::Codegen;
608 throw std::runtime_error("Only supported string values for EvalBackend() are \"legacy\", \"cpu\", \"cuda\", "
609 "\"codegen\", or \"codegen_no_grad\".");
610}
631std::string EvalBackend::name() const
632{
633 return toName(value());
634}
636{
637 if (value == Value::Legacy)
638 return "legacy";
639 if (value == Value::Cpu)
640 return "cpu";
641 if (value == Value::Cuda)
642 return "cuda";
643 if (value == Value::Codegen)
644 return "codegen";
646 return "codegen_no_grad";
647 return "";
648}
654
656{
657 return RooCmdArg("Prefit", 0, 0, data_ratio, 0, nullptr, nullptr, nullptr, nullptr);
658}
659
660/// \deprecated Has no effect anymore. Functionality was removed in ROOT 6.42,
661/// and this function is kept as an empty shell that does nothing (for API
662/// compatibility between different ROOT versions).
664{
665 return RooCmdArg{};
666}
668{
669 return RooCmdArg("Verbose", flag);
670}
672{
673 return RooCmdArg("Save", flag);
674}
676{
677 return RooCmdArg("Timer", flag);
678}
680{
681 return RooCmdArg("PrintLevel", level);
682}
684{
685 return RooCmdArg("MaxCalls", n);
686}
688{
689 return RooCmdArg("Warnings", flag);
690}
692{
693 return RooCmdArg("Strategy", code);
694}
696{
697 return RooCmdArg("InitialHesse", flag);
698}
700{
701 return RooCmdArg("Hesse", flag);
702}
704{
705 return RooCmdArg("Minos", flag);
706}
708{
709 RooCmdArg out{"Minos", 1};
710 out.setSet(0, minosArgs);
711 return out;
712}
714{
715 return RooCmdArg("SplitRange", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
716}
718{
719 return RooCmdArg("SumCoefRange", 0, 0, 0, 0, rangeName, nullptr, nullptr, nullptr);
720}
722{
723 for (RooAbsArg *param : params) {
724 if (!dynamic_cast<RooRealVar *>(param)) {
725 std::stringstream errorMsg;
726 errorMsg << "RooFit::Constrain(): you passed the argument \"" << param->GetName()
727 << "\", but it's not a RooRealVar!"
728 << " You can only constrain parameters, which must be RooRealVars.";
729 oocoutE(nullptr, InputArguments) << errorMsg.str() << std::endl;
730 throw std::invalid_argument(errorMsg.str().c_str());
731 }
732 }
733 return RooCmdArg("Constrain", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &params);
734}
736{
737 return {"GlobalObservablesSource", 0, 0, 0, 0, sourceName, nullptr, nullptr, nullptr};
738}
739RooCmdArg GlobalObservablesTag(const char *tagName)
740{
741 return RooCmdArg("GlobalObservablesTag", 0, 0, 0, 0, tagName, nullptr, nullptr, nullptr);
742}
744{
745 return RooCmdArg("ExternalConstraints", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &cpdfs);
746}
748{
749 return RooCmdArg("PrintEvalErrors", numErrors, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
750}
752{
753 return RooCmdArg("EvalErrorWall", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
754}
756{
757 return RooCmdArg("SumW2Error", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
758}
760{
761 return RooCmdArg("AsymptoticError", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
762}
764{
765 oocoutI(nullptr, InputArguments) << "The deprecated RooFit::CloneData(" << flag
766 << ") option passed to createNLL() is ignored." << std::endl;
767 return RooCmdArg("CloneData", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
768}
770{
771 return RooCmdArg("Integrate", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
772}
773RooCmdArg Minimizer(const char *type, const char *alg)
774{
775 return RooCmdArg("Minimizer", 0, 0, 0, 0, type, alg, nullptr, nullptr);
776}
777
778RooCmdArg Offset(std::string const &mode)
779{
780 std::string lower = mode;
781 std::transform(lower.begin(), lower.end(), lower.begin(), [](unsigned char c) { return std::tolower(c); });
783 if (lower == "none") {
785 } else if (lower == "initial") {
787 } else if (lower == "bin") {
789 }
790 return RooCmdArg("OffsetLikelihood", static_cast<int>(modeVal));
791}
792
793/// When parameters are chosen such that a PDF is undefined, try to indicate to the minimiser how to leave this region.
794/// \param strength Strength of hints for minimiser. Set to zero to switch off.
796{
797 return RooCmdArg("RecoverFromUndefinedRegions", 0, 0, strength, 0, nullptr, nullptr, nullptr, nullptr);
798}
799
800// RooAbsPdf::paramOn arguments
801RooCmdArg Label(const char *str)
802{
803 return RooCmdArg("Label", 0, 0, 0, 0, str, nullptr, nullptr, nullptr);
804}
805RooCmdArg Layout(double xmin, double xmax, double ymin)
806{
807 return RooCmdArg("Layout", Int_t(ymin * 10000), 0, xmin, xmax, nullptr, nullptr, nullptr, nullptr);
808}
810{
811 RooCmdArg out{"Parameters", 0};
812 out.setSet(0, params);
813 return out;
814}
816{
817 return RooCmdArg("ShowConstants", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
818}
819
820// RooTreeData::statOn arguments
821RooCmdArg What(const char *str)
822{
823 return RooCmdArg("What", 0, 0, 0, 0, str, nullptr, nullptr, nullptr);
824}
825
826// RooProdPdf::ctor arguments
828{
829 return RooCmdArg("Conditional", depsAreCond, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &pdfSet,
830 &depSet);
831};
832
833// RooAbsPdf::generate arguments
835{
836 return RooCmdArg("PrototypeData", randomizeOrder, resample, 0, 0, nullptr, nullptr, &protoData, nullptr);
837}
839{
840 return RooCmdArg("NumEvents", numEvents, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
841}
843{
844 return RooCmdArg("NumEventsD", 0, 0, numEvents, 0, nullptr, nullptr, nullptr, nullptr);
845}
847{
848 return RooCmdArg("ExpectedData", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
849}
851{
852 return ExpectedData(flag);
853}
855{
856 return RooCmdArg("AutoBinned", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
857}
858RooCmdArg GenBinned(const char *tag)
859{
860 return RooCmdArg("GenBinned", 0, 0, 0, 0, tag, nullptr, nullptr, nullptr);
861}
863{
864 return RooCmdArg("GenBinned", 0, 0, 0, 0, "*", nullptr, nullptr, nullptr);
865}
866
867// RooAbsRealLValue::createHistogram arguments
869{
870 return RooCmdArg("YVar", 0, 0, 0, 0, nullptr, nullptr, &var, nullptr, &arg);
871}
873{
874 return RooCmdArg("ZVar", 0, 0, 0, 0, nullptr, nullptr, &var, nullptr, &arg);
875}
877{
878 return RooCmdArg("AxisLabel", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
879}
881{
882 return RooCmdArg("Scaling", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
883}
884
885// RooAbsReal::createHistogram arguments
887{
888 return RooCmdArg("IntrinsicBinning", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
889}
890
891// RooAbsData::createHistogram arguments
893{
894 return RooCmdArg("AutoRangeData", 1, nbins, marginFactor, 0, nullptr, nullptr, nullptr, nullptr);
895}
897{
898 return RooCmdArg("AutoRangeData", 0, nbins, marginFactor, 0, nullptr, nullptr, nullptr, nullptr);
899}
900
901// RooAbsReal::fillHistogram arguments
903{
904 return RooCmdArg("IntObs", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &intObs, nullptr);
905};
906
907// RooAbsReal::createIntegral arguments
909{
910 return RooCmdArg("NumIntConfig", 0, 0, 0, 0, nullptr, nullptr, &cfg, nullptr);
911}
912
913// RooMCStudy::ctor arguments
915{
916 return RooCmdArg("Silence", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
917}
919{
920 return RooCmdArg("FitModel", 0, 0, 0, 0, nullptr, nullptr, &pdf, nullptr);
921}
923 const RooCmdArg &arg5, const RooCmdArg &arg6)
924{
925 RooCmdArg ret("FitOptArgs", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
926 ret.addArg(arg1);
927 ret.addArg(arg2);
928 ret.addArg(arg3);
929 ret.addArg(arg4);
930 ret.addArg(arg5);
931 ret.addArg(arg6);
932 ret.setProcessRecArgs(false);
933 return ret;
934}
936{
937 return RooCmdArg("Binned", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
938}
940{
941 return RooCmdArg("BootStrapData", 0, 0, 0, 0, nullptr, nullptr, &dset, nullptr);
942}
943
944// RooMCStudy::plot* arguments
946 const RooCmdArg &arg5, const RooCmdArg &arg6)
947{
948 RooCmdArg ret("FrameArgs", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
949 ret.addArg(arg1);
950 ret.addArg(arg2);
951 ret.addArg(arg3);
952 ret.addArg(arg4);
953 ret.addArg(arg5);
954 ret.addArg(arg6);
955 ret.setProcessRecArgs(false);
956 return ret;
957}
959{
960 return RooCmdArg("Bins", nbins, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
961}
962RooCmdArg FrameRange(double xlo, double xhi)
963{
964 return RooCmdArg("Range", 0, 0, xlo, xhi, nullptr, nullptr, nullptr, nullptr);
965}
967{
968 return RooCmdArg("FitGauss", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
969}
970
971// RooRealVar::format arguments
973{
974 return RooCmdArg("ShowName", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
975}
977{
978 return RooCmdArg("ShowValue", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
979}
981{
982 return RooCmdArg("ShowError", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
983}
985{
986 return RooCmdArg("ShowAsymError", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
987}
989{
990 return RooCmdArg("ShowUnit", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
991}
993{
994 return RooCmdArg("AutoPrecision", ndigit, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
995}
997{
998 return RooCmdArg("FixedPrecision", ndigit, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
999}
1001{
1002 return RooCmdArg("TLatexStyle", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1003}
1005{
1006 return RooCmdArg("LatexStyle", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1007}
1009{
1010 return RooCmdArg("LatexTableStyle", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1011}
1013{
1014 return RooCmdArg("VerbatimName", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1015}
1016
1017// RooMsgService::addReportingStream arguments
1019{
1020 return RooCmdArg("Topic", topic, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1021}
1023{
1024 return RooCmdArg("ObjectName", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
1025}
1027{
1028 return RooCmdArg("ClassName", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
1029}
1031{
1032 return RooCmdArg("BaseClassName", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
1033}
1035{
1036 return RooCmdArg("LabelName", 0, 0, 0, 0, name, nullptr, nullptr, nullptr);
1037}
1038RooCmdArg OutputStream(std::ostream &os)
1039{
1040 return RooCmdArg("OutputStream", 0, 0, 0, 0, nullptr, nullptr, new RooHelpers::WrapIntoTObject<std::ostream>(os),
1041 nullptr);
1042}
1044{
1045 return RooCmdArg("Prefix", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1046}
1048{
1049 return RooCmdArg("Color", color.number());
1050}
1051
1052// RooWorkspace::import() arguments
1054{
1055 return RooCmdArg("RenameConflictNodes", ro, 0, 0, 0, suffix, nullptr, nullptr, nullptr);
1056}
1058{
1059 return RooCmdArg("RecycleConflictNodes", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1060}
1062{
1063 return RooCmdArg("RenameAllNodes", 0, 0, 0, 0, suffix, nullptr, nullptr, nullptr);
1064}
1066{
1067 return RooCmdArg("RenameAllVariables", 0, 0, 0, 0, suffix, nullptr, nullptr, nullptr);
1068}
1070{
1071 return RooCmdArg("RenameAllVariables", 0, 0, 0, 0, suffix, except, nullptr, nullptr);
1072}
1073RooCmdArg RenameVariable(const char *in, const char *out)
1074{
1075 return RooCmdArg("RenameVar", 0, 0, 0, 0, in, out, nullptr, nullptr);
1076}
1078{
1079 return RooCmdArg("Rename", 0, 0, 0, 0, suffix, nullptr, nullptr, nullptr);
1080}
1082{
1083 return RooCmdArg("Embedded", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1084}
1086{
1087 return RooCmdArg("NoRecursion", flag, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1088}
1089
1090// RooSimCloneTool::build() arguments
1091RooCmdArg SplitParam(const char *varname, const char *catname)
1092{
1093 return RooCmdArg("SplitParam", 0, 0, 0, 0, varname, catname, nullptr, nullptr);
1094}
1096{
1097 return RooCmdArg("SplitParam", 0, 0, 0, 0, var.GetName(), cat.GetName(), nullptr, nullptr);
1098}
1099RooCmdArg SplitParamConstrained(const char *varname, const char *catname, const char *rsname)
1100{
1101 return RooCmdArg("SplitParamConstrained", 0, 0, 0, 0, varname, catname, nullptr, nullptr, nullptr, rsname);
1102}
1104{
1105 return RooCmdArg("SplitParamConstrained", 0, 0, 0, 0, var.GetName(), cat.GetName(), nullptr, nullptr, nullptr,
1106 rsname);
1107}
1108RooCmdArg Restrict(const char *catName, const char *stateNameList)
1109{
1110 return RooCmdArg("Restrict", 0, 0, 0, 0, catName, stateNameList, nullptr, nullptr);
1111}
1112
1113// RooAbsPdf::createCdf() arguments
1115{
1116 RooCmdArg out{"SupNormSet", 0};
1117 out.setSet(0, nset);
1118 return out;
1119}
1121{
1122 return RooCmdArg("ScanParameters", nbins, intOrder, 0, 0, nullptr, nullptr, nullptr, nullptr);
1123}
1125{
1126 return RooCmdArg("ScanNumCdf", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1127}
1129{
1130 return RooCmdArg("ScanAllCdf", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1131}
1133{
1134 return RooCmdArg("ScanNoCdf", 1, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1135}
1136
1138 const RooCmdArg &arg5, const RooCmdArg &arg6, const RooCmdArg &arg7, const RooCmdArg &arg8)
1139{
1140 RooCmdArg ret("MultiArg", 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr);
1141 ret.addArg(arg1);
1142 ret.addArg(arg2);
1143 ret.addArg(arg3);
1144 ret.addArg(arg4);
1145 ret.addArg(arg5);
1146 ret.addArg(arg6);
1147 ret.addArg(arg7);
1148 ret.addArg(arg8);
1149 ret.setProcessRecArgs(true, false);
1150 return ret;
1151}
1152
1154{
1155 return RooRealConstant::value(val);
1156}
1157
1158namespace Detail {
1159
1161{
1162 return processFlatMap("SliceCatMany", processSliceItem, args);
1163}
1165{
1166 return processFlatMap("ImportDataSliceMany", processImportItem<RooDataHist>, args);
1167}
1169{
1170 return processFlatMap("ImportDataSliceMany", processImportItem<TH1>, args);
1171}
1173{
1174 return processFlatMap("ImportDataSliceMany", processImportItem<RooDataSet>, args);
1175}
1177{
1178 return processFlatMap("LinkDataSliceMany", processLinkItem<RooAbsData>, args);
1179}
1180
1181} // namespace Detail
1182
1183} // namespace RooFit
1184
1185namespace RooFitShortHand {
1186
1188{
1189 return RooFit::RooConst(value);
1190}
1191
1192} // namespace RooFitShortHand
#define c(i)
Definition RSha256.hxx:101
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
#define oocoutW(o, a)
#define oocoutE(o, a)
#define oocoutI(o, a)
short Style_t
Style number (short)
Definition RtypesCore.h:97
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:60
float Size_t
Attribute size (float)
Definition RtypesCore.h:104
short Width_t
Line width (short)
Definition RtypesCore.h:99
@ kDashed
Definition TAttLine.h:54
@ kSolid
Definition TAttLine.h:54
@ kDashDotted
Definition TAttLine.h:54
@ kDotted
Definition TAttLine.h:54
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
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 mode
Option_t Option_t width
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:142
float xmin
#define hi
float ymin
float xmax
#define gInterpreter
void(* Func_t)()
Definition TSystem.h:249
const_iterator begin() const
const_iterator end() const
Common abstract base class for objects that represent a value and a "shape" in RooFit.
Definition RooAbsArg.h:76
Abstract base class for RooRealVar binning definitions.
A space to attach TBranches.
Abstract container object that can hold multiple RooAbsArg objects.
Abstract base class for binned and unbinned datasets.
Definition RooAbsData.h:55
static ErrorType errorTypeFromString(std::string const &name)
Convert a string to the value of the RooAbsData::ErrorType enum with the same name.
Abstract interface for all probability density functions.
Definition RooAbsPdf.h:32
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
Abstract base class for objects that represent a real value and implements functionality common to al...
Definition RooAbsReal.h:63
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:24
Object to represent discrete states.
Definition RooCategory.h:28
Named container for two doubles, two integers two object points and three string pointers that can be...
Definition RooCmdArg.h:26
static const RooCmdArg & none()
Return reference to null argument.
Definition RooCmdArg.cxx:48
void setSet(Int_t idx, const RooArgSet &set)
Represents a constant real-valued object.
Definition RooConstVar.h:23
Container class to hold N-dimensional binned data.
Definition RooDataHist.h:40
Container class to hold unbinned data.
Definition RooDataSet.h:32
RooFitResult is a container class to hold the input and output of a PDF fit to a dataset.
static Value & defaultValue()
static EvalBackend Cuda()
static EvalBackend Codegen()
static EvalBackend Legacy() R__DEPRECATED(6
static EvalBackend CodegenNoGrad()
std::string name() const
Value value() const
static EvalBackend Cpu()
static Value toValue(std::string const &name)
static std::string toName(Value value)
static EvalBackend The legacy evaluation backend will be removed in ROOT Use the default cpu evaluation i e simply don t pass any EvalBackend() " "command argument.")
A RooFormulaVar is a generic implementation of a real-valued object, which takes a RooArgList of serv...
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.
static RooConstVar & value(double value)
Return a constant value object with given value.
Variable that can be changed from the outside.
Definition RooRealVar.h:37
Int_t number() const
Definition TColor.h:151
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:109
const char * GetName() const override
Returns name of object.
Definition TNamed.h:49
Mother of all ROOT objects.
Definition TObject.h:42
A TTree represents a columnar dataset.
Definition TTree.h:89
RooCmdArg RecycleConflictNodes(bool flag=true)
RooCmdArg ScanNoCdf()
RooCmdArg AutoRange(const RooAbsData &data, double marginFactor=0.1)
RooCmdArg FitGauss(bool flag=true)
RooCmdArg FrameBins(Int_t nbins)
RooCmdArg ClassName(const char *name)
RooCmdArg FitModel(RooAbsPdf &pdf)
RooCmdArg LatexStyle(bool flag=true)
RooCmdArg VerbatimName(bool flag=true)
RooCmdArg IntegratedObservables(const RooArgSet &intObs)
RooCmdArg OutputStream(std::ostream &os)
RooCmdArg Topic(Int_t topic)
RooCmdArg Parameters(const RooArgSet &params)
RooCmdArg NumIntConfig(const RooNumIntConfig &cfg)
RooCmdArg ScanParameters(Int_t nbins, Int_t intOrder)
RooCmdArg Label(const char *str)
RooCmdArg Color(TColorNumber color)
RooCmdArg TagName(const char *name)
RooCmdArg MultiArg(const RooCmdArg &arg1, const RooCmdArg &arg2, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
RooCmdArg BaseClassName(const char *name)
RooCmdArg FitOptions(const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={})
RooCmdArg IntrinsicBinning(bool flag=true)
RooCmdArg Restrict(const char *catName, const char *stateNameList)
RooCmdArg TLatexStyle(bool flag=true)
RooCmdArg RenameAllVariables(const char *suffix)
RooCmdArg ShowConstants(bool flag=true)
RooCmdArg RenameVariable(const char *inputName, const char *outputName)
RooCmdArg Prefix(bool flag)
RooCmdArg FixedPrecision(Int_t ndigit=2)
RooCmdArg AutoPrecision(Int_t ndigit=2)
RooCmdArg Title(const char *name)
RooCmdArg RenameAllNodes(const char *suffix)
RooCmdArg ZVar(const RooAbsRealLValue &var, const RooCmdArg &arg={})
RooCmdArg SplitParam(const char *varname, const char *catname)
RooCmdArg Rename(const char *suffix)
RooCmdArg SupNormSet(const RooArgSet &nset)
RooCmdArg SelectVars(const RooArgSet &vars)
RooCmdArg AutoBinning(Int_t nbins=100, double marginFactor=0.1)
RooCmdArg Frame(const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={})
RooCmdArg YVar(const RooAbsRealLValue &var, const RooCmdArg &arg={})
RooCmdArg FrameRange(double xlo, double xhi)
RooCmdArg Conditional(const RooArgSet &pdfSet, const RooArgSet &depSet, bool depsAreCond=false)
RooCmdArg LatexTableStyle(bool flag=true)
RooCmdArg RenameAllVariablesExcept(const char *suffix, const char *exceptionList)
RooCmdArg Scaling(bool flag)
RooConstVar & RooConst(double val)
RooCmdArg Columns(Int_t ncol)
RooCmdArg EventRange(Int_t nStart, Int_t nStop)
RooCmdArg ScanAllCdf()
RooCmdArg ObjectName(const char *name)
RooCmdArg Format(const char *what, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
RooCmdArg Silence(bool flag=true)
RooCmdArg NoRecursion(bool flag=true)
RooCmdArg AxisLabel(const char *name)
RooCmdArg Sibling(const RooAbsCollection &sibling)
RooCmdArg Binned(bool flag=true)
RooCmdArg SplitParamConstrained(const char *varname, const char *catname, const char *rsname)
RooCmdArg What(const char *str)
RooCmdArg RenameConflictNodes(const char *suffix, bool renameOrigNodes=false)
RooCmdArg AutoSymRange(const RooAbsData &data, double marginFactor=0.1)
RooCmdArg ScanNumCdf()
RooCmdArg Bins(Int_t nbin)
RooCmdArg Embedded(bool flag=true)
RooCmdArg OutputFile(const char *fileName)
RooCmdArg AutoSymBinning(Int_t nbins=100, double marginFactor=0.1)
RooCmdArg Layout(double xmin, double xmax=0.99, double ymin=0.95)
RooCmdArg OwnLinked()
RooCmdArg ImportFromFile(const char *fname, const char *tname)
RooCmdArg StoreAsymError(const RooArgSet &aset)
RooCmdArg Weight(double wgt)
RooCmdArg Index(RooCategory &icat)
RooCmdArg StoreError(const RooArgSet &aset)
RooCmdArg Link(const char *state, RooAbsData &data)
RooCmdArg WeightVar(const char *name="weight", bool reinterpretAsWeight=false)
RooCmdArg Import(const char *state, TH1 &histo)
RooCmdArg InitialHesse(bool flag=true)
RooCmdArg IntegrateBins(double precision)
Integrate the PDF over bins.
RooCmdArg MaxCalls(int n)
RooCmdArg SplitRange(bool flag=true)
RooCmdArg AsymptoticError(bool flag)
RooCmdArg PrefitDataFraction(double data_ratio=0.0)
RooCmdArg Offset(std::string const &mode)
RooCmdArg Constrain(const RooArgSet &params)
RooCmdArg GlobalObservablesTag(const char *tagName)
RooCmdArg Minimizer(const char *type, const char *alg=nullptr)
RooCmdArg Hesse(bool flag=true)
RooCmdArg Strategy(Int_t code)
RooCmdArg Save(bool flag=true)
RooCmdArg Integrate(bool flag)
RooCmdArg SumW2Error(bool flag)
RooCmdArg GlobalObservablesSource(const char *sourceName)
RooCmdArg SumCoefRange(const char *rangeName)
RooCmdArg PrintEvalErrors(Int_t numErrors)
RooCmdArg Optimize(Int_t flag=2)
RooCmdArg Parallelize(int nWorkers)
RooCmdArg EvalErrorWall(bool flag)
RooCmdArg Warnings(bool flag=true)
RooCmdArg ExternalConstraints(const RooArgSet &constraintPdfs)
RooCmdArg Minos(bool flag=true)
RooCmdArg ModularL(bool flag=false)
RooCmdArg TimingAnalysis(bool timingAnalysis)
RooCmdArg PrintLevel(Int_t code)
RooCmdArg NumCPU(Int_t nCPU, Int_t interleave=0)
RooCmdArg DataError(Int_t)
RooCmdArg CloneData(bool flag)
RooCmdArg Timer(bool flag=true)
RooCmdArg RecoverFromUndefinedRegions(double strength)
When parameters are chosen such that a PDF is undefined, try to indicate to the minimiser how to leav...
RooCmdArg Verbose(bool flag=true)
RooCmdArg Use EvalBackend() instead of BatchMode().")
RooCmdArg BatchMode(std::string const &batchMode="cpu") R__DEPRECATED(6
RooCmdArg Extended(bool flag=true)
RooCmdArg AllBinned()
RooCmdArg AutoBinned(bool flag=true)
RooCmdArg Asimov(bool flag=true)
RooCmdArg NumEvents(Int_t numEvents)
RooCmdArg GenBinned(const char *tag)
RooCmdArg ProtoData(const RooAbsData &protoData, bool randomizeOrder=false, bool resample=false)
RooCmdArg ExpectedData(bool flag=true)
RooCmdArg RefreshNorm()
RooCmdArg Components(Args_t &&... argsOrArgSet)
RooCmdArg ProjectionRange(const char *rangeName)
RooCmdArg FillColor(TColorNumber color)
RooCmdArg Binning(const RooAbsBinning &binning)
RooCmdArg ProjWData(const RooAbsData &projData, bool binData=false)
RooCmdArg Precision(double prec)
RooCmdArg EvalErrorValue(double value)
RooCmdArg NormRange(const char *rangeNameList)
RooCmdArg ShowProgress()
RooCmdArg DrawOption(const char *opt)
RooCmdArg Project(const RooArgSet &projSet)
RooCmdArg LineColor(TColorNumber color)
RooCmdArg FillStyle(Style_t style)
RooCmdArg Range(const char *rangeName, bool adjustNorm=true)
RooCmdArg Invisible(bool inv=true)
RooCmdArg MarkerStyle(Style_t style)
RooCmdArg LineWidth(Width_t width)
RooCmdArg Normalization(double scaleFactor)
RooCmdArg VisualizeError(const RooDataSet &paramData, double Z=1)
RooCmdArg ShiftToZero()
RooCmdArg Slice(const RooArgSet &sliceSet)
RooCmdArg AddTo(const char *name, double wgtSel=1.0, double wgtOther=1.0)
RooCmdArg CutRange(const char *rangeName)
RooCmdArg XErrorSize(double width)
RooCmdArg MoveToBack()
RooCmdArg MarkerSize(Size_t size)
RooCmdArg MarkerColor(TColorNumber color)
RooCmdArg Rescale(double factor)
RooCmdArg Cut(const char *cutSpec)
RooCmdArg Efficiency(const RooCategory &cat)
RooCmdArg Name(const char *name)
RooCmdArg LineStyle(Style_t style)
RooCmdArg VLines()
RooCmdArg Asymmetry(const RooCategory &cat)
auto Map(Args &&... args)
Create new collection applying a callable to the elements of the input collection.
Definition RVec.hxx:2128
const Int_t n
Definition legend1.C:16
std::string getBatchComputeChoice()
void setBatchComputeChoice(std::string const &value)
RooConstVar & C(double value)
RooCmdArg LinkFlatMap(FlatMap< std::string, RooAbsData * > const &args)
RooCmdArg ImportFlatMap(FlatMap< std::string, RooDataHist * > const &args)
RooCmdArg SliceFlatMap(FlatMap< RooCategory *, std::string > const &args)
RooCmdArg ParallelGradientOptions(bool enable=true, int orderStrategy=0, int chainFactor=1)
Configuration options for parallel minimization with multiprocessing library.
RooCmdArg ParallelDescentOptions(bool enable=false, int splitStrategy=0, int numSplits=0)
void writeCodegenDebugMacro(RooAbsReal const &absReal, std::string const &name)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
Definition CodegenImpl.h:73
RooCmdArg BootStrapData(const RooDataSet &dset)
RooCmdArg ShowName(bool flag)
RooCmdArg ShowError(bool flag)
OffsetMode
For setting the offset mode with the Offset() command argument to RooAbsPdf::fitTo()
@ InputArguments
RooCmdArg ShowValue(bool flag)
void setBatchCompute(std::string const &value)
Globally select the RooBatchCompute CPU implementation that will be loaded in RooFit.
RooCmdArg ShowAsymError(bool flag)
RooCmdArg ShowUnit(bool flag)
std::string getBatchCompute()
Get the global choice for the RooBatchCompute library that RooFit will load.
static const char * what
Definition stlLoader.cc:5
Wrap an object into a TObject. Sometimes needed to avoid reinterpret_cast or enable RTTI.
Definition RooHelpers.h:57