Log of /trunk/tree/tree/inc/TEntryList.h
Parent Directory
Revision
47830 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 4 17:49:06 2012 UTC (2 years, 1 month ago) by
pcanal
File length: 5772 byte(s)
Diff to
previous 42401
From Guilain Ademard:
I add a TEntryList object in the TGListView of my GUI. When I click right on this object to access to its context menu, the method TEntryList::SetReapplyCut() does not work. The error message is:
root [2] Error in <TToggle::SetToggledObject>: cannot determine getter method for SetReapplyCut
The patch in attachment resolves the problem.
Revision
42401 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 6 00:22:44 2011 UTC (3 years, 1 month ago) by
pcanal
File length: 5750 byte(s)
Diff to
previous 42383
From Gerri:
- Use a custom streamer to handle the change in the interpretation of fFileName introduced
by the previous patch. This should fix a problem experienced with the derived class
TEntryListArray.
- Introduce the protected function GetFileName to avoid triplicating the same code while
extracting the filename related string to be used to tag the file.
Revision
42383 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 2 17:00:03 2011 UTC (3 years, 1 month ago) by
rdm
File length: 5667 byte(s)
Diff to
previous 34744
From Gerri:
Improvements/fixes in TEntryList:
- Add new methods to find the base location of files and to modify it.
This allows to relocate the entry-lists to be able to use them of a
system where the files have a different absolute path.
The most relevant new methods are:
- TEntryList::Scan(const char *fn)
Shows the root common paths for the files of the TEntryLists in 'fn'
- TEntryList::Relocate(const char *fn, const char *newroot,
const char *oldroot = 0, const char *enlnm = 0)
Relocates all paths starting with 'oldroot' to 'newroot' for the
entry-list 'enlnm' in file 'fn'.
- Remove 'protocol+server' from file tagging and matching, i.e. use
only filepath+anchor; in this way a list is valid even after re-staging
of the dataset files, which typically changes the end-point data servers.
Entry-lists created with the full path should still be matched correctly.
- Fix a bug in matching paths affecting the case where the
'file://' protocol was used (causing test #10 in stressProof to fail
when files were read from a local file system)
Revision
34744 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 7 06:16:36 2010 UTC (4 years, 5 months ago) by
brun
File length: 5304 byte(s)
Diff to
previous 22992
From Artur Szostak:
There is a mechanism in GCC 4.6.0 that will allow one to effectively prevent the false positive warnings for -Weffc++ from appearing in software that builds against ROOT, with the -Weffc++ flag set, such as AliRoot. I propose using the mechanism, which will make the development in AliRoot much more pleasant.
Revision
22992 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Apr 5 09:43:01 2008 UTC (6 years, 9 months ago) by
pcanal
File length: 4934 byte(s)
Diff to
previous 22902
Use the DirectoryAutoAdd facility for the classes:
TTree, TH1, TEventList, TEntryList, TGraph2D
(and hence their derived classes).
The instances of those classes are now added automatically
to the current directory only when Constructe'd with arguments or Clone'd
and to the directory they are read from when their are stored
directly in a TKey. [Note: the default constructor never adds
the object to the current directory]
The directory auto add can still be disabled for instance
of TH1 and TGraph2D by setting TH1::AddDirectory.
Additionally one can disable the directory auto add for
a specific class by doing:
TClass::GetClass("myclass")->SetDirectoryAutoAdd(0)
However you might want to also be able to restore the
behavior in which case you ought to do:
TClass *cl = TClass::GetClass("myclass");
ROOT::DirAutoAdd_t func = cl->GetDirectoryAutoAdd();
cl->SetDirectoryAutoAdd(0);
TROOT::ReadingObject is marked as deprecated.. It is still
set (as it was) but is no longer used by the above mention
classes.
NOTE: One side effect of this change, is that instnace
of TTree, TH1, TEventList, TEntryList, TGraph2D that are
retrieved from a TMessage (i.e. from a socket) no longer
auto register themselves to the current ROOT directory.
Add a new optional parameter to TDirectory::Append: 'replace'
If replace is true (the default is false), the Append will
first remove from the directory any existing object and
print the message:
Replacing existing OldClass: thename (Potential memory leak).
Add a new option parameter to TDirectory::CloneObject: 'autoadd'
If autoadd is true (the default), CloneObject will call the
object 'DirectoryAutoAdd' function (if any)
In TDirectory::CloneObject add support for multiple inheritance
from TObject where TObject is not the left most base class.
Fix memory leak in TGraph2D::operator= (and add TGraph2D::Clear)
Cleanup some documentation
Revision
19785 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 11 09:45:03 2007 UTC (7 years, 4 months ago) by
brun
Original Path:
trunk/tree/inc/TEntryList.h
File length: 4940 byte(s)
Diff to
previous 18856
From Anna:
Remember the bug #28505 about dcache and entry lists? After lots of communication with dcache guys, it looks like I've fixed it. The attached patch has the following changes:
1. TEntryList::GetEntryList() now performs all the necessary changes to the file names, such as extending to full path for local files, and using TUrl::GetUrl() for not local. This, hopefully, solves the problem of dcache:/// being added to dcache files and the same possible problem for other protocols.
2. TEntryList::SetTree(TTree *tree) does the same changes to the file name. TEntryList::SetEntryList(const char *treename, const char *filename), however, takes the names "as is".
3. in TChain::SetEntryList() function, most of the code has been replaced with calls to TEntryList::GetEntryList(). Because of this, option parameter, previously in TChain::SetEntryList() had to be added to TEntryList::GetEntryList().
4. TChain::SetEventList() function now doesn't call TChain::LoadTree() if all the tree offsets are already known.
5. TChain::GetEntryNumber() function now doesn't load the current tree, if all the tree offsets are already known.
6. TEntryList::Print() function is fixed for the case of empty sub-lists (didn't print anything for them before)
Special thanks to Dmitry Ozerov for his help.
Revision
18856 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 22 13:47:43 2007 UTC (7 years, 8 months ago) by
brun
Original Path:
trunk/tree/inc/TEntryList.h
File length: 4922 byte(s)
Diff to
previous 18277
From Anna:
Changes in TEntryListBlock class to allow storing the indices of entries that don't pass. It's used when more than 15/16 of entries pass the selection, so it makes sense to store the non-passing entries as an array instead of storing passing entries as bits. Also, start calling OptimizeStorage() method after each Merge().
Revision
18277 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 15 11:33:00 2007 UTC (7 years, 10 months ago) by
brun
Original Path:
trunk/tree/inc/TEntryList.h
File length: 4649 byte(s)
Diff to
previous 17820
From Anna:
Add new functionlity to the TEntryList class to support automatically
multiple TEntryList (one per TChain file). A new class TEntryListFromFile
has been developed. It is a utility class called by TChain when a TEntryList
is set.
// TEntryListFromFile
//
// Manages entry lists from different files, when they are not loaded
// in memory at the same time.
//
// This entry list should only be used when processing a TChain (see
// TChain::SetEntryList() function). File naming convention:
// - by default, filename_elist.root is used, where filename is the
// name of the chain element.
// - xxx$xxx.root - $ sign is replaced by the name of the chain element
// If the list name is not specified (by passing filename_elist.root/listname to
// the TChain::SetEntryList() function, the first object of class TEntryList
// in the file is taken.
// It is assumed that there are as many lists, as there are chain elements,
// and they are in the same order.
//
// If one of the list files can't be opened, or there is an error reading a list
// from the file, this list is skipped and the entry loop continues on the next
// list.
Revision
17422 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 22 07:57:14 2007 UTC (8 years ago) by
brun
Original Path:
trunk/tree/inc/TEntryList.h
File length: 4523 byte(s)
Diff to
previous 16984
From Anna:
Extend the functionality of TEntryList and add the following info in TTree::Draw
// Saving the result of Draw to a TEventList or a TEntryList
// =========================================================
// TTree::Draw can be used to fill a TEventList object (list of entry numbers)
// instead of histogramming one variable.
// If varexp0 has the form >>elist , a TEventList object named "elist"
// is created in the current directory. elist will contain the list
// of entry numbers satisfying the current selection.
// If option "entrylist" is used, a TEntryList object is created
// Example:
// tree.Draw(">>yplus","y>0")
// will create a TEventList object named "yplus" in the current directory.
// In an interactive session, one can type (after TTree::Draw)
// yplus.Print("all")
// to print the list of entry numbers in the list.
// tree.Draw(">>yplus", "y>0", "entrylist")
// will create a TEntryList object names "yplus" in the current directory
//
// By default, the specified entry list is reset.
// To continue to append data to an existing list, use "+" in front
// of the list name;
// tree.Draw(">>+yplus","y>0")
// will not reset yplus, but will enter the selected entries at the end
// of the existing list.
//
// Using a TEventList or a TEntryList as Input
// ===========================
// Once a TEventList or a TEntryList object has been generated, it can be used as input
// for TTree::Draw. Use TTree::SetEventList or TTree::SetEntryList to set the
// current event list
// Example1:
// TEventList *elist = (TEventList*)gDirectory->Get("yplus");
// tree->SetEventList(elist);
// tree->Draw("py");
// Example2:
// TEntryList *elist = (TEntryList*)gDirectory->Get("yplus");
// tree->SetEntryList(elist);
// tree->Draw("py");
// If a TEventList object is used as input, a new TEntryList object is created
// inside the SetEventList function. In case of a TChain, all tree headers are loaded
// for this transformation. This new object is owned by the chain and is deleted
// with it, unless the user extracts it by calling GetEntryList() function.
// See also comments to SetEventList() function of TTree and TChain.
//
// If arrays are used in the selection critera, the entry entered in the
// list are all the entries that have at least one element of the array that
// satisfy the selection.
// Example:
// tree.Draw(">>pyplus","fTracks.fPy>0");
// tree->SetEventList(pyplus);
// tree->Draw("fTracks.fPy");
// will draw the fPy of ALL tracks in event with at least one track with
// a positive fPy.
//
// To select only the elements that did match the original selection
// use TEventList::SetReapplyCut or TEntryList::SetReapplyCut.
// Example:
// tree.Draw(">>pyplus","fTracks.fPy>0");
// pyplus->SetReapplyCut(kTRUE);
// tree->SetEventList(pyplus);
// tree->Draw("fTracks.fPy");
// will draw the fPy of only the tracks that have a positive fPy.
//
// Note: Use tree->SetEventList(0) if you do not want use the list as input.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.