113 _value= 0.5*(minValue + maxValue);
210 if (clipValue !=
_value) {
225 inRange(value,rangeName,&clipValue) ;
227 if (clipValue !=
_value) {
244 title.Append(
" Error") ;
301 if (!createOnTheFly) {
308 coutI(
Eval) <<
"RooRealVar::getBinning(" <<
GetName() <<
") new range named '" 309 << name <<
"' created with default bounds" << endl ;
322 std::list<std::string> binningNames;
324 binningNames.push_back(
"");
329 while((binning = iter.
next())) {
331 binningNames.push_back(
string(name));
335 while((binning = iter.
next())) {
337 binningNames.push_back(
string(name));
366 altBinning->
Remove(oldBinning) ;
375 altBinning->
Add(newBinning) ;
396 <<
"): Proposed new fit min. larger than max., setting min. to max." << endl ;
426 <<
"): Proposed new fit max. smaller than min., setting max. to min." << endl ;
459 <<
"): Proposed new fit max. smaller than min., setting max. to min." << endl ;
460 binning.setRange(min,min) ;
462 binning.setRange(min,max) ;
467 <<
") new range named '" << name <<
"' created with bounds [" 468 << min <<
"," << max <<
"]" << endl ;
493 TString token,errorPrefix(
"RooRealVar::readFromStream(") ;
494 errorPrefix.Append(
GetName()) ;
495 errorPrefix.Append(
")") ;
520 if (!reprocessToken) {
525 if (!token.CompareTo(
"+")) {
535 if (tmp.CompareTo(
"(")) {
544 Double_t asymErrLo=0., asymErrHi=0.;
552 }
else if (!token.CompareTo(
"C")) {
556 haveConstant =
kTRUE ;
558 }
else if (!token.CompareTo(
"P")) {
572 <<
") WARNING: plot range deprecated, removed P(...) token" << endl ;
574 }
else if (!token.CompareTo(
"F")) {
589 <<
") WARNING: F(lo-hi:bins) token deprecated, use L(lo-hi) B(bins)" << endl ;
592 }
else if (!token.CompareTo(
"L")) {
595 Double_t fitMin = 0.0, fitMax = 0.0;
605 }
else if (!token.CompareTo(
"B")) {
621 if (haveValue)
setVal(value) ;
639 char fmtVal[16], fmtErr[16] ;
642 if (
_value>=0) os <<
" " ;
655 os << tmp->Data() <<
" " ;
681 os <<
"B(" <<
getBins() <<
") " ;
686 os <<
"// [" <<
getUnit() <<
"]" ;
735 os <<
"B(" <<
getBins() <<
") " ;
740 os <<
"// [" <<
getUnit() <<
"]" ;
753 if (opt && TString(opt)==
"I") {
766 os << indent <<
"--- RooRealVar ---" << endl;
768 if(!unit.IsNull()) unit.Prepend(
' ');
769 os << indent <<
" Error = " <<
getError() << unit << endl;
787 pc.
defineInt(
"autop",
"FormatArgs::AutoPrecision",0,2) ;
788 pc.
defineInt(
"fixedp",
"FormatArgs::FixedPrecision",0,2) ;
789 pc.
defineInt(
"tlatex",
"FormatArgs::TLatexStyle",0,0) ;
790 pc.
defineInt(
"latex",
"FormatArgs::LatexStyle",0,0) ;
791 pc.
defineInt(
"latext",
"FormatArgs::LatexTableStyle",0,0) ;
792 pc.
defineInt(
"verbn",
"FormatArgs::VerbatimName",0,0) ;
793 pc.
defineMutex(
"FormatArgs::TLatexStyle",
"FormatArgs::LatexStyle",
"FormatArgs::LatexTableStyle") ;
794 pc.
defineMutex(
"FormatArgs::AutoPrecision",
"FormatArgs::FixedPrecision") ;
806 if (pc.
getInt(
"tlatex")) {
808 }
else if (pc.
getInt(
"latex")) {
810 }
else if (pc.
getInt(
"latext")) {
814 if (pc.
getInt(
"verbn")) options +=
"V" ;
815 Int_t sigDigits = 2 ;
818 sigDigits = pc.
getInt(
"autop") ;
819 }
else if (pc.
hasProcessed(
"FormatArgs::FixedPrecision")) {
821 sigDigits = pc.
getInt(
"fixedp") ;
824 return format(sigDigits,options) ;
854 TString opts(options);
856 Bool_t showName= opts.Contains(
"n");
857 Bool_t hideValue= opts.Contains(
"h");
858 Bool_t showError= opts.Contains(
"e");
859 Bool_t showUnit= opts.Contains(
"u");
860 Bool_t tlatexMode= opts.Contains(
"l");
861 Bool_t latexMode= opts.Contains(
"x");
862 Bool_t latexTableMode = opts.Contains(
"y") ;
863 Bool_t latexVerbatimName = opts.Contains(
"v") ;
865 if (latexTableMode) latexMode =
kTRUE ;
866 Bool_t asymError= opts.Contains(
"a") ;
869 if(sigDigits < 1) sigDigits= 1;
870 Int_t leadingDigitVal = 0;
871 if (useErrorForPrecision) {
876 if (
_value==0) leadingDigitVal=0 ;
879 Int_t whereVal= leadingDigitVal - sigDigits + 1;
880 Int_t whereErr= leadingDigitErr - sigDigits + 1;
881 char fmtVal[16], fmtErr[16];
883 if (
_value<0) whereVal -= 1 ;
884 snprintf(fmtVal,16,
"%%.%df", whereVal < 0 ? -whereVal : 0);
885 snprintf(fmtErr,16,
"%%.%df", whereErr < 0 ? -whereErr : 0);
886 TString *
text=
new TString();
887 if(latexMode) text->Append(
"$");
890 if (latexTableMode && latexVerbatimName) {
891 text->Append(
"\\verb+") ;
894 if (latexVerbatimName) text->Append(
"+") ;
896 if (!latexTableMode) {
899 text->Append(
" $ & $ ");
904 if (
_value>=0) text->Append(
" ") ;
911 text->Append(buffer);
917 text->Append(
" #pm ");
920 text->Append(
"\\pm ");
923 text->Append(
" +/- ");
926 text->Append(buffer);
931 text->Append(
" #pm ");
934 text->Append(buffer);
935 text->Append(
"}^{+") ;
937 text->Append(buffer);
941 text->Append(
"\\pm ");
944 text->Append(buffer);
945 text->Append(
"}^{+") ;
947 text->Append(buffer);
951 text->Append(
" +/- ");
954 text->Append(buffer);
957 text->Append(buffer);
964 if(!
_unit.IsNull() && showUnit) {
968 if(latexMode) text->Append(
"$");
1035 errName.Append(
"_err") ;
1036 TBranch* branch = t.GetBranch(errName) ;
1038 t.SetBranchAddress(errName,&
_error) ;
1040 TString format2(errName);
1041 format2.Append(
"/D");
1042 t.Branch(errName, &
_error, (
const Text_t*)format2, bufSize);
1049 loName.Append(
"_aerr_lo") ;
1050 TBranch* lobranch = t.GetBranch(loName) ;
1054 TString format2(loName);
1055 format2.Append(
"/D");
1060 hiName.Append(
"_aerr_hi") ;
1061 TBranch* hibranch = t.GetBranch(hiName) ;
1065 TString format2(hiName);
1066 format2.Append(
"/D");
1082 TBranch* valBranch = t.GetBranch(cleanName) ;
1084 coutE(
Eval) <<
"RooAbsReal::fillTreeBranch(" <<
GetName() <<
") ERROR: not attached to tree" << endl ;
1091 errName.Append(
"_err") ;
1092 TBranch* errBranch = t.GetBranch(errName) ;
1093 if (errBranch) errBranch->
Fill() ;
1098 loName.Append(
"_aerr_lo") ;
1099 TBranch* loBranch = t.GetBranch(loName) ;
1100 if (loBranch) loBranch->
Fill() ;
1103 hiName.Append(
"_aerr_hi") ;
1104 TBranch* hiBranch = t.GetBranch(hiName) ;
1105 if (hiBranch) hiBranch->
Fill() ;
1121 if (valueOnly) return ;
1138 void RooRealVar::Streamer(
TBuffer &R__b)
1144 RooAbsRealLValue::Streamer(R__b);
1146 coutI(
Eval) <<
"RooRealVar::Streamer(" <<
GetName() <<
") converting version 1 data format" << endl ;
1166 tmpSharedProp->Streamer(R__b) ;
1170 delete tmpSharedProp ;
1180 RooAbsRealLValue::Streamer(R__b);
virtual Double_t getMin(const char *name=0) const
virtual const char * GetName() const
Returns name of object.
static RooRealVarSharedProperties _nullProp
virtual Bool_t isShareable() const
Bool_t hasBinning(const char *name) const
Returns true if variable has a binning with 'name'.
RooRealVar()
Default constructor.
TObject * FindObject(const char *name) const
Return pointer to obejct with given name.
Bool_t hasMin(const char *name=0) const
virtual void setMin(Double_t xlo)
virtual Double_t getMax(const char *name=0) const
const Text_t * getUnit() const
virtual void attachToTree(TTree &t, Int_t bufSize=32000)
Overload RooAbsReal::attachToTree to also attach branches for errors and/or asymmetric errors attribu...
virtual Bool_t Remove(TObject *arg)
Remove object from collection.
const char * getString(const char *name, const char *defaultValue="", Bool_t convEmptyToNull=kFALSE)
Return string property registered with name 'name'.
Double_t getVal(const RooArgSet *set=0) const
virtual void SetName(const char *name)
Set the name of the TNamed.
const RooAbsBinning & getBinning(const char *name=0, Bool_t verbose=kTRUE, Bool_t createOnTheFly=kFALSE) const
Return binning definition with name.
virtual void removeHook(RooAbsRealLValue &) const
void setBuffer(RooAbsReal *real, Double_t *newBuf)
Buffer base class used for serializing objects.
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Structure printing.
Bool_t hasMax(const char *name=0) const
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
RooFIter fwdIterator() const
virtual void printExtras(std::ostream &os) const
Print extras of variable: (asymmetric) error, constant flag, limits and binning.
static Int_t isInfinite(Double_t x)
Return true if x is infinite by RooNumBer internal specification.
void setAsymErrorBuffer(Double_t *newBufL, Double_t *newBufH)
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE)=0
virtual Int_t defaultPrintContents(Option_t *opt) const
Mapping of Print() option string to RooPrintable contents specifications.
virtual Double_t getValV(const RooArgSet *nset=0) const
Return value of variable.
virtual RooAbsBinning * clone(const char *name=0) const =0
virtual void copyCache(const RooAbsArg *source, Bool_t valueOnly=kFALSE, Bool_t setValDirty=kTRUE)
Copy the cached value of another RooAbsArg to our cache.
Iterator abstract base class.
void setMax(const char *name, Double_t value)
Set maximum of name range to given value.
void setValueDirty() const
static Int_t _printSigDigits
Bool_t process(const RooCmdArg &arg)
Process given RooCmdArg.
void setBinning(const RooAbsBinning &binning, const char *name=0)
Add given binning under name 'name' with this variable.
static void printScientific(Bool_t flag=kFALSE)
If true, contents of RooRealVars will be printed in scientific notation.
static RooSharedPropertiesList _sharedPropList
Bool_t hasAsymError(Bool_t allowZero=kTRUE) const
void removeRange(const char *name=0)
RooRealVarSharedProperties * _sharedProp
RooVectorDataStore is the abstract base class for data collection that use a TTree as internal storag...
void deleteSharedProperties()
No longer used?
void setProcessRecArgs(Bool_t flag, Bool_t prefix=kTRUE)
double pow(double, double)
Bool_t defineString(const char *name, const char *argName, Int_t stringNum, const char *defValue="", Bool_t appendMode=kFALSE)
Define Double_t property name 'name' mapped to Double_t in slot 'stringNum' in RooCmdArg with name ar...
RooErrorVar is an auxilary class that represents the error of a RooRealVar as a seperate object...
void setAsymError(Double_t lo, Double_t hi)
void setBins(Int_t nBins, const char *name=0)
Bool_t hasError(Bool_t allowZero=kTRUE) const
RooSharedProperties * registerProperties(RooSharedProperties *, Bool_t canDeleteIncoming=kTRUE)
Register property into list and take ownership.
Bool_t defineInt(const char *name, const char *argName, Int_t intNum, Int_t defValue=0)
Define integer property name 'name' mapped to integer in slot 'intNum' in RooCmdArg with name argName...
Bool_t hasError(RooAbsReal *real)
RooRealVar represents a fundamental (non-derived) real valued object.
Bool_t convertToDouble(const TString &token, Double_t &value)
Convert given string to a double. Return true if the conversion fails.
virtual void setVal(Double_t value)
Set value of variable to 'value'.
Bool_t getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
virtual void Add(TObject *arg)
void unregisterProperties(RooSharedProperties *)
Decrease reference count of property.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
Bool_t hasAsymError(RooAbsReal *real)
TString cleanBranchName() const
Construct a mangled name from the actual name that is free of any math symbols that might be interpre...
void defineMutex(const char *argName1, const char *argName2)
Define arguments named argName1 and argName2 mutually exclusive.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
Int_t getInt(const char *name, Int_t defaultValue=0)
Return integer property registered with name 'name'.
virtual Bool_t isValidReal(Double_t value, Bool_t printError=kFALSE) const
Check if given value is valid.
const char * getPlotLabel() const
Get the label associated with the variable.
Double_t getAsymErrorHi() const
void setConstant(Bool_t value=kTRUE)
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Detailed printing interface.
Class RooRealVarSharedProperties is an implementation of RooSharedProperties that stores the properti...
void setMin(const char *name, Double_t value)
Set minimum of name range to given value.
TString readToken()
Read one token separated by any of the know punctuation characters This function recognizes and handl...
Bool_t ok(Bool_t verbose) const
Return true of parsing was successful.
char * Form(const char *fmt,...)
TString * format(const RooCmdArg &formatArg) const
Format contents of RooRealVar for pretty printing on RooPlot parameter boxes.
void zapToEnd(Bool_t inclContLines=kFALSE)
Eat all characters up to and including then end of the current line.
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion=kFALSE)=0
Class RooCmdConfig is a configurable parser for RooCmdArg named arguments.
Bool_t readDouble(Double_t &value, Bool_t zapOnError=kFALSE)
Read the next token and convert it to a Double_t.
Class RooParamBinning is an implementation of RooAbsBinning that constructs a binning with a range de...
virtual void attachToTree(TTree &t, Int_t bufSize=32000)
Attach object to a branch of given TTree.
Bool_t expectToken(const TString &expected, Bool_t zapOnError=kFALSE)
Read the next token and return kTRUE if it is identical to the given 'expected' token.
static void printSigDigits(Int_t ndig=5)
Set number of digits to show when printing RooRealVars.
void setErrorBuffer(Double_t *newBuf)
virtual void insertHook(RooAbsRealLValue &) const
std::list< std::string > getBinningNames() const
Get a list of all binning names.
virtual void fillTreeBranch(TTree &t)
Overload RooAbsReal::fillTreeBranch to also fill tree branches with (asymmetric) errors if requested...
static Bool_t _printScientific
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
RooAbsBinning is the abstract base class for RooRealVar binning definitions This class defines the in...
void Delete(Option_t *o=0)
Remove all elements in collection and delete all elements NB: Collection does not own elements...
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Bool_t isFullReal(RooAbsReal *real)
virtual void attachToVStore(RooVectorDataStore &vstore)
RooRangeBinning is binning/range definition that only defines a range but no binning.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Write object contents to given stream.
RooRealVarSharedProperties * sharedProp() const
Class RooSharedPropertiesList maintains the properties of RooRealVars and RooCategories that are clon...
virtual Bool_t inRange(const char *name) const
Check if current value is inside range with given name.
void setRange(const char *name, Double_t min, Double_t max)
Set range named 'name to [min,max].
Bool_t hasProcessed(const char *cmdName) const
Return true if RooCmdArg with name 'cmdName' has been processed.
RooErrorVar * errorVar() const
Return a RooAbsRealLValue representing the error associated with this variable.
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
void setShapeDirty() const
Bool_t readInteger(Int_t &value, Bool_t zapOnError=kFALSE)
Read a token and convert it to an Int_t.
TIterator * MakeIterator(Bool_t dir=kTRUE) const
Return an iterator over this list.
RealFullVector * addRealFull(RooAbsReal *real)
Double_t chopAt(Double_t what, Int_t where) const
Utility to calculate number of decimals to show based on magnitude of error.
virtual TObject * Next()=0
RooLinkedList _altNonSharedBinning
virtual ~RooRealVar()
Destructor cout << "RooRealVar::dtor(" << this << ")" << endl ;.
virtual void copyCache(const RooAbsArg *source, Bool_t valueOnly=kFALSE, Bool_t setValDirty=kTRUE)
Copy the cached value of another RooAbsArg to our cache Warning: This function copies the cached valu...
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Read object contents from given stream.
RooLinkedList _altBinning
virtual void attachToVStore(RooVectorDataStore &vstore)
Overload RooAbsReal::attachToTree to also attach branches for errors and/or asymmetric errors attribu...
static constexpr double pc
virtual Int_t getBins(const char *name=0) const
virtual void printValue(std::ostream &os) const
Print value of variable.
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
A TTree is a list of TBranches.
Double_t getError() const
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Bool_t atEOL()
If true, parser is at end of line in stream.
Double_t getAsymErrorLo() const
virtual void setMax(Double_t xhi)
Bool_t isConstant() const
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual const char * GetTitle() const
Returns title of object.
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
void setError(Double_t value)