00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TChain
00013 #define ROOT_TChain
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ROOT_TTree
00025 #include "TTree.h"
00026 #endif
00027
00028 class TFile;
00029 class TBrowser;
00030 class TCut;
00031 class TEntryList;
00032 class TEventList;
00033 class TCollection;
00034
00035 class TChain : public TTree {
00036
00037 protected:
00038 Int_t fTreeOffsetLen;
00039 Int_t fNtrees;
00040 Int_t fTreeNumber;
00041 Long64_t *fTreeOffset;
00042 Bool_t fCanDeleteRefs;
00043 TTree *fTree;
00044 TFile *fFile;
00045 TObjArray *fFiles;
00046 TList *fStatus;
00047 TChain *fProofChain;
00048
00049 private:
00050 TChain(const TChain&);
00051 TChain& operator=(const TChain&);
00052
00053 protected:
00054 void ReleaseChainProof();
00055
00056 public:
00057
00058 enum {
00059 kGlobalWeight = BIT(15),
00060 kAutoDelete = BIT(16),
00061 kProofUptodate = BIT(17),
00062 kProofLite = BIT(18),
00063 kBigNumber = 1234567890
00064 };
00065
00066 public:
00067 TChain();
00068 TChain(const char* name, const char* title = "");
00069 virtual ~TChain();
00070
00071 virtual Int_t Add(TChain* chain);
00072 virtual Int_t Add(const char* name, Long64_t nentries = kBigNumber);
00073 virtual Int_t AddFile(const char* name, Long64_t nentries = kBigNumber, const char* tname = "");
00074 virtual Int_t AddFileInfoList(TCollection* list, Long64_t nfiles = kBigNumber);
00075 virtual TFriendElement *AddFriend(const char* chainname, const char* dummy = "");
00076 virtual TFriendElement *AddFriend(const char* chainname, TFile* dummy);
00077 virtual TFriendElement *AddFriend(TTree* chain, const char* alias = "", Bool_t warn = kFALSE);
00078 virtual void Browse(TBrowser*);
00079 virtual void CanDeleteRefs(Bool_t flag = kTRUE);
00080 virtual void CreatePackets();
00081 virtual void DirectoryAutoAdd(TDirectory *);
00082 virtual Long64_t Draw(const char* varexp, const TCut& selection, Option_t* option = "", Long64_t nentries = kBigNumber, Long64_t firstentry = 0);
00083 virtual Long64_t Draw(const char* varexp, const char* selection, Option_t* option = "", Long64_t nentries = kBigNumber, Long64_t firstentry = 0);
00084 virtual void Draw(Option_t* opt) { Draw(opt, "", "", 1000000000, 0); }
00085 virtual Int_t Fill() { MayNotUse("Fill()"); return -1; }
00086 virtual TBranch *FindBranch(const char* name);
00087 virtual TLeaf *FindLeaf(const char* name);
00088 virtual TBranch *GetBranch(const char* name);
00089 virtual Bool_t GetBranchStatus(const char* branchname) const;
00090 virtual Long64_t GetChainEntryNumber(Long64_t entry) const;
00091 Int_t GetNtrees() const { return fNtrees; }
00092 virtual Long64_t GetEntries() const;
00093 virtual Long64_t GetEntries(const char *sel) { return TTree::GetEntries(sel); }
00094 virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0);
00095 virtual Long64_t GetEntryNumber(Long64_t entry) const;
00096 virtual Int_t GetEntryWithIndex(Int_t major, Int_t minor=0);
00097 TFile *GetFile() const;
00098 virtual TLeaf *GetLeaf(const char* name);
00099 virtual TObjArray *GetListOfBranches();
00100
00101
00102 TObjArray *GetListOfFiles() const {return fFiles;}
00103 virtual TObjArray *GetListOfLeaves();
00104 virtual const char *GetAlias(const char *aliasName) const;
00105 virtual Double_t GetMaximum(const char *columname);
00106 virtual Double_t GetMinimum(const char *columname);
00107 virtual Int_t GetNbranches();
00108 virtual Long64_t GetReadEntry() const;
00109 TList *GetStatus() const { return fStatus; }
00110 virtual TTree *GetTree() const { return fTree; }
00111 virtual Int_t GetTreeNumber() const { return fTreeNumber; }
00112 Long64_t *GetTreeOffset() const { return fTreeOffset; }
00113 Int_t GetTreeOffsetLen() const { return fTreeOffsetLen; }
00114 virtual Double_t GetWeight() const;
00115 virtual Int_t LoadBaskets(Long64_t maxmemory);
00116 virtual Long64_t LoadTree(Long64_t entry);
00117 void Lookup(Bool_t force = kFALSE);
00118 virtual void Loop(Option_t *option="", Long64_t nentries=kBigNumber, Long64_t firstentry=0);
00119 virtual void ls(Option_t *option="") const;
00120 virtual Long64_t Merge(const char *name, Option_t *option = "");
00121 virtual Long64_t Merge(TCollection *list, Option_t *option = "");
00122 virtual Long64_t Merge(TFile *file, Int_t basketsize, Option_t *option="");
00123 virtual void Print(Option_t *option="") const;
00124 virtual Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=kBigNumber, Long64_t firstentry=0);
00125 #ifndef __CINT__
00126 virtual Long64_t Process(TSelector *selector, Option_t *option="", Long64_t nentries=kBigNumber, Long64_t firstentry=0);
00127 #endif
00128 virtual void RecursiveRemove(TObject *obj);
00129 virtual void Reset(Option_t *option="");
00130 virtual void ResetBranchAddress(TBranch *);
00131 virtual void ResetBranchAddresses();
00132 virtual Long64_t Scan(const char *varexp="", const char *selection="", Option_t *option="", Long64_t nentries=1000000000, Long64_t firstentry=0);
00133 virtual void SetAutoDelete(Bool_t autodel=kTRUE);
00134 virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr = 0);
00135 virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr, TClass *realClass, EDataType datatype, Bool_t isptr);
00136 virtual Int_t SetBranchAddress(const char *bname,void *add, TClass *realClass, EDataType datatype, Bool_t isptr);
00137
00138 virtual void SetBranchStatus(const char *bname, Bool_t status=1, UInt_t *found=0);
00139 virtual void SetDirectory(TDirectory *dir);
00140 virtual void SetEntryList(TEntryList *elist, Option_t *opt="");
00141 virtual void SetEntryListFile(const char *filename="", Option_t *opt="");
00142 virtual void SetEventList(TEventList *evlist);
00143 virtual void SetMakeClass(Int_t make) { TTree::SetMakeClass(make); if (fTree) fTree->SetMakeClass(make);}
00144 virtual void SetPacketSize(Int_t size = 100);
00145 virtual void SetProof(Bool_t on = kTRUE, Bool_t refresh = kFALSE, Bool_t gettreeheader = kFALSE);
00146 virtual void SetWeight(Double_t w=1, Option_t *option="");
00147 virtual void UseCache(Int_t maxCacheSize = 10, Int_t pageSize = 0);
00148
00149 ClassDef(TChain,5)
00150 };
00151
00152 #endif // ROOT_TChain