20 class RooAbsRealLValue ;
 
   27 #define USEMEMPOOLFORDATASET 
   28 template <
class RooSet_t, 
size_t>
 
   29 class MemPoolForRooSets;
 
   31 class RooDataSet : 
public RooAbsData, 
public RooDirItem {
 
   34 #ifdef USEMEMPOOLFORDATASET 
   35   void* 
operator new (
size_t bytes);
 
   36   void operator delete (
void *ptr);
 
   44   RooDataSet(
const char *name, 
const char *title, 
const RooArgSet& vars, 
const char* wgtVarName=0) ;
 
   47   RooDataSet(
const char* name, 
const char* title, 
const RooArgSet& vars, 
const RooCmdArg& arg1, 
const RooCmdArg& arg2=RooCmdArg(), 
 
   48         const RooCmdArg& arg3=RooCmdArg(), 
const RooCmdArg& arg4=RooCmdArg(),
const RooCmdArg& arg5=RooCmdArg(),
 
   49         const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),
const RooCmdArg& arg8=RooCmdArg()) ; 
 
   52   RooDataSet(
const char *name, 
const char *title, RooDataSet *data, 
const RooArgSet& vars, 
 
   53              const char *cuts=0, 
const char* wgtVarName=0);
 
   54   RooDataSet(
const char *name, 
const char *title, RooDataSet *data, 
const RooArgSet& vars,  
 
   55         const RooFormulaVar& cutVar, 
const char* wgtVarName=0) ;  
 
   59   RooDataSet(
const char *name, 
const char *title, TTree *ntuple, 
const RooArgSet& vars, 
 
   60         const char *cuts=0, 
const char* wgtVarName=0); 
 
   61   RooDataSet(
const char *name, 
const char *title, TTree *t, 
const RooArgSet& vars, 
 
   62         const RooFormulaVar& cutVar, 
const char* wgtVarName=0) ;  
 
   65   RooDataSet(RooDataSet 
const & other, 
const char* newname=0) ;  
 
   66   virtual TObject* Clone(
const char* newname = 
"")
 const override {
 
   67     return new RooDataSet(*
this, newname && newname[0] != 
'\0' ? newname : GetName());
 
   69   virtual ~RooDataSet() ;
 
   71   virtual RooAbsData* emptyClone(
const char* newName=0, 
const char* newTitle=0, 
const RooArgSet* vars=0, 
const char* wgtVarName=0) 
const override;
 
   73   RooDataHist* binnedClone(
const char* newName=0, 
const char* newTitle=0) 
const ;
 
   75   virtual Double_t sumEntries() 
const override;
 
   76   virtual Double_t sumEntries(
const char* cutSpec, 
const char* cutRange=0) 
const override;
 
   78   virtual RooPlot* plotOnXY(RooPlot* frame, 
 
   79              const RooCmdArg& arg1=RooCmdArg::none(), 
const RooCmdArg& arg2=RooCmdArg::none(),
 
   80              const RooCmdArg& arg3=RooCmdArg::none(), 
const RooCmdArg& arg4=RooCmdArg::none(),
 
   81              const RooCmdArg& arg5=RooCmdArg::none(), 
const RooCmdArg& arg6=RooCmdArg::none(),
 
   82              const RooCmdArg& arg7=RooCmdArg::none(), 
const RooCmdArg& arg8=RooCmdArg::none()) 
const ;
 
   87   static RooDataSet *read(
const char *filename, 
const RooArgList &variables,
 
   88            const char *opts= 
"", 
const char* commonPath=
"",
 
   89            const char *indexCatName=0) ;
 
   90   Bool_t write(
const char* filename) 
const;
 
   91   Bool_t write(std::ostream & ofs) 
const;
 
   98   virtual Bool_t isWeighted() 
const override;
 
   99   virtual Bool_t isNonPoissonWeighted() 
const override;
 
  101   virtual Double_t weight() 
const override;
 
  102   virtual Double_t weightSquared() 
const override;
 
  103   virtual void weightError(Double_t& lo, Double_t& hi,ErrorType etype=SumW2) 
const override;
 
  104   Double_t weightError(ErrorType etype=SumW2) 
const override;
 
  106   virtual const RooArgSet* 
get(Int_t index) 
const override;
 
  107   virtual const RooArgSet* 
get() 
const override;
 
  109   virtual RooSpan<const double> getWeightBatch(std::size_t first, std::size_t last) 
const override;
 
  112   virtual void add(
const RooArgSet& row, Double_t weight=1.0, Double_t weightError=0) 
override;
 
  113   virtual void add(
const RooArgSet& row, Double_t weight, Double_t weightErrorLo, Double_t weightErrorHi);
 
  115   virtual void addFast(
const RooArgSet& row, Double_t weight=1.0, Double_t weightError=0);
 
  117   void append(RooDataSet& data) ;
 
  118   Bool_t merge(RooDataSet* data1, RooDataSet* data2=0, RooDataSet* data3=0,  
 
  119           RooDataSet* data4=0, RooDataSet* data5=0, RooDataSet* data6=0) ; 
 
  120   Bool_t merge(std::list<RooDataSet*> dsetList) ;
 
  122   virtual RooAbsArg* addColumn(RooAbsArg& var, Bool_t adjustRange=kTRUE) ;
 
  123   virtual RooArgSet* addColumns(
const RooArgList& varList) ;
 
  126   using RooAbsData::createHistogram ;
 
  127   TH2F* createHistogram(
const RooAbsRealLValue& var1, 
const RooAbsRealLValue& var2, 
const char* cuts=
"", 
 
  128          const char *name= 
"hist") 
const;  
 
  129   TH2F* createHistogram(
const RooAbsRealLValue& var1, 
const RooAbsRealLValue& var2, Int_t nx, Int_t ny,
 
  130                         const char* cuts=
"", 
const char *name=
"hist") 
const;
 
  132   void printMultiline(std::ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent=
"") 
const override;
 
  133   virtual void printArgs(std::ostream& os) 
const override;
 
  134   virtual void printValue(std::ostream& os) 
const override;
 
  136   void SetName(
const char *name) 
override;
 
  137   void SetNameTitle(
const char *name, 
const char* title) 
override;
 
  139   static void cleanup();
 
  141   void convertToTreeStore() 
override;
 
  145   virtual RooAbsData* cacheClone(
const RooAbsArg* newCacheOwner, 
const RooArgSet* newCacheVars, 
const char* newName=0) 
override;
 
  147   friend class RooProdGenContext ;
 
  149   void initialize(
const char* wgtVarName) ;
 
  152   RooAbsData* reduceEng(
const RooArgSet& varSubset, 
const RooFormulaVar* cutVar, 
const char* cutRange=0, 
 
  153                    Int_t nStart=0, Int_t nStop=2000000000, Bool_t copyCache=kTRUE) 
override;
 
  154   RooDataSet(
const char *name, 
const char *title, RooDataSet *ntuple, 
 
  155         const RooArgSet& vars, 
const RooFormulaVar* cutVar, 
const char* cutRange, 
int nStart, 
int nStop, Bool_t copyCache, 
const char* wgtVarName=0);
 
  157   RooArgSet addWgtVar(
const RooArgSet& origVars, 
const RooAbsArg* wgtVar) ; 
 
  159   RooArgSet _varsNoWgt ;   
 
  160   RooRealVar* _wgtVar ;    
 
  163 #ifdef USEMEMPOOLFORDATASET 
  164   typedef MemPoolForRooSets<RooDataSet, 5*150> MemPool; 
 
  165   static MemPool * memPool();
 
  167   unsigned short _errorMsgCount{0}; 
 
  168   bool _doWeightErrorCheck{
true}; 
 
  170   ClassDefOverride(RooDataSet,2)