Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TTreeFormula.cxx File Reference
#include "TROOT.h"
#include "TTreeFormula.h"
#include "TList.h"
#include "TTree.h"
#include "TBuffer.h"
#include "TBranch.h"
#include "TBranchObject.h"
#include "TBranchElement.h"
#include "TClonesArray.h"
#include "TLeafB.h"
#include "TLeafC.h"
#include "TLeafElement.h"
#include "TLeafObject.h"
#include "TMethodCall.h"
#include "TCutG.h"
#include "TRandom.h"
#include "TInterpreter.h"
#include "TDataType.h"
#include "TStreamerInfo.h"
#include "TStreamerElement.h"
#include "TArrayI.h"
#include "TAxis.h"
#include "TError.h"
#include "TVirtualCollectionProxy.h"
#include "TString.h"
#include "TMath.h"
#include "TVirtualRefProxy.h"
#include "TTreeFormulaManager.h"
#include "TFormLeafInfo.h"
#include "TMethod.h"
#include "TFormLeafInfoReference.h"
#include "strlcpy.h"
#include "snprintf.h"
#include "TEntryList.h"
#include <cctype>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <typeinfo>
#include <algorithm>
Include dependency graph for TTreeFormula.cxx:

Classes

class  TDimensionInfo
 A small helper class to help in keeping track of the array dimensions encountered in the analysis of the expression. More...
 

Namespaces

namespace  ROOT
 This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
 

Macros

#define TREE_EVAL_INIT
 
#define TREE_EVAL_INIT_LOOP
 
#define TT_EVAL_INIT
 
#define TT_EVAL_INIT_LOOP
 

Functions

template<typename T >
FindMax (TTreeFormula *arr)
 
template<typename T >
FindMax (TTreeFormula *arr, TTreeFormula *condition)
 
template<typename T >
FindMin (TTreeFormula *arr)
 
template<typename T >
FindMin (TTreeFormula *arr, TTreeFormula *condition)
 
static void R__LoadBranch (TBranch *br, Long64_t entry, Bool_t quickLoad)
 
template<typename T >
Summing (TTreeFormula *sum)
 

Variables

const Int_t kMaxLen = 1024
 

Macro Definition Documentation

◆ TREE_EVAL_INIT

#define TREE_EVAL_INIT
Value:
const Int_t real_instance = GetRealInstance(instance,0); \
\
if (real_instance>=fNdata[0]) return 0; \
\
if (fAxis) { \
char * label; \
/* This portion is a duplicate (for speed reason) of the code \
located in the main for loop at "a tree string" (and in EvalStringInstance) */ \
label = (char*)GetLeafInfo(0)->GetValuePointer((TLeaf*)0x0,instance); \
Int_t bin = fAxis->FindBin(label); \
return bin-0.5; \
}
static Roo_reg_AGKInteg1D instance
int Int_t
Definition RtypesCore.h:45
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition TLeaf.h:57

Definition at line 3752 of file TTreeFormula.cxx.

◆ TREE_EVAL_INIT_LOOP

#define TREE_EVAL_INIT_LOOP
Value:
/* Now let calculate what physical instance we really need. */ \
const Int_t real_instance = GetRealInstance(instance,code); \
\
if (real_instance>=fNdata[code]) return 0;

Definition at line 3791 of file TTreeFormula.cxx.

◆ TT_EVAL_INIT

