12#ifndef ROOT_TTreeReaderGenerator
13#define ROOT_TTreeReaderGenerator
64 const char *branchname,
const char *subBranchPrefix,
ELocation isclones,
TVirtualStreamerInfo * fInfo
TBranchDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname, const char *subBranchPrefix, ELocation isclones, const TString &containerName, TBranchDescriptor *parent=0)
TBranchDescriptor * fParent
TTreeReaderDescriptor(ReaderType type, TString dataType, TString name, TString branchName)
std::vector< TString > fIncludeStruct
void AnalyzeTree(TTree *tree)
Analyze tree and extract readers.
std::vector< TString > fIncludeLeaves
UInt_t AnalyzeBranches(TBranchDescriptor *desc, TBranchElement *branch, TVirtualStreamerInfo *info)
Analyse sub-branches of 'branch' recursively and extract readers.
void ParseOptions()
Parse the user options.
Bool_t fIncludeAllTopmost
TTreeReaderGenerator(TTree *tree, const char *classname, Option_t *option)
Constructor. Analyzes the tree and writes selector.
void AddReader(TTreeReaderDescriptor::ReaderType type, TString dataType, TString name, TString branchName, TBranchDescriptor *parent=0, Bool_t isLeaf=kTRUE)
Add a reader to the generated code.
Bool_t BranchNeedsReader(TString branchName, TBranchDescriptor *parent, Bool_t isLeaf)
Check whether a branch should have a corresponding reader added, depending on the options provided by...
UInt_t AnalyzeOldLeaf(TLeaf *leaf, Int_t nleaves)
Analyze the leaf and add the variables found.
UInt_t AnalyzeOldBranch(TBranch *branch)
Analyze branch and add the variables found.
void WriteSelector()
Generate code for selector class.
A Branch for the case of an object.
A TTree is a list of TBranches.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
The TNamed class is the base class for all named ROOT classes.
Mother of all ROOT objects.
TString & Remove(Ssiz_t pos)
A TTree represents a columnar dataset.
Abstract Interface class describing Streamer information for one class.
Namespace for new ROOT classes and functions.