125   fDidBooleanOptimization(
false), fDimensionSetup(nullptr)
 
 
  159    fDidBooleanOptimization(
false), fDimensionSetup(nullptr)
 
 
  168                           const std::vector<std::string>& 
aliases)
 
  170    fDidBooleanOptimization(
false), fDimensionSetup(nullptr), fAliasesUsed(
aliases)
 
 
  215      Warning(
"TTreeFormula",
"Too many items in expression:%s",expression);
 
  225         if (!
leafc) 
continue;
 
  273            Error(
"TTreeFormula",
 
  274                  "Index %d for dimension #%d in %s is too high (max is %d)",
 
 
  405   const char * current;
 
  414   if (current[0] != 
'[') current--;
 
  430      current = (
char*)
strstr( current, 
"[" );
 
 
  444   return (
size==-1) ? 1 : 0;
 
 
  468      if (
elem->GetArrayDim()>0) {
 
  470         ndim = 
elem->GetArrayDim();
 
  516   } 
else if ( 
c && 
c->GetReferenceProxy() && 
c->GetReferenceProxy()->HasCounter() ) {
 
  519   } 
else if (
elem->GetArrayDim()>0) {
 
  521      ndim = 
elem->GetArrayDim();
 
  547   } 
while (current<ndim);
 
 
  592   const char *bname = 
leaf->GetBranch()->GetName();
 
  626      if (
branch->GetBranchCount2()) {
 
  628         if (!
branch->GetBranchCount()) {
 
  630                    "Noticed an incorrect in-memory TBranchElement object (%s).\nIt has a BranchCount2 but no BranchCount!\nThe result might be incorrect!",
 
  638                    "Already in kDataMember mode when handling multiple variable dimensions");
 
 
  659   static const char *
altfunc = 
"Alt$(";
 
  660   static const char *
minfunc = 
"MinIf$(";
 
  661   static const char *
maxfunc = 
"MaxIf$(";
 
  666       && expression[
strlen(expression)-1]==
')' ) {
 
  671       && expression[
strlen(expression)-1]==
')' ) {
 
  676       && expression[
strlen(expression)-1]==
')' ) {
 
  688      for(
unsigned int i=start;i<
strlen(expression);++i) {
 
  689         switch (expression[i]) {
 
  690            case '(': 
paran++; 
break;
 
  691            case ')': 
paran--; 
break;
 
  692            case '"': instr = instr ? 0 : 1; 
break;
 
  693            case '[': 
brack++; 
break;
 
  694            case ']': 
brack--; 
break;
 
  696         if (expression[i]==
',' && 
paran==0 && instr==0 && 
brack==0) {
 
  697            part1 = full( start, i-start );
 
  698            part2 = full( i+1, full.Length() -1 - (i+1) );
 
  709            if (
alternate->GetManager()->GetMultiplicity() != 0 ) {
 
  710               Error(
"DefinedVariable",
"The 2nd arguments in %s can not be an array (%s,%d)!",
 
  712                     alternate->GetManager()->GetMultiplicity());
 
  719                  Error(
"DefinedVariable",
 
  720                        "The 2nd arguments in %s has to return the same type as the 1st argument (string)!",
 
  726               Error(
"DefinedVariable",
 
  727                     "The 2nd arguments in %s has to return the same type as the 1st argument (numerical type)!",
 
  736                  Error(
"DefinedVariable",
 
  737                        "The arguments of %s can not be strings!",
 
 
  791         if ( 
br->GetInfo() == nullptr ) {
 
  792            Error(
"DefinedVariable",
"Missing StreamerInfo for %s.  We will be unable to read!",
 
  803            if (
mom->GetInfo()==
nullptr) {
 
  804               Error(
"DefinedVariable",
"Missing StreamerInfo for %s." 
  805                     "  We will be unable to read!",
 
  809            if ((
mom->GetType()) < -1 && !
mom->GetAddress()) {
 
  810               Error(
"DefinedVariable", 
"Address not set when the type of the branch is negative for for %s.  We will be unable to read!", 
mom->GetName());
 
  823   const char* 
alias = 
nullptr;
 
  840      if (
leaf->GetBranch()!=
leaf->GetBranch()->GetMother()) {
 
  918               cl = 
element->GetClassPointer();
 
  923            cl = 
info->GetClass();
 
  930      if (cl && 
branchEl->GetBranchCount()) {
 
  936                       "Missing TStreamerElement in object in TClonesArray section");
 
  969         } 
else if (
branchEl->GetType()==41) {
 
  974               Warning(
"DefinedVariable",
"Missing TStreamerElement in object in Collection section");
 
  980            if ( count->
GetID() >= 0 ) {
 
 1021      } 
else if ( 
branchEl->GetType()==3) {
 
 1094             && 
elemCl->GetCollectionProxy()->GetValueClass()
 
 1095             && 
elemCl->GetCollectionProxy()->GetValueClass()->GetCollectionProxy()) {
 
 1108                                                      elemCl->GetCollectionProxy()->GetValueClass(),
 
 1114            cl = 
elemCl->GetCollectionProxy()->GetValueClass();
 
 1128               && 
elemCl->GetCollectionProxy()->GetValueClass()==
nullptr 
 1129               && 
elemCl->GetCollectionProxy()->GetType()>0) {
 
 1156         } 
else if (!
element->IsaPointer()) {
 
 1182               Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1190        Error(
"ParseWithLeaf", 
"Found a numerical leaf but the name has trailing characters: \"%s\"", 
subExpression);
 
 1253            if ( ! 
casted->InheritsFrom(cl) ) {
 
 1254               Error(
"DefinedVariable",
"%s does not inherit from %s.  Casting not possible!",
 
 1280      for (i=0, current = &(
work[0]); i<=
nchname;i++ ) {
 
 1282         if (right[i] == 
'(') {
 
 1285               *current++ = right[i++];
 
 1286            } 
while(right[i]!=
')' && right[i]);
 
 1287            *current++ = right[i];
 
 1291               *params = 0; params++;
 
 1292            } 
else params = (
char *) 
")";
 
 1294               Error(
"DefinedVariable",
"Can not call '%s' with a class",
work);
 
 1298               Error(
"DefinedVariable",
"Class probably unavailable:%s",cl->
GetName());
 
 1312                                 || !
leaf->IsOnTerminalBranch());
 
 1343                                 || !
leaf->IsOnTerminalBranch());
 
 1366                  Warning(
"DefinedVariable",
"Can not call method on content of %s in %s\n",
 
 1373               Error(
"DefinedVariable",
 
 1374                     "Could not discover the TClass corresponding to (%s)!",
 
 1385                                 || !
leaf->IsOnTerminalBranch());
 
 1394                  Error(
"DefinedVariable",
 
 1395                        "Can not call method %s on class without dictionary (%s)!",
 
 1402               if (!
method->GetMethod()) {
 
 1403                  Error(
"DefinedVariable",
"Unknown method:%s in %s",right,cl->
GetName());
 
 1406               switch(
method->ReturnType()) {
 
 1428                     Error(
"DefineVariable",
"Method %s from %s has an impossible return type %d",
 
 1443            current = &(
work[0]);
 
 1451                  Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1476         } 
else if (right[i] == 
')') {
 
 1494               current = &(
work[0]);
 
 1501         } 
else if (i > 0 && (right[i] == 
'.' || right[i] == 
'[' || right[i] == 
'\0') ) {
 
 1583                  if (
clbranch->GetListOfBranches()->GetLast()>=0) {
 
 1585                        Error(
"DefinedVariable",
"Unimplemented usage of ClonesArray");
 
 1596                          "TClonesArray object was not retrievable for %s!",
 
 1651                  Error(
"DefinedVariable",
"Could you not find the inner class for %s with coll type = %d",
 
 1655                  Warning(
"DefinedVariable",
"No data member in content of %s in %s\n",
 
 1663               if (
leaf) 
leaf->GetBranch()->Print();
 
 1664               Warning(
"DefinedVariable",
"Missing class for %s!",
name.Data());
 
 1708                  } 
else if (
curelem->GetClassPointer() && 
curelem->GetClassPointer()->GetCollectionProxy()) {
 
 1714                        curelem->GetClassPointer()->GetCollectionProxy()->GetValueClass();
 
 1720                           Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1770                  bool object = 
false;
 
 1771                  bool pointer = 
false;
 
 1803                        Error(
"DefinedVariable",
 
 1804                              "%s is a datamember of %s BUT is not yet of a supported type (%d)",
 
 1809                        Error(
"DefinedVariable",
 
 1810                              "%s is a datamember of %s BUT is not of a unknown type (%d)",
 
 1817                        || 
element->GetClassPointer()->GetCollectionProxy() ) )
 
 1835                                && 
element->GetClassPointer()->GetCollectionProxy()) {
 
 1839                           Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1859                           if (
element->GetClassPointer()->GetCollectionProxy()->GetValueClass()==
nullptr) {
 
 1861                                 element->GetClassPointer()->GetCollectionProxy());
 
 1872                           if (
valueCl!=
nullptr && 
valueCl->GetCollectionProxy()!=
nullptr) {
 
 1889                           if (
elemCl->GetCollectionProxy() &&
 
 1890                               elemCl->GetCollectionProxy()->GetValueClass()==
nullptr) {
 
 1912                     } 
else if (pointer) {
 
 1924               if (cl) 
Error(
"DefinedVariable",
"%s is not a datamember of %s",
work,cl->
GetName());
 
 1941            if ( right[i] != 
'\0' )  {
 
 1948                        if ( 
inf->IsReference() )  {
 
 1957                     cl = 
refInfo->GetValueClass(ptr);
 
 1959                        Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1965                     Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1970                  cl = 
element->GetClassPointer();
 
 1974            current = &(
work[0]);
 
 1987            *current++ = right[i];
 
 2008         if (!last) 
return action;
 
 2036         if (!last) 
return action;
 
 
 2184   const char *
cname = expression;
 
 2185   char    first[
kMaxLen];    first[0] = 
'\0';
 
 2186   char   second[
kMaxLen*2]; second[0] = 
'\0';
 
 2187   char    right[
kMaxLen*2];  right[0] = 
'\0';
 
 2189   char     left[
kMaxLen];     left[0] = 
'\0';
 
 2202   for (i=0, current = &(
work[0]); i<=
nchname && !
final;i++ ) {
 
 2204      *current++ = 
cname[i];
 
 2206      if (
cname[i] == 
'(') {
 
 2209         if (current==
work+1) {
 
 2224      if (
cname[i] == 
')') {
 
 2241               current = &(
work[0]);
 
 2247               current = &(
work[0]);
 
 2250                       "Casting to primary types like \"%s\" is not supported yet",
cast_name.Data());
 
 2259            *params = 0; params++;
 
 2291                        Error(
"DefinedVariable",
 
 2292                           "The substitution of the branch alias \"%s\" by \"%s\" in \"%s\" failed\n"\
 
 2293                           "\tbecause \"%s\" is used [recursively] in its own definition!",
 
 2303                     Error(
"DefinedVariable",
 
 2304                        "The substitution of the alias \"%s\" by \"%s\" failed.",left,
aliasValue);
 
 2330            current = &(
work[0]);
 
 2418               current = &(
work[0]);
 
 2426               if (
leaf==
nullptr) {
 
 2437                           current = &(
work[0]);
 
 2449               current = &(
work[0]);
 
 2460               if (
leaf && 
leaf->IsOnTerminalBranch()) {
 
 2466               current = &(
work[0]);
 
 2475                  if (
leaf->IsOnTerminalBranch()) {
 
 2483                     current = &(
work[0]);
 
 2486               } 
else if (
cname[i] == 
'.') {
 
 2498                     current = &(
work[0]);
 
 2505               Error(
"DefinedVariable", 
"Unexpected control flow!");
 
 2565               current = &(
work[0]);
 
 2604         if (!
leaf) 
return -1;
 
 2606      final = 
leaf->IsOnTerminalBranch();
 
 2613   if (
leaf==
nullptr && left[0]!=0) {
 
 2624            Error(
"DefinedVariable",
 
 2625                  "The substitution of the branch alias \"%s\" by \"%s\" in \"%s\" failed\n"\
 
 2626                  "\tbecause \"%s\" is used [recursively] in its own definition!",
 
 2636            Error(
"DefinedVariable",
 
 2637                  "The substitution of the alias \"%s\" by \"%s\" failed.",left,
aliasValue);
 
 
 2688   if (!
fTree) 
return -1;
 
 2694   if (
name == 
"Entry$") {
 
 2700   if (
name == 
"LocalEntry$") {
 
 2706   if (
name == 
"Entries$") {
 
 2714   if (
name == 
"LocalEntries$") {
 
 2722   if (
name == 
"Iteration$") {
 
 2728   if (
name == 
"Length$") {
 
 2734   static const char *
lenfunc = 
"Length$(";
 
 2747   static const char *
minfunc = 
"Min$(";
 
 2760   static const char *
maxfunc = 
"Max$(";
 
 2773   static const char *
sumfunc = 
"Sum$(";
 
 2793      if (res<0) 
return res;
 
 2810   for(i=0,k=0; i<
cnamelen; ++i, ++k) {
 
 2811      if (
cname[i] == 
'[') {
 
 2837   if (res<0) 
return res;
 
 2839   if (!
leaf && res!=2) {
 
 2848            Error(
"DefinedVariable",
 
 2849                  "The substitution of the alias \"%s\" by \"%s\" failed\n"\
 
 2850                  "\tbecause \"%s\" is recursively used in its own definition!",
 
 2873               Error(
"DefinedVariable",
 
 2874                     "The substitution of the alias \"%s\" by \"%s\" failed.",
cname,
aliasValue);
 
 2897                  Error(
"Compile", 
" Bad numerical expression : \"%s\"",
thisAlias.Data());
 
 2899                  Error(
"Compile", 
" Part of the Variable \"%s\" exists but some of it is not accessible or useable",
thisAlias.Data());
 
 2902               Error(
"DefinedVariable",
 
 2903                     "The substitution of the alias \"%s\" by \"%s\" failed.",
cname,
aliasValue);
 
 2912   if (
leaf || res==2) {
 
 2915         Error(
"DefinedVariable",
"the branch \"%s\" has to be enabled to be used",
leaf->GetBranch()->GetName());
 
 2924         char *current = &( 
dims[0] );
 
 2931            if (current[0] == 
']') {
 
 2940                  char *end = (
char*)(
varindex.Data());
 
 2962            current = (
char*)
strstr( current, 
"[" );
 
 2970      if (res<0) 
return res;
 
 2978      if (
gcut->GetObjectX()) {
 
 2980            gcut->SetObjectX(
nullptr);
 
 2982      if (
gcut->GetObjectY()) {
 
 2984            gcut->SetObjectY(
nullptr);
 
 3009            if (
x[
i2] < min) min = 
x[
i2];
 
 3010            if (
x[
i2] > max) max = 
x[
i2];
 
 3015         formula += 
gcut->GetVarX();
 
 3017         formula += 
gcut->GetVarX();
 
 3029         Error(
"DefinedVariable",
"Found a TCutG without leaf information (%s)",
 
 
 3073          leafcur->GetBranch()->GetListOfBranches()->Last()==
nullptr) {
 
 3075         cl = 
lobj->GetClass();
 
 3078         if (
lElem->IsOnTerminalBranch()) {
 
 3196               else if (
curelem->GetClassPointer() && 
curelem->GetClassPointer()->GetCollectionProxy()) {
 
 3201                     sub_cl = 
sub_cl->GetCollectionProxy()->GetValueClass();
 
 
 3244      cl = 
lobj->GetClass();
 
 3250      } 
else if (
type > 60) {
 
 3256            cl = 
element->GetClassPointer();
 
 3284         if (
bc == 
bc->GetMother()) {
 
 3309         Error(
"BranchHasMethod",
"A TClonesArray was stored in a branch type no yet support (i.e. neither TBranchObject nor TBranchElement): %s",
branch->IsA()->GetName());
 
 
 3382                     Error(
"EvalInstance",
"Index %s is out of bound (%d) in formula %s",
 
 3415                  Error(
"EvalInstance",
"Index %s is out of bound (%d) in formula %s",
 
 3525                        Error(
"EvalInstance",
"Index %s is out of bound (%d/%d) in formula %s",
 
 3558                     Error(
"EvalInstance",
"Index %s is of out bound (%d/%d) in formula %s",
 
 
 3605               if (
info==
nullptr || !
info->IsCompiled()) {
 
 3610               if (
elem==
nullptr) {
 
 3614                  return elem->GetClass();
 
 3625         if (!obj) 
return nullptr;
 
 3629      default: 
return nullptr;
 
 
 3666                    leaf->GetBranch()->GetTree()->GetReadEntry(),
 
 3676            Warning(
"EvalObject",
"Not yet implement for kDirect and arrays (for %s).\nPlease contact the developers",
GetName());
 
 3678         return leaf->GetValuePointer();
 
 3683      default: 
return nullptr;
 
 
 3712         return (
char*)
leaf->GetValuePointer();
 
 
 3723#define TT_EVAL_INIT                                                                            \ 
 3724   TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(0);                                                \ 
 3726   const Int_t real_instance = GetRealInstance(instance,0);                                     \ 
 3728   if (instance==0) fNeedLoading = true;                                                        \ 
 3729   if (real_instance>=fNdata[0]) return 0;                                                      \ 
 3735   if (fNeedLoading) {                                                                          \ 
 3736      fNeedLoading = false;                                                                     \ 
 3737      TBranch *br = leaf->GetBranch();                                                          \ 
 3738      Long64_t tentry = br->GetTree()->GetReadEntry();                                          \ 
 3739      R__LoadBranch(br,tentry,fQuickLoad);                                                      \ 
 3746      if (fLookupType[0]==kDirect) {                                                            \ 
 3747         label = (char*)leaf->GetValuePointer();                                                \ 
 3749         label = (char*)GetLeafInfo(0)->GetValuePointer(leaf,instance);                         \ 
 
 3751      Int_t bin = fAxis->FindBin(label);                                                        \ 
 3755#define TREE_EVAL_INIT                                                                          \ 
 3756   const Int_t real_instance = GetRealInstance(instance,0);                                     \ 
 3758   if (real_instance>=fNdata[0]) return 0;                                                      \ 
 
 3764      label = (char*)GetLeafInfo(0)->GetValuePointer((TLeaf*)0x0,instance);                     \ 
 3765      Int_t bin = fAxis->FindBin(label);                                                        \ 
 3769#define TT_EVAL_INIT_LOOP                                                                       \ 
 3770   TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(code);                                             \ 
 3773   const Int_t real_instance = GetRealInstance(instance,code);                                  \ 
 3776      TBranch *branch = (TBranch*)fBranches.UncheckedAt(code);                                  \ 
 3778         Long64_t treeEntry = branch->GetTree()->GetReadEntry();                                \ 
 3779         R__LoadBranch(branch,treeEntry,fQuickLoad);                                            \ 
 3780      } else if (fDidBooleanOptimization) {                                                     \ 
 3781         branch = leaf->GetBranch();                                                            \ 
 3782         Long64_t treeEntry = branch->GetTree()->GetReadEntry();                                \ 
 3783         if (branch->GetReadEntry() != treeEntry) branch->GetEntry( treeEntry );                \ 
 3789      if (fDidBooleanOptimization) {                                                            \ 
 
 3790         TBranch *br = leaf->GetBranch();                                                       \ 
 3791         Long64_t treeEntry = br->GetTree()->GetReadEntry();                                    \ 
 3792         if (br->GetReadEntry() != treeEntry) br->GetEntry( treeEntry );                        \ 
 3795   if (real_instance>=fNdata[code]) return 0; 
 
 3797#define TREE_EVAL_INIT_LOOP                                                                     \ 
 3799   const Int_t real_instance = GetRealInstance(instance,code);                                  \ 
 3801   if (real_instance>=fNdata[code]) return 0; 
 
 3807   for (
int i=0; i<
len; ++i) res += 
sum->EvalInstance<T>(i);
 
 3815      res = 
arr->EvalInstance<T>(0);
 
 3816      for (
int i=1; i<
len; ++i) {
 
 3817         T val = 
arr->EvalInstance<T>(i);
 
 
 3830      res = 
arr->EvalInstance<T>(0);
 
 3831      for (
int i=1; i<
len; ++i) {
 
 3832         T val = 
arr->EvalInstance(i);
 
 
 3856         arr->EvalInstance<T>(0);
 
 3859      res = 
arr->EvalInstance<T>(i-1);
 
 3860      for (; i<
len; ++i) {
 
 3863            T val = 
arr->EvalInstance<T>(i);
 
 
 3888         arr->EvalInstance<T>(0);
 
 3891      res = 
arr->EvalInstance<T>(i-1);
 
 3892      for (; i<
len; ++i) {
 
 3895            T val = 
arr->EvalInstance<T>(i);
 
 
 4033            case kAdd        : pos--; 
tab[pos-1] += 
tab[pos]; 
continue;
 
 4037                                      else               tab[pos-1] /= 
tab[pos];
 
 4042                                tab[pos-1] = T(int1 % int2);
 
 4073            case ksq   : 
tab[pos-1] = 
tab[pos-1]*
tab[pos-1]; 
continue;
 
 4080            case kmin : pos--; 
tab[pos-1] = std::min(
tab[pos-1],
tab[pos]); 
continue;
 
 4081            case kmax : pos--; 
tab[pos-1] = std::max(
tab[pos-1],
tab[pos]); 
continue;
 
 4084                         else {
tab[pos-1] = 0;} 
 
 4087                           if (
dexp < -700) {
tab[pos-1] = 0; 
continue;}
 
 4092                         else {
tab[pos-1] = 0;} 
 
 4098            case ksign : 
if (
tab[pos-1] < 0) 
tab[pos-1] = -1; 
else tab[pos-1] = 1;
 
 4104            case kAnd  : pos--; 
if (
tab[pos-1]!=0 && 
tab[pos]!=0) 
tab[pos-1]=1;
 
 4107            case kOr   : pos--; 
if (
tab[pos-1]!=0 || 
tab[pos]!=0) 
tab[pos-1]=1;
 
 4111            case kEqual      : pos--; 
tab[pos-1] = (
tab[pos-1] == 
tab[pos]) ? 1 : 0; 
continue;
 
 4113            case kLess       : pos--; 
tab[pos-1] = (
tab[pos-1] <  
tab[pos]) ? 1 : 0; 
continue;
 
 4117            case kNot        :        
tab[pos-1] = (
tab[pos-1] !=        0) ? 0 : 1; 
continue;
 
 4161               int op = param % 10; 
 
 4163               if (
op == 1 && (!
tab[pos-1]) ) {
 
 4172               } 
else if (
op == 2 && 
tab[pos-1] ) {
 
 4194               int fno   = param / 1000;
 
 4195               int nargs = param % 1000;
 
 4228            switch (lookupType) {
 
 4250               default: 
tab[pos++] = 0; 
continue;
 
 4292               tab[pos] = param; pos++;
 
 4312               tab[pos] = param; pos++;
 
 4321               tab[pos] = param; pos++;
 
 4337                  tab[pos] = param; pos++;
 
 
 4411template double TTreeFormula::EvalInstance<double> (
int, 
char const**);
 
 4412template long double TTreeFormula::EvalInstance<long double> (
int, 
char const**);
 
 4413template long long TTreeFormula::EvalInstance<long long> (
int, 
char const**);
 
 4479            Warning(
"GetValueFromMethod", 
"No streamer info for branch %s.", 
branch->GetName());
 
 4483         char* address = 
branch->GetObject();
 
 4487         char* address = 
branch->GetObject();
 
 
 4539            Warning(
"GetValuePointerFromMethod", 
"No streamer info for branch %s.", 
branch->GetName());
 
 4543         char* address = 
branch->GetObject();
 
 4547         char* address = 
branch->GetObject();
 
 
 4598      return subform->IsInteger(
false);
 
 4605   if (
fNoper > 1) 
return false;
 
 4610      return subform->IsInteger(
false);
 
 
 4664   if (
fAxis) 
return true;
 
 4671         return info->IsInteger();
 
 4675   if (!
strcmp(
leaf->GetTypeName(),
"Int_t"))    
return true;
 
 4676   if (!
strcmp(
leaf->GetTypeName(),
"Short_t"))  
return true;
 
 4677   if (!
strcmp(
leaf->GetTypeName(),
"UInt_t"))   
return true;
 
 4678   if (!
strcmp(
leaf->GetTypeName(),
"UShort_t")) 
return true;
 
 4679   if (!
strcmp(
leaf->GetTypeName(),
"Bool_t"))   
return true;
 
 4680   if (!
strcmp(
leaf->GetTypeName(),
"Char_t"))   
return true;
 
 
 4681   if (!
strcmp(
leaf->GetTypeName(),
"UChar_t"))  
return true;
 
 4682   if (!
strcmp(
leaf->GetTypeName(),
"Long64_t"))  
return true;
 
 4683   if (!
strcmp(
leaf->GetTypeName(),
"ULong64_t"))  
return true;
 
 4684   if (!
strcmp(
leaf->GetTypeName(),
"string"))   
return true;
 
 4719      return info->IsString();
 
 4726            if (
leaf->GetLenStatic() > 1) 
return true;
 
 4730            if (
leaf->GetLeafCount()) {
 
 4744            if (
bid < 0) 
return false;
 
 4745            if (
br->GetInfo()==
nullptr || !
br->GetInfo()->IsCompiled()) {
 
 
 4778         return info->IsString();
 
 4814   } 
else if (
mode == -1) {
 
 4816   } 
else if (
mode == 0) {
 
 4819         const char * val = 
nullptr;
 
 4832                     val = (
const char*)
leaf->GetValuePointer();
 
 4854            char *
expo = 
nullptr;
 
 4920                  char *start = 
expo - off;
 
 
 4963   for(
Int_t k=0; k <= 
n; ++k) {
 
 
 4986   if (!axis) {
fAxis = 
nullptr; 
return;}
 
 
 5011   if (
R__b.IsReading()) {
 
 
 5105            if (
fx) 
fx->UpdateFormulaLeaves();
 
 5106            if (
fy) 
fy->UpdateFormulaLeaves();
 
 5122            subform->UpdateFormulaLeaves();
 
 5136                  subform->UpdateFormulaLeaves();
 
 
 5206         switch(
subform->GetMultiplicity()) {
 
 5236         if (!
gcut) 
continue;
 
 5241            switch(
fx->GetMultiplicity()) {
 
 5249            switch(
fy->GetMultiplicity()) {
 
 5266      if (!
leaf) 
continue;
 
 5275      if (
leaf->GetLeafCount()) {
 
 
 5337   for (i=0; i<
fNoper ; ++i) {
 
 5339      if (
leaf==
nullptr) 
continue;
 
 
 5363      if (
fCodes[i] < 0) 
continue;
 
 5392         if (
tleaf->GetReadEntry() < 0) {
 
 5401      if (
leaf->GetLeafCount()) {
 
 5426            if (
branch->GetAddress() == 
nullptr) {
 
 5541                  for(
int z=0; z<
size; ++z) {
 
 5562         } 
else if (
leafinfo->GetMultiplicity()==-1) {
 
 
 5641   for (
int k=0; k<
fNoper; k++) {
 
 
 5683   if (!
leaf) 
return false;
 
 5688         if (
br->GetType()==31) {
 
 5701         } 
else if (
br->GetType()==41) {
 
 5706            if ( count->
GetID() >= 0 ) {
 
 5729         } 
else if (
br->GetID()<0) {
 
 
static Roo_reg_AGKInteg1D instance
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
unsigned long long ULong64_t
 
const Int_t kDoNotProcess
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char cname
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
 
Option_t Option_t TPoint TPoint const char mode
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
R__EXTERN TRandom * gRandom
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
const_iterator begin() const
 
const_iterator end() const
 
void Set(Int_t n) override
Set size of this array to n ints.
 
const Int_t * GetArray() const
 
void AddAt(Int_t c, Int_t i)
Add Int_t c at position i. Check for out of bounds.
 
Class to manage histogram axis.
 
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
 
A Branch for the case of an object.
 
const char * GetClassName() const override
Return the name of the user class whose content is stored in this branch, if any.
 
TStreamerInfo * GetInfo() const
Get streamer info for the branch class.
 
A Branch for the case of an object.
 
A TTree is a list of TBranches.
 
Buffer base class used for serializing objects.
 
TClassRef is used to implement a permanent reference to a TClass object.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
Bool_t HasDataMemberInfo() const
 
ClassInfo_t * GetClassInfo() const
 
TVirtualStreamerInfo * GetStreamerInfo(Int_t version=0, Bool_t isTransient=kFALSE) const
returns a pointer to the TVirtualStreamerInfo object for version If the object does not exist,...
 
TVirtualCollectionProxy * GetCollectionProxy() const
Return the proxy describing the collection (if any).
 
TMethod * GetMethodAllAny(const char *method)
Return pointer to method without looking at parameters.
 
TVirtualRefProxy * GetReferenceProxy() const
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
An array of clone (identical) objects.
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
A small helper class to help in keeping track of the array dimensions encountered in the analysis of ...
 
TDimensionInfo(Int_t code, Int_t oper, Int_t size, TFormLeafInfoMultiVarDim *multiDim)
 
~TDimensionInfo() override
 
TFormLeafInfoMultiVarDim * fMultiDim
 
Describe directory structure in memory.
 
A List of entry numbers in a TTree or TChain.
 
virtual Int_t Contains(Long64_t entry, TTree *tree=nullptr)
 
A TLeaf for the general case when using the branches created via a TStreamerInfo (i....
 
A TLeaf for a general object derived from TObject.
 
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
 
void Add(TObject *obj) override
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
Method or function calling interface.
 
static const EReturnType kLong
 
static const EReturnType kString
 
static const EReturnType kOther
 
static const EReturnType kDouble
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
virtual void SetName(const char *name)
Set the name of the TNamed.
 
Int_t GetEntriesFast() const
 
void AddAt(TObject *obj, Int_t idx) override
Add object at position ids.
 
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
 
void Streamer(TBuffer &) override
Stream all objects in the array to or from the I/O buffer.
 
Int_t GetEntries() const override
Return the number of objects in array (i.e.
 
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
 
TObject * At(Int_t idx) const override
 
TObject * UncheckedAt(Int_t i) const
 
TObject * FindObject(const char *name) const override
Find an object in this collection using its name.
 
Int_t GetLast() const override
Return index of last object in array.
 
Mother of all ROOT objects.
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
Execute method on this object with the given parameter string, e.g.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
Double_t Rndm() override
Machine independent random number generator.
 
const char * GetCountName() const
 
Describes a persistent version of a class.
 
TStreamerElement * GetElement(Int_t id) const override
 
const char * Data() const
 
A TTree represents a columnar dataset.
 
virtual TBranch * FindBranch(const char *name)
Return the branch that correspond to the path 'branchname', which can include the name of the tree or...
 
virtual TIterator * GetIteratorOnAllLeaves(bool dir=kIterForward)
Creates a new iterator that will go through all the leaves on the tree itself and its friend.
 
virtual Long64_t GetEntries() const
 
virtual TLeaf * GetLeaf(const char *branchname, const char *leafname)
Return pointer to the 1st Leaf named name in any Branch of this Tree or any branch in the list of fri...
 
virtual Long64_t GetReadEntry() const
 
virtual TObjArray * GetListOfBranches()
 
virtual TTree * GetTree() const
 
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
 
virtual const char * GetAlias(const char *aliasName) const
Returns the expanded value of the alias. Search in the friends if any.
 
virtual Int_t GetTreeNumber() const
 
virtual TLeaf * FindLeaf(const char *name)
Find leaf..
 
virtual const char * GetFriendAlias(TTree *) const
If the 'tree' is a friend, this method returns its alias name.
 
virtual EDataType GetType() const =0
If the value type is a fundamental data type, return its type (see enumeration EDataType).
 
virtual TClass * GetValueClass() const =0
If the value type is a user-defined class, return a pointer to the TClass representing the value type...
 
virtual Bool_t HasCounter() const =0
 
virtual TObjArray * GetElements() const =0
 
RVec< PromoteTypes< T0, T1 > > fmod(const T0 &x, const RVec< T1 > &v)
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
Double_t CosH(Double_t)
Returns the hyperbolic cosine of x.
 
Double_t ACos(Double_t)
Returns the principal value of the arc cosine of x, expressed in radians.
 
Double_t ASin(Double_t)
Returns the principal value of the arc sine of x, expressed in radians.
 
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
 
Double_t ATan(Double_t)
Returns the principal value of the arc tangent of x, expressed in radians.
 
Double_t ASinH(Double_t)
Returns the area hyperbolic sine of x.
 
Double_t TanH(Double_t)
Returns the hyperbolic tangent of x.
 
Double_t ACosH(Double_t)
Returns the nonnegative area hyperbolic cosine of x.
 
Double_t ATan2(Double_t y, Double_t x)
Returns the principal value of the arc tangent of y/x, expressed in radians.
 
Double_t Log(Double_t x)
Returns the natural logarithm of x.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
 
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
 
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
 
Double_t Tan(Double_t)
Returns the tangent of an angle of x radians.
 
Double_t ATanH(Double_t)
Returns the area hyperbolic tangent of x.
 
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
 
Double_t SinH(Double_t)
Returns the hyperbolic sine of `x.
 
static uint64_t sum(uint64_t i)