KanChain
class description - source file - inheritance tree (.pdf)
private:
virtual TFriendElement* AddFriend(TTree* tree, const char* alias, Bool_t warn = kFALSE)
virtual TFriendElement* AddFriend(const char* treename, const char* filename)
virtual TFriendElement* AddFriend(const char* treename, TFile* file)
virtual Long64_t AutoSave(Option_t* option)
virtual Int_t Branch(TCollection* list, Int_t bufsize, Int_t splitlevel, const char* name)
virtual Int_t Branch(TList* list, Int_t bufsize, Int_t splitlevel)
virtual Int_t Branch(const char* folder, Int_t bufsize, Int_t splitlevel)
virtual TBranch* Branch(const char* name, void* address, const char* leaflist, Int_t bufsize)
virtual TBranch* Branch(const char* name, void* clonesaddress, Int_t bufsize, Int_t splitlevel)
virtual TBranch* Branch(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
virtual TBranch* BranchOld(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
virtual TBranch* Bronch(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
virtual void Browse(TBrowser* b)
virtual TTree* CloneTree(Long64_t nentries, Option_t* option)
virtual void CopyAddresses(TTree* tree)
virtual Long64_t CopyEntries(TTree* tree, Long64_t nentries)
virtual TTree* CopyTree(const char* selection, Option_t* option, Long64_t nentries, Long64_t firstentry)
virtual Int_t Fill()
virtual void Loop(Option_t* option, Int_t nentries, Int_t firstentry)
virtual void ls(Option_t* option) const
virtual Long64_t Merge(const char* name)
virtual Long64_t Merge(TFile* file, Int_t basketsize, Option_t* option)
virtual Long64_t Merge(TCollection* list)
virtual void SetAutoDelete(Bool_t autodel)
virtual void SetBranchAddress(const char* bname, void* add)
virtual void SetBranchStatus(const char* bname, Bool_t status, UInt_t* found)
virtual void SetPacketSize(Int_t size)
virtual void SetWeight(Double_t w, Option_t* option)
protected:
KanChain::EventMap& eventMap()
KanEventReader* eventReader()
virtual UInt_t notify()
public:
KanChain(const Char_t* name, KanCompMap::Index idx, KanEventReader* reader)
virtual ~KanChain()
KanTreeBase* activeMeta() const
KanEventTree* activeTree() const
virtual KanEventTree* Add(const Char_t* collName, const Char_t* ext)
virtual TFriendElement* AddFriend(KanChain& chain)
KanCompMap::Index componentIndex() const
virtual void Draw(Option_t* opt)
virtual Long64_t Draw(const char* varexp, const TCut& selection, Option_t* option, Long64_t nentries = 1000000000, Long64_t firstentry = 0)
virtual Long64_t Draw(const char* varexp, const char* selection, Option_t* option, Long64_t nentries = 1000000000, Long64_t firstentry = 0)
KanEventTree* findTree(Int_t entry, Int_t& local) const
KanEventTree* forceActive() const
KanTreeBase* forceMetaData() const
KanBranch* getBranch(const Char_t* branch) const
virtual TBranch* GetBranch(const char* name)
virtual Long64_t GetEntries() const
virtual Long64_t GetEntriesFast() const
virtual Long64_t GetEntriesFriend() const
virtual Int_t GetEntry(Long64_t, Int_t)
virtual TLeaf* GetLeaf(const char* name)
virtual TObjArray* GetListOfBranches()
virtual TObjArray* GetListOfLeaves()
virtual Double_t GetMaximum(const char* columname)
virtual Double_t GetMinimum(const char* columname)
virtual Int_t GetNbranches()
Int_t GetNtrees() const
virtual Long64_t LoadTree(Long64_t entry)
UInt_t nEvt() const
Bool_t newTree() const
virtual void print(ostream& os = std::cout) const
virtual void Print(Option_t* option) const
virtual void printCollections(ostream& os = std::cout) const
virtual void Reset(Option_t* option)
static UInt_t rollOver(KanEventTree& tree)
void setBranchToRead(KanHandleBase& handle)
virtual void SetDirectory(TDirectory* dir)
virtual void SetMakeClass(Int_t make)
private:
KanCompMap::Index _compIndex ! Which component is this chain's data for
UInt_t _nEvts ! Total number of events
KanEventReader* _reader ! The reader that this chain is using
map<unsigned int,KanEventTree*,less<unsigned int>,allocator<pair<const unsigned int,KanEventTree*> > > _eventMap ! The map from evt# to tree
KanEventTree* _activeTree ! Which tree is active for the current event
list<TFile*> _fileList ! The list of files the the data are in
list<KanFriendElement*> _friends ! The list of all friend chains.
map<std::string,KanBranchHolder*> _branches ! All the branches that are set to be automatically read
protected:
Bool_t _newTree ! Set when a new tree is set active
UInt_t rollOver(KanEventTree& tree)
KanChain(const Char_t* name,
KanCompMap::Index index,
KanEventReader* reader)
:TTree(name,"Kanga Chain"),
_compIndex(index),
_nEvts(0),
_reader(reader),
_activeTree(0),
_newTree(kFALSE)
~KanChain()
close all the files
void print(ostream& os) const
Print the data structures for the trees in this chain
This either prints the active tree, or prints the first tree
if none are currently active. If you are chaining together
data from different releases it is possible that certain
branches might note be present in all the data.
void printCollections(ostream& os) const
Print the names and number of events in all the
collections in this chain
KanEventTree* findTree(Int_t entry, Int_t& local) const
find and load the tree for a particular event in the chain.
entry is the global index of the event.
local is the local index of that event, within the relevent collection
returns the tree with the given event.
KanEventTree* Add(const Char_t* collName, const Char_t* ext)
Add a collection to the chain.
void setBranchToRead(KanHandleBase& handle)
add a KanBranch to this list of those to be read when GetEntry is called
KanBranch* getBranch(const Char_t* branch) const
Double_t GetMaximum(const char *columname)
return the max value of a quantity over the entire chain
Double_t GetMinimum(const char *columname)
return the min value of a quantity over the entire chain
Int_t GetEntry( Long64_t , Int_t)
Read all the branches that have been marked for reading
TFriendElement* AddFriend(KanChain& chain)
Add a chain a friend
LoadTree(Long64_t entry)
Load the tree for a particular event
Note that this function also loads all the friend trees.
void Print(Option_t *option) const
FIXME. Not sure exactly what this should do.
Should it print the individual trees or a list of the trees
or what?
void Reset(Option_t *option)
Clear the chain.
void SetDirectory(TDirectory *dir)
UInt_t notify()
Update all the read branch holders to point to the new branches
Inline Functions
KanEventTree* activeTree() const
KanEventTree* forceActive() const
KanTreeBase* activeMeta() const
KanTreeBase* forceMetaData() const
KanCompMap::Index componentIndex() const
UInt_t nEvt() const
Bool_t newTree() const
Int_t GetNtrees() const
Long64_t GetEntries() const
Long64_t GetEntriesFast() const
Long64_t GetEntriesFriend() const
TBranch* GetBranch(const char* name)
TLeaf* GetLeaf(const char* name)
TObjArray* GetListOfBranches()
TObjArray* GetListOfLeaves()
Int_t GetNbranches()
void SetMakeClass(Int_t make)
void Draw(Option_t* opt)
Long64_t Draw(const char* varexp, const TCut& selection, Option_t* option, Long64_t nentries = 1000000000, Long64_t firstentry = 0)
Long64_t Draw(const char* varexp, const char* selection, Option_t* option, Long64_t nentries = 1000000000, Long64_t firstentry = 0)
KanChain::EventMap& eventMap()
KanEventReader* eventReader()
TFriendElement* AddFriend(TTree* tree, const char* alias, Bool_t warn = kFALSE)
TFriendElement* AddFriend(const char* treename, const char* filename)
TFriendElement* AddFriend(const char* treename, TFile* file)
Long64_t AutoSave(Option_t* option)
Int_t Branch(TCollection* list, Int_t bufsize, Int_t splitlevel, const char* name)
Int_t Branch(TList* list, Int_t bufsize, Int_t splitlevel)
Int_t Branch(const char* folder, Int_t bufsize, Int_t splitlevel)
TBranch* Branch(const char* name, void* address, const char* leaflist, Int_t bufsize)
TBranch* Branch(const char* name, void* clonesaddress, Int_t bufsize, Int_t splitlevel)
TBranch* Branch(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
TBranch* Bronch(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
TBranch* BranchOld(const char* name, const char* classname, void* addobj, Int_t bufsize, Int_t splitlevel)
void Browse(TBrowser* b)
TTree* CloneTree(Long64_t nentries, Option_t* option)
void CopyAddresses(TTree* tree)
Long64_t CopyEntries(TTree* tree, Long64_t nentries)
TTree* CopyTree(const char* selection, Option_t* option, Long64_t nentries, Long64_t firstentry)
Int_t Fill()
void Loop(Option_t* option, Int_t nentries, Int_t firstentry)
void ls(Option_t* option) const
Long64_t Merge(const char* name)
Long64_t Merge(TFile* file, Int_t basketsize, Option_t* option)
Long64_t Merge(TCollection* list)
void SetAutoDelete(Bool_t autodel)
void SetBranchAddress(const char* bname, void* add)
void SetBranchStatus(const char* bname, Bool_t status, UInt_t* found)
void SetPacketSize(Int_t size)
void SetWeight(Double_t w, Option_t* option)
Author: Eric A Charles
Last update: KanChain.cc,v 1.36 2004/11/10 19:11:48 gowdy Exp $
Copyright (C) 2003 LBNL
ROOT page - Class index - Class Hierarchy - Top of the page
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.
|