1 |
//
|
2 |
// $Id: TAMTreeBranchLoader.h 5120 2008-05-07 18:17:33Z loizides $
|
3 |
//
|
4 |
|
5 |
#ifndef ROOT_TAMTreeBranchLoader
|
6 |
#define ROOT_TAMTreeBranchLoader
|
7 |
|
8 |
|
9 |
#include <typeinfo>
|
10 |
|
11 |
|
12 |
#ifndef ROOT_TAMVirtualBranchLoader
|
13 |
#include "TAMVirtualBranchLoader.h"
|
14 |
#endif
|
15 |
|
16 |
|
17 |
class TClass;
|
18 |
class TBranch;
|
19 |
class TTree;
|
20 |
|
21 |
|
22 |
class TAMTreeBranchLoader : public TAMVirtualBranchLoader {
|
23 |
protected:
|
24 |
BranchAddr_t fBAddr; //branch address for the data
|
25 |
Bool_t fIsClass; //if the branch stores a class (as opposed to a struct)
|
26 |
Bool_t fLeafSizeConst; //if the size of leaves in this branch is constant
|
27 |
TBranch *fBranch; //the branch itself (not owned)
|
28 |
TClass *fClass; //class information from dictionary (not owned)
|
29 |
|
30 |
void AllocateMemory();
|
31 |
Bool_t CheckBrClass(const type_info& ptrtype, const TClass& cls);
|
32 |
Bool_t CheckBrStruct(TClass& cls);
|
33 |
Bool_t CheckBrType(const type_info& ptrtype);
|
34 |
Bool_t CheckBrTypeAllModules();
|
35 |
void DeleteMemory();
|
36 |
void SetBranchAddress();
|
37 |
void SetLeafAddresses();
|
38 |
|
39 |
public:
|
40 |
TAMTreeBranchLoader(TAMBranchInfo *binfo);
|
41 |
virtual ~TAMTreeBranchLoader();
|
42 |
|
43 |
void Clear(Option_t *option="");
|
44 |
void* GetAddress() const;
|
45 |
Int_t GetEntry(Long64_t entry);
|
46 |
using TObject::Notify;
|
47 |
Bool_t Notify(TTree *tree);
|
48 |
|
49 |
ClassDef(TAMTreeBranchLoader,0) // TAM plugin to load data from a single branch
|
50 |
};
|
51 |
|
52 |
|
53 |
#endif //ROOT_TAMTreeBranchLoader
|