#ifndef ROOT_TChain #define ROOT_TChain //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TChain // // // // A chain of TTrees. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TTree //*KEEP,TTree. #include "TTree.h" //*KEND. #endif class TFile; class TBrowser; class TChain : public TTree { protected: Int_t fTreeOffsetLen; //Current size of fTreeOffset array Int_t fNtrees; //Number of Trees Int_t fTreeNumber; //Current Tree number in fTreeOffset table Int_t fNbranches; //Number of branches in associated Tree Int_t *fTreeOffset; //Array of variables TTree *fTree; //Pointer to current tree TFile *fFile; //Pointer to current file TObjArray *fFiles; //List of file names containing the Trees TList *fStatus; //List of active/inactive branches TObject *fNotify; //Object to be notified when loading a new file public: TChain(); TChain(const Text_t *name, const Text_t *title=""); virtual ~TChain(); virtual void Add(const Text_t *name); virtual void Browse(TBrowser *b); virtual void CreatePackets(); virtual void Draw(Option_t *opt); virtual void Draw(TCut varexp, TCut selection, Option_t *option="" ,Int_t nentries=1000000000, Int_t firstentry=0); virtual void Draw(const Text_t *varexp, const Text_t *selection, Option_t *option="" ,Int_t nentries=1000000000, Int_t firstentry=0); // *MENU* virtual TBranch *GetBranch(const Text_t *name); virtual Int_t GetNtrees() {return fNtrees;} virtual Int_t GetEntry(Int_t entry=0, Int_t getall=0); TFile *GetFile() {return fFile;} TLeaf *GetLeaf(const Text_t *name); TObjArray *GetListOfBranches(); TObjArray *GetListOfFiles() {return fFiles;} TObjArray *GetListOfLeaves(); virtual Float_t GetMaximum(Text_t *columname); virtual Float_t GetMinimum(Text_t *columname); virtual Int_t GetNbranches(); TObject *GetNotify() {return fNotify;} TList *GetStatus() {return fStatus;} TTree *GetTree() {return fTree;} Int_t GetTreeNumber() {return fTreeNumber;} Int_t *GetTreeOffset() {return fTreeOffset;} virtual Int_t GetTreeOffsetLen() {return fTreeOffsetLen;} Int_t LoadTree(Int_t entry); virtual void Loop(Option_t *option="",Int_t nentries=1000000000, Int_t firstentry=0); // *MENU* virtual void ls(Option_t *option=""); virtual void Merge(const Text_t *name); virtual void Merge(TFile *file, Int_t basketsize, Option_t *option=""); virtual void Print(Option_t *option=""); virtual void SetBranchAddress(const Text_t *bname,void *add); virtual void SetBranchStatus(const Text_t *bname,Bool_t status=1); virtual void SetPacketSize(Int_t size = 100); virtual void SetNotify(TObject *obj) {fNotify = obj;} ClassDef(TChain,1) //A chain of TTrees }; inline void TChain::Draw(Option_t *opt) { Draw(opt, "", "", 1000000000, 0); } #endif