#ifndef ROOT_TBranchElement
#define ROOT_TBranchElement
#ifndef ROOT_TBranch
#include "TBranch.h"
#endif
#ifndef ROOT_TClassRef
#include "TClassRef.h"
#endif
class TFolder;
class TStreamerInfo;
class TVirtualCollectionProxy;
class TBranchElement : public TBranch {
   friend class TTreeCloner;
protected:
   enum {
      kBranchFolder = BIT(14),
      kDeleteObject = BIT(16)               
   };
protected:
   TString                  fClassName;     
   TString                  fParentName;    
   TString                  fClonesName;    
   TVirtualCollectionProxy *fCollProxy;     
   UInt_t                   fCheckSum;      
   Int_t                    fClassVersion;  
   Int_t                    fID;            
   Int_t                    fType;          
   Int_t                    fStreamerType;  
   Int_t                    fMaximum;       
   Int_t                    fSTLtype;       
   Int_t                    fNdata;         
   TBranchElement          *fBranchCount;   
   TBranchElement          *fBranchCount2;  
   TStreamerInfo           *fInfo;          
   char                    *fObject;        
   Bool_t                   fInit;          
   Bool_t                   fInitOffsets;   
   TClassRef                fCurrentClass;  
   TClassRef                fParentClass;   
   TClassRef                fBranchClass;   
   Int_t                   *fBranchOffset;  
   Int_t                    fBranchID;      
private:
   TBranchElement(const TBranchElement&);            
   TBranchElement& operator=(const TBranchElement&); 
protected:
   void                     BuildTitle(const char* name);
   virtual void             InitializeOffsets();
   virtual void             InitInfo();
   Bool_t                   IsMissingCollection() const;
   TClass                  *GetCurrentClass(); 
   TClass                  *GetParentClass(); 
   TVirtualCollectionProxy *GetCollectionProxy();
   void                     ReleaseObject();
   void                     SetBranchCount(TBranchElement* bre);
   void                     SetBranchCount2(TBranchElement* bre) { fBranchCount2 = bre; }
   Int_t                    Unroll(const char* name, TClass* cltop, TClass* cl, char* ptr, Int_t basketsize, Int_t splitlevel, Int_t btype);
   void                     ValidateAddress() const;
   void Init(TTree *tree, TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0);
   void Init(TTree *tree, TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
   void Init(TTree *tree, TBranch *parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
public:
   TBranchElement();
   TBranchElement(TTree *tree, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0);
   TBranchElement(TTree *tree, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
   TBranchElement(TTree *tree, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
   TBranchElement(TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0);
   TBranchElement(TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
   TBranchElement(TBranch *parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1);
   virtual                  ~TBranchElement();
   virtual void             Browse(TBrowser* b);
   virtual Int_t            Fill();
   virtual void             FillLeaves(TBuffer& b);
   virtual TBranch         *FindBranch(const char *name);
   virtual TLeaf           *FindLeaf(const char *name);
   virtual char            *GetAddress() const;
           TBranchElement  *GetBranchCount() const { return fBranchCount; }
           TBranchElement  *GetBranchCount2() const { return fBranchCount2; }
           Int_t           *GetBranchOffset() const { return fBranchOffset; }
           UInt_t           GetCheckSum() { return fCheckSum; }
   virtual const char      *GetClassName() const { return fClassName.Data(); }
   virtual const char      *GetClonesName() const { return fClonesName.Data(); }
   virtual Int_t            GetEntry(Long64_t entry = 0, Int_t getall = 0);
           const char      *GetIconName() const;
           Int_t            GetID() const { return fID; }
           TStreamerInfo   *GetInfo() const;
           char            *GetObject() const;
   virtual const char      *GetParentName() const { return fParentName.Data(); }
   virtual Int_t            GetMaximum() const;
           Int_t            GetNdata() const { return fNdata; }
           Int_t            GetType() const { return fType; }
           Int_t            GetStreamerType() const { return fStreamerType; }
   virtual const char      *GetTypeName() const;
           Double_t         GetValue(Int_t i, Int_t len, Bool_t subarr = kFALSE) const;
   virtual void            *GetValuePointer() const;
           Bool_t           IsBranchFolder() const { return TestBit(kBranchFolder); }
           Bool_t           IsFolder() const;
   virtual Bool_t           IsObjectOwner() const { return TestBit(kDeleteObject); }
   virtual Bool_t           Notify() { if (fAddress) { ResetAddress(); } return 1; }
   virtual void             Print(Option_t* option = "") const;
           void             PrintValue(Int_t i) const;
   virtual void             ReadLeaves(TBuffer& b);
   virtual void             Reset(Option_t* option = "");
   virtual void             ResetAddress();
   virtual void             ResetDeleteObject();
   virtual void             SetAddress(void* addobj);
   virtual void             SetBasketSize(Int_t buffsize);
   virtual void             SetBranchFolder() { SetBit(kBranchFolder); }
   virtual void             SetClassName(const char* name) { fClassName = name; }
   inline  void             SetParentClass(TClass* clparent);
   virtual void             SetParentName(const char* name) { fParentName = name; }
   virtual void             SetupAddresses();
   virtual void             SetType(Int_t btype) { fType = btype; }
   ClassDef(TBranchElement,8)  
};
inline void TBranchElement::SetParentClass(TClass* clparent)
{
   fParentClass = clparent;
   fParentName = clparent ? clparent->GetName() : "";
}
#endif // ROOT_TBranchElement
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.