A list of entries and subentries in a TTree or TChain.
TEntryListArray is an extension of TEntryList, used to hold selected entries and subentries (sublists) for when the user has a TTree with containers (vectors, arrays, ...).
Its main purpose is to improve the performance of a code that needs to apply complex cuts on TTree::Draw multiple times. After the first call above to TTree::Draw, a TEntryListArray is created and filled with the entries and the indices of the arrays that satisfied the selection cut (x > 0). In the subsequent calls to TTree::Draw, only these entries / subentries are used to fill histograms.
The class derives from TEntryList and can be used basically in the same way. This same class is used to keep entries and subentries, so there are two types of TEntryListArray's:
Definition at line 26 of file TEntryListArray.h.
Public Member Functions | |
TEntryListArray () | |
Default c-tor. | |
TEntryListArray (const char *name, const char *title) | |
c-tor with name and title | |
TEntryListArray (const char *name, const char *title, const char *treename, const char *filename) | |
c-tor with name and title, which also sets the treename and the filename | |
TEntryListArray (const char *name, const char *title, const TTree *tree) | |
constructor with name and title, which also sets the tree | |
TEntryListArray (const TEntryList &elist) | |
c-tor, from TEntryList | |
TEntryListArray (const TEntryListArray &elist) | |
Copy c-tor. | |
TEntryListArray (const TTree *tree) | |
c-tor, which sets the tree | |
virtual | ~TEntryListArray () |
d-tor | |
virtual void | Add (const TEntryList *elist) |
Add 2 entry lists. | |
virtual Int_t | Contains (Long64_t entry, TTree *tree, Long64_t subentry) |
virtual Int_t | Contains (Long64_t entry, TTree *tree=0) |
virtual Bool_t | Enter (Long64_t entry, TTree *tree, Long64_t subentry) |
Add entry #entry (, #subentry) to the list. | |
virtual Bool_t | Enter (Long64_t entry, TTree *tree=0) |
Add entry #entry to the list. | |
virtual TEntryListArray * | GetSubListForEntry (Long64_t entry, TTree *tree=0) |
Return the list holding the subentries for the given entry or 0. | |
virtual TList * | GetSubLists () const |
virtual void | Print (const Option_t *option="") const |
Print this list. | |
virtual Bool_t | Remove (Long64_t entry, TTree *tree, Long64_t subentry) |
Remove entry #entry (, #subentry) from the list. | |
virtual Bool_t | Remove (Long64_t entry, TTree *tree=0) |
Remove entry #entry from the list. | |
virtual void | Reset () |
Reset all entries and remove all sublists. | |
virtual void | SetTree (const char *treename, const char *filename) |
If a list for a tree with such name and filename exists, sets it as the current sublist If not, creates this list and sets it as the current sublist. | |
virtual void | SetTree (const TTree *tree) |
If a list for a tree with such name and filename exists, sets it as the current sublist If not, creates this list and sets it as the current sublist The name of the file, where the tree is, is taken as tree->GetTree()->GetCurrentFile()->GetName() , and then expanded either to the absolute path, or to full url. | |
virtual void | Subtract (const TEntryList *elist) |
Remove all the entries (and subentries) of this entry list that are contained in elist. | |
Public Member Functions inherited from TEntryList | |
TEntryList () | |
default c-tor | |
TEntryList (const char *name, const char *title) | |
c-tor with name and title | |
TEntryList (const char *name, const char *title, const char *treename, const char *filename) | |
c-tor with name and title, which also sets the treename and the filename | |
TEntryList (const char *name, const char *title, const TTree *tree) | |
constructor with name and title, which also sets the tree | |
TEntryList (const TEntryList &elist) | |
copy c-tor | |
TEntryList (const TTree *tree) | |
c-tor, which sets the tree | |
virtual | ~TEntryList () |
Destructor. | |
virtual void | DirectoryAutoAdd (TDirectory *) |
Called by TKey and others to automatically add us to a directory when we are read from a file. | |
virtual TEntryList * | GetCurrentList () const |
virtual TDirectory * | GetDirectory () const |
virtual Long64_t | GetEntriesToProcess () const |
virtual Long64_t | GetEntry (Int_t index) |
Return the number of the entry #index of this TEntryList in the TTree or TChain See also Next(). | |
virtual Long64_t | GetEntryAndTree (Int_t index, Int_t &treenum) |
Return the index of "index"-th non-zero entry in the TTree or TChain and the # of the corresponding tree in the chain. | |
virtual TEntryList * | GetEntryList (const char *treename, const char *filename, Option_t *opt="") |
Return the entry list, corresponding to treename and filename By default, the filename is first tried as is, and then, if the corresponding list is not found, the filename is expanded to the absolute path, and compared again. | |
virtual const char * | GetFileName () const |
virtual TList * | GetLists () const |
virtual Long64_t | GetN () const |
virtual Bool_t | GetReapplyCut () const |
virtual const char * | GetTreeName () const |
virtual Int_t | GetTreeNumber () const |
Bool_t | IsValid () const |
virtual Int_t | Merge (TCollection *list) |
Merge this list with the lists from the collection. | |
virtual Long64_t | Next () |
Return the next non-zero entry index (next after fLastIndexQueried) this function is faster than GetEntry() | |
virtual void | OptimizeStorage () |
Checks if the array representation is more economical and if so, switches to it. | |
virtual Int_t | RelocatePaths (const char *newloc, const char *oldloc=0) |
Relocate the file paths. | |
virtual Int_t | ScanPaths (TList *roots, Bool_t notify=kTRUE) |
Scan the paths to find the common roots. | |
virtual void | SetDirectory (TDirectory *dir) |
Add reference to directory dir. dir can be 0. | |
virtual void | SetEntriesToProcess (Long64_t nen) |
virtual void | SetFileName (const char *filename) |
virtual void | SetReapplyCut (Bool_t apply=kFALSE) |
virtual void | SetShift (Bool_t shift) |
virtual void | SetTreeName (const char *treename) |
virtual void | SetTreeNumber (Int_t index) |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. | |
virtual void | Clear (Option_t *option="") |
Set name and title to empty strings (""). | |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. | |
virtual Int_t | Compare (const TObject *obj) const |
Compare two TNamed objects. | |
virtual void | Copy (TObject &named) const |
Copy this to obj. | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. | |
virtual const char * | GetName () const |
Returns name of object. | |
virtual const char * | GetTitle () const |
Returns title of object. | |
virtual ULong_t | Hash () const |
Return hash value for this object. | |
virtual Bool_t | IsSortable () const |
virtual void | ls (Option_t *option="") const |
List TNamed name and title. | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. | |
virtual void | Print (Option_t *option="") const |
Print TNamed name and title. | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. | |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual void | Delete (Option_t *option="") |
Delete this object. | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual const char * | GetIconName () const |
Returns mime type name of object. | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). | |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
Protected Member Functions | |
virtual void | AddEntriesAndSubLists (const TEntryList *elist) |
The method that really adds two entry lists with sublists If lists are split (fLists != 0), look for the ones whose trees match and call the method for those lists. | |
virtual void | ConvertToTEntryListArray (TEntryList *e) |
Create a TEntryListArray based on the given TEntryList Called by SetTree when the given list is added to fLists Replace it by a TEntryListArray and delete the given list. | |
void | Init () |
Initialize data members, called by Reset. | |
virtual Bool_t | RemoveSubList (TEntryListArray *e, TTree *tree=0) |
Remove the given sublist and return true if succeeded. | |
virtual Bool_t | RemoveSubListForEntry (Long64_t entry, TTree *tree=0) |
Remove the sublists for the given entry --> not being used... | |
virtual TEntryListArray * | SetEntry (Long64_t entry, TTree *tree=0) |
Create a sublist for the given entry and returns it --> should be called after calling GetSubListForEntry. | |
Protected Member Functions inherited from TEntryList | |
void | GetFileName (const char *filename, TString &fn, Bool_t *=0) |
To be able to re-localize the entry-list we identify the file by just the name and the anchor, i.e. | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
Protected Attributes | |
Long64_t | fEntry |
the entry number, when the list is used for subentries | |
TEntryListArray * | fLastSubListQueried |
! last sublist checked by GetSubListForEntry | |
TIter * | fSubListIter |
! to iterate over fSubLists and keep last one checked | |
TList * | fSubLists |
a list of underlying entry lists for each event of a TEntryList | |
Protected Attributes inherited from TEntryList | |
TObjArray * | fBlocks |
blocks with indices of passing events (TEntryListBlocks) | |
TEntryList * | fCurrent |
! currently filled entry list | |
TDirectory * | fDirectory |
! Pointer to directory holding this tree | |
Long64_t | fEntriesToProcess |
used on proof to set the number of entries to process in a packet | |
TString | fFileName |
name of the file, where the tree is | |
Long64_t | fLastIndexQueried |
! used to optimize GetEntry() function from a loop | |
Long64_t | fLastIndexReturned |
! used to optimize GetEntry() function from a loop | |
TList * | fLists |
a list of underlying entry lists for each tree of a chain | |
Long64_t | fN |
number of entries in the list | |
Int_t | fNBlocks |
number of TEntryListBlocks | |
Bool_t | fReapply |
If true, TTree::Draw will 'reapply' the original cut. | |
Bool_t | fShift |
! true when some sub-lists don't correspond to trees (when the entry list is used as input in TChain) | |
ULong_t | fStringHash |
! Hash value of a string of treename and filename | |
TString | fTreeName |
name of the tree | |
Int_t | fTreeNumber |
! the index of the tree in the chain (used when the entry list is used as input (TTree::SetEntryList()) | |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Private Member Functions | |
TEntryListArray & | operator= (const TEntryListArray &) |
Additional Inherited Members | |
Public Types inherited from TEntryList | |
enum | { kBlockSize = 64000 } |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) } |
enum | EDeprecatedStatusBits { kObjInCanvas = BIT(3) } |
enum | EStatusBits { kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) , kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13) } |
Static Public Member Functions inherited from TEntryList | |
static Int_t | Relocate (const char *fn, const char *newroot, const char *oldroot=0, const char *enlnm=0) |
Relocate entry list 'enlnm' in file 'fn' replacing 'oldroot' with 'newroot' in filenames. | |
static Int_t | Scan (const char *fn, TList *roots) |
Scan TEntryList in 'fn' to find the common parts of paths. | |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = BIT(3) } |
#include <TEntryListArray.h>
TEntryListArray::TEntryListArray | ( | ) |
Default c-tor.
Definition at line 93 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const char * | name, |
const char * | title | ||
) |
c-tor with name and title
Definition at line 100 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const char * | name, |
const char * | title, | ||
const TTree * | tree | ||
) |
constructor with name and title, which also sets the tree
Definition at line 107 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const char * | name, |
const char * | title, | ||
const char * | treename, | ||
const char * | filename | ||
) |
c-tor with name and title, which also sets the treename and the filename
Definition at line 114 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const TTree * | tree | ) |
c-tor, which sets the tree
Definition at line 121 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const TEntryListArray & | elist | ) |
Copy c-tor.
Definition at line 128 of file TEntryListArray.cxx.
TEntryListArray::TEntryListArray | ( | const TEntryList & | elist | ) |
c-tor, from TEntryList
Definition at line 137 of file TEntryListArray.cxx.
|
virtual |
d-tor
Definition at line 144 of file TEntryListArray.cxx.
|
virtual |
Add 2 entry lists.
Reimplemented from TEntryList.
Definition at line 158 of file TEntryListArray.cxx.
|
protectedvirtual |
The method that really adds two entry lists with sublists If lists are split (fLists != 0), look for the ones whose trees match and call the method for those lists.
Add first the sublists, and then use TEntryList::Add to deal with the entries
Definition at line 187 of file TEntryListArray.cxx.
entry is recomputed from the treeoffset information of the chain When subentry != -1, return true if the enter is present and not split or if the subentry list is found and contains #subentry
Definition at line 269 of file TEntryListArray.cxx.
Reimplemented from TEntryList.
Definition at line 60 of file TEntryListArray.h.
|
protectedvirtual |
Create a TEntryListArray based on the given TEntryList Called by SetTree when the given list is added to fLists Replace it by a TEntryListArray and delete the given list.
Definition at line 298 of file TEntryListArray.cxx.
Add entry #entry (, #subentry) to the list.
Definition at line 339 of file TEntryListArray.cxx.
Add entry #entry to the list.
Reimplemented from TEntryList.
Definition at line 64 of file TEntryListArray.h.
|
virtual |
Return the list holding the subentries for the given entry or 0.
Definition at line 388 of file TEntryListArray.cxx.
|
inlinevirtual |
Definition at line 81 of file TEntryListArray.h.
|
protected |
Initialize data members, called by Reset.
Definition at line 82 of file TEntryListArray.cxx.
|
private |
Print this list.
Reimplemented from TEntryList.
Definition at line 440 of file TEntryListArray.cxx.
Remove entry #entry (, #subentry) from the list.
If subentry != -1, only the given subentry is removed
Definition at line 490 of file TEntryListArray.cxx.
Remove entry #entry from the list.
Reimplemented from TEntryList.
Definition at line 71 of file TEntryListArray.h.
|
protectedvirtual |
Remove the given sublist and return true if succeeded.
Definition at line 533 of file TEntryListArray.cxx.
Remove the sublists for the given entry --> not being used...
Definition at line 559 of file TEntryListArray.cxx.
|
virtual |
Reset all entries and remove all sublists.
Reimplemented from TEntryList.
Definition at line 575 of file TEntryListArray.cxx.
|
protectedvirtual |
Create a sublist for the given entry and returns it --> should be called after calling GetSubListForEntry.
Definition at line 592 of file TEntryListArray.cxx.
|
virtual |
If a list for a tree with such name and filename exists, sets it as the current sublist If not, creates this list and sets it as the current sublist.
Reimplemented from TEntryList.
Definition at line 696 of file TEntryListArray.cxx.
If a list for a tree with such name and filename exists, sets it as the current sublist If not, creates this list and sets it as the current sublist The name of the file, where the tree is, is taken as tree->GetTree()->GetCurrentFile()->GetName()
, and then expanded either to the absolute path, or to full url.
If, for some reason, you want to provide the filename in a different format, use SetTree(const char *treename, const char *filename), where the filename is taken "as is".
Reimplemented from TEntryList.
Definition at line 77 of file TEntryListArray.h.
|
virtual |
Remove all the entries (and subentries) of this entry list that are contained in elist.
If for a given entry present in both lists, one has subentries and the other does not, the whole entry is removed
Reimplemented from TEntryList.
Definition at line 628 of file TEntryListArray.cxx.
|
protected |
the entry number, when the list is used for subentries
Definition at line 33 of file TEntryListArray.h.
|
protected |
! last sublist checked by GetSubListForEntry
Definition at line 34 of file TEntryListArray.h.
|
protected |
! to iterate over fSubLists and keep last one checked
Definition at line 35 of file TEntryListArray.h.
|
protected |
a list of underlying entry lists for each event of a TEntryList
Definition at line 32 of file TEntryListArray.h.