50using std::string, std::vector, std::list;
 
   71    arg->attachToVStore(*
this) ;
 
 
  110      ret.remove(*
wgt,
true,
true) ;
 
 
  139  _varsww(
other._varsww),
 
  140  _wgtVar(
other._wgtVar),
 
  141  _sumWeight(
other._sumWeight),
 
  142  _sumWeightCarry(
other._sumWeightCarry),
 
  143  _extWgtArray(
other._extWgtArray),
 
  144  _extWgtErrLoArray(
other._extWgtErrLoArray),
 
  145  _extWgtErrHiArray(
other._extWgtErrHiArray),
 
  146  _extSumW2Array(
other._extSumW2Array),
 
  147  _currentWeightIndex(
other._currentWeightIndex)
 
 
  172  _wgtVar(weightVar(vars,
other._wgtVar?
other._wgtVar->GetName():nullptr))
 
  174  for (
const auto arg : 
_varsww) {
 
  175    arg->attachToVStore(*
this) ;
 
  182  for (
Int_t i=0 ; i<
other.numEntries() ; i++) {
 
 
  198  _wgtVar(
other._wgtVar?weightVar(vars,
other._wgtVar->GetName()):nullptr),
 
  199  _sumWeight(
other._sumWeight),
 
  200  _sumWeightCarry(
other._sumWeightCarry),
 
  201  _extWgtArray(
other._extWgtArray),
 
  202  _extWgtErrLoArray(
other._extWgtErrLoArray),
 
  203  _extWgtErrHiArray(
other._extWgtErrHiArray),
 
  204  _extSumW2Array(
other._extSumW2Array),
 
  205  _currentWeightIndex(
other._currentWeightIndex)
 
  213      real->attachToVStore(*
this) ;
 
  224      real->attachToVStore(*
this) ;
 
  228  vector<CatVector*>::const_iterator 
citer = 
other._catStoreList.
begin() ;
 
 
  269  for (
const auto arg : 
_varsww) {
 
  270    arg->attachToVStore(*
this) ;
 
  276  std::unique_ptr<RooFormulaVar> cloneVar;
 
  279    cloneVar->attachDataStore(
tds) ;
 
 
  351  if (
index < 0 || 
static_cast<std::size_t
>(
index) >= 
size()) 
return nullptr;
 
  367    for (
auto var : 
_vars) {
 
  368      var->setValueDirty(); 
 
 
  431      throw string(
Form(
"RooDataHist::weightError(%s) error type Auto not allowed here",
GetName())) ;
 
  435      throw string(
Form(
"RooDataHist::weightError(%s) error type Expected not allowed here",
GetName())) ;
 
 
  509  const auto numEntr = 
static_cast<std::size_t
>(
ads->numEntries());
 
  530  std::vector<std::string> ranges;
 
  536  for(
auto i=
nStart; i < nevent ; ++i) {
 
  567        allValid &= std::any_of(ranges.begin(), ranges.end(), [arg](
const std::string& 
range){
 
  568          return arg->inRange(range.c_str());});
 
 
  623  auto valHolder = std::unique_ptr<RooAbsArg>{
newVar.createFundamental()}.release();
 
  626    coutE(InputArguments) << 
GetName() << 
"::addColumn: holder argument is not fundamental: \"" 
  627    << 
valHolder->GetName() << 
"\"" << std::endl;
 
  655  for (std::size_t i=0; i < 
numEvt; i++) {
 
  661    if (
rv) 
rv->write(i) ;
 
  662    if (
cv) 
cv->write(i) ;
 
 
  680  const auto nevt = 
dstoreList.front()->numEntries();
 
  682  for (
int i=0 ; i<nevt ; i++) {
 
 
  721  for (
int i=0 ; i<nevt ; i++) {
 
 
  774    if (arg->getAttribute(
"ConstantExpression") && !arg->getAttribute(
"NOCacheAndTrack")) {
 
  782      if (arg->dependsOn(
_vars) && !arg->getAttribute(
"NOCacheAndTrack")) {
 
  793    if (left == right) return false;
 
  794    return right->dependsOn(*left);
 
  809  std::vector<std::unique_ptr<RooArgSet>> 
vlist;
 
  831  std::vector<std::unique_ptr<RooArgSet>> 
argObsList ;
 
  837    if(nset) 
argObsList.emplace_back(arg->getObservables(*nset));
 
  838    else argObsList.emplace_back(arg->getVariables());
 
  842    const char* 
catNset = arg->getStringAttribute(
"CATNormSet") ;
 
  850    const char* 
catCset = arg->getStringAttribute(
"CATCondSet") ;
 
  870  for (std::size_t i=0; i < 
numEvt; i++) {
 
  873      for (
unsigned int j = 0; 
j < 
cloneSet.size(); ++
j) {
 
  891    if (!arg->getAttribute(
"ConstantExpression") && 
dynamic_cast<RooAbsReal*
>(arg)) {
 
  894      arg->getParameters(&
_vars, deps);
 
  895      rv->setDependents(deps) ;
 
  901      coutI(Optimization) << 
"RooVectorDataStore::cacheArg() element " << arg->GetName() << 
" has change tracking enabled on parameters " << deps << std::endl ;
 
 
  925  std::vector<RooVectorDataStore::RealVector *> 
tv;
 
  948    ownedNset = std::make_unique<RooArgSet>();
 
 
 1043      extArg->attachToVStore(*
this) ;
 
 
 1055    arg->attachToVStore(*
this);
 
 
 1065  std::cout << 
"RooVectorDataStor::dump()" << std::endl ;
 
 1067  std::cout << 
"_varsww = " << std::endl ; 
_varsww.
Print(
"v") ;
 
 1068  std::cout << 
"realVector list is" << std::endl ;
 
 1071    std::cout << 
"RealVector " << 
elm << 
" _nativeReal = " << 
elm->_nativeReal << 
" = " << 
elm->_nativeReal->GetName() << 
" bufptr = " << 
elm->_buf  << std::endl ;
 
 1072    std::cout << 
" values : " ;
 
 1075      std::cout << 
elm->_vec[i] << 
" " ;
 
 1077    std::cout << std::endl ;
 
 1081    std::cout << 
"RealFullVector " << 
elm << 
" _nativeReal = " << 
elm->_nativeReal << 
" = " << 
elm->_nativeReal->GetName()
 
 1082    << 
" bufptr = " << 
elm->_buf  << 
" errbufptr = " << 
elm->bufE() << std::endl ;
 
 1084    std::cout << 
" values : " ;
 
 1087      std::cout << 
elm->_vec[i] << 
" " ;
 
 1089    std::cout << std::endl ;
 
 1091      std::cout << 
" errors : " ;
 
 1093   std::cout << 
elm->dataE()[i] << 
" " ;
 
 1095      std::cout << std::endl ;
 
 
 1107  if (
R__b.IsReading()) {
 
 
 1138    auto span = 
realVec->getRange(first, first + 
len);
 
 1142      coutE(DataHandling) << 
"A batch of data for '" << 
realVec->_nativeReal->GetName()
 
 1143          << 
"' was requested from " << first << 
" to " << first+
len 
 1144          << 
", but only the events [" << first << 
", " << first + 
size << 
") are available." << std::endl;
 
 
 1177    auto span = 
catVec->getRange(first, first + 
len);
 
 1181      coutE(DataHandling) << 
"A batch of data for '" << 
catVec->_cat->GetName()
 
 1182          << 
"' was requested from " << first << 
" to " << first+
len 
 1183          << 
", but only the events [" << first << 
", " << first + 
size << 
") are available." << std::endl;
 
 
 1213      return (*storageIter)->getRange(first, first + 
len);
 
 1217      return (*fstorageIter)->getRange(first, first + 
len);
 
 1219    throw std::logic_error(
"RooVectorDataStore::getWeightBatch(): Could not retrieve data for _wgtVar.");
 
 
 1229    if (std::string(
catVec->bufArg()->GetName())==cat->
GetName()) {
 
 
 1245    if (
realVec->bufArg()->namePtr()==
real->namePtr()) {
 
 1252    if (
fullVec->bufArg()->namePtr()==
real->namePtr()) {
 
 
 1269    if (std::string(
fullVec->bufArg()->GetName())==
real->GetName()) {
 
 
 1281    if (std::string(
fullVec->bufArg()->GetName())==
real->GetName()) {
 
 
 1293    if (std::string(
fullVec->bufArg()->GetName())==
real->GetName()) {
 
 
 1305    if (std::string(
fullVec->bufArg()->GetName())==
real->GetName()) {
 
 1312    if (std::string(
realVec->bufArg()->GetName())==
real->GetName()) {
 
 
 1336  double const* 
arr = 
nullptr;
 
 1351  if(
arr == 
nullptr) {
 
 
 1368    out.reals.emplace_back(
real->_nativeReal->GetName(), 
real->_vec.data());
 
 1371    std::string 
name = 
realf->_nativeReal->GetName();
 
 1372    out.reals.emplace_back(
name, 
realf->_vec.data());
 
 1373    if(
realf->bufE()) out.reals.emplace_back(
name + 
"Err", 
realf->dataE().data());
 
 1374    if(
realf->bufEL()) out.reals.emplace_back(
name + 
"ErrLo", 
realf->dataEL().data());
 
 1375    if(
realf->bufEH()) out.reals.emplace_back(
name + 
"ErrHi", 
realf->dataEH().data());
 
 1378    out.cats.emplace_back(cat->_cat->GetName(), cat->_vec.data());
 
 
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 result
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
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 UChar_t len
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
static KahanSum< T, N > Accumulate(Iterator begin, Iterator end, T initialValue=T{})
Iterate over a range and return an instance of a KahanSum.
 
const_iterator begin() const
 
const_iterator end() const
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
static void setDirtyInhibit(bool flag)
Control global dirty inhibit mode.
 
bool getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
 
virtual void attachToVStore(RooVectorDataStore &vstore)=0
 
A space to attach TBranches.
 
void attachToVStore(RooVectorDataStore &vstore) override
Attach the category index and label to as branches to the given vector store.
 
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
 
void assign(const RooAbsCollection &other) const
Sets the value, cache and constant attribute of any argument in our set that also appears in the othe...
 
RooAbsArg * find(const char *name) const
Find object with given name in list.
 
void Print(Option_t *options=nullptr) const override
This method must be overridden when a class wants to print itself.
 
Abstract base class for a data collection.
 
virtual void checkInit() const
 
bool _doDirtyProp
Switch do (de)activate dirty state propagation when loading a data point.
 
std::map< RooFit::Detail::DataKey, std::span< const double > > RealSpans
 
std::map< RooFit::Detail::DataKey, std::span< const RooAbsCategory::value_type > > CategorySpans
 
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.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet * snapshot(bool deepCopy=true) const
Use RooAbsCollection::snapshot(), but return as RooArgSet.
 
static const RooHistError & instance()
Return a reference to a singleton object that is created the first time this method is called.
 
Variable that can be changed from the outside.
 
void setVal(double value) override
Set value of variable to 'value'.
 
bool hasError(bool allowZero=true) const
 
bool hasAsymError(bool allowZero=true) const
 
double getAsymErrorHi() const
 
double getAsymErrorLo() const
 
The RooStringView is a wrapper around a C-style string that can also be constructed from a std::strin...
 
TTree-backed data storage.
 
Uses std::vector to store data columns.
 
void resetCache() override
 
void recalculateCache(const RooArgSet *, Int_t firstEvent, Int_t lastEvent, Int_t stepSize, bool skipZeroWeights) override
 
void attachCache(const RooAbsArg *newOwner, const RooArgSet &cachedVars) override
Initialize cache of dataset: attach variables of cache ArgSet to the corresponding TTree branches.
 
std::vector< RealFullVector * > _realfStoreList
 
Int_t numEntries() const override
 
RooAbsArg * addColumn(RooAbsArg &var, bool adjustRange=true) override
Add a new column to the data set which holds the pre-calculated values of 'newVar'.
 
RooVectorDataStore * _cache
! Optimization cache
 
const double * _extWgtErrHiArray
! External weight array - high error
 
std::span< const double > getWeightBatch(std::size_t first, std::size_t len) const override
Return the weights of all events in the range [first, first+len).
 
~RooVectorDataStore() override
Destructor.
 
void resetBuffers() override
 
RooRealVar * weightVar(const RooArgSet &allVars, const char *wgtName)
Utility function for constructors Return pointer to weight variable if it is defined.
 
void cacheArgs(const RooAbsArg *owner, RooArgSet &varSet, const RooArgSet *nset=nullptr, bool skipZeroWeights=true) override
Cache given RooAbsArgs: The tree is given direct write access of the args internal cache the args val...
 
RooRealVar * _wgtVar
Pointer to weight variable (if set)
 
std::vector< RealVector * > _realStoreList
 
CatVector * addCategory(RooAbsCategory *cat)
 
void loadValues(const RooAbsDataStore *tds, const RooFormulaVar *select=nullptr, const char *rangeName=nullptr, std::size_t nStart=0, std::size_t nStop=std::numeric_limits< std::size_t >::max()) override
 
const RooArgSet * get(Int_t index) const override
Load the n-th data point (n='index') into the variables of this dataset, and return a pointer to the ...
 
RealFullVector * addRealFull(RooAbsReal *real)
 
double weight() const override
Return the weight of the last-retrieved data point.
 
RooAbsData::RealSpans getBatches(std::size_t first, std::size_t len) const override
Return batches of the data columns for the requested events.
 
ULong64_t _currentWeightIndex
 
bool isFullReal(RooAbsReal *real)
 
Int_t fill() override
Interface function to TTree::Fill.
 
const double * _extWgtErrLoArray
! External weight array - low error
 
bool _forcedUpdate
! Request for forced cache update
 
void append(RooAbsDataStore &other) override
 
bool hasError(RooAbsReal *real)
 
std::vector< CatVector * > _catStoreList
 
void setArgStatus(const RooArgSet &set, bool active) override
Disabling of branches is (intentionally) not implemented in vector data stores (as the doesn't result...
 
void setAllBuffersNative()
 
double weightError(RooAbsData::ErrorType etype=RooAbsData::Poisson) const override
Return the error of the current weight.
 
void attachBuffers(const RooArgSet &extObs) override
 
ArraysStruct getArrays() const
Exports all arrays in this RooVectorDataStore into a simple datastructure to be used by RooFit intern...
 
RooAbsData::CategorySpans getCategoryBatches(std::size_t, std::size_t len) const override
 
RooAbsDataStore * merge(const RooArgSet &allvars, std::list< RooAbsDataStore * > dstoreList) override
Merge columns of supplied data set(s) with this data set.
 
void setDirtyProp(bool flag) override
 
RealVector * addReal(RooAbsReal *real)
 
bool hasAsymError(RooAbsReal *real)
 
bool changeObservableName(const char *from, const char *to) override
 
void forceCacheUpdate() override
 
const double * _extSumW2Array
! External sum of weights array
 
void recomputeSumWeight()
Trigger a recomputation of the cached weight sums.
 
std::vector< RealVector * > & realStoreList()
 
std::size_t size() const
Get size of stored dataset.
 
std::unique_ptr< RooAbsDataStore > reduce(RooStringView name, RooStringView title, const RooArgSet &vars, const RooFormulaVar *cutVar, const char *cutRange, std::size_t nStart, std::size_t nStop) override
 
virtual const RooArgSet * get() const
 
const double * _extWgtArray
! External weight array
 
void Streamer(TBuffer &) override
Stream an object of class RooVectorDataStore.
 
RooArgSet varsNoWeight(const RooArgSet &allVars, const char *wgtName)
Utility function for constructors Return RooArgSet that is copy of allVars minus variable matching wg...
 
RooAbsArg * _cacheOwner
! Cache owner
 
Buffer base class used for serializing objects.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
const char * GetName() const override
Returns name of object.
 
std::vector< std::string > Split(std::string_view str, std::string_view delims, bool skipEmpty=false)
Splits a string at each character in delims.
 
RooArgSet selectFromArgSet(RooArgSet const &, std::string const &names)
 
Output struct for the RooVectorDataStore::getArrays() helper function.