SLAC PEP-II
BABAR
SLAC<->RAL
Babar logo
HEPIC E,S & H Databases PDG HEP preprints
Organization Detector Computing Physics Documentation
Personnel Glossary Sitemap Search Hypernews
Unwrap page!
Comp. Search
Who's who?
Meetings
FAQ Homepage
Archive
Environment
Administration
New User Info.
Web Info/Tools
Monitoring
Training
Tools & Utils
Programming
C++ Standard
SRT, AFS, CVS
QA and QC
Remedy
Histogramming
Operations
PromptReco
Simulation Production
Online SW
Dataflow
Detector Control
Evt Processing
Run Control
Calibration
Databases
Offline
Workbook
Coding Standards
Simulation
Reconstruction
Prompt Reco.
BaBar Grid
Data Distribution
Beta & BetaTools
Kanga & Root
Analysis Tools
RooFit Toolkit
Data Management
Data Quality
Event display
Event Browser
Code releases
Databases
Check this page for HTML 4.01 Transitional compliance with the
W3C Validator
(More checks...)
#include "KanChain.hh"

KanChain


class description - source file - inheritance tree (.pdf)

class KanChain : public TTree, public KanBranchOwner

Inheritance Chart:
TObject
<-
TNamed
TAttLine
TAttFill
TAttMarker
<-
TTree
KanBranchOwner
<-
KanChain
<-
KanEventSource
    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)

Data Members

    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

Class Description



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.