#include "TBranchProxyDescriptor.h"
#include "TClonesArray.h"
#include "TError.h"
#include "TROOT.h"
#include "TTreeFormula.h"
#include "TFormLeafInfo.h"
#include <ctype.h>
ClassImp(ROOT::TBranchProxyDescriptor);
namespace ROOT {
TBranchProxyDescriptor::TBranchProxyDescriptor(const char *dataname,
const char *type,
const char *branchname,
Bool_t split,
Bool_t skipped,
Bool_t isleaflist) :
TNamed(dataname,type),fBranchName(branchname),fIsSplit(split),fBranchIsSkipped(skipped),fIsLeafList(isleaflist)
{
fDataName = GetName();
if (fDataName.Length() && fDataName[fDataName.Length()-1]=='.') fDataName.Remove(fDataName.Length()-1);
fDataName.ReplaceAll(".","_");
fDataName.ReplaceAll(":","_");
fDataName.ReplaceAll("<","_");
fDataName.ReplaceAll(">","_");
if (!isalpha(fDataName[0])) fDataName.Insert(0,"_");
fDataName.ReplaceAll(" ","");
fDataName.ReplaceAll("*","st");
fDataName.ReplaceAll("&","rf");
}
const char *TBranchProxyDescriptor::GetDataName()
{
return fDataName;
}
const char *TBranchProxyDescriptor::GetTypeName()
{
return GetTitle();
}
const char *TBranchProxyDescriptor::GetBranchName()
{
return fBranchName.Data();
}
Bool_t TBranchProxyDescriptor::IsEquivalent(const TBranchProxyDescriptor *other,
Bool_t inClass)
{
if ( !other ) return false;
if ( other == this ) return true;
if ( inClass ) {
} else {
if ( fBranchName != other->fBranchName ) return false;
}
if ( fIsSplit != other->fIsSplit ) return false;
if ( fBranchIsSkipped != other->fBranchIsSkipped) return false;
if ( strcmp(GetName(),other->GetName()) ) return false;
if ( strcmp(GetTitle(),other->GetTitle()) ) return false;
return true;
}
Bool_t TBranchProxyDescriptor::IsSplit() const
{
return fIsSplit;
}
void TBranchProxyDescriptor::OutputDecl(FILE *hf, int offset, UInt_t maxVarname)
{
fprintf(hf,"%-*s%-*s %s;\n", offset," ", maxVarname, GetTypeName(), GetDataName());
}
void TBranchProxyDescriptor::OutputInit(FILE *hf, int offset,
UInt_t maxVarname,
const char *prefix)
{
if (fIsSplit) {
const char *subbranchname = GetBranchName();
const char *above = "";
if (strncmp(prefix,subbranchname,strlen(prefix))==0
&& strcmp(prefix,subbranchname)!=0) {
subbranchname += strlen(prefix)+1;
above = "ffPrefix, ";
}
if (fBranchIsSkipped) {
fprintf(hf,"\n%-*s %-*s(director, obj.GetProxy(), \"%s\", %s\"%s\")",
offset," ", maxVarname, GetDataName(), GetDataName(), above, subbranchname);
} else {
if (fIsLeafList) {
if (above[0]=='\0') {
fprintf(hf,"\n%-*s %-*s(director, \"%s\", \"\", \"%s\")",
offset," ", maxVarname, GetDataName(), subbranchname, GetDataName());
} else {
fprintf(hf,"\n%-*s %-*s(director, %s\"%s\", \"%s\")",
offset," ", maxVarname, GetDataName(), above, subbranchname, GetDataName());
}
} else {
fprintf(hf,"\n%-*s %-*s(director, %s\"%s\")",
offset," ", maxVarname, GetDataName(), above, subbranchname);
}
}
} else {
fprintf(hf,"\n%-*s %-*s(director, obj.GetProxy(), \"%s\")",
offset," ", maxVarname, GetDataName(), GetBranchName() );
}
}
}
TBranchProxyDescriptor.cxx:1 TBranchProxyDescriptor.cxx:2 TBranchProxyDescriptor.cxx:3 TBranchProxyDescriptor.cxx:4 TBranchProxyDescriptor.cxx:5 TBranchProxyDescriptor.cxx:6 TBranchProxyDescriptor.cxx:7 TBranchProxyDescriptor.cxx:8 TBranchProxyDescriptor.cxx:9 TBranchProxyDescriptor.cxx:10 TBranchProxyDescriptor.cxx:11 TBranchProxyDescriptor.cxx:12 TBranchProxyDescriptor.cxx:13 TBranchProxyDescriptor.cxx:14 TBranchProxyDescriptor.cxx:15 TBranchProxyDescriptor.cxx:16 TBranchProxyDescriptor.cxx:17 TBranchProxyDescriptor.cxx:18 TBranchProxyDescriptor.cxx:19 TBranchProxyDescriptor.cxx:20 TBranchProxyDescriptor.cxx:21 TBranchProxyDescriptor.cxx:22 TBranchProxyDescriptor.cxx:23 TBranchProxyDescriptor.cxx:24 TBranchProxyDescriptor.cxx:25 TBranchProxyDescriptor.cxx:26 TBranchProxyDescriptor.cxx:27 TBranchProxyDescriptor.cxx:28 TBranchProxyDescriptor.cxx:29 TBranchProxyDescriptor.cxx:30 TBranchProxyDescriptor.cxx:31 TBranchProxyDescriptor.cxx:32 TBranchProxyDescriptor.cxx:33 TBranchProxyDescriptor.cxx:34 TBranchProxyDescriptor.cxx:35 TBranchProxyDescriptor.cxx:36 TBranchProxyDescriptor.cxx:37 TBranchProxyDescriptor.cxx:38 TBranchProxyDescriptor.cxx:39 TBranchProxyDescriptor.cxx:40 TBranchProxyDescriptor.cxx:41 TBranchProxyDescriptor.cxx:42 TBranchProxyDescriptor.cxx:43 TBranchProxyDescriptor.cxx:44 TBranchProxyDescriptor.cxx:45 TBranchProxyDescriptor.cxx:46 TBranchProxyDescriptor.cxx:47 TBranchProxyDescriptor.cxx:48 TBranchProxyDescriptor.cxx:49 TBranchProxyDescriptor.cxx:50 TBranchProxyDescriptor.cxx:51 TBranchProxyDescriptor.cxx:52 TBranchProxyDescriptor.cxx:53 TBranchProxyDescriptor.cxx:54 TBranchProxyDescriptor.cxx:55 TBranchProxyDescriptor.cxx:56 TBranchProxyDescriptor.cxx:57 TBranchProxyDescriptor.cxx:58 TBranchProxyDescriptor.cxx:59 TBranchProxyDescriptor.cxx:60 TBranchProxyDescriptor.cxx:61 TBranchProxyDescriptor.cxx:62 TBranchProxyDescriptor.cxx:63 TBranchProxyDescriptor.cxx:64 TBranchProxyDescriptor.cxx:65 TBranchProxyDescriptor.cxx:66 TBranchProxyDescriptor.cxx:67 TBranchProxyDescriptor.cxx:68 TBranchProxyDescriptor.cxx:69 TBranchProxyDescriptor.cxx:70 TBranchProxyDescriptor.cxx:71 TBranchProxyDescriptor.cxx:72 TBranchProxyDescriptor.cxx:73 TBranchProxyDescriptor.cxx:74 TBranchProxyDescriptor.cxx:75 TBranchProxyDescriptor.cxx:76 TBranchProxyDescriptor.cxx:77 TBranchProxyDescriptor.cxx:78 TBranchProxyDescriptor.cxx:79 TBranchProxyDescriptor.cxx:80 TBranchProxyDescriptor.cxx:81 TBranchProxyDescriptor.cxx:82 TBranchProxyDescriptor.cxx:83 TBranchProxyDescriptor.cxx:84 TBranchProxyDescriptor.cxx:85 TBranchProxyDescriptor.cxx:86 TBranchProxyDescriptor.cxx:87 TBranchProxyDescriptor.cxx:88 TBranchProxyDescriptor.cxx:89 TBranchProxyDescriptor.cxx:90 TBranchProxyDescriptor.cxx:91 TBranchProxyDescriptor.cxx:92 TBranchProxyDescriptor.cxx:93 TBranchProxyDescriptor.cxx:94 TBranchProxyDescriptor.cxx:95 TBranchProxyDescriptor.cxx:96 TBranchProxyDescriptor.cxx:97 TBranchProxyDescriptor.cxx:98 TBranchProxyDescriptor.cxx:99 TBranchProxyDescriptor.cxx:100 TBranchProxyDescriptor.cxx:101 TBranchProxyDescriptor.cxx:102 TBranchProxyDescriptor.cxx:103 TBranchProxyDescriptor.cxx:104 TBranchProxyDescriptor.cxx:105 TBranchProxyDescriptor.cxx:106 TBranchProxyDescriptor.cxx:107 TBranchProxyDescriptor.cxx:108 TBranchProxyDescriptor.cxx:109 TBranchProxyDescriptor.cxx:110 TBranchProxyDescriptor.cxx:111 TBranchProxyDescriptor.cxx:112 TBranchProxyDescriptor.cxx:113 TBranchProxyDescriptor.cxx:114 TBranchProxyDescriptor.cxx:115 TBranchProxyDescriptor.cxx:116 TBranchProxyDescriptor.cxx:117 TBranchProxyDescriptor.cxx:118 TBranchProxyDescriptor.cxx:119 TBranchProxyDescriptor.cxx:120 TBranchProxyDescriptor.cxx:121 TBranchProxyDescriptor.cxx:122 TBranchProxyDescriptor.cxx:123 TBranchProxyDescriptor.cxx:124 TBranchProxyDescriptor.cxx:125 TBranchProxyDescriptor.cxx:126 TBranchProxyDescriptor.cxx:127 TBranchProxyDescriptor.cxx:128 TBranchProxyDescriptor.cxx:129 TBranchProxyDescriptor.cxx:130 TBranchProxyDescriptor.cxx:131 TBranchProxyDescriptor.cxx:132 TBranchProxyDescriptor.cxx:133 TBranchProxyDescriptor.cxx:134 TBranchProxyDescriptor.cxx:135 TBranchProxyDescriptor.cxx:136 TBranchProxyDescriptor.cxx:137 TBranchProxyDescriptor.cxx:138 TBranchProxyDescriptor.cxx:139 TBranchProxyDescriptor.cxx:140 TBranchProxyDescriptor.cxx:141 TBranchProxyDescriptor.cxx:142 TBranchProxyDescriptor.cxx:143 TBranchProxyDescriptor.cxx:144 TBranchProxyDescriptor.cxx:145 TBranchProxyDescriptor.cxx:146 TBranchProxyDescriptor.cxx:147 TBranchProxyDescriptor.cxx:148 TBranchProxyDescriptor.cxx:149 TBranchProxyDescriptor.cxx:150 TBranchProxyDescriptor.cxx:151 TBranchProxyDescriptor.cxx:152 TBranchProxyDescriptor.cxx:153