Log of /trunk/tree/tree/src/TEntryList.cxx
Parent Directory
Revision
43993 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 27 16:23:16 2012 UTC (2 years, 8 months ago) by
pcanal
File length: 51096 byte(s)
Diff to
previous 43518
Fix coverity issues
Dereference null return:
32943,32945,36325,36329: TFormLeafInfo::GetLocalValuePointer
33253: TTreeFormula::EvalObject
33763: CloneTree
33258: GetBasket
34034: In DropBuffers (in addition avoid reading the basket when the intend is to drop the content from memory!)
36307: TTree::BuildIndex
36328: DrawCopy
36332: GetStreamerInfoCache
33025: BuildStreamerInfo
42469: Clone
33436: MakeIterator
Dereference after null check.
42470: in ImportStreamerInfo
33138: in TEntryListArray::Enter
Unchecked return value:
32049, 32050: TBranchProxy::Read and Setup
Mixed enums:
32705,32706: TClass::fStreamerType (and also name the enum type).
Revision
43349 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 14 04:26:44 2012 UTC (2 years, 10 months ago) by
pcanal
File length: 51193 byte(s)
Diff to
previous 42789
In main doc, point to using TChain::GetEntryNumber which works for both TTree and TChain (Instead of a TChain specific interface)
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: 50353 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: 49482 byte(s)
Diff to
previous 35745
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
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: 39474 byte(s)
Diff to
previous 22972
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
22972 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 3 19:58:33 2008 UTC (6 years, 9 months ago) by
pcanal
File length: 39144 byte(s)
Diff to
previous 22902
Introduce a new member function TDirectory::Remove which is the reverse of
TDirectory::Append. This allows more 'hiding' of the internal list as
well as simplifying code (now) using Append/Remove.
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/src/TEntryList.cxx
File length: 38758 byte(s)
Diff to
previous 19571
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/src/TEntryList.cxx
File length: 36583 byte(s)
Diff to
previous 18610
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
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/src/TEntryList.cxx
File length: 35077 byte(s)
Diff to
previous 17235
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.