51 Bool_t RooRealVar::_printScientific(kFALSE) ;
52 Int_t RooRealVar::_printSigDigits(5) ;
53 RooSharedPropertiesList RooRealVar::_sharedPropList ;
54 RooRealVarSharedProperties RooRealVar::_nullProp(
"00000000-0000-0000-0000-000000000000") ;
60 RooRealVar::RooRealVar() : _error(0), _asymErrLo(0), _asymErrHi(0), _binning(0), _sharedProp(0)
62 _binning =
new RooUniformBinning() ;
71 RooRealVar::RooRealVar(
const char *name,
const char *title,
72 Double_t value,
const char *unit) :
73 RooAbsRealLValue(name, title, unit), _error(-1), _asymErrLo(1), _asymErrHi(-1), _sharedProp(0)
76 _binning =
new RooUniformBinning(-1,1,100) ;
88 RooRealVar::RooRealVar(
const char *name,
const char *title,
89 Double_t minValue, Double_t maxValue,
91 RooAbsRealLValue(name, title, unit), _error(-1), _asymErrLo(1), _asymErrHi(-1), _sharedProp(0)
93 _binning =
new RooUniformBinning(minValue,maxValue,100) ;
96 if (RooNumber::isInfinite(minValue)) {
97 if (RooNumber::isInfinite(maxValue)) {
105 if (RooNumber::isInfinite(maxValue)) {
110 _value= 0.5*(minValue + maxValue);
115 setRange(minValue,maxValue) ;
123 RooRealVar::RooRealVar(
const char *name,
const char *title,
124 Double_t value, Double_t minValue, Double_t maxValue,
126 RooAbsRealLValue(name, title, unit), _error(-1), _asymErrLo(1), _asymErrHi(-1), _sharedProp(0)
129 _binning =
new RooUniformBinning(minValue,maxValue,100) ;
130 setRange(minValue,maxValue) ;
133 inRange(value,0,&clipValue) ;
143 RooRealVar::RooRealVar(
const RooRealVar& other,
const char* name) :
144 RooAbsRealLValue(other,name),
145 _error(other._error),
146 _asymErrLo(other._asymErrLo),
147 _asymErrHi(other._asymErrHi)
149 _sharedProp = (RooRealVarSharedProperties*) _sharedPropList.registerProperties(other.sharedProp()) ;
150 if (other._binning) {
151 _binning = other._binning->clone() ;
152 _binning->insertHook(*
this) ;
159 TIterator* iter = other._altNonSharedBinning.MakeIterator() ;
160 while((ab=(RooAbsBinning*)iter->Next())) {
161 RooAbsBinning* abc = ab->clone() ;
163 _altNonSharedBinning.Add(abc) ;
164 abc->insertHook(*
this) ;
173 RooRealVar& RooRealVar::operator=(
const RooRealVar& other) {
174 RooAbsRealLValue::operator=(other);
176 _error = other._error;
177 _asymErrLo = other._asymErrLo;
178 _asymErrHi = other._asymErrHi;
182 if (other._binning) {
183 _binning = other._binning->clone() ;
184 _binning->insertHook(*
this) ;
187 _altNonSharedBinning.Clear();
189 std::unique_ptr<TIterator> iter(other._altNonSharedBinning.MakeIterator());
190 while((ab=(RooAbsBinning*)iter->Next())) {
191 RooAbsBinning* abc = ab->clone() ;
192 _altNonSharedBinning.Add(abc) ;
193 abc->insertHook(*
this) ;
196 _sharedProp = (RooRealVarSharedProperties*) _sharedPropList.registerProperties(other.sharedProp());
206 RooRealVar::~RooRealVar()
209 _altNonSharedBinning.Delete() ;
212 _sharedPropList.unregisterProperties(_sharedProp) ;
222 Double_t RooRealVar::getValV(
const RooArgSet*)
const
235 RooSpan<const double> RooRealVar::getValBatch(std::size_t begin, std::size_t batchSize,
236 const RooArgSet*)
const {
237 const auto batchStatus = _batchData.status(begin, batchSize);
238 if (batchStatus == BatchHelpers::BatchData::kNoBatch) {
242 assert(batchStatus == BatchHelpers::BatchData::kReadyAndConstant);
243 return _batchData.getBatch(begin, batchSize);
252 void RooRealVar::setVal(Double_t value)
255 inRange(value,0,&clipValue) ;
257 if (clipValue != _value) {
269 void RooRealVar::setVal(Double_t value,
const char* rangeName)
272 inRange(value,rangeName,&clipValue) ;
274 if (clipValue != _value) {
287 RooErrorVar* RooRealVar::errorVar()
const
289 TString name(GetName()), title(GetTitle()) ;
291 title.Append(
" Error") ;
293 return new RooErrorVar(name,title,*
this) ;
301 Bool_t RooRealVar::hasBinning(
const char* name)
const
303 return sharedProp()->_altBinning.FindObject(name) ? kTRUE : kFALSE ;
314 const RooAbsBinning& RooRealVar::getBinning(
const char* name, Bool_t verbose, Bool_t createOnTheFly)
const
316 return const_cast<RooRealVar*
>(
this)->getBinning(name, verbose, createOnTheFly) ;
327 RooAbsBinning& RooRealVar::getBinning(
const char* name, Bool_t verbose, Bool_t createOnTheFly)
335 RooAbsBinning* binning = (RooAbsBinning*) _altNonSharedBinning.FindObject(name) ;
341 binning = (RooAbsBinning*) (sharedProp()->_altBinning).FindObject(name) ;
348 if (!createOnTheFly) {
353 binning =
new RooRangeBinning(getMin(),getMax(),name) ;
355 coutI(Eval) <<
"RooRealVar::getBinning(" << GetName() <<
") new range named '"
356 << name <<
"' created with default bounds" << endl ;
358 sharedProp()->_altBinning.Add(binning) ;
367 std::list<std::string> RooRealVar::getBinningNames()
const
369 std::list<std::string> binningNames;
371 binningNames.push_back(
"");
374 RooFIter iter = _altNonSharedBinning.fwdIterator();
375 const RooAbsArg* binning = 0;
376 while((binning = iter.next())) {
377 const char* name = binning->GetName();
378 binningNames.push_back(
string(name));
380 iter = sharedProp()->_altBinning.fwdIterator();
382 while((binning = iter.next())) {
383 const char* name = binning->GetName();
384 binningNames.push_back(
string(name));
393 void RooRealVar::setBinning(
const RooAbsBinning& binning,
const char* name)
397 RooAbsBinning* newBinning = binning.clone() ;
399 _binning->removeHook(*
this) ;
402 newBinning->insertHook(*
this) ;
403 _binning = newBinning ;
406 RooLinkedList* altBinning = binning.isShareable() ? &(sharedProp()->_altBinning) : &_altNonSharedBinning ;
408 RooAbsBinning* newBinning = binning.clone() ;
411 RooAbsBinning* oldBinning = (RooAbsBinning*) altBinning->FindObject(name) ;
413 altBinning->Remove(oldBinning) ;
414 oldBinning->removeHook(*
this) ;
419 newBinning->SetName(name) ;
420 newBinning->SetTitle(name) ;
421 newBinning->insertHook(*
this) ;
422 altBinning->Add(newBinning) ;
435 void RooRealVar::setMin(
const char* name, Double_t value)
438 RooAbsBinning& binning = getBinning(name,kTRUE,kTRUE) ;
441 if (value >= getMax()) {
442 coutW(InputArguments) <<
"RooRealVar::setMin(" << GetName()
443 <<
"): Proposed new fit min. larger than max., setting min. to max." << endl ;
444 binning.setMin(getMax()) ;
446 binning.setMin(value) ;
452 if (!inRange(_value,0,&clipValue)) {
465 void RooRealVar::setMax(
const char* name, Double_t value)
468 RooAbsBinning& binning = getBinning(name,kTRUE,kTRUE) ;
471 if (value < getMin()) {
472 coutW(InputArguments) <<
"RooRealVar::setMax(" << GetName()
473 <<
"): Proposed new fit max. smaller than min., setting max. to min." << endl ;
474 binning.setMax(getMin()) ;
476 binning.setMax(value) ;
482 if (!inRange(_value,0,&clipValue)) {
496 void RooRealVar::setRange(
const char* name, Double_t min, Double_t max)
498 Bool_t exists = name ? (sharedProp()->_altBinning.FindObject(name)?kTRUE:kFALSE) : kTRUE ;
501 RooAbsBinning& binning = getBinning(name,kFALSE,kTRUE) ;
505 coutW(InputArguments) <<
"RooRealVar::setRange(" << GetName()
506 <<
"): Proposed new fit max. smaller than min., setting max. to min." << endl ;
507 binning.setRange(min,min) ;
509 binning.setRange(min,max) ;
513 coutI(Eval) <<
"RooRealVar::setRange(" << GetName()
514 <<
") new range named '" << name <<
"' created with bounds ["
515 << min <<
"," << max <<
"]" << endl ;
527 void RooRealVar::setRange(
const char* name, RooAbsReal& min, RooAbsReal& max)
529 RooParamBinning pb(min,max,100) ;
530 setBinning(pb,name) ;
538 Bool_t RooRealVar::readFromStream(istream& is, Bool_t compact, Bool_t verbose)
540 TString token,errorPrefix(
"RooRealVar::readFromStream(") ;
541 errorPrefix.Append(GetName()) ;
542 errorPrefix.Append(
")") ;
543 RooStreamParser parser(is,errorPrefix) ;
548 if (parser.readDouble(value,verbose))
return kTRUE ;
549 if (isValidReal(value,verbose)) {
558 Bool_t haveValue(kFALSE) ;
559 Bool_t haveConstant(kFALSE) ;
563 Bool_t reprocessToken = kFALSE ;
565 if (parser.atEOL() || parser.atEOF())
break ;
567 if (!reprocessToken) {
568 token=parser.readToken() ;
570 reprocessToken = kFALSE ;
572 if (!token.CompareTo(
"+")) {
575 if (parser.expectToken(
"/",kTRUE) ||
576 parser.expectToken(
"-",kTRUE)) {
581 TString tmp = parser.readToken() ;
582 if (tmp.CompareTo(
"(")) {
586 parser.convertToDouble(tmp,error) ;
591 Double_t asymErrLo=0., asymErrHi=0.;
592 if (parser.readDouble(asymErrLo,kTRUE) ||
593 parser.expectToken(
",",kTRUE) ||
594 parser.readDouble(asymErrHi,kTRUE) ||
595 parser.expectToken(
")",kTRUE))
break ;
596 setAsymError(asymErrLo,asymErrHi) ;
599 }
else if (!token.CompareTo(
"C")) {
603 haveConstant = kTRUE ;
605 }
else if (!token.CompareTo(
"P")) {
608 Double_t plotMin(0), plotMax(0) ;
610 if (parser.expectToken(
"(",kTRUE) ||
611 parser.readDouble(plotMin,kTRUE) ||
612 parser.expectToken(
"-",kTRUE) ||
613 parser.readDouble(plotMax,kTRUE) ||
614 parser.expectToken(
":",kTRUE) ||
615 parser.readInteger(plotBins,kTRUE) ||
616 parser.expectToken(
")",kTRUE))
break ;
618 coutW(Eval) <<
"RooRealVar::readFromStrem(" << GetName()
619 <<
") WARNING: plot range deprecated, removed P(...) token" << endl ;
621 }
else if (!token.CompareTo(
"F")) {
624 Double_t fitMin, fitMax ;
626 if (parser.expectToken(
"(",kTRUE) ||
627 parser.readDouble(fitMin,kTRUE) ||
628 parser.expectToken(
"-",kTRUE) ||
629 parser.readDouble(fitMax,kTRUE) ||
630 parser.expectToken(
":",kTRUE) ||
631 parser.readInteger(fitBins,kTRUE) ||
632 parser.expectToken(
")",kTRUE))
break ;
635 coutW(Eval) <<
"RooRealVar::readFromStream(" << GetName()
636 <<
") WARNING: F(lo-hi:bins) token deprecated, use L(lo-hi) B(bins)" << endl ;
637 if (!haveConstant) setConstant(kFALSE) ;
639 }
else if (!token.CompareTo(
"L")) {
642 Double_t fitMin = 0.0, fitMax = 0.0;
644 if (parser.expectToken(
"(",kTRUE) ||
645 parser.readDouble(fitMin,kTRUE) ||
646 parser.expectToken(
"-",kTRUE) ||
647 parser.readDouble(fitMax,kTRUE) ||
648 parser.expectToken(
")",kTRUE))
break ;
649 setRange(fitMin,fitMax) ;
650 if (!haveConstant) setConstant(kFALSE) ;
652 }
else if (!token.CompareTo(
"B")) {
656 if (parser.expectToken(
"(",kTRUE) ||
657 parser.readInteger(fitBins,kTRUE) ||
658 parser.expectToken(
")",kTRUE))
break ;
663 if (parser.convertToDouble(token,value)) { parser.zapToEnd() ; break ; }
668 if (haveValue) setVal(value) ;
677 void RooRealVar::writeToStream(ostream& os, Bool_t compact)
const
685 if (_printScientific) {
686 char fmtVal[16], fmtErr[16] ;
687 snprintf(fmtVal,16,
"%%.%de",_printSigDigits) ;
688 snprintf(fmtErr,16,
"%%.%de",(_printSigDigits+1)/2) ;
689 if (_value>=0) os <<
" " ;
690 os << Form(fmtVal,_value) ;
692 if (hasAsymError()) {
693 os <<
" +/- (" << Form(fmtErr,getAsymErrorLo())
694 <<
", " << Form(fmtErr,getAsymErrorHi()) <<
")" ;
695 }
else if (hasError()) {
696 os <<
" +/- " << Form(fmtErr,getError()) ;
701 TString* tmp = format(_printSigDigits,
"EFA") ;
702 os << tmp->Data() <<
" " ;
720 os <<
" - " << getMax() ;
727 if (getBins()!=100) {
728 os <<
"B(" << getBins() <<
") " ;
733 os <<
"// [" << getUnit() <<
"]" ;
742 void RooRealVar::printValue(ostream& os)
const
746 if(hasError() && !hasAsymError()) {
747 os <<
" +/- " << getError() ;
748 }
else if (hasAsymError()) {
749 os <<
" +/- (" << getAsymErrorLo() <<
"," << getAsymErrorHi() <<
")" ;
758 void RooRealVar::printExtras(ostream& os)
const
774 os <<
" - " << getMax() ;
781 if (getBins()!=100) {
782 os <<
"B(" << getBins() <<
") " ;
787 os <<
"// [" << getUnit() <<
"]" ;
798 Int_t RooRealVar::defaultPrintContents(Option_t* opt)
const
800 if (opt && TString(opt)==
"I") {
801 return kName|kClassName|kValue ;
803 return kName|kClassName|kValue|kExtras ;
810 void RooRealVar::printMultiline(ostream& os, Int_t contents, Bool_t verbose, TString indent)
const
812 RooAbsRealLValue::printMultiline(os,contents,verbose,indent);
813 os << indent <<
"--- RooRealVar ---" << endl;
815 if(!unit.IsNull()) unit.Prepend(
' ');
816 os << indent <<
" Error = " << getError() << unit << endl;
827 TString* RooRealVar::format(
const RooCmdArg& formatArg)
const
829 RooCmdArg tmp(formatArg) ;
830 tmp.setProcessRecArgs(kTRUE) ;
832 RooCmdConfig pc(Form(
"RooRealVar::format(%s)",GetName())) ;
833 pc.defineString(
"what",
"FormatArgs",0,
"") ;
834 pc.defineInt(
"autop",
"FormatArgs::AutoPrecision",0,2) ;
835 pc.defineInt(
"fixedp",
"FormatArgs::FixedPrecision",0,2) ;
836 pc.defineInt(
"tlatex",
"FormatArgs::TLatexStyle",0,0) ;
837 pc.defineInt(
"latex",
"FormatArgs::LatexStyle",0,0) ;
838 pc.defineInt(
"latext",
"FormatArgs::LatexTableStyle",0,0) ;
839 pc.defineInt(
"verbn",
"FormatArgs::VerbatimName",0,0) ;
840 pc.defineMutex(
"FormatArgs::TLatexStyle",
"FormatArgs::LatexStyle",
"FormatArgs::LatexTableStyle") ;
841 pc.defineMutex(
"FormatArgs::AutoPrecision",
"FormatArgs::FixedPrecision") ;
851 options = pc.getString(
"what") ;
853 if (pc.getInt(
"tlatex")) {
855 }
else if (pc.getInt(
"latex")) {
857 }
else if (pc.getInt(
"latext")) {
861 if (pc.getInt(
"verbn")) options +=
"V" ;
862 Int_t sigDigits = 2 ;
863 if (pc.hasProcessed(
"FormatArgs::AutoPrecision")) {
865 sigDigits = pc.getInt(
"autop") ;
866 }
else if (pc.hasProcessed(
"FormatArgs::FixedPrecision")) {
868 sigDigits = pc.getInt(
"fixedp") ;
871 return format(sigDigits,options) ;
896 TString *RooRealVar::format(Int_t sigDigits,
const char *options)
const
901 TString opts(options);
903 Bool_t showName= opts.Contains(
"n");
904 Bool_t hideValue= opts.Contains(
"h");
905 Bool_t showError= opts.Contains(
"e");
906 Bool_t showUnit= opts.Contains(
"u");
907 Bool_t tlatexMode= opts.Contains(
"l");
908 Bool_t latexMode= opts.Contains(
"x");
909 Bool_t latexTableMode = opts.Contains(
"y") ;
910 Bool_t latexVerbatimName = opts.Contains(
"v") ;
912 if (latexTableMode) latexMode = kTRUE ;
913 Bool_t asymError= opts.Contains(
"a") ;
914 Bool_t useErrorForPrecision= (((showError && hasError(kFALSE) && !isConstant()) || opts.Contains(
"p")) && !opts.Contains(
"f")) ;
916 if(sigDigits < 1) sigDigits= 1;
917 Int_t leadingDigitVal = 0;
918 if (useErrorForPrecision) {
919 leadingDigitVal = (Int_t)floor(log10(fabs(_error+1e-10)));
920 if (_value==0&&_error==0) leadingDigitVal=0 ;
922 leadingDigitVal = (Int_t)floor(log10(fabs(_value+1e-10)));
923 if (_value==0) leadingDigitVal=0 ;
925 Int_t leadingDigitErr= (Int_t)floor(log10(fabs(_error+1e-10)));
926 Int_t whereVal= leadingDigitVal - sigDigits + 1;
927 Int_t whereErr= leadingDigitErr - sigDigits + 1;
928 char fmtVal[16], fmtErr[16];
930 if (_value<0) whereVal -= 1 ;
931 snprintf(fmtVal,16,
"%%.%df", whereVal < 0 ? -whereVal : 0);
932 snprintf(fmtErr,16,
"%%.%df", whereErr < 0 ? -whereErr : 0);
933 TString *text=
new TString();
934 if(latexMode) text->Append(
"$");
937 if (latexTableMode && latexVerbatimName) {
938 text->Append(
"\\verb+") ;
940 text->Append(getPlotLabel());
941 if (latexVerbatimName) text->Append(
"+") ;
943 if (!latexTableMode) {
946 text->Append(
" $ & $ ");
951 if (_value>=0) text->Append(
" ") ;
956 chopAt(_value, whereVal);
957 snprintf(buffer, 256,fmtVal, _value);
958 text->Append(buffer);
962 if(hasError(kFALSE) && showError && !(asymError && hasAsymError(kFALSE))) {
964 text->Append(
" #pm ");
967 text->Append(
"\\pm ");
970 text->Append(
" +/- ");
972 snprintf(buffer, 256,fmtErr, getError());
973 text->Append(buffer);
976 if (asymError && hasAsymError() && showError) {
978 text->Append(
" #pm ");
980 snprintf(buffer, 256,fmtErr, getAsymErrorLo());
981 text->Append(buffer);
982 text->Append(
"}^{+") ;
983 snprintf(buffer, 256,fmtErr, getAsymErrorHi());
984 text->Append(buffer);
988 text->Append(
"\\pm ");
990 snprintf(buffer, 256,fmtErr, getAsymErrorLo());
991 text->Append(buffer);
992 text->Append(
"}^{+") ;
993 snprintf(buffer, 256,fmtErr, getAsymErrorHi());
994 text->Append(buffer);
998 text->Append(
" +/- ");
1000 snprintf(buffer, 256, fmtErr, getAsymErrorLo());
1001 text->Append(buffer);
1002 text->Append(
", ") ;
1003 snprintf(buffer, 256, fmtErr, getAsymErrorHi());
1004 text->Append(buffer);
1011 if(!_unit.IsNull() && showUnit) {
1013 text->Append(_unit);
1015 if(latexMode) text->Append(
"$");
1025 Double_t RooRealVar::chopAt(Double_t what, Int_t where)
const
1027 Double_t scale= pow(10.0,where);
1028 Int_t trunc= (Int_t)floor(what/scale + 0.5);
1029 return (Double_t)trunc*scale;
1039 void RooRealVar::attachToVStore(RooVectorDataStore& vstore)
1043 if (getAttribute(
"StoreError") || getAttribute(
"StoreAsymError") || vstore.isFullReal(
this) ) {
1045 RooVectorDataStore::RealFullVector* rfv = vstore.addRealFull(
this) ;
1046 rfv->setBuffer(
this,&_value);
1048 _batchData.attachForeignStorage(rfv->data());
1051 if (getAttribute(
"StoreError") || vstore.hasError(
this) ) {
1052 rfv->setErrorBuffer(&_error) ;
1056 if (getAttribute(
"StoreAsymError") || vstore.hasAsymError(
this)) {
1057 rfv->setAsymErrorBuffer(&_asymErrLo,&_asymErrHi) ;
1062 RooAbsReal::attachToVStore(vstore) ;
1074 void RooRealVar::attachToTree(TTree& t, Int_t bufSize)
1077 RooAbsReal::attachToTree(t,bufSize) ;
1082 if (getAttribute(
"StoreError")) {
1083 TString errName(GetName()) ;
1084 errName.Append(
"_err") ;
1085 TBranch* branch = t.GetBranch(errName) ;
1087 t.SetBranchAddress(errName,&_error) ;
1089 TString format2(errName);
1090 format2.Append(
"/D");
1091 t.Branch(errName, &_error, (
const Text_t*)format2, bufSize);
1096 if (getAttribute(
"StoreAsymError")) {
1097 TString loName(GetName()) ;
1098 loName.Append(
"_aerr_lo") ;
1099 TBranch* lobranch = t.GetBranch(loName) ;
1101 t.SetBranchAddress(loName,&_asymErrLo) ;
1103 TString format2(loName);
1104 format2.Append(
"/D");
1105 t.Branch(loName, &_asymErrLo, (
const Text_t*)format2, bufSize);
1108 TString hiName(GetName()) ;
1109 hiName.Append(
"_aerr_hi") ;
1110 TBranch* hibranch = t.GetBranch(hiName) ;
1112 t.SetBranchAddress(hiName,&_asymErrHi) ;
1114 TString format2(hiName);
1115 format2.Append(
"/D");
1116 t.Branch(hiName, &_asymErrHi, (
const Text_t*)format2, bufSize);
1127 void RooRealVar::fillTreeBranch(TTree& t)
1130 TString cleanName(cleanBranchName()) ;
1131 TBranch* valBranch = t.GetBranch(cleanName) ;
1133 coutE(Eval) <<
"RooAbsReal::fillTreeBranch(" << GetName() <<
") ERROR: not attached to tree" << endl ;
1138 if (getAttribute(
"StoreError")) {
1139 TString errName(GetName()) ;
1140 errName.Append(
"_err") ;
1141 TBranch* errBranch = t.GetBranch(errName) ;
1142 if (errBranch) errBranch->Fill() ;
1145 if (getAttribute(
"StoreAsymError")) {
1146 TString loName(GetName()) ;
1147 loName.Append(
"_aerr_lo") ;
1148 TBranch* loBranch = t.GetBranch(loName) ;
1149 if (loBranch) loBranch->Fill() ;
1151 TString hiName(GetName()) ;
1152 hiName.Append(
"_aerr_hi") ;
1153 TBranch* hiBranch = t.GetBranch(hiName) ;
1154 if (hiBranch) hiBranch->Fill() ;
1165 void RooRealVar::copyCache(
const RooAbsArg* source, Bool_t valueOnly, Bool_t setValDirty)
1168 RooAbsReal::copyCache(source,valueOnly,setValDirty) ;
1170 if (valueOnly) return ;
1173 RooRealVar* other =
dynamic_cast<RooRealVar*
>(
const_cast<RooAbsArg*
>(source)) ;
1176 _error = other->_error ;
1177 _asymErrLo = other->_asymErrLo ;
1178 _asymErrHi = other->_asymErrHi ;
1187 void RooRealVar::Streamer(TBuffer &R__b)
1190 if (R__b.IsReading()) {
1192 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
if (R__v) { }
1193 RooAbsRealLValue::Streamer(R__b);
1195 coutI(Eval) <<
"RooRealVar::Streamer(" << GetName() <<
") converting version 1 data format" << endl ;
1196 Double_t fitMin, fitMax ;
1201 _binning =
new RooUniformBinning(fitMin,fitMax,fitBins) ;
1210 R__b >> _sharedProp ;
1211 _sharedProp = (RooRealVarSharedProperties*) _sharedPropList.registerProperties(_sharedProp,kFALSE) ;
1214 RooRealVarSharedProperties* tmpSharedProp =
new RooRealVarSharedProperties() ;
1215 tmpSharedProp->Streamer(R__b) ;
1216 if (!(_nullProp==*tmpSharedProp)) {
1217 _sharedProp = (RooRealVarSharedProperties*) _sharedPropList.registerProperties(tmpSharedProp,kFALSE) ;
1219 delete tmpSharedProp ;
1224 R__b.CheckByteCount(R__s, R__c, RooRealVar::IsA());
1228 R__c = R__b.WriteVersion(RooRealVar::IsA(), kTRUE);
1229 RooAbsRealLValue::Streamer(R__b);
1235 _sharedProp->Streamer(R__b) ;
1237 _nullProp.Streamer(R__b) ;
1239 R__b.SetByteCount(R__c, kTRUE);
1249 void RooRealVar::deleteSharedProperties()
1252 _sharedPropList.unregisterProperties(_sharedProp) ;
1261 void RooRealVar::printScientific(Bool_t flag)
1263 _printScientific = flag ;
1270 void RooRealVar::printSigDigits(Int_t ndig)
1272 _printSigDigits = ndig>1?ndig:1 ;