Logo ROOT   6.16/01
Reference Guide
TLeafElement.h
Go to the documentation of this file.
1// @(#)root/tree:$Id$
2// Author: Rene Brun 14/01/2001
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TLeafElement
13#define ROOT_TLeafElement
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TLeafElement //
19// //
20// A TLeaf for a general object derived from TObject. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24
25#include "TLeaf.h"
26#include "TBranchElement.h"
27
28class TMethodCall;
29
30class TLeafElement : public TLeaf {
31
32protected:
33 char *fAbsAddress; ///<! Absolute leaf Address
34 Int_t fID; ///< element serial number in fInfo
35 Int_t fType; ///< leaf type
36
37private:
38 virtual Int_t GetOffsetHeaderSize() const {return 1;}
39
40public:
42 TLeafElement(TBranch *parent, const char *name, Int_t id, Int_t type);
43 virtual ~TLeafElement();
44
46 virtual Int_t *GenerateOffsetArrayBase(Int_t /*base*/, Int_t /*events*/) { return nullptr; }
47 virtual Int_t GetLen() const {return ((TBranchElement*)fBranch)->GetNdata()*fLen;}
48 TMethodCall *GetMethodCall(const char *name);
49 virtual Int_t GetMaximum() const {return ((TBranchElement*)fBranch)->GetMaximum();}
50 virtual Int_t GetNdata() const {return ((TBranchElement*)fBranch)->GetNdata()*fLen;}
51 virtual const char *GetTypeName() const {return ((TBranchElement*)fBranch)->GetTypeName();}
52
53 virtual Double_t GetValue(Int_t i=0) const { return ((TBranchElement*)fBranch)->GetValue(i, fLen, kFALSE);}
54 virtual Long64_t GetValueLong64(Int_t i = 0) const { return ((TBranchElement*)fBranch)->GetTypedValue<Long64_t>(i, fLen, kFALSE); }
55 virtual LongDouble_t GetValueLongDouble(Int_t i = 0) const { return ((TBranchElement*)fBranch)->GetTypedValue<LongDouble_t>(i, fLen, kFALSE); }
56 template<typename T> T GetTypedValueSubArray(Int_t i=0, Int_t j=0) const {return ((TBranchElement*)fBranch)->GetTypedValue<T>(i, j, kTRUE);}
57
58 virtual void *GetValuePointer() const { return ((TBranchElement*)fBranch)->GetValuePointer(); }
59 virtual Bool_t IncludeRange(TLeaf *);
60 virtual Bool_t IsOnTerminalBranch() const;
61 virtual void PrintValue(Int_t i=0) const {((TBranchElement*)fBranch)->PrintValue(i);}
62 virtual void SetLeafCount(TLeaf *leaf) {fLeafCount = leaf;}
63
64 ClassDef(TLeafElement,1); //A TLeaf for a general object derived from TObject.
65};
66
67#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
long double LongDouble_t
Definition: RtypesCore.h:57
long long Long64_t
Definition: RtypesCore.h:69
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:324
int type
Definition: TGX11.cxx:120
A Branch for the case of an object.
A TTree is a list of TBranches.
Definition: TBranch.h:64
A TLeaf for the general case when using the branches created via a TStreamerInfo (i....
Definition: TLeafElement.h:30
T GetTypedValueSubArray(Int_t i=0, Int_t j=0) const
Definition: TLeafElement.h:56
TMethodCall * GetMethodCall(const char *name)
Returns pointer to method corresponding to name name is a string with the general form "method(list o...
char * fAbsAddress
! Absolute leaf Address
Definition: TLeafElement.h:33
virtual const char * GetTypeName() const
Definition: TLeafElement.h:51
virtual Int_t GetMaximum() const
Definition: TLeafElement.h:49
virtual ~TLeafElement()
Default destructor for a LeafObject.
virtual void SetLeafCount(TLeaf *leaf)
Set the leaf count of this leaf.
Definition: TLeafElement.h:62
virtual Bool_t IsOnTerminalBranch() const
Return true if this leaf is does not have any sub-branch/leaf.
virtual void PrintValue(Int_t i=0) const
Definition: TLeafElement.h:61
Int_t fType
leaf type
Definition: TLeafElement.h:35
virtual LongDouble_t GetValueLongDouble(Int_t i=0) const
Definition: TLeafElement.h:55
virtual Int_t GetOffsetHeaderSize() const
Definition: TLeafElement.h:38
virtual Int_t * GenerateOffsetArrayBase(Int_t, Int_t)
Definition: TLeafElement.h:46
virtual Bool_t IncludeRange(TLeaf *)
Copy/set fMinimum and fMaximum to include/be wide than those of the parameter.
virtual void * GetValuePointer() const
Definition: TLeafElement.h:58
Int_t fID
element serial number in fInfo
Definition: TLeafElement.h:34
virtual Long64_t GetValueLong64(Int_t i=0) const
Definition: TLeafElement.h:54
virtual Double_t GetValue(Int_t i=0) const
Definition: TLeafElement.h:53
virtual Int_t GetLen() const
Return the number of effective elements of this leaf, for the current entry.
Definition: TLeafElement.h:47
virtual Int_t GetNdata() const
Definition: TLeafElement.h:50
virtual Bool_t CanGenerateOffsetArray()
Definition: TLeafElement.h:45
TLeafElement()
Default constructor for LeafObject.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:32
Int_t fLenType
Number of bytes for this data type.
Definition: TLeaf.h:42
Int_t fLen
Number of fixed length elements.
Definition: TLeaf.h:41
TBranch * fBranch
! Pointer to supporting branch (we do not own the branch)
Definition: TLeaf.h:47
TLeaf * fLeafCount
Pointer to Leaf count if variable length (we do not own the counter)
Definition: TLeaf.h:46
Method or function calling interface.
Definition: TMethodCall.h:37
double T(double x)
Definition: ChebyshevPol.h:34