Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TBranchRef.h
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: Rene Brun 19/08/2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, 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_TBranchRef
13 #define ROOT_TBranchRef
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TBranchRef //
19 // //
20 // A Branch to support referenced objects on other branches //
21 //////////////////////////////////////////////////////////////////////////
22 
23 
24 #include "TBranch.h"
25 #include "TRefTable.h"
26 
27 class TTree;
28 
29 class TBranchRef : public TBranch {
30 private:
31  Long64_t fRequestedEntry; ///<! Cursor indicating which entry is being requested.
32 
33 protected:
34  TRefTable *fRefTable; ///< pointer to the TRefTable
35 
36  void ReadLeavesImpl(TBuffer &b);
37  void FillLeavesImpl(TBuffer &b);
38 
39 public:
40  TBranchRef();
41  TBranchRef(TTree *tree);
42  virtual ~TBranchRef();
43  virtual void Clear(Option_t *option="");
44  TRefTable *GetRefTable() const {return fRefTable;}
45  virtual Bool_t Notify();
46  virtual void Print(Option_t *option="") const;
47  virtual void Reset(Option_t *option="");
48  virtual void ResetAfterMerge(TFileMergeInfo *);
49  virtual Int_t SetParent(const TObject* obj, Int_t branchID);
50  virtual void SetRequestedEntry(Long64_t entry) {fRequestedEntry = entry;}
51 
52 private:
53  virtual Int_t FillImpl(ROOT::Internal::TBranchIMTHelper *);
54 
55  ClassDef(TBranchRef,1); //to support referenced objects on other branches
56 };
57 
58 #endif