12 #ifndef ROOT_TTreeProxyGenerator
13 #define ROOT_TTreeProxyGenerator
20 class TStreamerElement;
24 class TFriendProxyDescriptor;
25 class TBranchProxyDescriptor;
26 class TBranchProxyClassDescriptor;
28 class TTreeProxyGenerator :
public TTreeGeneratorBase
31 enum EContainer { kNone, kClones, kSTL };
32 enum EOption { kNoOption, kNoHist };
33 UInt_t fMaxDatamemberType;
37 TString fHeaderFileName;
43 TList fListOfTopProxies;
44 TList *fCurrentListOfTopProxies;
45 TList fListOfForwards;
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);
51 TBranchProxyClassDescriptor* AddClass(TBranchProxyClassDescriptor *desc);
52 void AddDescriptor(TBranchProxyDescriptor *desc);
53 void AddForward(TClass *cl);
54 void AddForward(
const char *classname);
55 void AddFriend(TFriendProxyDescriptor *desc);
56 void AddMissingClassAsEnum(
const char *clname, Bool_t isscope);
57 void AddPragma(
const char *pragma_text);
58 void CheckForMissingClass(
const char *clname);
60 Bool_t NeedToEmulate(TClass *cl, UInt_t level);
64 UInt_t AnalyzeBranches(UInt_t level, TBranchProxyClassDescriptor *topdesc, TBranchElement *branch, TVirtualStreamerInfo *info = 0);
65 UInt_t AnalyzeBranches(UInt_t level, TBranchProxyClassDescriptor *topdesc, TIter &branches, TVirtualStreamerInfo *info);
66 UInt_t AnalyzeOldBranch(TBranch *branch, UInt_t level, TBranchProxyClassDescriptor *desc);
67 UInt_t AnalyzeOldLeaf(TLeaf *leaf, UInt_t level, TBranchProxyClassDescriptor *topdesc);
68 void AnalyzeElement(TBranch *branch, TStreamerElement *element, UInt_t level, TBranchProxyClassDescriptor *desc,
const char* path);
69 void AnalyzeTree(TTree *tree);
72 const char *GetFileName() {
return fHeaderFileName; }