#ifndef ROO_TREE_DATA
#define ROO_TREE_DATA
#include "RooAbsData.h"
class TTree;
class TIterator;
class TBranch;
class TH1F;
class TH2F;
class TPaveText;
class RooAbsArg;
class RooAbsReal ;
class RooAbsCategory ;
class RooAbsString ;
class Roo1DTable ;
class RooPlot;
class RooFormulaVar ;
class RooLinkedList ;
class RooTreeData : public RooAbsData {
public:
RooTreeData() ;
RooTreeData(const char *name, const char *title, const RooArgSet& vars) ;
RooTreeData(const char *name, const char *title, RooTreeData *ntuple,
const RooArgSet& vars, const char *cuts);
RooTreeData(const char *name, const char *title, RooTreeData *t,
const RooArgSet& vars, const RooFormulaVar& cutVar) ;
RooTreeData(const char *name, const char *title, TTree *t,
const RooArgSet& vars, const RooFormulaVar& cutVar) ;
RooTreeData(const char *name, const char *title, TTree *ntuple,
const RooArgSet& vars, const char *cuts);
RooTreeData(const char *name, const char *filename, const char *treename,
const RooArgSet& vars, const char *cuts);
RooTreeData(RooTreeData const & other, const char* newname=0) ;
virtual ~RooTreeData() ;
virtual Bool_t changeObservableName(const char* from, const char* to) ;
virtual void fill() { Fill() ; } ;
virtual const RooArgSet* get(Int_t index) const;
virtual const RooArgSet* get() const { return &_vars ; }
virtual Bool_t valid() const ;
virtual RooAbsArg* addColumn(RooAbsArg& var, Bool_t adjustRange=kTRUE) ;
virtual RooArgSet* addColumns(const RooArgList& varList) ;
virtual Int_t numEntries(Bool_t useWeights=kFALSE) const ;
virtual void reset() { Reset() ; }
using RooAbsData::table ;
virtual Roo1DTable* table(const RooAbsCategory& cat, const char* cuts="", const char* opts="") const ;
virtual RooPlot* statOn(RooPlot* frame,
const RooCmdArg& arg1=RooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(),
const RooCmdArg& arg3=RooCmdArg::none(), const RooCmdArg& arg4=RooCmdArg::none(),
const RooCmdArg& arg5=RooCmdArg::none(), const RooCmdArg& arg6=RooCmdArg::none(),
const RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::none()) ;
virtual RooPlot* statOn(RooPlot* frame, const char *what,
const char *label= "", Int_t sigDigits= 2,
Option_t *options= "NELU", Double_t xmin=0.15,
Double_t xmax= 0.65,Double_t ymax=0.85,
const char* cutSpec=0, const char* cutRange=0,
const RooCmdArg* formatCmd=0);
TH1 *fillHistogram(TH1 *hist, const RooArgList &plotVars, const char *cuts= "", const char* cutRange=0) const;
Double_t moment(RooRealVar &var, Double_t order, const char* cutSpec=0, const char* cutRange=0) const ;
Double_t moment(RooRealVar &var, Double_t order, Double_t offset, const char* cutSpec=0, const char* cutRange=0) const ;
Double_t standMoment(RooRealVar &var, Double_t order, const char* cutSpec=0, const char* cutRange=0) const ;
Double_t mean(RooRealVar& var, const char* cutSpec=0, const char* cutRange=0) const { return moment(var,0,0,cutSpec,cutRange) ; }
Double_t sigma(RooRealVar& var, const char* cutSpec=0, const char* cutRange=0) const { return moment(var,1,cutSpec,cutRange) ; }
Double_t skewness(RooRealVar& var, const char* cutSpec=0, const char* cutRange=0) const { return standMoment(var,3,cutSpec,cutRange) ; }
Double_t kurtosis(RooRealVar& var, const char* cutSpec=0, const char* cutRange=0) const { return standMoment(var,4,cutSpec,cutRange) ; }
RooRealVar* meanVar(RooRealVar &var, const char* cutSpec=0, const char* cutRange=0) const ;
RooRealVar* rmsVar(RooRealVar &var, const char* cutSpec=0, const char* cutRange=0) const ;
Bool_t getRange(RooRealVar& var, Double_t& lowest, Double_t& highest, Double_t marginFrac=0, Bool_t symMode=kFALSE) const ;
virtual TList* split(const RooAbsCategory& splitCat) const ;
Int_t Scan(const char* varexp="", const char* selection="", Option_t* option="",
Int_t nentries = 1000000000, Int_t firstentry = 0);
const TTree& tree() const { return *_tree ; }
void dump() ;
virtual void printMultiline(ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const ;
using RooAbsData::plotOn ;
virtual RooPlot* plotOn(RooPlot* frame, const RooLinkedList& cmdList) const ;
struct PlotOpt {
PlotOpt() : cuts(""), drawOptions("P"), bins(0), etype(RooAbsData::Poisson), cutRange(0), histName(0), histInvisible(kFALSE),
addToHistName(0),addToWgtSelf(1.),addToWgtOther(1.),xErrorSize(1),refreshFrameNorm(kFALSE),correctForBinWidth(kTRUE) {} ;
const char* cuts ;
Option_t* drawOptions ;
RooAbsBinning* bins ;
RooAbsData::ErrorType etype ;
const char* cutRange ;
const char* histName ;
Bool_t histInvisible ;
const char* addToHistName ;
Double_t addToWgtSelf ;
Double_t addToWgtOther ;
Double_t xErrorSize ;
Bool_t refreshFrameNorm ;
Bool_t correctForBinWidth ;
} ;
virtual RooPlot *plotOn(RooPlot *frame, PlotOpt o) const ;
virtual RooPlot *plotAsymOn(RooPlot* frame, const RooAbsCategoryLValue& asymCat, PlotOpt o) const ;
virtual RooPlot *plotEffOn(RooPlot* frame, const RooAbsCategoryLValue& effCat, PlotOpt o) const ;
virtual void Draw(Option_t* opt) ;
virtual Long64_t Draw(const char* varexp, const char* selection, Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0) ;
protected:
friend class RooMCStudy ;
virtual void optimizeReadingWithCaching(RooAbsArg& arg, const RooArgSet& cacheList) ;
Bool_t allClientsCached(RooAbsArg*, const RooArgSet&) ;
RooTreeData(const char *name, const char *title, RooTreeData *ntuple,
const RooArgSet& vars, const RooFormulaVar* cutVar, const char* cutRange,
Int_t nStart, Int_t nStop, Bool_t copyCache);
Int_t ScanCache(const char* varexp="", const char* selection="", Option_t* option="",
Int_t nentries = 1000000000, Int_t firstentry = 0);
const TTree& cacheTree() const { return *_cacheTree ; }
Stat_t GetEntries() const;
void Reset(Option_t* option=0);
Int_t Fill();
Int_t GetEntry(Int_t entry = 0, Int_t getall = 0);
void treePrint();
virtual void cacheArgs(RooArgSet& varSet, const RooArgSet* nset=0) ;
void setArgStatus(const RooArgSet& set, Bool_t active) ;
virtual void resetCache() ;
void setBranchBufferSize(Int_t size) { _defTreeBufSize = size ; }
Int_t getBranchBufferSize() const { return _defTreeBufSize ; }
void checkInit() const {
if (_defCtor) {
((RooTreeData*)this)->initialize() ;
_defCtor = kFALSE ;
}
}
void loadValues(const RooTreeData *t, RooFormulaVar* select=0, const char* rangeName=0, Int_t nStart=0, Int_t nStop=2000000000) ;
void loadValues(const TTree *t, RooFormulaVar* cutVar=0, const char* rangeName=0, Int_t nStart=0, Int_t nStop=2000000000) ;
void loadValues(const char *filename, const char *treename, RooFormulaVar *cutVar=0);
friend class RooDataSet ;
void createTree(const char* name, const char* title) ;
TTree *_tree ;
TTree *_cacheTree ;
mutable Bool_t _defCtor ;
RooArgSet _truth;
TString _blindString ;
static Int_t _defTreeBufSize ;
void initCache(const RooArgSet& cachedVars) ;
private:
void initialize();
ClassDef(RooTreeData,1)
};
#endif
Last change: Fri Dec 12 09:06:03 2008
Last generated: 2008-12-12 09:06
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.