Logo ROOT  
Reference Guide
TTreeProxyGenerator.h
Go to the documentation of this file.
1// @(#)root/treeplayer:$Id$
2// Author: Philippe Canal 01/06/2004
3
4/*************************************************************************
5 * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TTreeProxyGenerator
13#define ROOT_TTreeProxyGenerator
14
15#include "TTreeGeneratorBase.h"
16
17class TBranch;
18class TBranchElement;
19class TLeaf;
21
22namespace ROOT {
23namespace Internal {
27
29 {
30 public:
46 TTreeProxyGenerator(TTree* tree, const char *script, const char *fileprefix,
47 const char *option, UInt_t maxUnrolling);
48 TTreeProxyGenerator(TTree* tree, const char *script, const char *cutscript,
49 const char *fileprefix, const char *option, UInt_t maxUnrolling);
50
53 void AddForward(TClass *cl);
54 void AddForward(const char *classname);
56 void AddMissingClassAsEnum(const char *clname, Bool_t isscope);
57 void AddPragma(const char *pragma_text);
58 void CheckForMissingClass(const char *clname);
59
61
62 void ParseOptions();
63
68 void AnalyzeElement(TBranch *branch, TStreamerElement *element, UInt_t level, TBranchProxyClassDescriptor *desc, const char* path);
69 void AnalyzeTree(TTree *tree);
70 void WriteProxy();
71
72 const char *GetFileName() { return fHeaderFileName; }
73 };
74
75}
76}
77
78#endif
Base class for code generators like TTreeProxyGenerator and TTreeReaderGenerator.
void AddMissingClassAsEnum(const char *clname, Bool_t isscope)
Generate an enum for a given type if it is not known in the list of class unless the type itself a te...
void AnalyzeTree(TTree *tree)
Analyze a TTree and its (potential) friends.
TBranchProxyClassDescriptor * AddClass(TBranchProxyClassDescriptor *desc)
Add a Class Descriptor.
void AddDescriptor(TBranchProxyDescriptor *desc)
Add a branch descriptor.
void AddPragma(const char *pragma_text)
Add a forward declaration request.
UInt_t AnalyzeOldLeaf(TLeaf *leaf, UInt_t level, TBranchProxyClassDescriptor *topdesc)
Analyze the leaf and populate the `TTreeProxyGenerator or the topdesc with its findings.
Bool_t NeedToEmulate(TClass *cl, UInt_t level)
Return true if we should create a nested class representing this class.
UInt_t AnalyzeOldBranch(TBranch *branch, UInt_t level, TBranchProxyClassDescriptor *desc)
Analyze the branch and populate the TTreeProxyGenerator or the topdesc with its findings.
void AnalyzeElement(TBranch *branch, TStreamerElement *element, UInt_t level, TBranchProxyClassDescriptor *desc, const char *path)
Analyze the element and populate the TTreeProxyGenerator or the topdesc with its findings.
TTreeProxyGenerator(TTree *tree, const char *script, const char *fileprefix, const char *option, UInt_t maxUnrolling)
Constructor.
void AddFriend(TFriendProxyDescriptor *desc)
Add Friend descriptor.
void CheckForMissingClass(const char *clname)
Check if the template parameter refers to an enum and/or a missing class (we can't tell those 2 apart...
UInt_t AnalyzeBranches(UInt_t level, TBranchProxyClassDescriptor *topdesc, TBranchElement *branch, TVirtualStreamerInfo *info=0)
Analyze the sub-branch and populate the TTreeProxyGenerator or the topdesc with its findings.
void ParseOptions()
Parse the options string.
void AddForward(TClass *cl)
Add a forward declaration request.
void WriteProxy()
Check whether the file exist and do something useful if it does.
A Branch for the case of an object.
Hold the processed information about a TClass used in a TBranch while TTreeProxyGenerator is parsing ...
/Hold the processed information about a TBranch while /TTreeProxyGenerator is parsing the TTree infor...
A TTree is a list of TBranches.
Definition: TBranch.h:89
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
Hold the processed information about a Friend TTree while TTreeProxyGenerator is parsing the TTree in...
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:57
A doubly linked list.
Definition: TList.h:44
Basic string class.
Definition: TString.h:136
A TTree represents a columnar dataset.
Definition: TTree.h:79
Abstract Interface class describing Streamer information for one class.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
Definition: tree.py:1