Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TFriendElement.h
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: Rene Brun 07/04/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 #ifndef ROOT_TFriendElement
12 #define ROOT_TFriendElement
13 
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TFriendElement //
18 // //
19 // A TFriendElement TF describes a TTree object TF in a file. //
20 // When a TFriendElement TF is added to the the list of friends of an //
21 // existing TTree T, any variable from TF can be referenced in a query //
22 // to T. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 
27 #include "TNamed.h"
28 
29 class TFile;
30 class TTree;
31 class TClass;
32 
33 class TFriendElement : public TNamed {
34 
35 protected:
36  TTree *fParentTree; ///<! pointer to the parent TTree
37  TTree *fTree; ///<! pointer to the TTree described by this element
38  TFile *fFile; ///<! pointer to the file containing the friend TTree
39  TString fTreeName; ///< name of the friend TTree
40  Bool_t fOwnFile; ///< true if file is managed by this class
41 
42  TFriendElement(const TFriendElement&) = delete;
43  TFriendElement& operator=(const TFriendElement&) = delete;
44 
45  friend void TFriendElement__SetTree(TTree *tree, TList *frlist);
46 
47 public:
48  enum EStatusBits { kFromChain = BIT(11) };
49  TFriendElement();
50  TFriendElement(TTree *tree, const char *treename, const char *filename);
51  TFriendElement(TTree *tree, const char *treename, TFile *file);
52  TFriendElement(TTree *tree, TTree* friendtree, const char *alias);
53  virtual ~TFriendElement();
54  virtual TTree *Connect();
55  virtual TTree *DisConnect();
56  virtual TFile *GetFile();
57  virtual TTree *GetParentTree() const {return fParentTree;}
58  virtual TTree *GetTree();
59  virtual const char *GetTreeName() const {return fTreeName.Data();}
60  virtual void ls(Option_t *option="") const;
61 
62  ClassDef(TFriendElement,2) //A friend element of another TTree
63 };
64 
65 #endif
66