115   std::istringstream 
iss(str);
 
  117   return iss >> std::noskipws >> number && 
iss.eof();
 
 
  140   fDidBooleanOptimization(
false), fDimensionSetup(nullptr)
 
 
  172    fDidBooleanOptimization(
false), fDimensionSetup(nullptr)
 
 
  181                           const std::vector<std::string>& 
aliases)
 
  183    fDidBooleanOptimization(
false), fDimensionSetup(nullptr), fAliasesUsed(
aliases)
 
 
  228      Warning(
"TTreeFormula",
"Too many items in expression:%s",expression);
 
  238         if (!
leafc) 
continue;
 
  286            Error(
"TTreeFormula",
 
  287                  "Index %d for dimension #%d in %s is too high (max is %d)",
 
 
  418   const char * current;
 
  427   if (current[0] != 
'[') current--;
 
  443      current = (
char*)
strstr( current, 
"[" );
 
 
  457   return (
size==-1) ? 1 : 0;
 
 
  481      if (
elem->GetArrayDim()>0) {
 
  483         ndim = 
elem->GetArrayDim();
 
  529   } 
else if ( 
c && 
c->GetReferenceProxy() && 
c->GetReferenceProxy()->HasCounter() ) {
 
  532   } 
else if (
elem->GetArrayDim()>0) {
 
  534      ndim = 
elem->GetArrayDim();
 
  560   } 
while (current<ndim);
 
 
  605   const char *bname = 
leaf->GetBranch()->GetName();
 
  639      if (
branch->GetBranchCount2()) {
 
  641         if (!
branch->GetBranchCount()) {
 
  643                    "Noticed an incorrect in-memory TBranchElement object (%s).\nIt has a BranchCount2 but no BranchCount!\nThe result might be incorrect!",
 
  651                    "Already in kDataMember mode when handling multiple variable dimensions");
 
 
  672   static const char *
altfunc = 
"Alt$(";
 
  673   static const char *
minfunc = 
"MinIf$(";
 
  674   static const char *
maxfunc = 
"MaxIf$(";
 
  679       && expression[
strlen(expression)-1]==
')' ) {
 
  684       && expression[
strlen(expression)-1]==
')' ) {
 
  689       && expression[
strlen(expression)-1]==
')' ) {
 
  701      for(
unsigned int i=start;i<
strlen(expression);++i) {
 
  702         switch (expression[i]) {
 
  703            case '(': 
paran++; 
break;
 
  704            case ')': 
paran--; 
break;
 
  705            case '"': instr = instr ? 0 : 1; 
break;
 
  706            case '[': 
brack++; 
break;
 
  707            case ']': 
brack--; 
break;
 
  709         if (expression[i]==
',' && 
paran==0 && instr==0 && 
brack==0) {
 
  710            part1 = full( start, i-start );
 
  711            part2 = full( i+1, full.Length() -1 - (i+1) );
 
  722            if (
alternate->GetManager()->GetMultiplicity() != 0 ) {
 
  723               Error(
"DefinedVariable",
"The 2nd arguments in %s can not be an array (%s,%d)!",
 
  725                     alternate->GetManager()->GetMultiplicity());
 
  732                  Error(
"DefinedVariable",
 
  733                        "The 2nd arguments in %s has to return the same type as the 1st argument (string)!",
 
  739               Error(
"DefinedVariable",
 
  740                     "The 2nd arguments in %s has to return the same type as the 1st argument (numerical type)!",
 
  749                  Error(
"DefinedVariable",
 
  750                        "The arguments of %s can not be strings!",
 
 
  804         if ( 
br->GetInfo() == nullptr ) {
 
  805            Error(
"DefinedVariable",
"Missing StreamerInfo for %s.  We will be unable to read!",
 
  816            if (
mom->GetInfo()==
nullptr) {
 
  817               Error(
"DefinedVariable",
"Missing StreamerInfo for %s." 
  818                     "  We will be unable to read!",
 
  822            if ((
mom->GetType()) < -1 && !
mom->GetAddress()) {
 
  823               Error(
"DefinedVariable", 
"Address not set when the type of the branch is negative for for %s.  We will be unable to read!", 
mom->GetName());
 
  836   const char* 
alias = 
nullptr;
 
  854      Error(
"TTreeFormula",
 
  855            "Length of leafname (%d) exceeds maximum allowed by the buffer (%d), formula will be truncated.",
 
  867      if (
leaf->GetBranch()!=
leaf->GetBranch()->GetMother()) {
 
  945               cl = 
element->GetClassPointer();
 
  950            cl = 
info->GetClass();
 
  957      if (cl && 
branchEl->GetBranchCount()) {
 
  963                       "Missing TStreamerElement in object in TClonesArray section");
 
  996         } 
else if (
branchEl->GetType()==41) {
 
 1001               Warning(
"DefinedVariable",
"Missing TStreamerElement in object in Collection section");
 
 1007            if ( count->
GetID() >= 0 ) {
 
 1048      } 
else if ( 
branchEl->GetType()==3) {
 
 1121             && 
elemCl->GetCollectionProxy()->GetValueClass()
 
 1122             && 
elemCl->GetCollectionProxy()->GetValueClass()->GetCollectionProxy()) {
 
 1135                                                      elemCl->GetCollectionProxy()->GetValueClass(),
 
 1141            cl = 
elemCl->GetCollectionProxy()->GetValueClass();
 
 1155               && 
elemCl->GetCollectionProxy()->GetValueClass()==
nullptr 
 1156               && 
elemCl->GetCollectionProxy()->GetType()>0) {
 
 1183         } 
else if (!
element->IsaPointer()) {
 
 1209               Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1217        Error(
"ParseWithLeaf", 
"Found a numerical leaf but the name has trailing characters: \"%s\"", 
subExpression);
 
 1280            if ( ! 
casted->InheritsFrom(cl) ) {
 
 1281               Error(
"DefinedVariable",
"%s does not inherit from %s.  Casting not possible!",
 
 1307      for (i=0, current = &(
work[0]); i<=
nchname;i++ ) {
 
 1309         if (right[i] == 
'(') {
 
 1312               *current++ = right[i++];
 
 1313            } 
while(right[i]!=
')' && right[i]);
 
 1314            *current++ = right[i];
 
 1318               *params = 0; params++;
 
 1319            } 
else params = (
char *) 
")";
 
 1321               Error(
"DefinedVariable",
"Can not call '%s' with a class",
work);
 
 1325               Error(
"DefinedVariable",
"Class probably unavailable:%s",cl->
GetName());
 
 1339                                 || !
leaf->IsOnTerminalBranch());
 
 1370                                 || !
leaf->IsOnTerminalBranch());
 
 1393                  Warning(
"DefinedVariable",
"Can not call method on content of %s in %s\n",
 
 1400               Error(
"DefinedVariable",
 
 1401                     "Could not discover the TClass corresponding to (%s)!",
 
 1412                                 || !
leaf->IsOnTerminalBranch());
 
 1421                  Error(
"DefinedVariable",
 
 1422                        "Can not call method %s on class without dictionary (%s)!",
 
 1429               if (!
method->GetMethod()) {
 
 1430                  Error(
"DefinedVariable",
"Unknown method:%s in %s",right,cl->
GetName());
 
 1433               switch(
method->ReturnType()) {
 
 1455                     Error(
"DefineVariable",
"Method %s from %s has an impossible return type %d",
 
 1470            current = &(
work[0]);
 
 1478                  Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1503         } 
else if (right[i] == 
')') {
 
 1521               current = &(
work[0]);
 
 1528         } 
else if (i > 0 && (right[i] == 
'.' || right[i] == 
'[' || right[i] == 
'\0') ) {
 
 1610                  if (
clbranch->GetListOfBranches()->GetLast()>=0) {
 
 1612                        Error(
"DefinedVariable",
"Unimplemented usage of ClonesArray");
 
 1623                          "TClonesArray object was not retrievable for %s!",
 
 1678                  Error(
"DefinedVariable",
"Could you not find the inner class for %s with coll type = %d",
 
 1682                  Warning(
"DefinedVariable",
"No data member in content of %s in %s\n",
 
 1690               if (
leaf) 
leaf->GetBranch()->Print();
 
 1691               Warning(
"DefinedVariable",
"Missing class for %s!",
name.Data());
 
 1735                  } 
else if (
curelem->GetClassPointer() && 
curelem->GetClassPointer()->GetCollectionProxy()) {
 
 1741                        curelem->GetClassPointer()->GetCollectionProxy()->GetValueClass();
 
 1747                           Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1797                  bool object = 
false;
 
 1798                  bool pointer = 
false;
 
 1830                        Error(
"DefinedVariable",
 
 1831                              "%s is a datamember of %s BUT is not yet of a supported type (%d)",
 
 1836                        Error(
"DefinedVariable",
 
 1837                              "%s is a datamember of %s BUT is not of a unknown type (%d)",
 
 1844                        || 
element->GetClassPointer()->GetCollectionProxy() ) )
 
 1862                                && 
element->GetClassPointer()->GetCollectionProxy()) {
 
 1866                           Warning(
"DefinedVariable",
"TTreeFormula support only 2 level of variables size collections.  Assuming '@' notation for the collection %s.",
 
 1886                           if (
element->GetClassPointer()->GetCollectionProxy()->GetValueClass()==
nullptr) {
 
 1888                                 element->GetClassPointer()->GetCollectionProxy());
 
 1899                           if (
valueCl!=
nullptr && 
valueCl->GetCollectionProxy()!=
nullptr) {
 
 1916                           if (
elemCl->GetCollectionProxy() &&
 
 1917                               elemCl->GetCollectionProxy()->GetValueClass()==
nullptr) {
 
 1939                     } 
else if (pointer) {
 
 1951               if (cl) 
Error(
"DefinedVariable",
"%s is not a datamember of %s",
work,cl->
GetName());
 
 1968            if ( right[i] != 
'\0' )  {
 
 1975                        if ( 
inf->IsReference() )  {
 
 1984                     cl = 
refInfo->GetValueClass(ptr);
 
 1986                        Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1992                     Error(
"DefinedVariable",
"Failed to access class type of reference target (%s)",
element->GetName());
 
 1997                  cl = 
element->GetClassPointer();
 
 2001            current = &(
work[0]);
 
 2014            *current++ = right[i];
 
 2035         if (!last) 
return action;
 
 2063         if (!last) 
return action;
 
 
 2211   const char *
cname = expression;
 
 2212   char    first[
kMaxLen];    first[0] = 
'\0';
 
 2213   char   second[
kMaxLen*2]; second[0] = 
'\0';
 
 2214   char    right[
kMaxLen*2];  right[0] = 
'\0';
 
 2216   char     left[
kMaxLen];     left[0] = 
'\0';
 
 2229   for (i=0, current = &(
work[0]); i<=
nchname && !
final;i++ ) {
 
 2231      *current++ = 
cname[i];
 
 2233      if (
cname[i] == 
'(') {
 
 2236         if (current==
work+1) {
 
 2251      if (
cname[i] == 
')') {
 
 2268               current = &(
work[0]);
 
 2274               current = &(
work[0]);
 
 2277                       "Casting to primary types like \"%s\" is not supported yet",
cast_name.Data());
 
 2286            *params = 0; params++;
 
 2319                        Error(
"DefinedVariable",
 
 2320                           "The substitution of the branch alias \"%s\" by \"%s\" in \"%s\" failed\n"\
 
 2321                           "\tbecause \"%s\" is used [recursively] in its own definition!",
 
 2331                     Error(
"DefinedVariable",
 
 2332                        "The substitution of the alias \"%s\" by \"%s\" failed.",left,
aliasValue);
 
 2358            current = &(
work[0]);
 
 2446               current = &(
work[0]);
 
 2454               if (
leaf==
nullptr) {
 
 2465                           current = &(
work[0]);
 
 2477               current = &(
work[0]);
 
 2488               if (
leaf && 
leaf->IsOnTerminalBranch()) {
 
 2494               current = &(
work[0]);
 
 2503                  if (
leaf->IsOnTerminalBranch()) {
 
 2511                     current = &(
work[0]);
 
 2514               } 
else if (
cname[i] == 
'.') {
 
 2526                     current = &(
work[0]);
 
 2533               Error(
"DefinedVariable", 
"Unexpected control flow!");
 
 2593               current = &(
work[0]);
 
 2632         if (!
leaf) 
return -1;
 
 2634      final = 
leaf->IsOnTerminalBranch();
 
 2641   if (
leaf==
nullptr && left[0]!=0) {
 
 2652            Error(
"DefinedVariable",
 
 2653                  "The substitution of the branch alias \"%s\" by \"%s\" in \"%s\" failed\n"\
 
 2654                  "\tbecause \"%s\" is used [recursively] in its own definition!",
 
 2664            Error(
"DefinedVariable",
 
 2665                  "The substitution of the alias \"%s\" by \"%s\" failed.",left,
aliasValue);
 
 
 2716   if (!
fTree) 
return -1;
 
 2720        Error(
"TTreeFormula", 
"The length of the variable name (%d) exceeds the maximum allowed (%d)", 
name.Length(), 
kMaxLen);
 
 2725   if (
name == 
"Entry$") {
 
 2731   if (
name == 
"LocalEntry$") {
 
 2737   if (
name == 
"Entries$") {
 
 2745   if (
name == 
"LocalEntries$") {
 
 2753   if (
name == 
"Iteration$") {
 
 2759   if (
name == 
"Length$") {
 
 2765   static const char *
lenfunc = 
"Length$(";
 
 2778   static const char *
minfunc = 
"Min$(";
 
 2791   static const char *
maxfunc = 
"Max$(";
 
 2804   static const char *
sumfunc = 
"Sum$(";
 
 2824      if (res<0) 
return res;
 
 2841   for(i=0,k=0; i<
cnamelen; ++i, ++k) {
 
 2842      if (
cname[i] == 
'[') {
 
 2868   if (res<0) 
return res;
 
 2870   if (!
leaf && res!=2) {
 
 2879            Error(
"DefinedVariable",
 
 2880                  "The substitution of the alias \"%s\" by \"%s\" failed\n"\
 
 2881                  "\tbecause \"%s\" is recursively used in its own definition!",
 
 2903               Error(
"DefinedVariable",
 
 2904                     "The substitution of the alias \"%s\" by \"%s\" failed.",
cname,
aliasValue);
 
 2927                  Error(
"Compile", 
" Bad numerical expression : \"%s\"",
thisAlias.Data());
 
 2929                  Error(
"Compile", 
" Part of the Variable \"%s\" exists but some of it is not accessible or useable",
thisAlias.Data());
 
 2932               Error(
"DefinedVariable",
 
 2933                     "The substitution of the alias \"%s\" by \"%s\" failed.",
cname,
aliasValue);
 
 2942   if (
leaf || res==2) {
 
 2945         Error(
"DefinedVariable",
"the branch \"%s\" has to be enabled to be used",
leaf->GetBranch()->GetName());
 
 2954         char *current = &( 
dims[0] );
 
 2961            if (current[0] == 
']') {
 
 2970                  char *end = (
char*)(
varindex.Data());
 
 2992            current = (
char*)
strstr( current, 
"[" );
 
 3000      if (res<0) 
return res;
 
 3008      if (
gcut->GetObjectX()) {
 
 3010            gcut->SetObjectX(
nullptr);
 
 3012      if (
gcut->GetObjectY()) {
 
 3014            gcut->SetObjectY(
nullptr);
 
 3039            if (
x[
i2] < min) min = 
x[
i2];
 
 3040            if (
x[
i2] > max) max = 
x[
i2];
 
 3045         formula += 
gcut->GetVarX();
 
 3047         formula += 
gcut->GetVarX();
 
 3059         Error(
"DefinedVariable",
"Found a TCutG without leaf information (%s)",
 
 
 3103          leafcur->GetBranch()->GetListOfBranches()->Last()==
nullptr) {
 
 3105         cl = 
lobj->GetClass();
 
 3108         if (
lElem->IsOnTerminalBranch()) {
 
 3226               else if (
curelem->GetClassPointer() && 
curelem->GetClassPointer()->GetCollectionProxy()) {
 
 3231                     sub_cl = 
sub_cl->GetCollectionProxy()->GetValueClass();
 
 
 3274      cl = 
lobj->GetClass();
 
 3280      } 
else if (
type > 60) {
 
 3286            cl = 
element->GetClassPointer();
 
 3314         if (
bc == 
bc->GetMother()) {
 
 3339         Error(
"BranchHasMethod",
"A TClonesArray was stored in a branch type no yet support (i.e. neither TBranchObject nor TBranchElement): %s",
branch->IsA()->GetName());
 
 
 3412                     Error(
"EvalInstance",
"Index %s is out of bound (%d) in formula %s",
 
 3445                  Error(
"EvalInstance",
"Index %s is out of bound (%d) in formula %s",
 
 3535            for (
Int_t dim = 1; dim < max_dim; dim++) {
 
 3555                        Error(
"EvalInstance",
"Index %s is out of bound (%d/%d) in formula %s",
 
 3588                     Error(
"EvalInstance",
"Index %s is of out bound (%d/%d) in formula %s",
 
 
 3635               if (
info==
nullptr || !
info->IsCompiled()) {
 
 3640               if (
elem==
nullptr) {
 
 3644                  return elem->GetClass();
 
 3655         if (!obj) 
return nullptr;
 
 3659      default: 
return nullptr;
 
 
 3696                    leaf->GetBranch()->GetTree()->GetReadEntry(),
 
 3706            Warning(
"EvalObject",
"Not yet implement for kDirect and arrays (for %s).\nPlease contact the developers",
GetName());
 
 3708         return leaf->GetValuePointer();
 
 3713      default: 
return nullptr;
 
 
 3742         return (
char*)
leaf->GetValuePointer();
 
 
 3753#define TT_EVAL_INIT                                                                            \ 
 3754   TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(0);                                                \ 
 3756   const Int_t real_instance = GetRealInstance(instance,0);                                     \ 
 3758   if (instance==0) fNeedLoading = true;                                                        \ 
 3759   if (real_instance>=fNdata[0]) return 0;                                                      \ 
 3765   if (fNeedLoading) {                                                                          \ 
 3766      fNeedLoading = false;                                                                     \ 
 3767      TBranch *br = leaf->GetBranch();                                                          \ 
 3768      if (br && br->GetTree()) {                                                                \ 
 3769         Long64_t tentry = br->GetTree()->GetReadEntry();                                       \ 
 3770         R__LoadBranch(br,tentry,fQuickLoad);                                                   \ 
 3772        Error("TTreeFormula::TT_EVAL_INIT",                                                     \ 
 3773          "Could not init branch associated to this leaf (%s).", leaf->GetName());              \ 
 3781      if (fLookupType[0]==kDirect) {                                                            \ 
 3782         label = (char*)leaf->GetValuePointer();                                                \ 
 3784         label = (char*)GetLeafInfo(0)->GetValuePointer(leaf,instance);                         \ 
 
 3786      Int_t bin = fAxis->FindBin(label);                                                        \ 
 3790#define TREE_EVAL_INIT                                                                          \ 
 3791   const Int_t real_instance = GetRealInstance(instance,0);                                     \ 
 3793   if (real_instance>=fNdata[0]) return 0;                                                      \ 
 
 3799      label = (char*)GetLeafInfo(0)->GetValuePointer((TLeaf*)0x0,instance);                     \ 
 3800      Int_t bin = fAxis->FindBin(label);                                                        \ 
 3804#define TT_EVAL_INIT_LOOP                                                                       \ 
 3805   TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(code);                                             \ 
 3808   const Int_t real_instance = GetRealInstance(instance,code);                                  \ 
 3811      TBranch *branch = (TBranch*)fBranches.UncheckedAt(code);                                  \ 
 3813         if (branch->GetTree()) {                                                               \ 
 3814            Long64_t treeEntry = branch->GetTree()->GetReadEntry();                             \ 
 3815            R__LoadBranch(branch,treeEntry,fQuickLoad);                                         \ 
 3817            Error("TTreeFormula::TT_EVAL_INIT_LOOP",                                            \ 
 3818                  "Could not init branch associated to this leaf (%s).", leaf->GetName());      \ 
 3820      } else if (fDidBooleanOptimization) {                                                     \ 
 3821         branch = leaf->GetBranch();                                                            \ 
 3822         if (branch->GetTree()) {                                                               \ 
 3823            Long64_t treeEntry = branch->GetTree()->GetReadEntry();                             \ 
 3824            if (branch->GetReadEntry() != treeEntry) branch->GetEntry( treeEntry );             \ 
 3826            Error("TTreeFormula::TT_EVAL_INIT_LOOP",                                            \ 
 3827                  "Could not init branch associated to this leaf (%s).", leaf->GetName());      \ 
 3834      if (fDidBooleanOptimization) {                                                            \ 
 3835         TBranch *br = leaf->GetBranch();                                                       \ 
 3836         if (br->GetTree()) {                                                                   \ 
 3837            Long64_t treeEntry = br->GetTree()->GetReadEntry();                                 \ 
 3838            if (br->GetReadEntry() != treeEntry) br->GetEntry( treeEntry );                     \ 
 
 3840            Error("TTreeFormula::TT_EVAL_INIT_LOOP",                                            \ 
 3841                  "Could not init branch associated to this leaf (%s).", leaf->GetName());      \ 
 3845   if (real_instance>=fNdata[code]) return 0; 
 
 3847#define TREE_EVAL_INIT_LOOP                                                                     \ 
 3849   const Int_t real_instance = GetRealInstance(instance,code);                                  \ 
 3851   if (real_instance>=fNdata[code]) return 0; 
 
 3857   for (
int i=0; i<
len; ++i) res += 
sum->EvalInstance<T>(i);
 
 3865      res = 
arr->EvalInstance<T>(0);
 
 3866      for (
int i=1; i<
len; ++i) {
 
 3867         T val = 
arr->EvalInstance<T>(i);
 
 
 3880      res = 
arr->EvalInstance<T>(0);
 
 3881      for (
int i=1; i<
len; ++i) {
 
 3882         T val = 
arr->EvalInstance(i);
 
 
 3906         arr->EvalInstance<T>(0);
 
 3909      res = 
arr->EvalInstance<T>(i-1);
 
 3910      for (; i<
len; ++i) {
 
 3913            T val = 
arr->EvalInstance<T>(i);
 
 
 3938         arr->EvalInstance<T>(0);
 
 3941      res = 
arr->EvalInstance<T>(i-1);
 
 3942      for (; i<
len; ++i) {
 
 3945            T val = 
arr->EvalInstance<T>(i);
 
 
 4087            case kAdd        : pos--; 
tab[pos-1] += 
tab[pos]; 
continue;
 
 4091                                      else               tab[pos-1] /= 
tab[pos];
 
 4127            case ksq   : 
tab[pos-1] = 
tab[pos-1]*
tab[pos-1]; 
continue;
 
 4134            case kmin : pos--; 
tab[pos-1] = std::min(
tab[pos-1],
tab[pos]); 
continue;
 
 4135            case kmax : pos--; 
tab[pos-1] = std::max(
tab[pos-1],
tab[pos]); 
continue;
 
 4138                         else {
tab[pos-1] = 0;} 
 
 4141                           if (
dexp < -700) {
tab[pos-1] = 0; 
continue;}
 
 4146                         else {
tab[pos-1] = 0;} 
 
 4152            case ksign : 
if (
tab[pos-1] < 0) 
tab[pos-1] = -1; 
else tab[pos-1] = 1;
 
 4158            case kAnd  : pos--; 
if (
tab[pos-1]!=0 && 
tab[pos]!=0) 
tab[pos-1]=1;
 
 4161            case kOr   : pos--; 
if (
tab[pos-1]!=0 || 
tab[pos]!=0) 
tab[pos-1]=1;
 
 4165            case kEqual      : pos--; 
tab[pos-1] = (
tab[pos-1] == 
tab[pos]) ? 1 : 0; 
continue;
 
 4167            case kLess       : pos--; 
tab[pos-1] = (
tab[pos-1] <  
tab[pos]) ? 1 : 0; 
continue;
 
 4171            case kNot        :        
tab[pos-1] = (
tab[pos-1] !=        0) ? 0 : 1; 
continue;
 
 4215               int op = param % 10; 
 
 4217               if (
op == 1 && (!
tab[pos-1]) ) {
 
 4226               } 
else if (
op == 2 && 
tab[pos-1] ) {
 
 4248               int fno   = param / 1000;
 
 4249               int nargs = param % 1000;
 
 4282            switch (lookupType) {
 
 4304               default: 
tab[pos++] = 0; 
continue;
 
 4346               tab[pos] = param; pos++;
 
 4366               tab[pos] = param; pos++;
 
 4375               tab[pos] = param; pos++;
 
 4391                  tab[pos] = param; pos++;
 
 
 4465template double TTreeFormula::EvalInstance<double> (
int, 
char const**);
 
 4466template long double TTreeFormula::EvalInstance<long double> (
int, 
char const**);
 
 4467template long long TTreeFormula::EvalInstance<long long> (
int, 
char const**);
 
 4533            Warning(
"GetValueFromMethod", 
"No streamer info for branch %s.", 
branch->GetName());
 
 4537         char* address = 
branch->GetObject();
 
 4541         char* address = 
branch->GetObject();
 
 
 4593            Warning(
"GetValuePointerFromMethod", 
"No streamer info for branch %s.", 
branch->GetName());
 
 4597         char* address = 
branch->GetObject();
 
 4601         char* address = 
branch->GetObject();
 
 
 4652      return subform->IsInteger(
false);
 
 4659   if (
fNoper > 1) 
return false;
 
 4664      return subform->IsInteger(
false);
 
 
 4718   if (
fAxis) 
return true;
 
 4725         return info->IsInteger();
 
 4729   if (!
strcmp(
leaf->GetTypeName(),
"Int_t"))    
return true;
 
 4730   if (!
strcmp(
leaf->GetTypeName(),
"Short_t"))  
return true;
 
 4731   if (!
strcmp(
leaf->GetTypeName(),
"UInt_t"))   
return true;
 
 4732   if (!
strcmp(
leaf->GetTypeName(),
"UShort_t")) 
return true;
 
 4733   if (!
strcmp(
leaf->GetTypeName(),
"Bool_t"))   
return true;
 
 4734   if (!
strcmp(
leaf->GetTypeName(),
"Char_t"))   
return true;
 
 
 4735   if (!
strcmp(
leaf->GetTypeName(),
"UChar_t"))  
return true;
 
 4736   if (!
strcmp(
leaf->GetTypeName(),
"Long64_t"))  
return true;
 
 4737   if (!
strcmp(
leaf->GetTypeName(),
"ULong64_t"))  
return true;
 
 4738   if (!
strcmp(
leaf->GetTypeName(),
"string"))   
return true;
 
 4773      return info->IsString();
 
 4780            if (
leaf->GetLenStatic() > 1) 
return true;
 
 4784            if (
leaf->GetLeafCount()) {
 
 4798            if (
bid < 0) 
return false;
 
 4799            if (
br->GetInfo()==
nullptr || !
br->GetInfo()->IsCompiled()) {
 
 
 4832         return info->IsString();
 
 4868   } 
else if (
mode == -1) {
 
 4870   } 
else if (
mode == 0) {
 
 4873         const char * val = 
nullptr;
 
 4886                     val = (
const char*)
leaf->GetValuePointer();
 
 4908            char *
expo = 
nullptr;
 
 4974                  char *start = 
expo - off;
 
 
 5007      for(
UInt_t dim=0; dim<max_dim ;++dim) {
 
 5017   for(
Int_t k=0; k <= 
n; ++k) {
 
 
 5040   if (!axis) {
fAxis = 
nullptr; 
return;}
 
 
 5065   if (
R__b.IsReading()) {
 
 
 5159            if (
fx) 
fx->UpdateFormulaLeaves();
 
 5160            if (
fy) 
fy->UpdateFormulaLeaves();
 
 5176            subform->UpdateFormulaLeaves();
 
 5190                  subform->UpdateFormulaLeaves();
 
 
 5260         switch(
subform->GetMultiplicity()) {
 
 5290         if (!
gcut) 
continue;
 
 5295            switch(
fx->GetMultiplicity()) {
 
 5303            switch(
fy->GetMultiplicity()) {
 
 5320      if (!
leaf) 
continue;
 
 5329      if (
leaf->GetLeafCount()) {
 
 
 5391   for (i=0; i<
fNoper ; ++i) {
 
 5393      if (
leaf==
nullptr) 
continue;
 
 
 5403      for (
Int_t dim = 0; dim < max_dim; ++dim) {
 
 5417      if (
fCodes[i] < 0) 
continue;
 
 5446         if (
tleaf->GetReadEntry() < 0) {
 
 5455      if (
leaf->GetLeafCount()) {
 
 5480            if (
branch->GetAddress() == 
nullptr) {
 
 5595                  for(
int z=0; z<
size; ++z) {
 
 5616         } 
else if (
leafinfo->GetMultiplicity()==-1) {
 
 
 5695   for (
int k=0; k<
fNoper; k++) {
 
 
 5737   if (!
leaf) 
return false;
 
 5742         if (
br->GetType()==31) {
 
 5755         } 
else if (
br->GetType()==41) {
 
 5760            if ( count->
GetID() >= 0 ) {
 
 5783         } 
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.
 
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
 
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
 
Describe one element (data member) to be Streamed.
 
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)