Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooAbsReal Class Referenceabstract

RooAbsReal is the common abstract base class for objects that represent a real value and implements functionality common to all real-valued objects such as the ability to plot them, to construct integrals of them, the ability to advertise (partial) analytical integrals etc.

Implementation of RooAbsReal may be derived, thus no interface is provided to modify the contents.

Definition at line 61 of file RooAbsReal.h.

Classes

class  EvalError
 
struct  GlobalSelectComponentRAII
 
struct  PlotOpt
 

Public Types

enum  ErrorLoggingMode { PrintErrors , CollectErrors , CountErrors , Ignore }
 
typedef std::map< constRooAbsArg *, std::pair< std::string, std::list< EvalError > > >::const_iterator EvalErrorIter
 
enum  ScaleType { Raw , Relative , NumEvent , RelativeExpected }
 
using value_type = double
 
- Public Types inherited from RooAbsArg
enum  CacheMode { Always =0 , NotAdvised =1 , Never =2 }
 
enum  ConstOpCode { Activate =0 , DeActivate =1 , ConfigChange =2 , ValueChange =3 }
 
enum  OperMode { Auto =0 , AClean =1 , ADirty =2 }
 
using RefCountList_t = RooSTLRefCountList< RooAbsArg >
 
using RefCountListLegacyIterator_t = TIteratorToSTLInterface< RefCountList_t::Container_t >
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 
- Public Types inherited from RooPrintable
enum  ContentsOption {
  kName =1 , kClassName =2 , kValue =4 , kArgs =8 ,
  kExtras =16 , kAddress =32 , kTitle =64 , kCollectionHeader =128
}
 
enum  StyleOption {
  kInline =1 , kSingleLine =2 , kStandard =3 , kVerbose =4 ,
  kTreeStructure =5
}
 

Public Member Functions

 RooAbsReal ()
 coverity[UNINIT_CTOR] Default constructor
 
 RooAbsReal (const char *name, const char *title, const char *unit="")
 Constructor with unit label.
 
 RooAbsReal (const char *name, const char *title, Double_t minVal, Double_t maxVal, const char *unit="")
 Constructor with plot range and unit label.
 
 RooAbsReal (const RooAbsReal &other, const char *name=0)
 Copy constructor.
 
virtual ~RooAbsReal ()
 Destructor.
 
virtual Double_t analyticalIntegral (Int_t code, const char *rangeName=0) const
 Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
 