#define TT_EVAL_INIT
Value:
TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(0); \
\
const Int_t real_instance = GetRealInstance(instance,0); \
\
if (instance==0) fNeedLoading = kTRUE; \
if (real_instance>=fNdata[0]) return 0; \
\
/* Since the only operation in this formula is reading this branch, \
we are guaranteed that this function is first called with instance==0 and \
hence we are guaranteed that the branch is always properly read */ \
\
if (fNeedLoading) { \
fNeedLoading = kFALSE; \
TBranch *br = leaf->GetBranch(); \
Long64_t tentry = br->GetTree()->GetReadEntry(); \
R__LoadBranch(br,tentry,fQuickLoad); \
} \
\
if (fAxis) { \
char * label; \
/* This portion is a duplicate (for speed reason) of the code \
located in the main for loop at "a tree string" (and in EvalStringInstance) */ \
if (fLookupType[0]==kDirect) { \
label = (char*)leaf->GetValuePointer(); \
} else { \
label = (char*)GetLeafInfo(0)->GetValuePointer(leaf,instance); \
} \
Int_t bin = fAxis->FindBin(label); \
return bin-0.5; \
}
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
long long Long64_t
Definition RtypesCore.h:80
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
A TTree is a list of TBranches.
Definition TBranch.h:93
TTree * GetTree() const
Definition TBranch.h:252
virtual void * GetValuePointer() const
Definition TLeaf.h:138
TBranch * GetBranch() const
Definition TLeaf.h:116
virtual Long64_t GetReadEntry() const
Definition TTree.h:509

Definition at line 3723 of file TTreeFormula.cxx.

◆ TT_EVAL_INIT_LOOP

#define TT_EVAL_INIT_LOOP
Value:
TLeaf *leaf = (TLeaf*)fLeaves.UncheckedAt(code); \
\
/* Now let calculate what physical instance we really need. */ \
const Int_t real_instance = GetRealInstance(instance,code); \
\
if (willLoad) { \
TBranch *branch = (TBranch*)fBranches.UncheckedAt(code); \
if (branch) { \
Long64_t treeEntry = branch->GetTree()->GetReadEntry(); \
R__LoadBranch(branch,treeEntry,fQuickLoad); \
} else if (fDidBooleanOptimization) { \
branch = leaf->GetBranch(); \
Long64_t treeEntry = branch->GetTree()->GetReadEntry(); \
if (branch->GetReadEntry() != treeEntry) branch->GetEntry( treeEntry ); \
} \
} else { \
/* In the cases where we are behind (i.e. right of) a potential boolean optimization \
this tree variable reading may have not been executed with instance==0 which would \
result in the branch being potentially not read in. */ \
if (fDidBooleanOptimization) { \
TBranch *br = leaf->GetBranch(); \
Long64_t treeEntry = br->GetTree()->GetReadEntry(); \
if (br->GetReadEntry() != treeEntry) br->GetEntry( treeEntry ); \
} \
} \
if (real_instance>=fNdata[code]) return 0;
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
Definition TBranch.cxx:1706
Long64_t GetReadEntry() const
Definition TBranch.h:237

Definition at line 3765 of file TTreeFormula.cxx.

Function Documentation

◆ FindMax() [1/2]

template<typename T >
T FindMax ( TTreeFormula arr)

Definition at line 3820 of file TTreeFormula.cxx.

◆ FindMax() [2/2]

template<typename T >
T FindMax ( TTreeFormula arr,
TTreeFormula condition 
)

Definition at line 3867 of file TTreeFormula.cxx.

◆ FindMin() [1/2]

template<typename T >
T FindMin ( TTreeFormula arr)

Definition at line 3805 of file TTreeFormula.cxx.

◆ FindMin() [2/2]

template<typename T >
T FindMin ( TTreeFormula arr,
TTreeFormula condition 
)

Definition at line 3835 of file TTreeFormula.cxx.

◆ R__LoadBranch()

static void R__LoadBranch ( TBranch br,
Long64_t  entry,
Bool_t  quickLoad 
)
inlinestatic

Definition at line 99 of file TTreeFormula.cxx.

◆ Summing()

template<typename T >
T Summing ( TTreeFormula sum)

Definition at line 3798 of file TTreeFormula.cxx.

Variable Documentation

◆ kMaxLen

const Int_t kMaxLen = 1024

Definition at line 55 of file TTreeFormula.cxx.