16 #ifndef ROO_ABS_DATA_STORE
17 #define ROO_ABS_DATA_STORE
31 class RooAbsDataStore :
public TNamed,
public RooPrintable {
35 RooAbsDataStore(
const char* name,
const char* title,
const RooArgSet& vars) ;
36 RooAbsDataStore(
const RooAbsDataStore& other,
const char* newname=0) ;
37 RooAbsDataStore(
const RooAbsDataStore& other,
const RooArgSet& vars,
const char* newname=0) ;
38 virtual RooAbsDataStore* clone(
const char* newname=0)
const = 0 ;
39 virtual RooAbsDataStore* clone(
const RooArgSet& vars,
const char* newname=0)
const = 0 ;
40 virtual ~RooAbsDataStore() ;
43 virtual Int_t fill() = 0 ;
46 virtual const RooArgSet*
get(Int_t index)
const = 0 ;
47 virtual const RooArgSet*
get()
const {
return &_vars ; }
48 virtual Double_t weight()
const = 0 ;
50 virtual Double_t weightError(RooAbsData::ErrorType etype=RooAbsData::Poisson)
const = 0 ;
51 virtual void weightError(Double_t& lo, Double_t& hi, RooAbsData::ErrorType etype=RooAbsData::Poisson)
const = 0 ;
53 virtual Double_t weight(Int_t index)
const = 0 ;
54 virtual Bool_t isWeighted()
const = 0 ;
56 virtual std::vector<RooSpan<const double>> getBatch(std::size_t first, std::size_t last)
const = 0;
57 virtual RooSpan<const double> getWeightBatch(std::size_t first, std::size_t last)
const;
60 virtual Bool_t changeObservableName(
const char* from,
const char* to) =0 ;
63 virtual RooAbsArg* addColumn(RooAbsArg& var, Bool_t adjustRange=kTRUE) = 0 ;
64 virtual RooArgSet* addColumns(
const RooArgList& varList) = 0 ;
67 virtual RooAbsDataStore* merge(
const RooArgSet& allvars, std::list<RooAbsDataStore*> dstoreList) = 0 ;
70 virtual void append(RooAbsDataStore& other)= 0 ;
73 virtual Bool_t valid()
const = 0 ;
74 virtual Int_t numEntries()
const = 0 ;
75 virtual Double_t sumEntries()
const {
return 0 ; } ;
76 virtual void reset() = 0 ;
79 virtual void attachBuffers(
const RooArgSet& extObs) = 0 ;
80 virtual void resetBuffers() = 0 ;
82 virtual void setExternalWeightArray(
const Double_t* ,
const Double_t* ,
const Double_t* ,
const Double_t* ) {} ;
85 inline virtual void Print(Option_t *options= 0)
const {
87 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
90 virtual void printName(std::ostream& os)
const ;
91 virtual void printTitle(std::ostream& os)
const ;
92 virtual void printClassName(std::ostream& os)
const ;
93 virtual void printArgs(std::ostream& os)
const ;
94 virtual void printValue(std::ostream& os)
const ;
95 void printMultiline(std::ostream& os, Int_t content, Bool_t verbose, TString indent)
const ;
97 virtual Int_t defaultPrintContents(Option_t* opt)
const ;
101 virtual void cacheArgs(
const RooAbsArg* cacheOwner, RooArgSet& varSet,
const RooArgSet* nset=0, Bool_t skipZeroWeights=kFALSE) = 0 ;
102 virtual const RooAbsArg* cacheOwner() = 0 ;
103 virtual void attachCache(
const RooAbsArg* newOwner,
const RooArgSet& cachedVars) = 0 ;
104 virtual void setArgStatus(
const RooArgSet& set, Bool_t active) = 0 ;
105 const RooArgSet& cachedVars()
const {
return _cachedVars ; }
106 virtual void resetCache() = 0 ;
107 virtual void recalculateCache(
const RooArgSet* , Int_t , Int_t , Int_t , Bool_t ) {} ;
109 virtual void setDirtyProp(Bool_t flag) { _doDirtyProp = flag ; }
110 Bool_t dirtyProp()
const {
return _doDirtyProp ; }
112 virtual void checkInit()
const {} ;
114 virtual Bool_t hasFilledCache()
const {
return kFALSE ; }
116 virtual const TTree* tree()
const {
return 0 ; }
117 virtual void dump() {}
119 virtual void loadValues(
const RooAbsDataStore *tds,
const RooFormulaVar* select=0,
const char* rangeName=0, Int_t nStart=0, Int_t nStop=2000000000) = 0 ;
121 virtual void forceCacheUpdate() {} ;
126 RooArgSet _cachedVars;
128 Bool_t _doDirtyProp ;
130 ClassDef(RooAbsDataStore,1)