virtual Double_t analyticalIntegralWN (Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
 Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
 
TF1asTF (const RooArgList &obs, const RooArgList &pars=RooArgList(), const RooArgSet &nset=RooArgSet()) const
 Return a ROOT TF1,2,3 object bound to this RooAbsReal with given definition of observables and parameters.
 
virtual std::list< Double_t > * binBoundaries (RooAbsRealLValue &obs, Double_t xlo, Double_t xhi) const
 Retrieve bin boundaries if this distribution is binned in obs.
 
RooAbsFuncbindVars (const RooArgSet &vars, const RooArgSet *nset=0, Bool_t clipInvalid=kFALSE) const
 Create an interface adaptor f(vars) that binds us to the specified variables (in arbitrary order).
 
virtual RooFitResultchi2FitTo (RooDataHist &data, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
 Perform a \( \chi^2 \) fit to given histogram.
 
virtual RooFitResultchi2FitTo (RooDataHist &data, const RooLinkedList &cmdList)
 Perform a \( \chi^2 \) fit to given histogram.
 
virtual RooFitResultchi2FitTo (RooDataSet &xydata, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
 Perform a 2-D \( \chi^2 \) fit using a series of x and y values stored in the dataset xydata.
 
virtual RooFitResultchi2FitTo (RooDataSet &xydata, const RooLinkedList &cmdList)
 Perform a 2-D \( \chi^2 \) fit using a series of x and y values stored in the dataset xydata.
 
virtual RooAbsRealcreateChi2 (RooDataHist &data, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
 Create a \( \chi^2 \) variable from a histogram and this function.
 
virtual RooAbsRealcreateChi2 (RooDataHist &data, const RooLinkedList &cmdList)
 Create a \( \chi^2 \) variable from a histogram and this function.
 
virtual RooAbsRealcreateChi2 (RooDataSet &data, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
 Create a \( \chi^2 \) from a series of x and y values stored in a dataset.
 
virtual RooAbsRealcreateChi2 (RooDataSet &data, const RooLinkedList &cmdList)
 See RooAbsReal::createChi2(RooDataSet&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&)
 
RooAbsArgcreateFundamental (const char *newname=0) const
 Create a RooRealVar fundamental object with our properties.
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
 Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function.
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, RooLinkedList &argList) const
 Internal method implementing createHistogram.
 
TH1createHistogram (const char *varNameList, Int_t xbins=0, Int_t ybins=0, Int_t zbins=0) const
 Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function for the variables with given names.
 
RooAbsRealcreateIntegral (const RooArgSet &iset, const char *rangeName) const
 Create integral over observables in iset in range named rangeName.
 
RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet &nset, const char *rangeName=0) const
 Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset.
 
RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet &nset, const RooNumIntConfig &cfg, const char *rangeName=0) const
 Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset while using specified configuration for any numeric integration.
 
virtual RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet *nset=0, const RooNumIntConfig *cfg=0, const char *rangeName=0) const
 Create an object that represents the integral of the function over one or more observables listed in iset.
 
RooAbsRealcreateIntegral (const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
 Create an object that represents the integral of the function over one or more observables listed in iset.
 
RooAbsRealcreateIntegral (const RooArgSet &iset, const RooNumIntConfig &cfg, const char *rangeName=0) const
 Create integral over observables in iset in range named rangeName using specified configuration for any numeric integration.
 
RooAbsRealcreateIntRI (const RooArgSet &iset, const RooArgSet &nset=RooArgSet())
 Utility function for createRunningIntegral.
 
const RooAbsRealcreatePlotProjection (const RooArgSet &dependentVars, const RooArgSet *projectedVars, RooArgSet *&cloneSet, const char *rangeName=0, const RooArgSet *condObs=0) const
 Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.
 
const RooAbsRealcreatePlotProjection (const RooArgSet &depVars, const RooArgSet &projVars) const
 Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.
 
const RooAbsRealcreatePlotProjection (const RooArgSet &depVars, const RooArgSet &projVars, RooArgSet *&cloneSet) const
 Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.
 
virtual RooAbsRealcreateProfile (const RooArgSet &paramsOfInterest)
 Create a RooProfileLL object that eliminates all nuisance parameters in the present function.
 
RooAbsRealcreateRunningIntegral (const RooArgSet &iset, const RooArgSet &nset=RooArgSet())
 Calls createRunningIntegral(const RooArgSet&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&)
 
RooAbsRealcreateRunningIntegral (const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
 Create an object that represents the running integral of the function over one or more observables listed in iset, i.e.
 
RooAbsRealcreateScanRI (const RooArgSet &iset, const RooArgSet &nset, Int_t numScanBins, Int_t intOrder)
 Utility function for createRunningIntegral that construct an object implementing the numeric scanning technique for calculating the running integral.
 
virtual Double_t defaultErrorLevel () const
 
RooDerivativederivative (RooRealVar &obs, const RooArgSet &normSet, Int_t order, Double_t eps=0.001)
 Return function representing first, second or third order derivative of this function.
 
RooDerivativederivative (RooRealVar &obs, Int_t order=1, Double_t eps=0.001)
 Return function representing first, second or third order derivative of this function.
 
virtual void enableOffsetting (Bool_t)
 
RooDataHistfillDataHist (RooDataHist *hist, const RooArgSet *nset, Double_t scaleFactor, Bool_t correctForBinVolume=kFALSE, Bool_t showProgress=kFALSE) const
 Fill a RooDataHist with values sampled from this function at the bin centers.
 
TH1fillHistogram (TH1 *hist, const RooArgList &plotVars, Double_t scaleFactor=1, const RooArgSet *projectedVars=0, Bool_t scaling=kTRUE, const RooArgSet *condObs=0, Bool_t setError=kTRUE) const
 Fill the ROOT histogram 'hist' with values sampled from this function at the bin centers.
 
Double_t findRoot (RooRealVar &x, Double_t xmin, Double_t xmax, Double_t yval)
 Return value of x (in range xmin,xmax) at which function equals yval.
 
virtual void fixAddCoefNormalization (const RooArgSet &addNormSet=RooArgSet(), Bool_t force=kTRUE)
 Fix the interpretation of the coefficient of any RooAddPdf component in the expression tree headed by this object to the given set of observables.
 
virtual void fixAddCoefRange (const char *rangeName=0, Bool_t force=kTRUE)
 Fix the interpretation of the coefficient of any RooAddPdf component in the expression tree headed by this object to the given set of observables.
 
virtual Bool_t forceAnalyticalInt (const RooAbsArg &) const
 
virtual void forceNumInt (Bool_t flag=kTRUE)
 
RooFunctorfunctor (const RooArgList &obs, const RooArgList &pars=RooArgList(), const RooArgSet &nset=RooArgSet()) const
 Return a RooFunctor object bound to this RooAbsReal with given definition of observables and parameters.
 
virtual Int_t getAnalyticalIntegral (RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
 Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
 
virtual Int_t getAnalyticalIntegralWN (RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=0) const
 Variant of getAnalyticalIntegral that is also passed the normalization set that should be applied to the integrand of which the integral is requested.
 
Bool_t getForceNumInt () const
 
RooNumIntConfiggetIntegratorConfig ()
 Return the numeric integration configuration used for this object.
 
const RooNumIntConfiggetIntegratorConfig () const
 Return the numeric integration configuration used for this object.
 
virtual Int_t getMaxVal (const RooArgSet &vars) const
 Advertise capability to determine maximum value of function for given set of observables.
 
const char * getPlotLabel () const
 Get the label associated with the variable.
 
Double_t getPropagatedError (const RooFitResult &fr, const RooArgSet &nset=RooArgSet()) const
 Calculate error on self by linearly propagating errors on parameters using the covariance matrix from a fit result.
 
TString getTitle (Bool_t appendUnit=kFALSE) const
 Return this variable's title string.
 
const Text_tgetUnit () const
 
Double_t getVal (const RooArgSet &normalisationSet) const
 Like getVal(const RooArgSet*), but always requires an argument for normalisation.
 
Double_t getVal (const RooArgSet *normalisationSet=nullptr) const
 Evaluate object.
 
virtual RooSpan< const doublegetValBatch (std::size_t, std::size_t, const RooArgSet *=nullptr)=delete
 
virtual RooSpan< const doublegetValues (RooBatchCompute::RunContext &evalData, const RooArgSet *normSet=nullptr) const
 by this change, please consult the release notes for ROOT 6.24 for guidance on how to make this transition.
 
virtual Double_t getValV (const RooArgSet *normalisationSet=nullptr) const
 Return value of object.
 
RooMultiGenFunctioniGenFunction (const RooArgSet &observables, const RooArgSet &nset=RooArgSet())
 
RooGenFunctioniGenFunction (RooRealVar &x, const RooArgSet &nset=RooArgSet())
 
virtual Bool_t isBinnedDistribution (const RooArgSet &) const
 Tests if the distribution is binned. Unless overridden by derived classes, this always returns false.
 
virtual Bool_t isIdentical (const RooAbsArg &other, Bool_t assumeSameType=kFALSE) const
 
virtual Bool_t isOffsetting () const
 
void logEvalError (const char *message, const char *serverValueString=0) const
 Log evaluation error message.
 
virtual Double_t maxVal (Int_t code) const
 Return maximum value for set of observables identified by code assigned in getMaxVal.
 
RooAbsMomentmean (RooRealVar &obs)
 
RooAbsMomentmean (RooRealVar &obs, const RooArgSet &nset)
 
virtual Int_t minTrialSamples (const RooArgSet &) const
 
RooAbsMomentmoment (RooRealVar &obs, const RooArgSet &normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs)
 Return function representing moment of p.d.f (normalized w.r.t given observables) of given order.
 
RooAbsMomentmoment (RooRealVar &obs, Int_t order, Bool_t central, Bool_t takeRoot)
 Return function representing moment of function of given order.
 
virtual Double_t offset () const
 
RooAbsRealoperator= (const RooAbsReal &other)
 Assign values, name and configs from another RooAbsReal.
 
virtual Bool_t operator== (const RooAbsArg &other) const
 Equality operator when comparing to another RooAbsArg.
 
Bool_t operator== (Double_t value) const
 Equality operator comparing to a Double_t.
 
virtual RooPlotplotOn (RooPlot *frame, 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(), const RooCmdArg &arg10=RooCmdArg()) const
 Plot (project) PDF on specified frame.
 
virtual RooPlotplotOn (RooPlot *frame, RooLinkedList &cmdList) const
 Internal back-end function of plotOn() with named arguments.
 
virtual std::list< Double_t > * plotSamplingHint (RooAbsRealLValue &obs, Double_t xlo, Double_t xhi) const
 Interface for returning an optional hint for initial sampling points when constructing a curve projected on observable obs.
 
virtual RooPlotplotSliceOn (RooPlot *frame, const RooArgSet &sliceSet, Option_t *drawOptions="L", Double_t scaleFactor=1.0, ScaleType stype=Relative, const RooAbsData *projData=0) const
 
virtual void preferredObservableScanOrder (const RooArgSet &obs, RooArgSet &orderedObs) const
 Interface method for function objects to indicate their preferred order of observables for scanning their values into a (multi-dimensional) histogram or RooDataSet.
 
virtual void printMultiline (std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
 Structure printing.
 
virtual void printValue (std::ostream &os) const
 Print object value.
 
virtual Bool_t readFromStream (std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
 Read object contents from stream (dummy for now)
 
virtual Bool_t setData (RooAbsData &, Bool_t=kTRUE)
 
void setIntegratorConfig ()
 Remove the specialized numeric integration configuration associated with this object.
 
void setIntegratorConfig (const RooNumIntConfig &config)
 Set the given integrator configuration as default numeric integration configuration for this object.
 
void setParameterizeIntegral (const RooArgSet &paramVars)
 
void setPlotLabel (const char *label)
 Set the label associated with this variable.
 
void setUnit (const char *unit)
 
RooAbsMomentsigma (RooRealVar &obs)
 
RooAbsMomentsigma (RooRealVar &obs, const RooArgSet &nset)
 
RooNumIntConfigspecialIntegratorConfig () const
 Returns the specialized integrator configuration for this RooAbsReal.
 
RooNumIntConfigspecialIntegratorConfig (Bool_t createOnTheFly)
 Returns the specialized integrator configuration for this RooAbsReal.
 
virtual void writeToStream (std::ostream &os, Bool_t compact) const
 Write object contents to stream (dummy for now)
 
- Public Member Functions inherited from RooAbsArg
 RooAbsArg ()
 Default constructor.
 
 RooAbsArg (const char *name, const char *title)
 Create an object with the specified name and descriptive title.
 
 RooAbsArg (const RooAbsArg &other, const char *name=0)
 Copy constructor transfers all boolean and string properties of the original object.
 
virtual ~RooAbsArg ()
 Destructor.
 
Bool_t addOwnedComponents (const RooArgSet &comps)
 Take ownership of the contents of 'comps'.
 
void attachDataSet (const RooAbsData &set)
 Replace server nodes with names matching the dataset variable names with those data set variables, making this PDF directly dependent on the dataset.
 
void attachDataStore (const RooAbsDataStore &set)
 Replace server nodes with names matching the dataset variable names with those data set variables, making this PDF directly dependent on the dataset.
 
const std::set< std::string > & attributes () const
 
virtual Bool_t checkObservables (const RooArgSet *nset) const
 Overloadable function in which derived classes can implement consistency checks of the variables.
 
virtual TObjectClone (const char *newname=0) const
 Make a clone of an object using the Streamer facility.
 
virtual TObjectclone (const char *newname=0) const =0
 
virtual RooAbsArgcloneTree (const char *newname=0) const
 Clone tree expression of objects.
 
Int_t Compare (const TObject *other) const
 Utility function used by TCollection::Sort to compare contained TObjects We implement comparison by name, resulting in alphabetical sorting by object name.
 
virtual Int_t defaultPrintContents (Option_t *opt) const
 Define default contents to print.
 
Bool_t dependsOn (const RooAbsArg &server, const RooAbsArg *ignoreArg=0, Bool_t valueOnly=kFALSE) const
 Test whether we depend on (ie, are served by) the specified object.
 
Bool_t dependsOn (const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0, Bool_t valueOnly=kFALSE) const
 Test whether we depend on (ie, are served by) any object in the specified collection.
 
Bool_t dependsOnValue (const RooAbsArg &server, const RooAbsArg *ignoreArg=0) const
 Check whether this object depends on values served from the object passed as server.
 
Bool_t dependsOnValue (const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0) const
 Check whether this object depends on values from an element in the serverList.
 
Bool_t getAttribute (const Text_t *name) const
 Check if a named attribute is set. By default, all attributes are unset.
 
RooLinkedList getCloningAncestors () const
 Return ancestors in cloning chain of this RooAbsArg.
 
RooArgSetgetComponents () const
 Create a RooArgSet with all components (branch nodes) of the expression tree headed by this object.
 
RooArgSetgetObservables (const RooAbsData &data) const
 Return the observables of this pdf given the observables defined by data.
 
RooArgSetgetObservables (const RooAbsData *data) const
 Create a list of leaf nodes in the arg tree starting with ourself as top node that match any of the names of the variable list of the supplied data set (the dependents).
 
RooArgSetgetObservables (const RooArgSet &set, Bool_t valueOnly=kTRUE) const
 Given a set of possible observables, return the observables that this PDF depends on.
 
RooArgSetgetObservables (const RooArgSet *depList, bool valueOnly=true) const
 Create a list of leaf nodes in the arg tree starting with ourself as top node that match any of the names the args in the supplied argset.
 
bool getObservables (const RooArgSet *depList, RooArgSet &outputSet, bool valueOnly=true) const
 Create a list of leaf nodes in the arg tree starting with ourself as top node that match any of the names the args in the supplied argset.
 
RooArgSetgetParameters (const RooAbsData &data, bool stripDisconnected=true) const
 Return the parameters of this p.d.f when used in conjuction with dataset 'data'.
 
RooArgSetgetParameters (const RooAbsData *data, bool stripDisconnected=true) const
 Create a list of leaf nodes in the arg tree starting with ourself as top node that don't match any of the names of the variable list of the supplied data set (the dependents).
 
RooArgSetgetParameters (const RooArgSet &observables, bool stripDisconnected=true) const
 Return the parameters of the p.d.f given the provided set of observables.
 
RooArgSetgetParameters (const RooArgSet *observables, bool stripDisconnected=true) const
 Create a list of leaf nodes in the arg tree starting with ourself as top node that don't match any of the names the args in the supplied argset.
 
virtual bool getParameters (const RooArgSet *observables, RooArgSet &outputSet, bool stripDisconnected=true) const
 Fills a list with leaf nodes in the arg tree starting with ourself as top node that don't match any of the names the args in the supplied argset.
 
RooAbsProxygetProxy (Int_t index) const
 Return the nth proxy from the proxy list.
 
const Text_tgetStringAttribute (const Text_t *key) const
 Get string attribute mapped under key 'key'.
 
Bool_t getTransientAttribute (const Text_t *name) const
 Check if a named attribute is set.
 
RooArgSetgetVariables (Bool_t stripDisconnected=kTRUE) const
 Return RooArgSet with all variables (tree leaf nodes of expresssion tree)
 
void graphVizTree (const char *fileName, const char *delimiter="\n", bool useTitle=false, bool useLatex=false)
 Create a GraphViz .dot file visualizing the expression tree headed by this RooAbsArg object.
 
void graphVizTree (std::ostream &os, const char *delimiter="\n", bool useTitle=false, bool useLatex=false)
 Write the GraphViz representation of the expression tree headed by this RooAbsArg object to the given ostream.
 
Bool_t hasClients () const
 
virtual Bool_t hasRange (const char *) const
 
virtual Bool_t importWorkspaceHook (RooWorkspace &ws)
 
virtual Bool_t inRange (const char *) const
 
Bool_t isCloneOf (const RooAbsArg &other) const
 Check if this object was created as a clone of 'other'.
 
Bool_t isConstant () const
 Check if the "Constant" attribute is set.
 
virtual Bool_t isDerived () const
 Does value or shape of this arg depend on any other arg?
 
virtual Bool_t IsSortable () const
 
Bool_t localNoDirtyInhibit () const
 
const TNamednamePtr () const
 
Int_t numProxies () const
 Return the number of registered proxies.
 
Bool_t observableOverlaps (const RooAbsData *dset, const RooAbsArg &testArg) const
 Test if any of the dependents of the arg tree (as determined by getObservables) overlaps with those of the testArg.
 
Bool_t observableOverlaps (const RooArgSet *depList, const RooAbsArg &testArg) const
 Test if any of the dependents of the arg tree (as determined by getObservables) overlaps with those of the testArg.
 
RooAbsArgoperator= (const RooAbsArg &other)
 Assign all boolean and string properties of the original object.
 
Bool_t overlaps (const RooAbsArg &testArg, Bool_t valueOnly=kFALSE) const
 Test if any of the nodes of tree are shared with that of the given tree.
 
const RooArgSetownedComponents () const
 
virtual void Print (Option_t *options=0) const
 Print the object to the defaultPrintStream().
 
virtual void printAddress (std::ostream &os) const
 Print class name of object.
 
virtual void printArgs (std::ostream &os) const
 Print object arguments, ie its proxies.
 
virtual void printClassName (std::ostream &os) const
 Print object class name.
 
void printCompactTree (const char *indent="", const char *fileName=0, const char *namePat=0, RooAbsArg *client=0)
 Print tree structure of expression tree on stdout, or to file if filename is specified.
 
void printCompactTree (std::ostream &os, const char *indent="", const char *namePat=0, RooAbsArg *client=0)
 Print tree structure of expression tree on given ostream.
 
virtual void printCompactTreeHook (std::ostream &os, const char *ind="")
 Hook function interface for object to insert additional information when printed in the context of a tree structure.
 
void printComponentTree (const char *indent="", const char *namePat=0, Int_t nLevel=999)
 Print tree structure of expression tree on given ostream, only branch nodes are printed.
 
void printDirty (Bool_t depth=kTRUE) const
 Print information about current value dirty state information.
 
virtual void printMetaArgs (std::ostream &) const
 
virtual void printName (std::ostream &os) const
 Print object name.
 
virtual void printTitle (std::ostream &os) const
 Print object title.
 
virtual void printTree (std::ostream &os, TString indent="") const
 Print object tree structure.
 
Bool_t recursiveCheckObservables (const RooArgSet *nset) const
 Recursively call checkObservables on all nodes in the expression tree.
 
void setAttribute (const Text_t *name, Bool_t value=kTRUE)
 Set (default) or clear a named boolean attribute of this object.
 
void setLocalNoDirtyInhibit (Bool_t flag) const
 
void SetName (const char *name)
 Set the name of the TNamed.
 
void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
void setProhibitServerRedirect (Bool_t flag)
 
void setStringAttribute (const Text_t *key, const Text_t *value)
 Associate string 'value' to this object under key 'key'.
 
void setTransientAttribute (const Text_t *name, Bool_t value=kTRUE)
 Set (default) or clear a named boolean attribute of this object.
 
void setWorkspace (RooWorkspace &ws)
 
const std::map< std::string, std::string > & stringAttributes () const
 
const std::set< std::string > & transientAttributes () const
 
TIteratorclientIterator () const
 Retrieve a client iterator.
 
TIteratorvalueClientIterator () const
 
TIteratorshapeClientIterator () const
 
TIteratorserverIterator () const
 
RooFIter valueClientMIterator () const
 
RooFIter shapeClientMIterator () const
 
RooFIter serverMIterator () const
 
RooArgSetgetDependents (const RooArgSet &set) const
 
RooArgSetgetDependents (const RooAbsData *set) const
 
RooArgSetgetDependents (const RooArgSet *depList) const
 
Bool_t dependentOverlaps (const RooAbsData *dset, const RooAbsArg &testArg) const
 
Bool_t dependentOverlaps (const RooArgSet *depList, const RooAbsArg &testArg) const
 
Bool_t checkDependents (const RooArgSet *nset) const
 
Bool_t recursiveCheckDependents (const RooArgSet *nset) const
 
const RefCountList_tclients () const
 List of all clients of this object.
 
const RefCountList_tvalueClients () const
 List of all value clients of this object. Value clients receive value updates.
 
const RefCountList_tshapeClients () const
 List of all shape clients of this object.
 
const RefCountList_tservers () const
 List of all servers of this object.
 
RooAbsArgfindServer (const char *name) const
 Return server of this with name name. Returns nullptr if not found.
 
RooAbsArgfindServer (const RooAbsArg &arg) const
 Return server of this that has the same name as arg. Returns nullptr if not found.
 
RooAbsArgfindServer (Int_t index) const
 Return i-th server from server list.
 
Bool_t isValueServer (const RooAbsArg &arg) const
 Check if this is serving values to arg.
 
Bool_t isValueServer (const char *name) const
 Check if this is serving values to an object with name name.
 
Bool_t isShapeServer (const RooAbsArg &arg) const
 Check if this is serving shape to arg.
 
Bool_t isShapeServer (const char *name) const
 Check if this is serving shape to an object with name name.
 
void leafNodeServerList (RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t recurseNonDerived=kFALSE) const
 Fill supplied list with all leaf nodes of the arg tree, starting with ourself as top node.
 
void branchNodeServerList (RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t recurseNonDerived=kFALSE) const
 Fill supplied list with all branch nodes of the arg tree starting with ourself as top node.
 
void treeNodeServerList (RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t doBranch=kTRUE, Bool_t doLeaf=kTRUE, Bool_t valueOnly=kFALSE, Bool_t recurseNonDerived=kFALSE) const
 Fill supplied list with nodes of the arg tree, following all server links, starting with ourself as top node.
 
virtual Bool_t isFundamental () const
 Is this object a fundamental type that can be added to a dataset? Fundamental-type subclasses override this method to return kTRUE.
 
virtual Bool_t isLValue () const
 Is this argument an l-value, i.e., can it appear on the left-hand side of an assignment expression? LValues are also special since they can potentially be analytically integrated and generated.
 
Bool_t redirectServers (const RooAbsCollection &newServerList, Bool_t mustReplaceAll=kFALSE, Bool_t nameChange=kFALSE, Bool_t isRecursionStep=kFALSE)
 Replace all direct servers of this object with the new servers in newServerList.
 
Bool_t recursiveRedirectServers (const RooAbsCollection &newServerList, Bool_t mustReplaceAll=kFALSE, Bool_t nameChange=kFALSE, Bool_t recurseInNewSet=kTRUE)
 Recursively replace all servers with the new servers in newSet.
 
virtual bool redirectServersHook (const RooAbsCollection &, bool, bool, bool)
 Function that is called at the end of redirectServers().
 
virtual void serverNameChangeHook (const RooAbsArg *, const RooAbsArg *)
 
void addServer (RooAbsArg &server, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE, std::size_t refCount=1)
 Register another RooAbsArg as a server to us, ie, declare that we depend on it.
 
void addServerList (RooAbsCollection &serverList, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE)
 Register a list of RooAbsArg as servers to us by calling addServer() for each arg in the list.
 
void replaceServer (RooAbsArg &oldServer, RooAbsArg &newServer, Bool_t valueProp, Bool_t shapeProp)
 Replace 'oldServer' with 'newServer'.
 
void changeServer (RooAbsArg &server, Bool_t valueProp, Bool_t shapeProp)
 Change dirty flag propagation mask for specified server.
 
void removeServer (RooAbsArg &server, Bool_t force=kFALSE)
 Unregister another RooAbsArg as a server to us, ie, declare that we no longer depend on its value and shape.
 
RooAbsArgfindNewServer (const RooAbsCollection &newSet, Bool_t nameChange) const
 Find the new server in the specified set that matches the old server.
 
virtual void optimizeCacheMode (const RooArgSet &observables)
 Activate cache mode optimization with given definition of observables.
 
virtual void optimizeCacheMode (const RooArgSet &observables, RooArgSet &optNodes, RooLinkedList &processedNodes)
 Activate cache mode optimization with given definition of observables.
 
Bool_t findConstantNodes (const RooArgSet &observables, RooArgSet &cacheList)
 Find branch nodes with all-constant parameters, and add them to the list of nodes that can be cached with a dataset in a test statistic calculation.
 
Bool_t findConstantNodes (const RooArgSet &observables, RooArgSet &cacheList, RooLinkedList &processedNodes)
 Find branch nodes with all-constant parameters, and add them to the list of nodes that can be cached with a dataset in a test statistic calculation.
 
virtual void constOptimizeTestStatistic (ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE)
 Interface function signaling a request to perform constant term optimization.
 
virtual CacheMode canNodeBeCached () const
 
virtual void setCacheAndTrackHints (RooArgSet &)
 
Bool_t isShapeDirty () const
 
Bool_t isValueDirty () const
 
Bool_t isValueDirtyAndClear () const
 
Bool_t isValueOrShapeDirtyAndClear () const
 
void registerCache (RooAbsCache &cache)
 Register RooAbsCache with this object.
 
void unRegisterCache (RooAbsCache &cache)
 Unregister a RooAbsCache. Called from the RooAbsCache destructor.
 
Int_t numCaches () const
 Return number of registered caches.
 
RooAbsCachegetCache (Int_t index) const
 Return registered cache object by index.
 
OperMode operMode () const
 Query the operation mode of this node.
 
void setOperMode (OperMode mode, Bool_t recurseADirty=kTRUE)
 Set the operation mode of this node.
 
void setValueDirty ()
 Mark the element dirty. This forces a re-evaluation when a value is requested.
 
void setShapeDirty ()
 Notify that a shape-like property (e.g. binning) has changed.
 
const char * aggregateCacheUniqueSuffix () const
 
virtual const char * cacheUniqueSuffix () const
 
void wireAllCaches ()
 
RooExpensiveObjectCacheexpensiveObjectCache () const
 
virtual void setExpensiveObjectCache (RooExpensiveObjectCache &cache)
 
- 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.
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings ("").
 
virtual void Copy (TObject &named) const
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
virtual void ls (Option_t *option="") const
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
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.
 
- 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 TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad).
 
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=0)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 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 TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () 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_tGetOption () 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)
 
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.
 
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)
 Operator delete [].
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (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.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
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.
 
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=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 
- Public Member Functions inherited from RooPrintable
 RooPrintable ()
 
virtual ~RooPrintable ()
 
virtual StyleOption defaultPrintStyle (Option_t *opt) const
 
virtual void printExtras (std::ostream &os) const
 Interface to print extras of object.
 
virtual void printStream (std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
 Print description of object on ostream, printing contents set by contents integer, which is interpreted as an OR of 'enum ContentsOptions' values and in the style given by 'enum StyleOption'.
 

Static Public Member Functions

static void clearEvalErrorLog ()
 Clear the stack of evaluation error messages.
 
static RooNumIntConfigdefaultIntegratorConfig ()
 Returns the default numeric integration configuration for all RooAbsReals.
 
static EvalErrorIter evalErrorIter ()
 
static ErrorLoggingMode evalErrorLoggingMode ()
 Return current evaluation error logging mode.
 
static Bool_t hideOffset ()
 
static void logEvalError (const RooAbsReal *originator, const char *origName, const char *message, const char *serverValueString=0)
 Interface to insert remote error logging messages received by RooRealMPFE into current error loggin stream.
 
static Int_t numEvalErrorItems ()
 
static Int_t numEvalErrors ()
 Return the number of logged evaluation errors since the last clearing.
 
static void printEvalErrors (std::ostream &os=std::cout, Int_t maxPerNode=10000000)
 Print all outstanding logged evaluation error on the given ostream.
 
static void setCacheCheck (Bool_t flag)
 
static void setEvalErrorLoggingMode (ErrorLoggingMode m)
 Set evaluation error logging mode.
 
static void setHideOffset (Bool_t flag)
 
- Static Public Member Functions inherited from RooAbsArg
static void setDirtyInhibit (Bool_t flag)
 Control global dirty inhibit mode.
 
static void verboseDirty (Bool_t flag)
 Activate verbose messaging related to dirty flag propagation.
 
- Static Public Member Functions inherited from TObject
static Long_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.
 
- Static Public Member Functions inherited from RooPrintable
static std::ostream & defaultPrintStream (std::ostream *os=0)
 Return a reference to the current default stream to use in Print().
 
static void nameFieldLength (Int_t newLen)
 Set length of field reserved from printing name of RooAbsArgs in multi-line collection printing to given amount.
 

Protected Member Functions

virtual void attachToTree (TTree &t, Int_t bufSize=32000)
 Attach object to a branch of given TTree.
 
virtual void attachToVStore (RooVectorDataStore &vstore)
 
RooFitResultchi2FitDriver (RooAbsReal &fcn, RooLinkedList &cmdList)
 Internal driver function for chi2 fits.
 
virtual void copyCache (const RooAbsArg *source, Bool_t valueOnly=kFALSE, Bool_t setValDirty=kTRUE)
 Copy the cached value of another RooAbsArg to our cache.
 
RooAbsRealcreateIntObj (const RooArgSet &iset, const RooArgSet *nset, const RooNumIntConfig *cfg, const char *rangeName) const
 Internal utility function for createIntegral() that creates the actual integral object.
 
virtual Double_t evaluate () const =0
 Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
 
virtual RooSpan< doubleevaluateBatch (std::size_t, std::size_t)=delete
 
virtual RooSpan< doubleevaluateSpan (RooBatchCompute::RunContext &evalData, const RooArgSet *normSet) const
 Evaluate this object for a batch/span of data points.
 
virtual void fillTreeBranch (TTree &t)
 Fill the tree branch that associated with this object with its current value.
 
void findInnerMostIntegration (const RooArgSet &allObs, RooArgSet &innerObs, const char *rangeName) const
 Utility function for createIntObj() that aids in the construct of recursive integrals over functions with multiple observables with parameterized ranges.
 
TString integralNameSuffix (const RooArgSet &iset, const RooArgSet *nset=0, const char *rangeName=0, Bool_t omitEmpty=kFALSE) const
 Construct string with unique suffix name to give to integral object that encodes integrated observables, normalization observables and the integration range name.
 
Bool_t isSelectedComp () const
 If true, the current pdf is a selected component (for use in plotting)
 
virtual Bool_t isValid () const
 Check if current value is valid.
 
virtual Bool_t isValidReal (Double_t value, Bool_t printError=kFALSE) const
 Interface function to check if given value is a valid value for this object.
 
void makeProjectionSet (const RooAbsArg *plotVar, const RooArgSet *allVars, RooArgSet &projectedVars, Bool_t silent) const
 Utility function for plotOn() that constructs the set of observables to project when plotting ourselves as function of 'plotVar'.
 
Bool_t matchArgs (const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
 Utility function for use in getAnalyticalIntegral().
 
Bool_t matchArgs (const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a, const RooArgProxy &b) const
 Utility function for use in getAnalyticalIntegral().
 
Bool_t matchArgs (const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a, const RooArgProxy &b, const RooArgProxy &c) const
 Utility function for use in getAnalyticalIntegral().
 
Bool_t matchArgs (const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a, const RooArgProxy &b, const RooArgProxy &c, const RooArgProxy &d) const
 Utility function for use in getAnalyticalIntegral().
 
Bool_t matchArgs (const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgSet &set) const
 Utility function for use in getAnalyticalIntegral().
 
virtual RooPlotplotAsymOn (RooPlot *frame, const RooAbsCategoryLValue &asymCat, PlotOpt o) const
 
virtual RooPlotplotOn (RooPlot *frame, PlotOpt o) const
 Plotting engine function for internal use.
 
void plotOnCompSelect (RooArgSet *selNodes) const
 Helper function for plotting of composite p.d.fs.
 
RooPlotplotOnWithErrorBand (RooPlot *frame, const RooFitResult &fr, Double_t Z, const RooArgSet *params, const RooLinkedList &argList, Bool_t method1) const
 Plot function or PDF on frame with support for visualization of the uncertainty encoded in the given fit result fr.
 
Bool_t plotSanityChecks (RooPlot *frame) const
 Utility function for plotOn(), perform general sanity check on frame to ensure safe plotting operations.
 
void selectComp (Bool_t flag)
 
virtual void selectNormalization (const RooArgSet *depSet=0, Bool_t force=kFALSE)
 Interface function to force use of a given set of observables to interpret function value.
 
virtual void selectNormalizationRange (const char *rangeName=0, Bool_t force=kFALSE)
 Interface function to force use of a given normalization range to interpret function value.
 
virtual void setTreeBranchStatus (TTree &t, Bool_t active)
 (De)Activate associated tree branch
 
virtual void syncCache (const RooArgSet *set=0)
 
Double_t traceEval (const RooArgSet *set) const
 Calculate current value of object, with error tracing wrapper.
 
- Protected Member Functions inherited from RooAbsArg
void attachToStore (RooAbsDataStore &store)
 Attach this argument to the data store such that it reads data from there.
 
TString cleanBranchName () const
 Construct a mangled name from the actual name that is free of any math symbols that might be interpreted by TTree.
 
void clearShapeDirty () const
 
void clearValueAndShapeDirty () const
 
void clearValueDirty () const
 
virtual void getObservablesHook (const RooArgSet *, RooArgSet *) const
 
virtual void getParametersHook (const RooArgSet *, RooArgSet *, Bool_t) const
 
void graphVizAddConnections (std::set< std::pair< RooAbsArg *, RooAbsArg * > > &)
 Utility function that inserts all point-to-point client-server connections between any two RooAbsArgs in the expression tree headed by this object in the linkSet argument.
 
Bool_t inhibitDirty () const
 Delete watch flag.
 
virtual void ioStreamerPass2 ()
 Method called by workspace container to finalize schema evolution issues that cannot be handled in a single ioStreamer pass.
 
virtual void operModeHook ()
 
virtual void optimizeDirtyHook (const RooArgSet *)
 
void printAttribList (std::ostream &os) const
 Transient boolean attributes (not copied in ctor)
 
void registerProxy (RooArgProxy &proxy)
 Register an RooArgProxy in the proxy list.
 
void registerProxy (RooListProxy &proxy)
 Register an RooListProxy in the proxy list.
 
void registerProxy (RooSetProxy &proxy)
 Register an RooSetProxy in the proxy list.
 
void setProxyNormSet (const RooArgSet *nset)
 Forward a change in the cached normalization argset to all the registered proxies.
 
void setShapeDirty (const RooAbsArg *source)
 Notify that a shape-like property (e.g. binning) has changed.
 
void setValueDirty (const RooAbsArg *source)
 Force element to re-evaluate itself when a value is requested.
 
void unRegisterProxy (RooArgProxy &proxy)
 Remove proxy from proxy list.
 
void unRegisterProxy (RooListProxy &proxy)
 Remove proxy from proxy list.
 
void unRegisterProxy (RooSetProxy &proxy)
 Remove proxy from proxy list.
 
- 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 ()
 

Static Protected Member Functions

static void globalSelectComp (Bool_t flag)
 Global switch controlling the activation of the selectComp() functionality.
 
- Static Protected Member Functions inherited from RooAbsArg
static void ioStreamerPass2Finalize ()
 Method called by workspace container to finalize schema evolution issues that cannot be handled in a single ioStreamer pass.
 

Protected Attributes

Bool_t _forceNumInt
 
TString _label
 
RooArgSet_lastNSet
 
Int_t _plotBins
 
Double_t _plotMax
 
Double_t _plotMin
 
Bool_t _selectComp
 
RooNumIntConfig_specIntegratorConfig
 
TString _unit
 
Double_t _value
 
- Protected Attributes inherited from RooAbsArg
bool _allBatchesDirty {true}
 
std::set< std::string > _boolAttrib
 
std::set< std::string > _boolAttribTransient
 
std::deque< RooAbsCache * > _cacheList
 
RefCountList_t _clientList
 
RefCountList_t _clientListShape
 
RefCountList_t _clientListValue
 
Bool_t _deleteWatch
 
RooExpensiveObjectCache_eocache {nullptr}
 Prohibit server redirects – Debugging tool.
 
Bool_t _fast
 
Bool_t _isConstant
 Do not persist. Pointer to global instance of string that matches object named.
 
Bool_t _localNoInhibitDirty
 Cached isConstant status.
 
RooWorkspace_myws
 Prevent 'AlwaysDirty' mode for this node.
 
TNamed_namePtr
 
OperMode _operMode
 Mark batches as dirty (only meaningful for RooAbsReal).
 
RooArgSet_ownedComponents
 
Bool_t _prohibitServerRedirect
 Set of owned component.
 
RooRefArray _proxyList
 
RefCountList_t _serverList
 
Bool_t _shapeDirty
 
std::map< std::string, std::string > _stringAttrib
 
Bool_t _valueDirty
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Static Protected Attributes

static Bool_t _globalSelectComp = false
 Component selection flag for RooAbsPdf::plotCompOn.
 
static Bool_t _hideOffset = kTRUE
 
- Static Protected Attributes inherited from RooAbsArg
static Bool_t _inhibitDirty
 
static Bool_t _verboseDirty
 
- Static Protected Attributes inherited from RooPrintable
static Int_t _nameLength
 

Private Member Functions

Double_t _DEBUG_getVal (const RooArgSet *normalisationSet) const
 Debug version of getVal(), which is slow and does error checking.
 
void checkBatchComputation (const RooBatchCompute::RunContext &evalData, std::size_t evtNo, const RooArgSet *normSet=nullptr, double relAccuracy=1.E-13) const
 Walk through expression tree headed by the this object, and check a batch computation.
 
Bool_t matchArgsByName (const RooArgSet &allArgs, RooArgSet &matchedArgs, const TList &nameList) const
 Check if allArgs contains matching elements for each name in nameList.
 

Private Attributes

std::unique_ptr< TreeReadBuffer > _treeReadBuffer
 

Static Private Attributes

static Int_t _evalErrorCount = 0
 
static std::map< const RooAbsArg *, std::pair< std::string, std::list< EvalError > > > _evalErrorList
 
static ErrorLoggingMode _evalErrorMode = RooAbsReal::PrintErrors
 

Friends

class BatchInterfaceAccessor
 
class RooAbsAnaConvPdf
 
class RooAbsOptGoodnessOfFit
 
class RooAbsPdf
 
class RooAddModel
 
class RooAddPdf
 
class RooDataProjBinding
 
class RooRealBinding
 
class RooRealIntegral
 
class RooRealSumFunc
 
class RooRealSumPdf
 A buffer for reading values from trees.
 
class RooVectorDataStore
 

Additional Inherited Members

- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 

#include <RooAbsReal.h>

Inheritance diagram for RooAbsReal:
[legend]

Member Typedef Documentation

◆ EvalErrorIter

typedef std::map<constRooAbsArg*,std::pair<std::string,std::list<EvalError>>>::const_iterator RooAbsReal::EvalErrorIter

Definition at line 335 of file RooAbsReal.h.

◆ value_type

Definition at line 63 of file RooAbsReal.h.

Member Enumeration Documentation

◆ ErrorLoggingMode

Enumerator
PrintErrors 
CollectErrors 
CountErrors 
Ignore 

Definition at line 325 of file RooAbsReal.h.

◆ ScaleType

Enumerator
Raw 
Relative 
NumEvent 
RelativeExpected 

Definition at line 280 of file RooAbsReal.h.

Constructor & Destructor Documentation

◆ RooAbsReal() [1/4]

RooAbsReal::RooAbsReal ( )

coverity[UNINIT_CTOR] Default constructor

Definition at line 134 of file RooAbsReal.cxx.

◆ RooAbsReal() [2/4]

RooAbsReal::RooAbsReal ( const char *  name,
const char *  title,
const char *  unit = "" 
)

Constructor with unit label.

Definition at line 143 of file RooAbsReal.cxx.

◆ RooAbsReal() [3/4]

RooAbsReal::RooAbsReal ( const char *  name,
const char *  title,
Double_t  minVal,
Double_t  maxVal,
const char *  unit = "" 
)

Constructor with plot range and unit label.

Definition at line 157 of file RooAbsReal.cxx.

◆ RooAbsReal() [4/4]

RooAbsReal::RooAbsReal ( const RooAbsReal other,
const char *  name = 0 
)

Copy constructor.

Definition at line 171 of file RooAbsReal.cxx.

◆ ~RooAbsReal()

RooAbsReal::~RooAbsReal ( )
virtual

Destructor.

Definition at line 213 of file RooAbsReal.cxx.

Member Function Documentation

◆ _DEBUG_getVal()

Double_t RooAbsReal::_DEBUG_getVal ( const RooArgSet normalisationSet) const
private

Debug version of getVal(), which is slow and does error checking.

Definition at line 4996 of file RooAbsReal.cxx.

◆ analyticalIntegral()

Double_t RooAbsReal::analyticalIntegral ( Int_t  code,
const char *  rangeName = 0 
) const
virtual

◆ analyticalIntegralWN()

Double_t RooAbsReal::analyticalIntegralWN ( Int_t  code,
const RooArgSet normSet,
const char *  rangeName = 0 
) const
virtual

Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.

This functions will only be called with codes returned by getAnalyticalIntegral, except code zero.

Reimplemented in RooBinSamplingPdf, RooWrapperPdf, ParamHistFunc, PiecewiseInterpolation, RooParamHistFunc, RooAbsAnaConvPdf, RooAbsCachedPdf, RooAbsCachedReal, RooAbsPdf, RooAddModel, RooAddPdf, RooEffProd, RooExtendPdf, RooProdPdf, RooProjectedPdf, RooRealSumFunc, RooRealSumPdf, and RooSimultaneous.

Definition at line 415 of file RooAbsReal.cxx.

◆ asTF()

TF1 * RooAbsReal::asTF ( const RooArgList obs,
const RooArgList pars = RooArgList(),
const RooArgSet nset = RooArgSet() 
) const

Return a ROOT TF1,2,3 object bound to this RooAbsReal with given definition of observables and parameters.

Definition at line 4197 of file RooAbsReal.cxx.

◆ attachToTree()

void RooAbsReal::attachToTree ( TTree t,
Int_t  bufSize = 32000 
)
protectedvirtual

Attach object to a branch of given TTree.

By default it will register the internal value cache RooAbsReal::_value as branch buffer for a Double_t tree branch with the same name as this object. If no Double_t branch is found with the name of this object, this method looks for a Float_t Int_t, UChar_t and UInt_t, etc branch. If any of these are found, a TreeReadBuffer that branch is created, and saved in _treeReadBuffer. TreeReadBuffer::operator double() can be used to convert the values. This is used by copyCache().

Implements RooAbsArg.

Reimplemented in RooRealVar.

Definition at line 3288 of file RooAbsReal.cxx.

◆ attachToVStore()

void RooAbsReal::attachToVStore ( RooVectorDataStore vstore)
protectedvirtual

Implements RooAbsArg.

Reimplemented in RooRealVar.

Definition at line 3247 of file RooAbsReal.cxx.

◆ binBoundaries()

std::list< Double_t > * RooAbsReal::binBoundaries ( RooAbsRealLValue obs,
Double_t  xlo,
Double_t  xhi 
) const
virtual

Retrieve bin boundaries if this distribution is binned in obs.

Parameters
[in]obsObservable to retrieve boundaries for.
[in]xloBeginning of range.
[in]xhiEnd of range.
Returns
The caller owns the returned list.

Reimplemented in ParamHistFunc, PiecewiseInterpolation, RooMomentMorphFunc, RooParamHistFunc, RooAddition, RooAddPdf, RooFormulaVar, RooHistFunc, RooHistPdf, RooProdPdf, RooProduct, RooRealSumFunc, RooRealSumPdf, RooBinSamplingPdf, and RooWrapperPdf.

Definition at line 3826 of file RooAbsReal.cxx.

◆ bindVars()

RooAbsFunc * RooAbsReal::bindVars ( const RooArgSet vars,
const RooArgSet nset = 0,
Bool_t  clipInvalid = kFALSE 
) const

Create an interface adaptor f(vars) that binds us to the specified variables (in arbitrary order).

For example, calling bindVars({x1,x3}) on an object F(x1,x2,x3,x4) returns an object f(x1,x3) that is evaluated using the current values of x2 and x4. The caller takes ownership of the returned adaptor.

Definition at line 3207 of file RooAbsReal.cxx.

◆ checkBatchComputation()

void RooAbsReal::checkBatchComputation ( const RooBatchCompute::RunContext evalData,
std::size_t  evtNo,
const RooArgSet normSet = nullptr,
double  relAccuracy = 1.E-13 
) const
private

Walk through expression tree headed by the this object, and check a batch computation.

Check if the results in evalData for event evtNo are identical to the current value of the nodes. If a difference is found, an exception is thrown, and propagates up the expression tree. The tree is formatted to see where the computation error happened.

Parameters
evalDataData with results of batch computation. This is checked against the current value of the expression tree.
evtNoEvent from evalData to check for.
normSetOptional normalisation set that was used in computation.
relAccuracyAccuracy required for passing the check.

Definition at line 5046 of file RooAbsReal.cxx.

◆ chi2FitDriver()

RooFitResult * RooAbsReal::chi2FitDriver ( RooAbsReal fcn,
RooLinkedList cmdList 
)
protected

Internal driver function for chi2 fits.

Definition at line 4634 of file RooAbsReal.cxx.

◆ chi2FitTo() [1/4]

RooFitResult * RooAbsReal::chi2FitTo ( RooDataHist data,
const RooCmdArg arg1 = RooCmdArg::none(),
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
)
virtual

Perform a \( \chi^2 \) fit to given histogram.

By default the fit is executed through the MINUIT commands MIGRAD, HESSE in succession

The following named arguments are supported

Options to control construction of chi2
Range(const char* name) Fit only data inside range with given name
Range(Double_t lo, Double_t hi) Fit only data inside given range. A range named "fit" is created on the fly on all observables. Multiple comma separated range names can be specified.
NumCPU(int num) Parallelize NLL calculation on num CPUs
Optimize(Bool_t flag) Activate constant term optimization (on by default)
IntegrateBins()

Integrate PDF within each bin. This sets the desired precision.

Options to control flow of fit procedure
InitialHesse(Bool_t flag) Flag controls if HESSE before MIGRAD as well, off by default
Hesse(Bool_t flag) Flag controls if HESSE is run after MIGRAD, on by default
Minos(Bool_t flag) Flag controls if MINOS is run after HESSE, on by default
Minos(const RooArgSet& set) Only run MINOS on given subset of arguments
Save(Bool_t flag) Flac controls if RooFitResult object is produced and returned, off by default
Strategy(Int_t flag) Set Minuit strategy (0 through 2, default is 1)
FitOptions(const char* optStr)

Steer fit with classic options string (for backward compatibility). Use of this option excludes use of any of the new style steering options.

Options to control informational output
Verbose(Bool_t flag) Flag controls if verbose output is printed (NLL, parameter changes during fit
Timer(Bool_t flag) Time CPU and wall clock consumption of fit steps, off by default
PrintLevel(Int_t level) Set Minuit print level (-1 through 3, default is 1). At -1 all RooFit informational messages are suppressed as well
Warnings(Bool_t flag) Enable or disable MINUIT warnings (enabled by default)
PrintEvalErrors(Int_t numErr) Control number of p.d.f evaluation errors printed per likelihood evaluation. A negative value suppress output completely, a zero value will only print the error count per p.d.f component, a positive value is will print details of each error up to numErr messages per p.d.f component.

Reimplemented in RooAbsPdf.

Definition at line 4405 of file RooAbsReal.cxx.

◆ chi2FitTo() [2/4]

RooFitResult * RooAbsReal::chi2FitTo ( RooDataHist data,
const RooLinkedList cmdList 
)
virtual

Perform a \( \chi^2 \) fit to given histogram.

By default the fit is executed through the MINUIT commands MIGRAD, HESSE in succession

The following named arguments are supported

Options to control construction of chi2
Range(const char* name) Fit only data inside range with given name
Range(Double_t lo, Double_t hi) Fit only data inside given range. A range named "fit" is created on the fly on all observables. Multiple comma separated range names can be specified.
NumCPU(int num) Parallelize NLL calculation on num CPUs
Optimize(Bool_t flag) Activate constant term optimization (on by default)
IntegrateBins()

Integrate PDF within each bin. This sets the desired precision.

Options to control flow of fit procedure
InitialHesse(Bool_t flag) Flag controls if HESSE before MIGRAD as well, off by default
Hesse(Bool_t flag) Flag controls if HESSE is run after MIGRAD, on by default
Minos(Bool_t flag) Flag controls if MINOS is run after HESSE, on by default
Minos(const RooArgSet& set) Only run MINOS on given subset of arguments
Save(Bool_t flag) Flac controls if RooFitResult object is produced and returned, off by default
Strategy(Int_t flag) Set Minuit strategy (0 through 2, default is 1)
FitOptions(const char* optStr)

Steer fit with classic options string (for backward compatibility). Use of this option excludes use of any of the new style steering options.

Options to control informational output
Verbose(Bool_t flag) Flag controls if verbose output is printed (NLL, parameter changes during fit
Timer(Bool_t flag) Time CPU and wall clock consumption of fit steps, off by default
PrintLevel(Int_t level) Set Minuit print level (-1 through 3, default is 1). At -1 all RooFit informational messages are suppressed as well
Warnings(Bool_t flag) Enable or disable MINUIT warnings (enabled by default)
PrintEvalErrors(Int_t numErr) Control number of p.d.f evaluation errors printed per likelihood evaluation. A negative value suppress output completely, a zero value will only print the error count per p.d.f component, a positive value is will print details of each error up to numErr messages per p.d.f component.

Reimplemented in RooAbsPdf, and RooAbsPdf.

Definition at line 4423 of file RooAbsReal.cxx.

◆ chi2FitTo() [3/4]

RooFitResult * RooAbsReal::chi2FitTo ( RooDataSet xydata,
const RooCmdArg arg1 = RooCmdArg::none(),
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
)
virtual

Perform a 2-D \( \chi^2 \) fit using a series of x and y values stored in the dataset xydata.

The y values can either be the event weights, or can be another column designated by the YVar() argument. The y value must have errors defined for the \( \chi^2 \) to be well defined.

Options to control construction of the \( \chi^2 \)
YVar(RooRealVar& yvar) Designate given column in dataset as Y value
Integrate(Bool_t flag)

Integrate function over range specified by X errors rather than take value at bin center.

Options to control flow of fit procedure
InitialHesse(Bool_t flag) Flag controls if HESSE before MIGRAD as well, off by default
Hesse(Bool_t flag) Flag controls if HESSE is run after MIGRAD, on by default
Minos(Bool_t flag) Flag controls if MINOS is run after HESSE, on by default
Minos(const RooArgSet& set) Only run MINOS on given subset of arguments
Save(Bool_t flag) Flac controls if RooFitResult object is produced and returned, off by default
Strategy(Int_t flag) Set Minuit strategy (0 through 2, default is 1)
FitOptions(const char* optStr)

Steer fit with classic options string (for backward compatibility). Use of this option excludes use of any of the new style steering options.

Options to control informational output
Verbose(Bool_t flag) Flag controls if verbose output is printed (NLL, parameter changes during fit
Timer(Bool_t flag) Time CPU and wall clock consumption of fit steps, off by default
PrintLevel(Int_t level) Set Minuit print level (-1 through 3, default is 1). At -1 all RooFit informational messages are suppressed as well
Warnings(Bool_t flag) Enable or disable MINUIT warnings (enabled by default)
PrintEvalErrors(Int_t numErr) Control number of p.d.f evaluation errors printed per likelihood evaluation. A negative value suppress output completely, a zero value will only print the error count per p.d.f component, a positive value is will print details of each error up to numErr messages per p.d.f component.

Reimplemented in RooAbsPdf.

Definition at line 4530 of file RooAbsReal.cxx.

◆ chi2FitTo() [4/4]

RooFitResult * RooAbsReal::chi2FitTo ( RooDataSet xydata,
const RooLinkedList cmdList 
)
virtual

Perform a 2-D \( \chi^2 \) fit using a series of x and y values stored in the dataset xydata.

The y values can either be the event weights, or can be another column designated by the YVar() argument. The y value must have errors defined for the \( \chi^2 \) to be well defined.

Options to control construction of the \( \chi^2 \)
YVar(RooRealVar& yvar) Designate given column in dataset as Y value
Integrate(Bool_t flag)

Integrate function over range specified by X errors rather than take value at bin center.

Options to control flow of fit procedure
InitialHesse(Bool_t flag) Flag controls if HESSE before MIGRAD as well, off by default
Hesse(Bool_t flag) Flag controls if HESSE is run after MIGRAD, on by default
Minos(Bool_t flag) Flag controls if MINOS is run after HESSE, on by default
Minos(const RooArgSet& set) Only run MINOS on given subset of arguments
Save(Bool_t flag) Flac controls if RooFitResult object is produced and returned, off by default
Strategy(Int_t flag) Set Minuit strategy (0 through 2, default is 1)
FitOptions(const char* optStr)

Steer fit with classic options string (for backward compatibility). Use of this option excludes use of any of the new style steering options.

Options to control informational output
Verbose(Bool_t flag) Flag controls if verbose output is printed (NLL, parameter changes during fit
Timer(Bool_t flag) Time CPU and wall clock consumption of fit steps, off by default
PrintLevel(Int_t level) Set Minuit print level (-1 through 3, default is 1). At -1 all RooFit informational messages are suppressed as well
Warnings(Bool_t flag) Enable or disable MINUIT warnings (enabled by default)
PrintEvalErrors(Int_t numErr) Control number of p.d.f evaluation errors printed per likelihood evaluation. A negative value suppress output completely, a zero value will only print the error count per p.d.f component, a positive value is will print details of each error up to numErr messages per p.d.f component.

Reimplemented in RooAbsPdf.

Definition at line 4548 of file RooAbsReal.cxx.

◆ clearEvalErrorLog()

void RooAbsReal::clearEvalErrorLog ( )
static

Clear the stack of evaluation error messages.

Definition at line 3808 of file RooAbsReal.cxx.

◆ copyCache()

void RooAbsReal::copyCache ( const RooAbsArg source,
Bool_t  valueOnly = kFALSE,
Bool_t  setValDirty = kTRUE 
)
protectedvirtual

Copy the cached value of another RooAbsArg to our cache.

Warning: This function just copies the cached values of source, it is the callers responsibility to make sure the cache is clean.

Implements RooAbsArg.

Reimplemented in RooAbsRealLValue, and RooRealVar.

Definition at line 3231 of file RooAbsReal.cxx.

◆ createChi2() [1/4]

RooAbsReal * RooAbsReal::createChi2 ( RooDataHist data,
const RooCmdArg arg1 = RooCmdArg::none(),
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
)
virtual

Create a \( \chi^2 \) variable from a histogram and this function.

The following named arguments are supported

Options to control construction of the \( \chi^2 \)
DataError(RooAbsData::ErrorType) Choose between Poisson errors and Sum-of-weights errors
NumCPU(Int_t) Activate parallel processing feature on N processes
Range() Calculate \( \chi^2 \) only in selected region
IntegrateBins() Integrate PDF within each bin. This sets the desired precision.
Parameters
dataHistogram with data
Returns
\( \chi^2 \) variable

Reimplemented in RooAbsPdf, and RooAbsPdf.

Definition at line 4458 of file RooAbsReal.cxx.

◆ createChi2() [2/4]

RooAbsReal * RooAbsReal::createChi2 ( RooDataHist data,
const RooLinkedList cmdList 
)
virtual

Create a \( \chi^2 \) variable from a histogram and this function.

The following named arguments are supported

Options to control construction of the \( \chi^2 \)
DataError(RooAbsData::ErrorType) Choose between Poisson errors and Sum-of-weights errors
NumCPU(Int_t) Activate parallel processing feature on N processes
Range() Calculate \( \chi^2 \) only in selected region
IntegrateBins() Integrate PDF within each bin. This sets the desired precision.
Parameters
dataHistogram with data
Returns
\( \chi^2 \) variable
Parameters
cmdListList with RooCmdArg() from the table

Reimplemented in RooAbsPdf.

Definition at line 4474 of file RooAbsReal.cxx.

◆ createChi2() [3/4]

RooAbsReal * RooAbsReal::createChi2 ( RooDataSet data,
const RooCmdArg arg1 = RooCmdArg::none(),
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
)
virtual

Create a \( \chi^2 \) from a series of x and y values stored in a dataset.

The y values can either be the event weights (default), or can be another column designated by the YVar() argument. The y value must have errors defined for the \( \chi^2 \) to be well defined.

The following named arguments are supported

Options to control construction of the \( \chi^2 \)
YVar(RooRealVar& yvar) Designate given column in dataset as Y value
Integrate(Bool_t flag) Integrate function over range specified by X errors rather than take value at bin center.

Reimplemented in RooAbsPdf.

Definition at line 4582 of file RooAbsReal.cxx.

◆ createChi2() [4/4]

◆ createFundamental()

RooAbsArg * RooAbsReal::createFundamental ( const char *  newname = 0) const
virtual

Create a RooRealVar fundamental object with our properties.

The new object will be created without any fit limits.

Implements RooAbsArg.

Definition at line 3387 of file RooAbsReal.cxx.

◆ createHistogram() [1/3]

TH1 * RooAbsReal::createHistogram ( const char *  name,
const RooAbsRealLValue xvar,
const RooCmdArg arg1 = RooCmdArg::none(),
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
) const

Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function.

Parameters
[in]nameName of the ROOT histogram
[in]xvarObservable to be mapped on x axis of ROOT histogram
[in]arg[0-9]Arguments according to list below
Returns
TH1 *, one of TH{1,2,3}. The caller takes ownership.
Effect on histogram creation
IntrinsicBinning() Apply binning defined by function or pdf (as advertised via binBoundaries() method)
Binning(const char* name) Apply binning with given name to x axis of histogram
Binning(RooAbsBinning& binning) Apply specified binning to x axis of histogram
Binning(int nbins, [double lo, double hi]) Apply specified binning to x axis of histogram
ConditionalObservables(const RooArgSet& set) Do not normalise PDF over following observables when projecting PDF into histogram
Scaling(Bool_t) Apply density-correction scaling (multiply by bin volume), default is kTRUE
Extended(Bool_t)

Plot event yield instead of probability density (for extended pdfs only)

YVar(const RooAbsRealLValue& var,...) Observable to be mapped on y axis of ROOT histogram. The YVar() and ZVar() arguments can be supplied with optional Binning() arguments to control the binning of the Y and Z axes, e.g.
createHistogram("histo",x,Binning(-1,1,20), YVar(y,Binning(-1,1,30)), ZVar(z,Binning("zbinning")))
TH1 * createHistogram(const char *varNameList, Int_t xbins=0, Int_t ybins=0, Int_t zbins=0) const
Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function for the variables w...
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
ZVar(const RooAbsRealLValue& var,...) Observable to be mapped on z axis of ROOT histogram

Definition at line 1381 of file RooAbsReal.cxx.

◆ createHistogram() [2/3]

TH1 * RooAbsReal::createHistogram ( const char *  name,
const RooAbsRealLValue xvar,
RooLinkedList argList 
) const

Internal method implementing createHistogram.

Definition at line 1399 of file RooAbsReal.cxx.

◆ createHistogram() [3/3]

TH1 * RooAbsReal::createHistogram ( const char *  varNameList,
Int_t  xbins = 0,
Int_t  ybins = 0,
Int_t  zbins = 0 
) const

Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function for the variables with given names.

Parameters
[in]varNameListList of variables to use for x, y, z axis, separated by ':'
[in]xbinsNumber of bins for first variable
[in]ybinsNumber of bins for second variable
[in]zbinsNumber of bins for third variable
Returns
TH1*, which is one of TH[1-3]. The histogram is owned by the caller.

For a greater degree of control use RooAbsReal::createHistogram(const char *, const RooAbsRealLValue&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&) const

Definition at line 1300 of file RooAbsReal.cxx.

◆ createIntegral() [1/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const char *  rangeName 
) const
inline

Create integral over observables in iset in range named rangeName.

Definition at line 211 of file RooAbsReal.h.

◆ createIntegral() [2/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const RooArgSet nset,
const char *  rangeName = 0 
) const
inline

Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset.

Definition at line 215 of file RooAbsReal.h.

◆ createIntegral() [3/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const RooArgSet nset,
const RooNumIntConfig cfg,
const char *  rangeName = 0 
) const
inline

Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset while using specified configuration for any numeric integration.

Definition at line 220 of file RooAbsReal.h.

◆ createIntegral() [4/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const RooArgSet nset = 0,
const RooNumIntConfig cfg = 0,
const char *  rangeName = 0 
) const
virtual

Create an object that represents the integral of the function over one or more observables listed in iset.

The actual integration calculation is only performed when the return object is evaluated. The name of the integral object is automatically constructed from the name of the input function, the variables it integrates and the range integrates over. If nset is specified the integrand is request to be normalized over nset (only meaningful when the integrand is a pdf). If rangename is specified the integral is performed over the named range, otherwise it is performed over the domain of each integrated observable. If cfg is specified it will be used to configure any numeric integration aspect of the integral. It will not force the integral to be performed numerically, which is decided automatically by RooRealIntegral.

Reimplemented in RooRealIntegral.

Definition at line 611 of file RooAbsReal.cxx.

◆ createIntegral() [5/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const RooCmdArg arg1,
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
) const

Create an object that represents the integral of the function over one or more observables listed in iset.

The actual integration calculation is only performed when the returned object is evaluated. The name of the integral object is automatically constructed from the name of the input function, the variables it integrates and the range integrates over.

Note
The integral over a PDF is usually not normalised (i.e., it is usually not 1 when integrating the PDF over the full range). In fact, this integral is used to compute the normalisation of each PDF. See the rf110 tutorial at https://root.cern.ch/doc/master/group__tutorial__roofit.html for details on PDF normalisation.

The following named arguments are accepted

Effect on integral creation
NormSet(const RooArgSet&) Specify normalization set, mostly useful when working with PDFs
NumIntConfig(const RooNumIntConfig&) Use given configuration for any numeric integration, if necessary
Range(const char* name) Integrate only over given range. Multiple ranges may be specified by passing multiple Range() arguments

Definition at line 570 of file RooAbsReal.cxx.

◆ createIntegral() [6/6]

RooAbsReal * RooAbsReal::createIntegral ( const RooArgSet iset,
const RooNumIntConfig cfg,
const char *  rangeName = 0 
) const
inline

Create integral over observables in iset in range named rangeName using specified configuration for any numeric integration.

Definition at line 224 of file RooAbsReal.h.

◆ createIntObj()

RooAbsReal * RooAbsReal::createIntObj ( const RooArgSet iset,
const RooArgSet nset,
const RooNumIntConfig cfg,
const char *  rangeName 
) const
protected

Internal utility function for createIntegral() that creates the actual integral object.

Definition at line 641 of file RooAbsReal.cxx.

◆ createIntRI()

RooAbsReal * RooAbsReal::createIntRI ( const RooArgSet iset,
const RooArgSet nset = RooArgSet() 
)

Utility function for createRunningIntegral.

It creates an object implementing the standard (analytical) integration technique for calculating the running integral.

Definition at line 4105 of file RooAbsReal.cxx.

◆ createPlotProjection() [1/3]

const RooAbsReal * RooAbsReal::createPlotProjection ( const RooArgSet dependentVars,
const RooArgSet projectedVars,
RooArgSet *&  cloneSet,
const char *  rangeName = 0,
const RooArgSet condObs = 0 
) const

Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.

Create a new object \( G \) that represents the normalized projection:

\[ G[x,p] = \frac{\int F[x,y,p] \; \mathrm{d}\{y\}} {\int F[x,y,p] \; \mathrm{d}\{x\} \, \mathrm{d}\{y\}} \]

where \( F[x,y,p] \) is the function we represent, and \( \{ p \} \) are the remaining variables ("parameters").

Parameters
[in]dependentVarsDependent variables over which to normalise, \( \{x\} \).
[in]projectedVarsVariables to project out, \( \{ y \} \).
[out]cloneSetWill be set to a RooArgSet*, which will contain a clone of *this plus its projection integral object. The latter will also be returned. The caller takes ownership of this set.
[in]rangeNameOptional range for projection integrals
[in]condObsConditional observables, which are not integrated for normalisation, even if they are in dependentVars or projectedVars.
Returns
A pointer to the newly created object, or zero in case of an error. The caller is responsible for deleting the cloneSet (which includes the returned projection object).

Definition at line 926 of file RooAbsReal.cxx.

◆ createPlotProjection() [2/3]

const RooAbsReal * RooAbsReal::createPlotProjection ( const RooArgSet depVars,
const RooArgSet projVars 
) const

Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.

createPlotProjection()

Definition at line 896 of file RooAbsReal.cxx.

◆ createPlotProjection() [3/3]

const RooAbsReal * RooAbsReal::createPlotProjection ( const RooArgSet depVars,
const RooArgSet projVars,
RooArgSet *&  cloneSet 
) const

Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.

createPlotProjection()

Definition at line 883 of file RooAbsReal.cxx.

◆ createProfile()

RooAbsReal * RooAbsReal::createProfile ( const RooArgSet paramsOfInterest)
virtual

Create a RooProfileLL object that eliminates all nuisance parameters in the present function.

The nuisance parameters are defined as all parameters of the function except the stated paramsOfInterest

Reimplemented in RooProfileLL.

Definition at line 528 of file RooAbsReal.cxx.

◆ createRunningIntegral() [1/2]

◆ createRunningIntegral() [2/2]

RooAbsReal * RooAbsReal::createRunningIntegral ( const RooArgSet iset,
const RooCmdArg arg1,
const RooCmdArg arg2 = RooCmdArg::none(),
const RooCmdArg arg3 = RooCmdArg::none(),
const RooCmdArg arg4 = RooCmdArg::none(),
const RooCmdArg arg5 = RooCmdArg::none(),
const RooCmdArg arg6 = RooCmdArg::none(),
const RooCmdArg arg7 = RooCmdArg::none(),
const RooCmdArg arg8 = RooCmdArg::none() 
)

Create an object that represents the running integral of the function over one or more observables listed in iset, i.e.

\[ \int_{x_\mathrm{lo}}^x f(x') \, \mathrm{d}x' \]

The actual integration calculation is only performed when the return object is evaluated. The name of the integral object is automatically constructed from the name of the input function, the variables it integrates and the range integrates over. The default strategy to calculate the running integrals is

  • If the integrand (this object) supports analytical integration, construct an integral object that calculate the running integrals value by calculating the analytical integral each time the running integral object is evaluated
  • If the integrand (this object) requires numeric integration to construct the running integral create an object of class RooNumRunningInt which first samples the entire function and integrates the sampled function numerically. This method has superior performance as there is no need to perform a full (numeric) integration for each evaluation of the running integral object, but only when one of its parameters has changed.

The choice of strategy can be changed with the ScanAll() argument, which forces the use of the scanning technique implemented in RooNumRunningInt for all use cases, and with the ScanNone() argument which forces the 'integrate each evaluation' technique for all use cases. The sampling granularity for the scanning technique can be controlled with the ScanParameters technique which allows to specify the number of samples to be taken, and to which order the resulting running integral should be interpolated. The default values are 1000 samples and 2nd order interpolation.

The following named arguments are accepted

Effect on integral creation
SupNormSet(const RooArgSet&) Observables over which should be normalized in addition to the integration observables
ScanParameters(Int_t nbins, Int_t intOrder) Parameters for scanning technique of making CDF: number of sampled bins and order of interpolation applied on numeric cdf
ScanNum() Apply scanning technique if cdf integral involves numeric integration
ScanAll() Always apply scanning technique
ScanNone() Never apply scanning technique

Definition at line 4026 of file RooAbsReal.cxx.

◆ createScanRI()

RooAbsReal * RooAbsReal::createScanRI ( const RooArgSet iset,
const RooArgSet nset,
Int_t  numScanBins,
Int_t  intOrder 
)

Utility function for createRunningIntegral that construct an object implementing the numeric scanning technique for calculating the running integral.

Definition at line 4088 of file RooAbsReal.cxx.

◆ defaultErrorLevel()

virtual Double_t RooAbsReal::defaultErrorLevel ( ) const
inlinevirtual

Reimplemented in RooAddition, RooChi2Var, RooFormulaVar, RooNLLVar, and RooXYChi2Var.

Definition at line 252 of file RooAbsReal.h.

◆ defaultIntegratorConfig()

RooNumIntConfig * RooAbsReal::defaultIntegratorConfig ( )
static

Returns the default numeric integration configuration for all RooAbsReals.

Definition at line 3534 of file RooAbsReal.cxx.

◆ derivative() [1/2]

RooDerivative * RooAbsReal::derivative ( RooRealVar obs,
const RooArgSet normSet,
Int_t  order,
Double_t  eps = 0.001 
)

Return function representing first, second or third order derivative of this function.

Definition at line 4287 of file RooAbsReal.cxx.

◆ derivative() [2/2]

RooDerivative * RooAbsReal::derivative ( RooRealVar obs,
Int_t  order = 1,
Double_t  eps = 0.001 
)

Return function representing first, second or third order derivative of this function.

Definition at line 4275 of file RooAbsReal.cxx.

◆ enableOffsetting()

virtual void RooAbsReal::enableOffsetting ( Bool_t  )
inlinevirtual

Reimplemented in RooAbsTestStatistic, RooRealMPFE, and RooAddition.

Definition at line 367 of file RooAbsReal.h.

◆ evalErrorIter()

RooAbsReal::EvalErrorIter RooAbsReal::evalErrorIter ( )
static

Definition at line 345 of file RooAbsReal.cxx.

◆ evalErrorLoggingMode()

RooAbsReal::ErrorLoggingMode RooAbsReal::evalErrorLoggingMode ( )
static

Return current evaluation error logging mode.

Definition at line 4849 of file RooAbsReal.cxx.

◆ evaluate()

virtual Double_t RooAbsReal::evaluate ( ) const
protectedpure virtual

Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.

Implemented in RooStats::HistFactory::FlexibleInterpVar, RooStats::HistFactory::LinInterpVar, ParamHistFunc, PiecewiseInterpolation, RooStats::HistFactory::RooBarlowBeestonLL, Roo2DKeysPdf, RooArgusBG, RooBernstein, RooBifurGauss, RooBreitWigner, RooBukinPdf, RooCBShape, RooCFunction1Binding< VO, VI >, RooCFunction1PdfBinding< VO, VI >, RooCFunction2Binding< VO, VI1, VI2 >, RooCFunction2PdfBinding< VO, VI1, VI2 >, RooCFunction3Binding< VO, VI1, VI2, VI3 >, RooCFunction3PdfBinding< VO, VI1, VI2, VI3 >, RooCFunction4Binding< VO, VI1, VI2, VI3, VI4 >, RooCFunction4PdfBinding< VO, VI1, VI2, VI3, VI4 >, RooChebychev, RooChiSquarePdf, RooCrystalBall, RooDstD0BG, RooFunctor1DBinding, RooFunctor1DPdfBinding, RooFunctorBinding, RooFunctorPdfBinding, RooGamma, RooGaussModel, RooGExpModel, RooHistConstraint, RooIntegralMorph, RooJeffreysPrior, RooKeysPdf, RooLandau, RooLognormal, RooMomentMorph, RooMomentMorphFunc, RooMomentMorphFuncND, RooMomentMorphND, RooMultiBinomial, RooNDKeysPdf, RooNovosibirsk, RooParametricStepFunction, RooParamHistFunc, RooPolynomial, RooStepFunction, RooTFnBinding, RooTFnPdfBinding, RooUnblindCPAsymVar, RooUnblindOffset, RooUnblindPrecision, RooUnblindUniform, RooUniform, RooVoigtian, RooAbsAnaConvPdf, RooAbsTestStatistic, RooAddition, RooAddModel, RooAddPdf, RooCachedPdf, RooCachedReal, RooChangeTracker, RooConstraintSum, RooConstVar, RooConvCoefVar, RooDerivative, RooEfficiency, RooEffProd, RooErrorVar, RooExtendedBinding, RooExtendedTerm, RooExtendPdf, RooFFTConvPdf, RooFirstMoment, RooFormulaVar, RooFracRemainder, RooGenericPdf, RooGenProdProj, RooHistFunc, RooHistPdf, RooLinearVar, RooMoment, RooMultiVarGaussian, RooNumConvolution, RooNumConvPdf, RooNumRunningInt, RooPolyVar, RooProdPdf, RooProduct, RooProfileLL, RooProjectedPdf, RooPullVar, RooRangeBoolean, RooRealIntegral, RooRealMPFE, RooRealSumFunc, RooRealSumPdf, RooRealVar, RooRecursiveFraction, RooSecondMoment, RooSimultaneous, RooTruthModel, RooLegendre, RooNonCentralChiSquare, RooSpHarmonic, RooStats::Heaviside, NuMuToNuE_Oscillation, RooExponential, RooGaussian, RooJohnson, RooPoisson, RooBinSamplingPdf, RooWrapperPdf, and RooHypatia2.

◆ evaluateBatch()

virtual RooSpan< double > RooAbsReal::evaluateBatch ( std::size_t  ,
std::size_t   
)
protectedvirtualdelete
Deprecated:
evaluateBatch() has been removed in favour of the faster evaluateSpan(). If your code is affected by this change, please consult the release notes for ROOT 6.24 for guidance on how to make this transition. https://root.cern/doc/v624/release-notes.html

◆ evaluateSpan()

RooSpan< double > RooAbsReal::evaluateSpan ( RooBatchCompute::RunContext evalData,
const RooArgSet normSet 
) const
protectedvirtual

Evaluate this object for a batch/span of data points.

This is the backend used by getValues() to perform computations. A span pointing to the computation results will be stored in evalData, and also be returned to getValues(), which then finalises the computation.

Note
Derived classes should override this function to reach maximal performance. If this function is not overridden, the slower, single-valued evaluate() will be called in a loop.

A computation proceeds as follows:

  • Request input data from all our servers using getValues(evalData, normSet). Those will return
    • batches of size 1 if their value is constant over the entire dataset.
    • batches of the size of the dataset stored in evalData otherwise. If evalData already contains values for those objects, these will return data without recomputing those.
  • Create a new batch in evalData of the same size as those returned from the servers.
  • Use the input data to perform the computations, and store those in the batch.
Note
Error checking and normalisation (of PDFs) will be performed in getValues().
Parameters
[in,out]evalDataObject holding data that should be used in computations. Computation results have to be stored here.
[in]normSetOptional normalisation set passed down to the servers of this object.
Returns
Span pointing to the results. The memory is owned by evalData.

Reimplemented in RooUniform, RooArgusBG, RooBernstein, RooBifurGauss, RooBreitWigner, RooBukinPdf, RooCBShape, RooChebychev, RooChiSquarePdf, RooDstD0BG, RooGamma, RooLandau, RooLognormal, RooNovosibirsk, RooPolynomial, RooVoigtian, RooAddPdf, RooFormulaVar, RooProdPdf, RooLegendre, RooExponential, RooGaussian, RooJohnson, RooPoisson, RooBinSamplingPdf, RooHypatia2, and RooGenericPdf.

Definition at line 4912 of file RooAbsReal.cxx.

◆ fillDataHist()

RooDataHist * RooAbsReal::fillDataHist ( RooDataHist hist,
const RooArgSet normSet,
Double_t  scaleFactor,
Bool_t  correctForBinSize = kFALSE,
Bool_t  showProgress = kFALSE 
) const

Fill a RooDataHist with values sampled from this function at the bin centers.

If extendedMode is true, the p.d.f. values is multiplied by the number of expected events in each bin

An optional scaling by a given scaleFactor can be performed. Returns a pointer to the input RooDataHist, or zero in case of an error.

If correctForBinSize is true the RooDataHist is filled with the functions density (function value times the bin volume) rather than function value.

If showProgress is true a process indicator is printed on stdout in steps of one percent, which is mostly useful for the sampling of expensive functions such as likelihoods

Definition at line 1238 of file RooAbsReal.cxx.

◆ fillHistogram()

TH1 * RooAbsReal::fillHistogram ( TH1 hist,
const RooArgList plotVars,
Double_t  scaleFactor = 1,
const RooArgSet projectedVars = 0,
Bool_t  scaleForDensity = kTRUE,
const RooArgSet condObs = 0,
Bool_t  setError = kTRUE 
) const

Fill the ROOT histogram 'hist' with values sampled from this function at the bin centers.

Our value is calculated by first integrating out any variables in projectedVars and then scaling the result by scaleFactor. Returns a pointer to the input histogram, or zero in case of an error. The input histogram can be any TH1 subclass, and therefore of arbitrary dimension. Variables are matched with the (x,y,...) dimensions of the input histogram according to the order in which they appear in the input plotVars list. If scaleForDensity is true the histogram is filled with a the functions density rather than the functions value (i.e. the value at the bin center is multiplied with bin volume)

Definition at line 1061 of file RooAbsReal.cxx.

◆ fillTreeBranch()

void RooAbsReal::fillTreeBranch ( TTree t)
protectedvirtual

Fill the tree branch that associated with this object with its current value.

Implements RooAbsArg.

Reimplemented in RooRealVar.

Definition at line 3356 of file RooAbsReal.cxx.

◆ findInnerMostIntegration()

void RooAbsReal::findInnerMostIntegration ( const RooArgSet allObs,
RooArgSet innerObs,
const char *  rangeName 
) const
protected

Utility function for createIntObj() that aids in the construct of recursive integrals over functions with multiple observables with parameterized ranges.

This function finds in a given set allObs over which integration is requested the largeset subset of observables that can be integrated simultaneously. This subset consists of observables with fixed ranges and observables with parameterized ranges whose parameterization does not depend on any observable that is also integrated.

Definition at line 762 of file RooAbsReal.cxx.

◆ findRoot()

Double_t RooAbsReal::findRoot ( RooRealVar x,
Double_t  xmin,
Double_t  xmax,
Double_t  yval 
)

Return value of x (in range xmin,xmax) at which function equals yval.

(Calculation is performed with Brent root finding algorithm)

Definition at line 4339 of file RooAbsReal.cxx.

◆ fixAddCoefNormalization()

void RooAbsReal::fixAddCoefNormalization ( const RooArgSet addNormSet = RooArgSet(),
Bool_t  force = kTRUE 
)
virtual

Fix the interpretation of the coefficient of any RooAddPdf component in the expression tree headed by this object to the given set of observables.

If the force flag is false, the normalization choice is only fixed for those RooAddPdf components that have the default 'automatic' interpretation of coefficients (i.e. the interpretation is defined by the observables passed to getVal()). If force is true, also RooAddPdf that already have a fixed interpretation are changed to a new fixed interpretation.

Definition at line 3916 of file RooAbsReal.cxx.

◆ fixAddCoefRange()

void RooAbsReal::fixAddCoefRange ( const char *  rangeName = 0,
Bool_t  force = kTRUE 
)
virtual

Fix the interpretation of the coefficient of any RooAddPdf component in the expression tree headed by this object to the given set of observables.

If the force flag is false, the normalization range choice is only fixed for those RooAddPdf components that currently use the default full domain to interpret their coefficients. If force is true, also RooAddPdf that already have a fixed interpretation range are changed to a new fixed interpretation range.

Definition at line 3946 of file RooAbsReal.cxx.

◆ forceAnalyticalInt()

◆ forceNumInt()

virtual void RooAbsReal::forceNumInt ( Bool_t  flag = kTRUE)
inlinevirtual

Definition at line 172 of file RooAbsReal.h.

◆ functor()

RooFunctor * RooAbsReal::functor ( const RooArgList obs,
const RooArgList pars = RooArgList(),
const RooArgSet nset = RooArgSet() 
) const

Return a RooFunctor object bound to this RooAbsReal with given definition of observables and parameters.

Definition at line 4171 of file RooAbsReal.cxx.

◆ getAnalyticalIntegral()

Int_t RooAbsReal::getAnalyticalIntegral ( RooArgSet allVars,
RooArgSet analVars,
const char *  rangeName = 0 
) const
virtual

Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.

'integSet' is the set of dependents for which integration is requested. The function should copy the subset of dependents it can analytically integrate to anaIntSet and return a unique identification code for this integration configuration. If no integration can be performed, zero should be returned.

Reimplemented in RooArgusBG, RooBernstein, RooBifurGauss, RooBreitWigner, RooCBShape, RooChebychev, RooChiSquarePdf, RooCrystalBall, RooDstD0BG, RooGamma, RooGaussModel, RooGExpModel, RooKeysPdf, RooLognormal, RooNDKeysPdf, RooNovosibirsk, RooParametricStepFunction, RooPolynomial, RooUniform, RooConvCoefVar, RooEfficiency, RooHistFunc, RooHistPdf, RooMultiVarGaussian, RooPolyVar, RooTruthModel, RooLegendre, RooNonCentralChiSquare, RooSpHarmonic, RooExponential, RooGaussian, RooJohnson, RooPoisson, RooAddition, RooBinSamplingPdf, and RooWrapperPdf.

Definition at line 403 of file RooAbsReal.cxx.

◆ getAnalyticalIntegralWN()

Int_t RooAbsReal::getAnalyticalIntegralWN ( RooArgSet allDeps,
RooArgSet analDeps,
const RooArgSet normSet,
const char *  rangeName = 0 
) const
virtual

Variant of getAnalyticalIntegral that is also passed the normalization set that should be applied to the integrand of which the integral is requested.

For certain operator p.d.f it is useful to overload this function rather than analyticalIntegralWN() as the additional normalization information may be useful in determining a more efficient decomposition of the requested integral.

Reimplemented in ParamHistFunc, PiecewiseInterpolation, RooParamHistFunc, RooAbsAnaConvPdf, RooAbsCachedPdf, RooAbsCachedReal, RooExtendPdf, RooProduct, RooProjectedPdf, RooBinSamplingPdf, RooWrapperPdf, RooAddModel, RooAddPdf, RooEffProd, RooProdPdf, RooRealSumFunc, RooRealSumPdf, and RooSimultaneous.

Definition at line 386 of file RooAbsReal.cxx.

◆ getForceNumInt()

Bool_t RooAbsReal::getForceNumInt ( ) const
inline

Definition at line 177 of file RooAbsReal.h.

◆ getIntegratorConfig() [1/2]

RooNumIntConfig * RooAbsReal::getIntegratorConfig ( )

Return the numeric integration configuration used for this object.

If a specialized configuration was associated with this object, that configuration is returned, otherwise the default configuration for all RooAbsReals is returned

Definition at line 3584 of file RooAbsReal.cxx.

◆ getIntegratorConfig() [2/2]

const RooNumIntConfig * RooAbsReal::getIntegratorConfig ( ) const

Return the numeric integration configuration used for this object.

If a specialized configuration was associated with this object, that configuration is returned, otherwise the default configuration for all RooAbsReals is returned

Definition at line 3571 of file RooAbsReal.cxx.

◆ getMaxVal()

Int_t RooAbsReal::getMaxVal ( const RooArgSet vars) const
virtual

Advertise capability to determine maximum value of function for given set of observables.

If no direct generator method is provided, this information will assist the accept/reject generator to operate more efficiently as it can skip the initial trial sampling phase to empirically find the function maximum

Reimplemented in RooCBShape, RooCrystalBall, RooKeysPdf, RooFFTConvPdf, RooHistFunc, RooHistPdf, RooLegendre, RooSpHarmonic, RooBinSamplingPdf, and RooWrapperPdf.

Definition at line 3654 of file RooAbsReal.cxx.

◆ getPlotLabel()

const char * RooAbsReal::getPlotLabel ( ) const

Get the label associated with the variable.

Definition at line 441 of file RooAbsReal.cxx.

◆ getPropagatedError()

Double_t RooAbsReal::getPropagatedError ( const RooFitResult fr,
const RooArgSet nset_in = RooArgSet() 
) const

Calculate error on self by linearly propagating errors on parameters using the covariance matrix from a fit result.

The error is calculated as follows

\[ \mathrm{error}^2(x) = F_\mathbf{a}(x) \cdot \mathrm{Cov}(\mathbf{a},\mathbf{a}') \cdot F_{\mathbf{a}'}^{\mathrm{T}}(x) \]

where \( F_mathbf{a}(x) = \frac{ f(x, mathbf{a} + \mathrm{d}mathbf{a}) - f(x, mathbf{a} - \mathrm{d}mathbf{a}) }{2} \), with \( f(x) = \) this and \( \mathrm{d}mathbf{a} \) the vector of one-sigma uncertainties of all fit parameters taken from the fit result and \( \mathrm{Cov}(mathbf{a},mathbf{a}') \) = the covariance matrix from the fit result.

Definition at line 2708 of file RooAbsReal.cxx.

◆ getTitle()

TString RooAbsReal::getTitle ( Bool_t  appendUnit = kFALSE) const

Return this variable's title string.

If appendUnit is true and this variable has units, also append a string " (<unit>)".

Definition at line 258 of file RooAbsReal.cxx.

◆ getUnit()

const Text_t * RooAbsReal::getUnit ( ) const
inline

Definition at line 146 of file RooAbsReal.h.

◆ getVal() [1/2]

Double_t RooAbsReal::getVal ( const RooArgSet normalisationSet) const
inline

Like getVal(const RooArgSet*), but always requires an argument for normalisation.

Definition at line 114 of file RooAbsReal.h.

◆ getVal() [2/2]

Double_t RooAbsReal::getVal ( const RooArgSet normalisationSet = nullptr) const
inline

Evaluate object.

Returns either cached value or triggers a recalculation. The recalculation happens by calling getValV(), which in the end calls the virtual evaluate() functions of the respective PDFs.

Parameters
[in]normalisationSetgetValV() reacts differently depending on the value of the normalisation set. If the set is nullptr, an unnormalised value is returned.
Note
The normalisation is arbitrary, because it is up to the implementation of the PDF to e.g. leave out normalisation constants for speed reasons. The range of the variables is also ignored.

To normalise the result properly, a RooArgSet has to be passed, which contains the variables to normalise over. These are integrated over their current ranges to compute the normalisation constant, and the unnormalised result is divided by this value.

Definition at line 91 of file RooAbsReal.h.

◆ getValBatch()

virtual RooSpan< const double > RooAbsReal::getValBatch ( std::size_t  ,
std::size_t  ,
const RooArgSet = nullptr 
)
virtualdelete
Deprecated:
getValBatch() has been removed in favour of the faster getValues(). If your code is affected by this change, please consult the release notes for ROOT 6.24 for guidance on how to make this transition. https://root.cern/doc/v624/release-notes.html

◆ getValues()

RooSpan< const double > RooAbsReal::getValues ( RooBatchCompute::RunContext evalData,
const RooArgSet normSet = nullptr 
) const
virtual

by this change, please consult the release notes for ROOT 6.24 for guidance on how to make this transition.

Compute batch of values for input data stored in evalData.

This is a faster, multi-value version of getVal(). It calls evaluateSpan() to trigger computations, and finalises those (e.g. error checking or automatic normalisation) before returning a span with the results. This span will also be stored in evalData, so subsquent calls of getValues() will return immediately.

If evalData is empty, a single value will be returned, which is the result of evaluating the current value of each object that's serving values to us. If evalData contains a batch of values for one or more of the objects serving values to us, a batch of values for each entry stored in evalData is returned. To fill a RunContext with values from a dataset, use RooAbsData::getBatches().

Parameters
[in]evalDataObject holding spans of input data. The results are also stored here.
[in]normSetUse these variables for normalisation (relevant for PDFs), and pass this normalisation on to object serving values to us.
Returns
RooSpan pointing to the computation results. The memory this span points to is owned by evalData.

Reimplemented in RooConstVar, RooAbsPdf, and RooRealVar.

Definition at line 312 of file RooAbsReal.cxx.

◆ getValV()

Double_t RooAbsReal::getValV ( const RooArgSet nset = nullptr) const
virtual

Return value of object.

If the cache is clean, return the cached value, otherwise recalculate on the fly and refill the cache

Reimplemented in RooConstVar, RooAbsHiddenReal, RooConvCoefVar, RooRealMPFE, RooRealVar, RooResolutionModel, RooAbsCachedPdf, RooAbsCachedReal, RooAbsPdf, RooErrorVar, and RooRealIntegral.

Definition at line 276 of file RooAbsReal.cxx.

◆ globalSelectComp()

void RooAbsReal::globalSelectComp ( Bool_t  flag)
staticprotected

Global switch controlling the activation of the selectComp() functionality.

Definition at line 3193 of file RooAbsReal.cxx.

◆ hideOffset()

Bool_t RooAbsReal::hideOffset ( )
static

Definition at line 123 of file RooAbsReal.cxx.

◆ iGenFunction() [1/2]

RooMultiGenFunction * RooAbsReal::iGenFunction ( const RooArgSet observables,
const RooArgSet nset = RooArgSet() 
)

Definition at line 4360 of file RooAbsReal.cxx.

◆ iGenFunction() [2/2]

RooGenFunction * RooAbsReal::iGenFunction ( RooRealVar x,
const RooArgSet nset = RooArgSet() 
)

Definition at line 4351 of file RooAbsReal.cxx.

◆ integralNameSuffix()

TString RooAbsReal::integralNameSuffix ( const RooArgSet iset,
const RooArgSet nset = 0,
const char *  rangeName = 0,
Bool_t  omitEmpty = kFALSE 
) const
protected

Construct string with unique suffix name to give to integral object that encodes integrated observables, normalization observables and the integration range name.

Definition at line 817 of file RooAbsReal.cxx.

◆ isBinnedDistribution()

virtual Bool_t RooAbsReal::isBinnedDistribution ( const RooArgSet ) const
inlinevirtual

Tests if the distribution is binned. Unless overridden by derived classes, this always returns false.

Reimplemented in ParamHistFunc, RooParamHistFunc, RooHistFunc, RooHistPdf, RooBinSamplingPdf, PiecewiseInterpolation, RooMomentMorphFunc, RooAddition, RooAddPdf, RooProdPdf, RooProduct, RooRealSumFunc, RooRealSumPdf, and RooWrapperPdf.

Definition at line 341 of file RooAbsReal.h.

◆ isIdentical()

Bool_t RooAbsReal::isIdentical ( const RooAbsArg other,
Bool_t  assumeSameType = kFALSE 
) const
virtual

Implements RooAbsArg.

Definition at line 243 of file RooAbsReal.cxx.

◆ isOffsetting()

virtual Bool_t RooAbsReal::isOffsetting ( ) const
inlinevirtual

Reimplemented in RooAbsTestStatistic.

Definition at line 368 of file RooAbsReal.h.

◆ isSelectedComp()

Bool_t RooAbsReal::isSelectedComp ( ) const
protected

If true, the current pdf is a selected component (for use in plotting)

Definition at line 3183 of file RooAbsReal.cxx.

◆ isValid()

Bool_t RooAbsReal::isValid ( ) const
protectedvirtual

Check if current value is valid.

Reimplemented from RooAbsArg.

Reimplemented in RooRealIntegral.

Definition at line 504 of file RooAbsReal.cxx.

◆ isValidReal()

Bool_t RooAbsReal::isValidReal ( Double_t  value,
Bool_t  printError = kFALSE 
) const
protectedvirtual

Interface function to check if given value is a valid value for this object.

This default implementation considers all values valid

Reimplemented in RooGenericPdf, RooAbsRealLValue, RooRealIntegral, and RooFormulaVar.

Definition at line 515 of file RooAbsReal.cxx.

◆ logEvalError() [1/2]

void RooAbsReal::logEvalError ( const char *  message,
const char *  serverValueString = 0 
) const

Log evaluation error message.

Evaluation errors may be routed through a different protocol than generic RooFit warning message (which go straight through RooMsgService) because evaluation errors can occur in very large numbers in the use of likelihood evaluations. In logEvalError mode, controlled by global method enableEvalErrorLogging() messages reported through this function are not printed but all stored in a list, along with server values at the time of reporting. Error messages logged in this way can be printed in a structured way, eliminating duplicates and with the ability to truncate the list by printEvalErrors. This is the standard mode of error logging during MINUIT operations. If enableEvalErrorLogging() is false, all errors reported through this method are passed for immediate printing through RooMsgService. A string with server names and values is constructed automatically for error logging purposes, unless a custom string with similar information is passed as argument.

Definition at line 3731 of file RooAbsReal.cxx.

◆ logEvalError() [2/2]

void RooAbsReal::logEvalError ( const RooAbsReal originator,
const char *  origName,
const char *  message,
const char *  serverValueString = 0 
)
static

Interface to insert remote error logging messages received by RooRealMPFE into current error loggin stream.

Definition at line 3676 of file RooAbsReal.cxx.

◆ makeProjectionSet()

void RooAbsReal::makeProjectionSet ( const RooAbsArg plotVar,
const RooArgSet allVars,
RooArgSet projectedVars,
Bool_t  silent 
) const
protected

Utility function for plotOn() that constructs the set of observables to project when plotting ourselves as function of 'plotVar'.

'allVars' is the list of variables that must be projected, but may contain variables that we do not depend on. If 'silent' is cleared, warnings about inconsistent input parameters will be printed.

Definition at line 3123 of file RooAbsReal.cxx.

◆ matchArgs() [1/5]

Bool_t RooAbsReal::matchArgs ( const RooArgSet allDeps,
RooArgSet analDeps,
const RooArgProxy a 
) const
protected

Utility function for use in getAnalyticalIntegral().

If the content of proxy 'a' occurs in set 'allDeps' then the argument held in 'a' is copied from allDeps to analDeps

Definition at line 3403 of file RooAbsReal.cxx.

◆ matchArgs() [2/5]

Bool_t RooAbsReal::matchArgs ( const RooArgSet allDeps,
RooArgSet analDeps,
const RooArgProxy a,
const RooArgProxy b 
) const
protected

Utility function for use in getAnalyticalIntegral().

If the contents of proxies a,b occur in set 'allDeps' then the arguments held in a,b are copied from allDeps to analDeps

Definition at line 3420 of file RooAbsReal.cxx.

◆ matchArgs() [3/5]

Bool_t RooAbsReal::matchArgs ( const RooArgSet allDeps,
RooArgSet analDeps,
const RooArgProxy a,
const RooArgProxy b,
const RooArgProxy c 
) const
protected

Utility function for use in getAnalyticalIntegral().

If the contents of proxies a,b,c occur in set 'allDeps' then the arguments held in a,b,c are copied from allDeps to analDeps

Definition at line 3438 of file RooAbsReal.cxx.

◆ matchArgs() [4/5]

Bool_t RooAbsReal::matchArgs ( const RooArgSet allDeps,
RooArgSet analDeps,
const RooArgProxy a,
const RooArgProxy b,
const RooArgProxy c,
const RooArgProxy d 
) const
protected

Utility function for use in getAnalyticalIntegral().

If the contents of proxies a,b,c,d occur in set 'allDeps' then the arguments held in a,b,c,d are copied from allDeps to analDeps

Definition at line 3458 of file RooAbsReal.cxx.

◆ matchArgs() [5/5]

Bool_t RooAbsReal::matchArgs ( const RooArgSet allDeps,
RooArgSet analDeps,
const RooArgSet refset 
) const
protected

Utility function for use in getAnalyticalIntegral().

If the contents of 'refset' occur in set 'allDeps' then the arguments held in 'refset' are copied from allDeps to analDeps.

Definition at line 3478 of file RooAbsReal.cxx.

◆ matchArgsByName()

Bool_t RooAbsReal::matchArgsByName ( const RooArgSet allArgs,
RooArgSet matchedArgs,
const TList nameList 
) const
private

Check if allArgs contains matching elements for each name in nameList.

If it does, add the corresponding args from allArgs to matchedArgs and return kTRUE. Otherwise return kFALSE and do not change matchedArgs.

Definition at line 3501 of file RooAbsReal.cxx.

◆ maxVal()

Double_t RooAbsReal::maxVal ( Int_t  code) const
virtual

Return maximum value for set of observables identified by code assigned in getMaxVal.

Reimplemented in RooCBShape, RooCrystalBall, RooKeysPdf, RooFFTConvPdf, RooHistFunc, RooHistPdf, RooLegendre, RooSpHarmonic, RooBinSamplingPdf, and RooWrapperPdf.

Definition at line 3665 of file RooAbsReal.cxx.

◆ mean() [1/2]

RooAbsMoment * RooAbsReal::mean ( RooRealVar obs)
inline

Definition at line 357 of file RooAbsReal.h.

◆ mean() [2/2]

RooAbsMoment * RooAbsReal::mean ( RooRealVar obs,
const RooArgSet nset 
)
inline

Definition at line 358 of file RooAbsReal.h.

◆ minTrialSamples()

virtual Int_t RooAbsReal::minTrialSamples ( const RooArgSet ) const
inlinevirtual

Reimplemented in RooBinSamplingPdf, and RooWrapperPdf.

Definition at line 245 of file RooAbsReal.h.

◆ moment() [1/2]

RooAbsMoment * RooAbsReal::moment ( RooRealVar obs,
const RooArgSet normObs,
Int_t  order,
Bool_t  central,
Bool_t  takeRoot,
Bool_t  intNormObs 
)

Return function representing moment of p.d.f (normalized w.r.t given observables) of given order.

Parameters
[in]obsObservable to calculate the moments for
[in]normObsNormalise w.r.t. these observables
[in]orderOrder of the moment
[in]centralIf true, the central moment is given by \( \langle (x- \langle x \rangle )^2 \rangle \)
[in]takeRootCalculate the square root
[in]intNormObsIf true, the moment of the function integrated over all normalization observables is returned.

Definition at line 4322 of file RooAbsReal.cxx.

◆ moment() [2/2]

RooAbsMoment * RooAbsReal::moment ( RooRealVar obs,
Int_t  order,
Bool_t  central,
Bool_t  takeRoot 
)

Return function representing moment of function of given order.

Parameters
[in]obsObservable to calculate the moments for
[in]orderOrder of the moment
[in]centralIf true, the central moment is given by \( \langle (x- \langle x \rangle )^2 \rangle \)
[in]takeRootCalculate the square root

Definition at line 4303 of file RooAbsReal.cxx.

◆ numEvalErrorItems()

Int_t RooAbsReal::numEvalErrorItems ( )
static

Definition at line 337 of file RooAbsReal.cxx.

◆ numEvalErrors()

Int_t RooAbsReal::numEvalErrors ( )
static

Return the number of logged evaluation errors since the last clearing.

Definition at line 3890 of file RooAbsReal.cxx.

◆ offset()

virtual Double_t RooAbsReal::offset ( ) const
inlinevirtual

Reimplemented in RooAbsTestStatistic.

Definition at line 369 of file RooAbsReal.h.

◆ operator=()

RooAbsReal & RooAbsReal::operator= ( const RooAbsReal other)

Assign values, name and configs from another RooAbsReal.

Definition at line 186 of file RooAbsReal.cxx.

◆ operator==() [1/2]

Bool_t RooAbsReal::operator== ( const RooAbsArg other) const
virtual

Equality operator when comparing to another RooAbsArg.

Only functional when the other arg is a RooAbsReal

Implements RooAbsArg.

Definition at line 234 of file RooAbsReal.cxx.

◆ operator==() [2/2]

Bool_t RooAbsReal::operator== ( Double_t  value) const

Equality operator comparing to a Double_t.

Definition at line 223 of file RooAbsReal.cxx.

◆ plotAsymOn()

RooPlot * RooAbsReal::plotAsymOn ( RooPlot frame,
const RooAbsCategoryLValue asymCat,
PlotOpt  o 
) const
protectedvirtual

Definition at line 2415 of file RooAbsReal.cxx.

◆ plotOn() [1/3]

RooPlot * RooAbsReal::plotOn ( RooPlot frame,
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(),
const RooCmdArg arg10 = RooCmdArg() 
) const
virtual

Plot (project) PDF on specified frame.

If a PDF is plotted in an empty frame, it will show a unit normalized curve in the frame variable, taken at the present value of other observables defined for this PDF.

If a PDF is plotted in a frame in which a dataset has already been plotted, it will show a projected curve integrated over all variables that were present in the shown dataset except for the one on the x-axis. The normalization of the curve will also be adjusted to the event count of the plotted dataset. An informational message will be printed for each projection step that is performed.

This function takes the following named arguments

Projection control
Slice(const RooArgSet& set)

Override default projection behaviour by omitting observables listed in set from the projection, i.e. by not integrating over these. Slicing is usually only sensible in discrete observables, by e.g. creating a slice of the PDF at the current value of the category observable.

Slice(RooCategory& cat, const char* label)

Override default projection behaviour by omitting the specified category observable from the projection, i.e., by not integrating over all states of this category. The slice is positioned at the given label value. Multiple Slice() commands can be given to specify slices in multiple observables, e.g.

pdf.plotOn(frame, Slice(tagCategory, "2tag"), Slice(jetCategory, "3jet"));

Project(const RooArgSet& set)

Override default projection behaviour by projecting over observables given in the set, ignoring the default projection behavior. Advanced use only.

ProjWData(const RooAbsData& d)

Override default projection technique (integration). For observables present in given dataset projection of PDF is achieved by constructing an average over all observable values in given set. Consult RooFit plotting tutorial for further explanation of meaning & use of this technique

ProjWData(const RooArgSet& s, const RooAbsData& d)

As above but only consider subset 's' of observables in dataset 'd' for projection through data averaging

ProjectionRange(const char* rn)

Override default range of projection integrals to a different range speficied by given range name. This technique allows you to project a finite width slice in a real-valued observable

NumCPU(Int_t ncpu)

Number of CPUs to use simultaneously to calculate data-weighted projections (only in combination with ProjWData)

Misc content control
PrintEvalErrors(Int_t numErr)

Control number of p.d.f evaluation errors printed per curve. A negative value suppress output completely, a zero value will only print the error count per p.d.f component, a positive value is will print details of each error up to numErr messages per p.d.f component.

EvalErrorValue(Double_t value)

Set curve points at which (pdf) evaluation errors occur to specified value. By default the function value is plotted.

Normalization(Double_t scale, ScaleType code)

Adjust normalization by given scale factor. Interpretation of number depends on code:

  • Relative: relative adjustment factor for a normalized function,
  • NumEvent: scale to match given number of events.
  • Raw: relative adjustment factor for an un-normalized function.

Name(const chat* name)

Give curve specified name in frame. Useful if curve is to be referenced later

Asymmetry(const RooCategory& c)

Show the asymmetry of the PDF in given two-state category [F(+)-F(-)] / [F(+)+F(-)] rather than the PDF projection. Category must have two states with indices -1 and +1 or three states with indeces -1,0 and +1.

ShiftToZero(Bool_t flag)

Shift entire curve such that lowest visible point is at exactly zero. Mostly useful when plotting \( -\log(L) \) or \( \chi^2 \) distributions

AddTo(const char* name, double_t wgtSelf, double_t wgtOther) Add constructed projection to already existing curve with given name and relative weight factors
Components(const char* names) When plotting sums of PDFs, plot only the named components (e.g. only the signal of a signal+background model).
Components(const RooArgSet& compSet)

As above, but pass a RooArgSet of the components themselves.

Plotting control
DrawOption(const char* opt) Select ROOT draw option for resulting TGraph object. Currently supported options are "F" (fill), "L" (line), and "P" (points).
Note
Option "P" will cause RooFit to plot (and treat) this pdf as if it were data! This is intended for plotting "corrected data"-type pdfs such as "data-minus-background" or unfolded datasets.
LineStyle(Int_t style)

Select line style by ROOT line style code, default is solid

LineColor(Int_t color)

Select line color by ROOT color code, default is blue

LineWidth(Int_t width)

Select line with in pixels, default is 3

MarkerStyle(Int_t style)

Select the ROOT marker style, default is 21

MarkerColor(Int_t color)

Select the ROOT marker color, default is black

MarkerSize(Double_t size)

Select the ROOT marker size

FillStyle(Int_t style) Select fill style, default is not filled. If a filled style is selected, also use VLines() to add vertical downward lines at end of curve to ensure proper closure. Add DrawOption("F") for filled drawing.
FillColor(Int_t color)

Select fill color by ROOT color code

Range(const char* name)

Only draw curve in range defined by given name

Range(double lo, double hi)

Only draw curve in specified range

VLines()

Add vertical lines to y=0 at end points of curve

Precision(Double_t eps)

Control precision of drawn curve w.r.t to scale of plot, default is 1e-3. Higher precision will result in more and more densely spaced curve points

Invisible(Bool_t flag)

Add curve to frame, but do not display. Useful in combination AddTo()

VisualizeError(const RooFitResult& fitres, Double_t Z=1, Bool_t linearMethod=kTRUE)

Visualize the uncertainty on the parameters, as given in fitres, at 'Z' sigma'

VisualizeError(const RooFitResult& fitres, const RooArgSet& param, Double_t Z=1, Bool_t linearMethod=kTRUE) Visualize the uncertainty on the subset of parameters 'param', as given in fitres, at 'Z' sigma'

Details on error band visualization

VisualizeError() uses plotOnWithErrorBand(). Documentation of the latter:

Parameters
[in]frameRooPlot to plot on
[in]frThe RooFitResult, where errors can be extracted
[in]ZThe desired significance (width) of the error band
[in]paramsIf non-zero, consider only the subset of the parameters in fr for the error evaluation
[in]argListOptional RooCmdArg that can be applied to a regular plotOn() operation
[in]linMethodBy default (linMethod=kTRUE), a linearized error is shown.
Returns
The RooPlot the band was plotted on (for chaining of plotting commands).

The linearized error is calculated as follows:

\[ \mathrm{error}(x) = Z * F_a(x) * \mathrm{Corr}(a,a') * F_{a'}^\mathrm{T}(x), \]

where

\[ F_a(x) = \frac{ f(x,a+\mathrm{d}a) - f(x,a-\mathrm{d}a) }{2}, \]

with \( f(x) \) the plotted curve and \( \mathrm{d}a \) taken from the fit result, and \( \mathrm{Corr}(a,a') \) = the correlation matrix from the fit result, and \( Z \) = requested signifance ( \( Z \sigma \) band)

The linear method is fast (required 2*N evaluations of the curve, where N is the number of parameters), but may not be accurate in the presence of strong correlations (~>0.9) and at Z>2 due to linear and Gaussian approximations made

Alternatively, a more robust error is calculated using a sampling method. In this method a number of curves is calculated with variations of the parameter values, as drawn from a multi-variate Gaussian p.d.f. that is constructed from the fit results covariance matrix. The error(x) is determined by calculating a central interval that capture N% of the variations for each valye of x, where N% is controlled by Z (i.e. Z=1 gives N=68%). The number of sampling curves is chosen to be such that at least 30 curves are expected to be outside the N% interval, and is minimally 100 (e.g. Z=1->Ncurve=100, Z=2->Ncurve=659, Z=3->Ncurve=11111) Intervals from the sampling method can be asymmetric, and may perform better in the presence of strong correlations, but may take (much) longer to calculate.

Reimplemented in RooSimultaneous, RooAbsPdf, and RooSimultaneous.

Definition at line 1726 of file RooAbsReal.cxx.

◆ plotOn() [2/3]

RooPlot * RooAbsReal::plotOn ( RooPlot frame,
PlotOpt  o 
) const
protectedvirtual

Plotting engine function for internal use.

Plot ourselves on given frame. If frame contains a histogram, all dimensions of the plotted function that occur in the previously plotted dataset are projected via partial integration, otherwise no projections are performed. Optionally, certain projections can be performed by summing over the values present in a provided dataset ('projData'), to correctly project out data dependents that are not properly described by the PDF (e.g. per-event errors).

The functions value can be multiplied with an optional scale factor. The interpretation of the scale factor is unique for generic real functions, for PDFs there are various interpretations possible, which can be selection with 'stype' (see RooAbsPdf::plotOn() for details).

The default projection behaviour can be overriden by supplying an optional set of dependents to project. For most cases, plotSliceOn() and plotProjOn() provide a more intuitive interface to modify the default projection behaviour.

Reimplemented in RooAbsPdf, and RooSimultaneous.

Definition at line 2016 of file RooAbsReal.cxx.

◆ plotOn() [3/3]

RooPlot * RooAbsReal::plotOn ( RooPlot frame,
RooLinkedList cmdList 
) const
virtual

Internal back-end function of plotOn() with named arguments.

Reimplemented in RooAbsPdf, RooSimultaneous, and RooSimultaneous.

Definition at line 1746 of file RooAbsReal.cxx.

◆ plotOnCompSelect()

void RooAbsReal::plotOnCompSelect ( RooArgSet selNodes) const
protected

Helper function for plotting of composite p.d.fs.

Given a set of selected components that should be plotted, find all nodes that (in)directly depend on these selected nodes. Mark all directly and indirecty selected nodes as 'selected' using the selectComp() method

Definition at line 1559 of file RooAbsReal.cxx.

◆ plotOnWithErrorBand()

RooPlot * RooAbsReal::plotOnWithErrorBand ( RooPlot frame,
const RooFitResult fr,
Double_t  Z,
const RooArgSet params,
const RooLinkedList argList,
Bool_t  linMethod 
) const
protected

Plot function or PDF on frame with support for visualization of the uncertainty encoded in the given fit result fr.

Parameters
[in]frameRooPlot to plot on
[in]frThe RooFitResult, where errors can be extracted
[in]ZThe desired significance (width) of the error band
[in]paramsIf non-zero, consider only the subset of the parameters in fr for the error evaluation
[in]argListOptional RooCmdArg that can be applied to a regular plotOn() operation
[in]linMethodBy default (linMethod=kTRUE), a linearized error is shown.
Returns
The RooPlot the band was plotted on (for chaining of plotting commands).

The linearized error is calculated as follows:

\[ \mathrm{error}(x) = Z * F_a(x) * \mathrm{Corr}(a,a') * F_{a'}^\mathrm{T}(x), \]

where

\[ F_a(x) = \frac{ f(x,a+\mathrm{d}a) - f(x,a-\mathrm{d}a) }{2}, \]

with \( f(x) \) the plotted curve and \( \mathrm{d}a \) taken from the fit result, and \( \mathrm{Corr}(a,a') \) = the correlation matrix from the fit result, and \( Z \) = requested signifance ( \( Z \sigma \) band)

The linear method is fast (required 2*N evaluations of the curve, where N is the number of parameters), but may not be accurate in the presence of strong correlations (~>0.9) and at Z>2 due to linear and Gaussian approximations made

Alternatively, a more robust error is calculated using a sampling method. In this method a number of curves is calculated with variations of the parameter values, as drawn from a multi-variate Gaussian p.d.f. that is constructed from the fit results covariance matrix. The error(x) is determined by calculating a central interval that capture N% of the variations for each valye of x, where N% is controlled by Z (i.e. Z=1 gives N=68%). The number of sampling curves is chosen to be such that at least 30 curves are expected to be outside the N% interval, and is minimally 100 (e.g. Z=1->Ncurve=100, Z=2->Ncurve=659, Z=3->Ncurve=11111) Intervals from the sampling method can be asymmetric, and may perform better in the presence of strong correlations, but may take (much) longer to calculate.

Definition at line 2833 of file RooAbsReal.cxx.

◆ plotSamplingHint()

std::list< Double_t > * RooAbsReal::plotSamplingHint ( RooAbsRealLValue obs,
Double_t  xlo,
Double_t  xhi 
) const
virtual

Interface for returning an optional hint for initial sampling points when constructing a curve projected on observable obs.

Parameters
[in]obsObservable to retrieve sampling hint for.
[in]xloBeginning of range.
[in]xhiEnd of range.
Returns
The caller owns the returned list.

Reimplemented in RooAddition, RooFormulaVar, RooProduct, RooRealSumFunc, RooRealSumPdf, RooBinSamplingPdf, ParamHistFunc, PiecewiseInterpolation, RooMomentMorphFunc, RooParamHistFunc, RooAddPdf, RooHistFunc, RooHistPdf, RooProdPdf, RooRangeBoolean, RooRealIntegral, and RooWrapperPdf.

Definition at line 3837 of file RooAbsReal.cxx.

◆ plotSanityChecks()

Bool_t RooAbsReal::plotSanityChecks ( RooPlot frame) const
protected

Utility function for plotOn(), perform general sanity check on frame to ensure safe plotting operations.

Definition at line 3080 of file RooAbsReal.cxx.

◆ plotSliceOn()

RooPlot * RooAbsReal::plotSliceOn ( RooPlot frame,
const RooArgSet sliceSet,
Option_t drawOptions = "L",
Double_t  scaleFactor = 1.0,
ScaleType  stype = Relative,
const RooAbsData projData = 0 
) const
virtual
Deprecated:
OBSOLETE – RETAINED FOR BACKWARD COMPATIBILITY. Use plotOn() with Slice() instead

Definition at line 2381 of file RooAbsReal.cxx.

◆ preferredObservableScanOrder()

void RooAbsReal::preferredObservableScanOrder ( const RooArgSet obs,
RooArgSet orderedObs 
) const
virtual

Interface method for function objects to indicate their preferred order of observables for scanning their values into a (multi-dimensional) histogram or RooDataSet.

The observables to be ordered are offered in argument 'obs' and should be copied in their preferred order into argument 'orderdObs', This default implementation indicates no preference and copies the original order of 'obs' into 'orderedObs'

Reimplemented in RooIntegralMorph, and RooCachedPdf.

Definition at line 3970 of file RooAbsReal.cxx.

◆ printEvalErrors()

void RooAbsReal::printEvalErrors ( std::ostream &  os = std::cout,
Int_t  maxPerNode = 10000000 
)
static

Print all outstanding logged evaluation error on the given ostream.

If maxPerNode is zero, only the number of errors for each source (object with unique name) is listed. If maxPerNode is greater than zero, up to maxPerNode detailed error messages are shown per source of errors. A truncation message is shown if there were more errors logged than shown.

Definition at line 3848 of file RooAbsReal.cxx.

◆ printMultiline()

void RooAbsReal::printMultiline ( std::ostream &  os,
Int_t  contents,
Bool_t  verbose = kFALSE,
TString  indent = "" 
) const
virtual

◆ printValue()

void RooAbsReal::printValue ( std::ostream &  os) const
virtual

Print object value.

Reimplemented from RooPrintable.

Reimplemented in RooAbsPdf, RooRealVar, and RooAbsHiddenReal.

Definition at line 480 of file RooAbsReal.cxx.

◆ readFromStream()

Bool_t RooAbsReal::readFromStream ( std::istream &  is,
Bool_t  compact,
Bool_t  verbose = kFALSE 
)
virtual

Read object contents from stream (dummy for now)

Implements RooAbsArg.

Reimplemented in RooAbsHiddenReal, RooAbsRealLValue, RooErrorVar, RooFormulaVar, RooGenericPdf, RooLinearVar, and RooRealVar.

Definition at line 461 of file RooAbsReal.cxx.

◆ selectComp()

void RooAbsReal::selectComp ( Bool_t  flag)
inlineprotected

Definition at line 551 of file RooAbsReal.h.

◆ selectNormalization()

void RooAbsReal::selectNormalization ( const RooArgSet depSet = 0,
Bool_t  force = kFALSE 
)
protectedvirtual

Interface function to force use of a given set of observables to interpret function value.

Needed for functions or p.d.f.s whose shape depends on the choice of normalization such as RooAddPdf

Reimplemented in RooAddModel, RooAddPdf, and RooSimultaneous.

Definition at line 3628 of file RooAbsReal.cxx.

◆ selectNormalizationRange()

void RooAbsReal::selectNormalizationRange ( const char *  rangeName = 0,
Bool_t  force = kFALSE 
)
protectedvirtual

Interface function to force use of a given normalization range to interpret function value.

Needed for functions or p.d.f.s whose shape depends on the choice of normalization such as RooAddPdf

Reimplemented in RooBernstein, RooChebychev, RooAddModel, RooAddPdf, RooProdPdf, and RooSimultaneous.

Definition at line 3641 of file RooAbsReal.cxx.

◆ setCacheCheck()

static void RooAbsReal::setCacheCheck ( Bool_t  flag)
static

◆ setData()

virtual Bool_t RooAbsReal::setData ( RooAbsData ,
Bool_t  = kTRUE 
)
inlinevirtual

Reimplemented in RooAbsTestStatistic, and RooAddition.

Definition at line 365 of file RooAbsReal.h.

◆ setEvalErrorLoggingMode()

void RooAbsReal::setEvalErrorLoggingMode ( RooAbsReal::ErrorLoggingMode  m)
static

Set evaluation error logging mode.

Options are

PrintErrors - Print each error through RooMsgService() as it occurs CollectErrors - Accumulate errors, but do not print them. A subsequent call to printEvalErrors() will print a summary CountErrors - Accumulate error count, but do not print them.

Definition at line 4863 of file RooAbsReal.cxx.

◆ setHideOffset()

void RooAbsReal::setHideOffset ( Bool_t  flag)
static

Definition at line 122 of file RooAbsReal.cxx.

◆ setIntegratorConfig() [1/2]

void RooAbsReal::setIntegratorConfig ( )

Remove the specialized numeric integration configuration associated with this object.

Definition at line 3611 of file RooAbsReal.cxx.

◆ setIntegratorConfig() [2/2]

void RooAbsReal::setIntegratorConfig ( const RooNumIntConfig config)

Set the given integrator configuration as default numeric integration configuration for this object.

Definition at line 3597 of file RooAbsReal.cxx.

◆ setParameterizeIntegral()

void RooAbsReal::setParameterizeIntegral ( const RooArgSet paramVars)

Definition at line 4871 of file RooAbsReal.cxx.

◆ setPlotLabel()

void RooAbsReal::setPlotLabel ( const char *  label)

Set the label associated with this variable.

Definition at line 451 of file RooAbsReal.cxx.

◆ setTreeBranchStatus()

void RooAbsReal::setTreeBranchStatus ( TTree t,
Bool_t  active 
)
protectedvirtual

(De)Activate associated tree branch

Implements RooAbsArg.

Definition at line 3373 of file RooAbsReal.cxx.

◆ setUnit()

void RooAbsReal::setUnit ( const char *  unit)
inline

Definition at line 150 of file RooAbsReal.h.

◆ sigma() [1/2]

RooAbsMoment * RooAbsReal::sigma ( RooRealVar obs)
inline

Definition at line 359 of file RooAbsReal.h.

◆ sigma() [2/2]

RooAbsMoment * RooAbsReal::sigma ( RooRealVar obs,
const RooArgSet nset 
)
inline

Definition at line 360 of file RooAbsReal.h.

◆ specialIntegratorConfig() [1/2]

RooNumIntConfig * RooAbsReal::specialIntegratorConfig ( ) const

Returns the specialized integrator configuration for this RooAbsReal.

If this object has no specialized configuration, a null pointer is returned.

Definition at line 3544 of file RooAbsReal.cxx.

◆ specialIntegratorConfig() [2/2]

RooNumIntConfig * RooAbsReal::specialIntegratorConfig ( Bool_t  createOnTheFly)

Returns the specialized integrator configuration for this RooAbsReal.

If this object has no specialized configuration, a null pointer is returned, unless createOnTheFly is kTRUE in which case a clone of the default integrator configuration is created, installed as specialized configuration, and returned

Definition at line 3556 of file RooAbsReal.cxx.

◆ syncCache()

virtual void RooAbsReal::syncCache ( const RooArgSet set = 0)
inlineprotectedvirtual

Implements RooAbsArg.

Reimplemented in RooErrorVar.

Definition at line 464 of file RooAbsReal.h.

◆ traceEval()

Double_t RooAbsReal::traceEval ( const RooArgSet set) const
protected

Calculate current value of object, with error tracing wrapper.

Definition at line 354 of file RooAbsReal.cxx.

◆ writeToStream()

void RooAbsReal::writeToStream ( std::ostream &  os,
Bool_t  compact 
) const
virtual

Write object contents to stream (dummy for now)

Implements RooAbsArg.

Reimplemented in RooAbsHiddenReal, RooAbsRealLValue, RooConstVar, RooErrorVar, RooFormulaVar, RooGenericPdf, RooLinearVar, and RooRealVar.

Definition at line 471 of file RooAbsReal.cxx.

Friends And Related Symbol Documentation

◆ BatchInterfaceAccessor

friend class BatchInterfaceAccessor
friend

Definition at line 450 of file RooAbsReal.h.

◆ RooAbsAnaConvPdf

friend class RooAbsAnaConvPdf
friend

Definition at line 481 of file RooAbsReal.h.

◆ RooAbsOptGoodnessOfFit

friend class RooAbsOptGoodnessOfFit
friend

Definition at line 486 of file RooAbsReal.h.

◆ RooAbsPdf

friend class RooAbsPdf
friend

Definition at line 480 of file RooAbsReal.h.

◆ RooAddModel

friend class RooAddModel
friend

Definition at line 550 of file RooAbsReal.h.

◆ RooAddPdf

friend class RooAddPdf
friend

Definition at line 549 of file RooAbsReal.h.

◆ RooDataProjBinding

friend class RooDataProjBinding
friend

Definition at line 485 of file RooAbsReal.h.

◆ RooRealBinding

friend class RooRealBinding
friend

Definition at line 471 of file RooAbsReal.h.

◆ RooRealIntegral

friend class RooRealIntegral
friend

Definition at line 462 of file RooAbsReal.h.

◆ RooRealSumFunc

friend class RooRealSumFunc
friend

Definition at line 548 of file RooAbsReal.h.

◆ RooRealSumPdf

friend class RooRealSumPdf
friend

A buffer for reading values from trees.

Definition at line 547 of file RooAbsReal.h.

◆ RooVectorDataStore

friend class RooVectorDataStore
friend

Definition at line 463 of file RooAbsReal.h.

Member Data Documentation

◆ _evalErrorCount

Int_t RooAbsReal::_evalErrorCount = 0
staticprivate

Definition at line 538 of file RooAbsReal.h.

◆ _evalErrorList

map< const RooAbsArg *, pair< string, list< RooAbsReal::EvalError > > > RooAbsReal::_evalErrorList
staticprivate

Definition at line 537 of file RooAbsReal.h.

◆ _evalErrorMode

RooAbsReal::ErrorLoggingMode RooAbsReal::_evalErrorMode = RooAbsReal::PrintErrors
staticprivate

Definition at line 536 of file RooAbsReal.h.

◆ _forceNumInt

Bool_t RooAbsReal::_forceNumInt
protected

Definition at line 478 of file RooAbsReal.h.

◆ _globalSelectComp

Bool_t RooAbsReal::_globalSelectComp = false
staticprotected

Component selection flag for RooAbsPdf::plotCompOn.

Definition at line 557 of file RooAbsReal.h.

◆ _hideOffset

Bool_t RooAbsReal::_hideOffset = kTRUE
staticprotected

Definition at line 577 of file RooAbsReal.h.

◆ _label

TString RooAbsReal::_label
protected

Definition at line 477 of file RooAbsReal.h.

◆ _lastNSet

RooArgSet* RooAbsReal::_lastNSet
mutableprotected

Definition at line 576 of file RooAbsReal.h.

◆ _plotBins

Int_t RooAbsReal::_plotBins
protected

Definition at line 474 of file RooAbsReal.h.

◆ _plotMax

Double_t RooAbsReal::_plotMax
protected

Definition at line 473 of file RooAbsReal.h.

◆ _plotMin

Double_t RooAbsReal::_plotMin
protected

Definition at line 472 of file RooAbsReal.h.

◆ _selectComp

Bool_t RooAbsReal::_selectComp
protected

Definition at line 556 of file RooAbsReal.h.

◆ _specIntegratorConfig

RooNumIntConfig* RooAbsReal::_specIntegratorConfig
protected

Definition at line 483 of file RooAbsReal.h.

◆ _treeReadBuffer

std::unique_ptr<TreeReadBuffer> RooAbsReal::_treeReadBuffer
private

Definition at line 542 of file RooAbsReal.h.

◆ _unit

TString RooAbsReal::_unit
protected

Definition at line 476 of file RooAbsReal.h.

◆ _value

Double_t RooAbsReal::_value
mutableprotected

Definition at line 475 of file RooAbsReal.h.

Libraries for RooAbsReal:

The documentation for this class was generated from the following files: