50using std::endl, std::ostream, std::istream;
 
   62  RooSentinel::activate();
 
 
  105             double value, 
const char *unit) :
 
 
  177  _error(
other._error),
 
  178  _asymErrLo(
other._asymErrLo),
 
  179  _asymErrHi(
other._asymErrHi)
 
  182  if (
other._binning) {
 
  188  for (
const auto& 
item : 
other._altNonSharedBinning) {
 
  189    std::unique_ptr<RooAbsBinning> 
abc( 
item.second->clone() );
 
  190    abc->insertHook(*
this) ;
 
 
  231         << 
"Silent clipping of values to range in `RooRealVar::setVal()` enabled." << std::endl;
 
 
  245   std::stringstream 
ss;
 
  248      ss << 
" is outside the range \"" << 
rangeName << 
"\" ";
 
  250      ss << 
" is outside the default range ";
 
  252   ss << 
"[" << var.
getMin() << 
", " << var.
getMax() << 
"] of the variable \"";
 
  254   ss << 
"\nTo restore the dangerous old behavior of silently clipping the value to the range," 
  255      << 
" call `RooRealVar::enableSilentClipping()`.";
 
  256   throw std::invalid_argument(
ss.str());
 
  261   std::stringstream 
ss;
 
  264      ss << 
" is slightly outside the range \"" << 
rangeName << 
"\" ";
 
  266      ss << 
" is slightly outside the default range ";
 
  268   ss << 
"[" << var.
getMin() << 
", " << var.
getMax() << 
"] of the variable \"";
 
  270   ss << 
"\nThe value will be clipped. To restore the dangerous old behavior of silently clipping the value to the " 
  272      << 
" call `RooRealVar::enableSilentClipping()`.";
 
  273   oocoutW(&var, InputArguments) << 
ss.str() << std::endl;
 
  289      if (std::abs(
clipValue - 
value) > std::numeric_limits<double>::epsilon()) {
 
 
  314      if (std::abs(
clipValue - 
value) > std::numeric_limits<double>::epsilon()) {
 
 
  384    coutW(InputArguments) << 
"Asking variable " << 
GetName() << 
"for binning '" << 
name 
  385        << 
"', but comma in binning names is not supported." << std::endl;
 
  391    return *
item->second;
 
  397    return *
item2->second;
 
  409    coutI(Eval) << 
"RooRealVar::getBinning(" << 
GetName() << 
") new range named '" 
  410      << 
name << 
"' created with default bounds" << std::endl ;
 
 
  476      item->second->removeHook(*
this);
 
  484      item2->second->removeHook(*
this);
 
 
  513    coutW(InputArguments) << 
"RooRealVar::setMin(" << 
GetName()
 
  514           << 
"): Proposed new fit min. larger than max., setting min. to max." << std::endl ;
 
 
  543    coutW(InputArguments) << 
"RooRealVar::setMax(" << 
GetName()
 
  544           << 
"): Proposed new fit max. smaller than min., setting max. to min." << std::endl ;
 
 
  580    coutW(InputArguments) << 
"RooRealVar::setRange(" << 
GetName()
 
  581           << 
"): Proposed new fit max. smaller than min., setting max. to min." << std::endl ;
 
  589      << 
") new range named '" << 
name << 
"' created with bounds [" 
  590      << min << 
"," << max << 
"]" << std::endl ;
 
 
  658   if (tmp.CompareTo(
"(")) {
 
  696   coutW(Eval) << 
"RooRealVar::readFromStream(" << 
GetName()
 
  697        << 
") WARNING: plot range deprecated, removed P(...) token" << std::endl ;
 
  714   coutW(Eval) << 
"RooRealVar::readFromStream(" << 
GetName()
 
  715        << 
") WARNING: F(lo-hi:bins) token deprecated, use L(lo-hi) B(bins)" << std::endl ;
 
 
  767      std::stringstream 
text;
 
  772      text << std::scientific;
 
  785      os << 
text.str() << 
" ";
 
  802      os << 
" - " << 
getMax() << 
") ";
 
  808      os << 
"B(" << 
getBins() << 
") ";
 
  813      os << 
"// [" << 
getUnit() << 
"]";
 
 
  861    os << 
"B(" << 
getBins() << 
") " ;
 
  866    os << 
"// [" << 
getUnit() << 
"]" ;
 
 
  879  if (opt && 
TString(opt)==
"I") {
 
 
  892  os << 
indent << 
"--- RooRealVar ---" << std::endl;
 
 
  909  tmp.setProcessRecArgs(
true) ;
 
  913  pc.
defineInt(
"autop",
"FormatArgs::AutoPrecision",0,2) ;
 
  914  pc.
defineInt(
"fixedp",
"FormatArgs::FixedPrecision",0,2) ;
 
  915  pc.
defineInt(
"tlatex",
"FormatArgs::TLatexStyle",0,0) ;
 
  916  pc.
defineInt(
"latex",
"FormatArgs::LatexStyle",0,0) ;
 
  917  pc.
defineInt(
"latext",
"FormatArgs::LatexTableStyle",0,0) ;
 
  918  pc.
defineInt(
"verbn",
"FormatArgs::VerbatimName",0,0) ;
 
  919  pc.
defineMutex(
"FormatArgs::TLatexStyle",
"FormatArgs::LatexStyle",
"FormatArgs::LatexTableStyle") ;
 
  920  pc.
defineMutex(
"FormatArgs::AutoPrecision",
"FormatArgs::FixedPrecision") ;
 
  932  if (pc.
getInt(
"tlatex")) {
 
  934  } 
else if (pc.
getInt(
"latex")) {
 
  936  } 
else if (pc.
getInt(
"latext")) {
 
  940  if (pc.
getInt(
"verbn")) options += 
"V" ;
 
  945  } 
else if (pc.
hasProcessed(
"FormatArgs::FixedPrecision")) {
 
 
 1019  std::stringstream 
text;
 
 
 1144    loName.Append(
"_aerr_lo") ;
 
 1155    hiName.Append(
"_aerr_hi") ;
 
 
 1179    coutE(Eval) << 
"RooAbsReal::fillTreeBranch(" << 
GetName() << 
") ERROR: not attached to tree" << std::endl ;
 
 1193    loName.Append(
"_aerr_lo") ;
 
 1198    hiName.Append(
"_aerr_hi") ;
 
 
 1241  if (
R__b.IsReading()) {
 
 1246      coutI(Eval) << 
"RooRealVar::Streamer(" << 
GetName() << 
") converting version 1 data format" << std::endl ;
 
 1271      auto tmpProp = std::make_shared<RooRealVarSharedProperties>();
 
 
 1320  std::shared_ptr<RooRealVarSharedProperties> 
existingProp;
 
 1325    prop->disownBinnings();
 
 
 1356  if(iter->second.expired()) {
 
 
static bool staticSharedPropListCleanedUp
 
int Int_t
Signed integer 4 bytes (int)
 
char Text_t
General string (char)
 
short Version_t
Class version identifier (short)
 
const char Option_t
Option string (const char)
 
static void indent(ostringstream &buf, int indent_level)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h prop
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
 
Option_t Option_t TPoint TPoint const char text
 
const_iterator end() const
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
void setShapeDirty()
Notify that a shape-like property (e.g. binning) has changed.
 
bool isConstant() const
Check if the "Constant" attribute is set.
 
friend void RooRefArray::Streamer(TBuffer &)
 
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
 
bool getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
 
TString cleanBranchName() const
Construct a mangled name from the actual name that is free of any math symbols that might be interpre...
 
Abstract base class for RooRealVar binning definitions.
 
virtual void setRange(double xlo, double xhi)=0
 
virtual void setMin(double xlo)
Change lower bound to xlo.
 
virtual void setMax(double xhi)
Change upper bound to xhi.
 
virtual RooAbsBinning * clone(const char *name=nullptr) const =0
 
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
 
virtual Int_t getBins(const char *name=nullptr) const
Get number of bins of currently defined range.
 
bool isValidReal(double value, bool printError=false) const override
Check if given value is valid.
 
void setConstant(bool value=true)
 
virtual double getMax(const char *name=nullptr) const
Get maximum of currently defined range.
 
bool hasMax(const char *name=nullptr) const
Check if variable has an upper bound.
 
virtual double getMin(const char *name=nullptr) const
Get minimum of currently defined range.
 
bool inRange(const char *name) const override
Check if current value is inside range with given name.
 
void printMultiline(std::ostream &os, Int_t contents, bool verbose=false, TString indent="") const override
Structure printing.
 
bool hasMin(const char *name=nullptr) const
Check if variable has a lower bound.
 
Abstract base class for objects that represent a real value and implements functionality common to al...
 
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
 
TString _unit
Unit for objects value.
 
void attachToVStore(RooVectorDataStore &vstore) override
 
void copyCache(const RooAbsArg *source, bool valueOnly=false, bool setValDirty=true) override
Copy the cached value of another RooAbsArg to our cache.
 
double _value
Cache for current value of object.
 
void attachToTree(TTree &t, Int_t bufSize=32000) override
Attach object to a branch of given TTree.
 
const char * getPlotLabel() const
Get the label associated with the variable.
 
const Text_t * getUnit() const
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Named container for two doubles, two integers two object points and three string pointers that can be...
 
Configurable parser for RooCmdArg named arguments.
 
void defineMutex(const char *head, Args_t &&... tail)
Define arguments where any pair is mutually exclusive.
 
bool process(const RooCmdArg &arg)
Process given RooCmdArg.
 
bool hasProcessed(const char *cmdName) const
Return true if RooCmdArg with name 'cmdName' has been processed.
 
bool ok(bool verbose) const
Return true of parsing was successful.
 
const char * getString(const char *name, const char *defaultValue="", bool convEmptyToNull=false) const
Return string property registered with name 'name'.
 
bool defineString(const char *name, const char *argName, int stringNum, const char *defValue="", bool appendMode=false)
Define double property name 'name' mapped to double in slot 'stringNum' in RooCmdArg with name argNam...
 
bool defineInt(const char *name, const char *argName, int intNum, int defValue=0)
Define integer property name 'name' mapped to integer in slot 'intNum' in RooCmdArg with name argName...
 
int getInt(const char *name, int defaultValue=0) const
Return integer property registered with name 'name'.
 
Auxiliary class that represents the error of a RooRealVar as a separate object.
 
static constexpr double infinity()
Return internal infinity representation.
 
static constexpr int isInfinite(double x)
Return true if x is infinite by RooNumber internal specification.
 
Implementation of RooAbsBinning that constructs a binning with a range definition that depends on ext...
 
Binning/range definition that only defines a range but no binning.
 
Implementation of RooSharedProperties that stores the properties of a RooRealVar that are shared amon...
 
Variable that can be changed from the outside.
 
void fillTreeBranch(TTree &t) override
Overload RooAbsReal::fillTreeBranch to also fill tree branches with (asymmetric) errors if requested.
 
static void printScientific(bool flag=false)
If true, contents of RooRealVars will be printed in scientific notation.
 
void removeMin(const char *name=nullptr)
Remove lower range limit for binning with given name. Empty name means default range.
 
void setVal(double value) override
Set value of variable to 'value'.
 
double _error
Symmetric error associated with current value.
 
void removeRange(const char *name=nullptr)
Remove range limits for binning with given name. Empty name means default range.
 
static void printSigDigits(Int_t ndig=5)
Set number of digits to show when printing RooRealVars.
 
void setError(double value)
 
std::unordered_map< std::string, std::unique_ptr< RooAbsBinning > > _altNonSharedBinning
! Non-shareable alternative binnings
 
static RooRealVarSharedProperties & _nullProp()
Null property.
 
void copyCache(const RooAbsArg *source, bool valueOnly=false, bool setValDirty=true) override
Copy the cached value of another RooAbsArg to our cache Warning: This function copies the cached valu...
 
std::map< RooSharedProperties::UUID, std::weak_ptr< RooRealVarSharedProperties > > SharedPropertiesMap
 
std::shared_ptr< RooRealVarSharedProperties > sharedProp() const
Hand out our shared property, create on the fly and register in shared map if necessary.
 
void attachToTree(TTree &t, Int_t bufSize=32000) override
Overload RooAbsReal::attachToTree to also attach branches for errors and/or asymmetric errors attribu...
 
void attachToVStore(RooVectorDataStore &vstore) override
Overload RooAbsReal::attachToTree to also attach branches for errors and/or asymmetric errors attribu...
 
void printValue(std::ostream &os) const override
Print value of variable.
 
void printExtras(std::ostream &os) const override
Print extras of variable: (asymmetric) error, constant flag, limits and binning.
 
std::unique_ptr< RooAbsBinning > _binning
 
void setMin(const char *name, double value)
Set minimum of name range to given value.
 
bool hasBinning(const char *name) const override
Returns true if variable has a binning named 'name'.
 
double _asymErrLo
Low side of asymmetric error associated with current value.
 
void installSharedProp(std::shared_ptr< RooRealVarSharedProperties > &&prop)
Install the shared property into the member _sharedProp.
 
static bool _printScientific
 
std::shared_ptr< RooRealVarSharedProperties > _sharedProp
! Shared binnings associated with this instance
 
void setAsymError(double lo, double hi)
 
static bool & isSilentClippingEnabled()
 
double getValV(const RooArgSet *nset=nullptr) const override
Return value of variable.
 
std::list< std::string > getBinningNames() const override
Get a list of all binning names.
 
void printMultiline(std::ostream &os, Int_t contents, bool verbose=false, TString indent="") const override
Detailed printing interface.
 
std::size_t _valueResetCounter
! How many times the value of this variable was reset
 
~RooRealVar() override
Destructor.
 
double _asymErrHi
High side of asymmetric error associated with current value.
 
static Int_t _printSigDigits
 
const RooAbsBinning & getBinning(const char *name=nullptr, bool verbose=true, bool createOnTheFly=false) const override
Return binning definition with name.
 
static void cleanup()
Explicitly deletes the shared properties list on exit to avoid problems with the initialization order...
 
Int_t defaultPrintContents(Option_t *opt) const override
Mapping of Print() option string to RooPrintable contents specifications.
 
void setBinning(const RooAbsBinning &binning, const char *name=nullptr)
Add given binning under name 'name' with this variable.
 
bool hasError(bool allowZero=true) const
 
static SharedPropertiesMap * sharedPropList()
List of properties shared among clones of a variable.
 
void deleteSharedProperties()
Stop sharing properties.
 
static void enableSilentClipping(bool flag=true)
Enable or disable the silent clipping behavior of RooRealVar::setVal() that was the default in ROOT v...
 
void writeToStream(std::ostream &os, bool compact) const override
Write object contents to given stream.
 
bool hasAsymError(bool allowZero=true) const
 
RooErrorVar * errorVar() const
Return a RooAbsRealLValue representing the error associated with this variable.
 
bool readFromStream(std::istream &is, bool compact, bool verbose=false) override
Read object contents from given stream.
 
double getAsymErrorHi() const
 
void setRange(const char *name, double min, double max)
Set a fit or plotting range.
 
void setBins(Int_t nBins, const char *name=nullptr)
Create a uniform binning under name 'name' for this variable.
 
RooRealVar()
Default constructor.
 
void removeMax(const char *name=nullptr)
Remove upper range limit for binning with given name. Empty name means default range.
 
void setMax(const char *name, double value)
Set maximum of name range to given value.
 
std::string format(const RooCmdArg &formatArg) const
Format contents of RooRealVar for pretty printing on RooPlot parameter boxes.
 
TClass * IsA() const override
 
double getAsymErrorLo() const
 
bool expectToken(const TString &expected, bool zapOnError=false)
Read the next token and return true if it is identical to the given 'expected' token.
 
bool convertToDouble(const TString &token, double &value)
Convert given string to a double. Throws exceptions if the conversion fails.
 
bool atEOL()
If true, parser is at end of line in stream.
 
bool readDouble(double &value, bool zapOnError=false)
Read the next token and convert it to a double.
 
TString readToken()
Read one token separated by any of the know punctuation characters This function recognizes and handl...
 
bool readInteger(Int_t &value, bool zapOnError=false)
Read a token and convert it to an Int_t.
 
void zapToEnd(bool inclContLines=false)
Eat all characters up to and including then end of the current line.
 
Uses std::vector to store data columns.
 
A TTree is a list of TBranches.
 
Buffer base class used for serializing objects.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
Mother of all ROOT objects.
 
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
 
TString & Prepend(const char *cs)
 
TString & Append(const char *cs)
 
A TTree represents a columnar dataset.
 
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr, TClass *realClass, EDataType datatype, bool isptr, bool suppressMissingBranchError)
 
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
 
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.