[root] / trunk / proof / proofplayer / src / TProofDraw.cxx Repository:
ViewVC logotype

Log of /trunk/proof/proofplayer/src/TProofDraw.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 48046 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 14 15:35:16 2012 UTC (2 years, 1 month ago) by rdm
File length: 73052 byte(s)
Diff to previous 45759
From Ioan:
Replace the trunk code that uses the deprecated TH1::kCanRebin bit with
the new methods TH1::CanExtendAllAxes() and TH1::SetCanExtend() - see r47909,
r48012 and r48031. The old TH1::kCanRebin bit did not really have much to
do with histogram rebinning, but rather with extending the limits of the
histogram's axes (which can cause a rebin, but only in some cases). As such,
the word "Rebin" has been replaced with "Extend" for the new methods.

Rename TH1::RebinAxis() to TH1::ExtendAxis() for the reasons stated above.
The TH1::RebinAxis() method will be kept in v6-00 for backward compatibility
with an obsolete warning and will be removed in v6-02. The current
implementation simply forwards the call to TH1::ExtendAxis().

Revision 45759 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 30 15:04:55 2012 UTC (2 years, 4 months ago) by ganis
File length: 73029 byte(s)
Diff to previous 44065
Fix possible double deletes

Revision 44065 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 2 12:41:50 2012 UTC (2 years, 8 months ago) by ganis
File length: 72940 byte(s)
Diff to previous 41682
Fix bunch of Coverity reports

Revision 41682 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 1 16:14:02 2011 UTC (3 years, 2 months ago) by ganis
File length: 72868 byte(s)
Diff to previous 41627
Fix missing protections found by coverity

Revision 41627 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 28 13:47:10 2011 UTC (3 years, 2 months ago) by ganis
File length: 70859 byte(s)
Diff to previous 39173
Fix another bunch of Coverity issues

Revision 39173 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 12 18:04:44 2011 UTC (3 years, 8 months ago) by ganis
File length: 70832 byte(s)
Diff to previous 36086
  Include transmission of the orginal weight to TProofDraw is 'DrawSelect' operations.
  Should fix issue http://root.cern.ch/phpBB3/viewtopic.php?f=13&t=12728 .

Revision 36086 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 5 16:15:41 2010 UTC (4 years, 3 months ago) by ganis
File length: 69960 byte(s)
Diff to previous 34254
Fix a bunch of issues found by Coverity

Revision 34254 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 30 16:29:36 2010 UTC (4 years, 6 months ago) by ganis
File length: 69864 byte(s)
Diff to previous 30068
Fix warnings in notification statements

Revision 30068 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 8 15:19:38 2009 UTC (5 years, 4 months ago) by ganis
File length: 69861 byte(s)
Diff to previous 29171
   Several fixes in the draw functionality needed by a forthcoming tutorial:
   - Allow to set a color, size, size, width for lines, area, markers; the
     attributes are transmitted via the input list and automatically derived
     from the ones of the chain
   - Fix a problem with the axis ranges of the underlying histogram in PolyMarker3D
   - Allow to use the default pad instead of forcing creation of one pad per object
   - Add wrapper to handle the feedback default canvas

Revision 29171 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 23 14:13:06 2009 UTC (5 years, 7 months ago) by brun
File length: 65564 byte(s)
Diff to previous 28369
From Gerri:
    - Fix a few problems found running in valgrind:
       - In XrdROOTMgr::Validate, add missing protection against inproper use of a
         temporary file when in non debug mode
       - Fix a problem with inproper deletion of XrdProofWorker objects when working
         with a dynamically varying 'proof.conf'
       - In TProof::HandleInputMessage, fix possible double delete after kPROOF_STOPPROCESS
    - Fix a couple of issues on reconnection to a running session:
       - make sure that the dialog buttons are in the correct state
       - make sure that logs are redirected
    - Fix an issue with the displaying speed of very large log files (bufferize instead of
      doing line-by-line)
    - In TProof::Draw, change the type of a notification message from 'error' to 'debug'
    - Fix coding conventions in TDataSetManagerFile.cxx

Revision 28369 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 28 06:24:26 2009 UTC (5 years, 8 months ago) by ganis
File length: 65523 byte(s)
Diff to previous 27345
  Fix a index in a nested loop.
  Bug introduced when fixing warnings for shadowed variables.

Revision 27345 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 4 10:00:29 2009 UTC (5 years, 11 months ago) by ganis
File length: 65527 byte(s)
Diff to previous 27234
Consistently use existing canvases when different hitogram names are specified

Revision 27234 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 26 07:57:14 2009 UTC (5 years, 11 months ago) by ganis
File length: 64604 byte(s)
Diff to previous 27198
   TProofDraw
     - Do not try to get "htemp" from the input list; this removes a useless warning

   TProofPlayer
     - Improve the treatment of histogram merging in case of small statistics, i.e. when
       the autobinning is not or only partially active. The largest stat histogram is
       taken as base for the merging. This is implemented both for output and feedback
       histograms, and avoids the large axis boundaries variations observed in such cases.

Revision 27198 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 21 09:29:10 2009 UTC (6 years ago) by ganis
File length: 64576 byte(s)
Diff to previous 23632
   TProofDraw
     - Fix a problem preventing drawing into an existing histogram, i.e. chain->Draw("var>>myhist"),
       to work properly (chain->Draw("var>>hnew(nbin,xmin,xmax) was working fine).
     - Add missing initialization (fTree in the basic constructor)

   TProofPlayer
     - Remove the relevant map in the list fFeedbackLists if the final object is available in the
       output list; this prevents a duplication of the final feedback object
     - Improve debug messages in StoreFeedback

   TProofServ, TProof
     - Fix a couple of memory leaks due to missing destruction of TProofProgressStatus objects

Revision 23632 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 1 20:45:12 2008 UTC (6 years, 8 months ago) by ganis
File length: 64288 byte(s)
Diff to previous 22635
Fix gcc 4.3 warnings (mostly shadowed variables)

Revision 22635 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 13 10:50:20 2008 UTC (6 years, 10 months ago) by rdm
File length: 64277 byte(s)
Diff to previous 20882
move all PROOF related libraries under the new proof directory.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 64277 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 64277 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 64331 byte(s)
Diff to previous 19574
remove :$ from tag line

Revision 19574 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 9 06:42:41 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 64341 byte(s)
Diff to previous 19335
Fix coding conventions

Revision 19335 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 13 13:22:57 2007 UTC (7 years, 6 months ago) by ganis
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 64317 byte(s)
Diff to previous 19314
From Anna:
- Add support for entry-lists to PROOF.
From me:
- Cleanup usage of TEntryList/TEventList arguments in the TProof/TProofPlayer API.

Revision 19314 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 11 15:35:05 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 61848 byte(s)
Diff to previous 18336
From Gerri:
put the PROOF Draw() related methods in the TProofDraw classes in an
own library libProofDraw outside libProofPlayer. This reduces considerably
the memory footprint in case Selectors don't use canvas related methods.

Revision 18336 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 19 10:46:10 2007 UTC (7 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60421 byte(s)
Diff to previous 17998
reflect move from proof to proofplayer directory in the cvs tag line.

Revision 17998 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 18 14:58:56 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60414 byte(s)
Diff to previous 17736
-Replace all calls to the TView constructor by a call to the new static
function  TView::CreateView.

Revision 17736 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 6 15:52:35 2007 UTC (7 years, 11 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60404 byte(s)
Diff to previous 17718
correct debug statement.

Revision 17718 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 6 00:12:31 2007 UTC (7 years, 11 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60411 byte(s)
Diff to previous 17579
From Gerri:
- do not set kCanDelete bit for the data member fGraph to avoid screwing
  up the output list and the canvas (savannah bug #21791).

Revision 17579 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 30 11:24:32 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60444 byte(s)
Diff to previous 16176
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h

Revision 16176 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 31 11:05:20 2006 UTC (8 years, 4 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60420 byte(s)
Diff to previous 14745
changed all Riostream.h in headers to Riosfwd.h. Riostream.h has "using namespace std"
and should only appear in implementation files.

Revision 14745 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 19 08:22:26 2006 UTC (8 years, 9 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60402 byte(s)
Diff to previous 14336
Change the TError.h macros:
Assert   ->  R__ASSERT
Check    ->  R__CHECK
Change the TCollection.h macro:
ForEach  ->  R__FOR_EACH
This to avoid potential problems due too trivial macro names.
The old macros will be removed in the next release. Currently
they will print out warning messages with the advice to move
to the new macro names.

Revision 14336 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by pcanal
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60348 byte(s)
Diff to previous 12822
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning:  This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined.  Simply add the
proper include directive.

Revision 12822 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 22 23:29:30 2005 UTC (9 years, 4 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 60329 byte(s)
Diff to previous 12284
from Gerri:
- fix several issues with Begin() not being called when finalizing a query
  done via TChain::Draw(), call setup code now also in Terminate().
- fix error with query progress dialog not finishing when analysing
  subset of data set.
- add master and slave startup feedback code.
- fixes also a few additional problems with enabling/disabling of
  Stop/Abort buttons and cleans up the treament of fOutputList in TQueryResult.
  It is also make sure that there are no multiple copies of a TDSet in the
  output list.

Revision 12284 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 9 04:03:23 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 58180 byte(s)
Diff to previous 11562
From Marek:
 Add friend trees to PROOF.

Revision 11562 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 12 09:26:27 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 57978 byte(s)
Diff to previous 11511
From Marek Biskup:
- removed obsolete code from TTreeIndex::GetEntryNumberWithIndex and
fixed documentation.
- removed obsolete function TVirtualIndex::GetEntry(Long64_t /*entry*/)
  and TTreeIndex::GetEntry(Long64_t /*entry*/).
- cosmetics in TProofDraw

Revision 11511 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 6 15:56:14 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 58045 byte(s)
Diff to previous 11507
From Philippe:
Template implementation should be in header files (especially when the
template class contains a ClassDef).

Revision 11507 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 6 11:03:17 2005 UTC (9 years, 9 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 59064 byte(s)
Diff to previous 11506
some cosmetics.

Revision 11506 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 6 10:55:18 2005 UTC (9 years, 9 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 59839 byte(s)
Diff to previous 11503
Several critical includes were missing. Remain several warnings on Win32,
but no fatals.

Revision 11503 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 6 10:01:40 2005 UTC (9 years, 9 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 59844 byte(s)
Diff to previous 11424
From Marek:
- removed TProofVarArray
- introduced TProofVectorContainer<T> which holds an std::vector<T>
  and implements Merge(TCollection*)
- made TProofDrawListOfGraphs and TProofDrawListOfPolyMarkers3D use
  std::vector and TProofVectorContainer<T>.
- added eventlist handling to TPacketizer2

Revision 11424 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 24 16:32:28 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 57232 byte(s)
Diff to previous 11414
From Marek:
rename TProofNTuple to TProofVarArray.

Revision 11414 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 23 12:41:01 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 57221 byte(s)
Diff to previous 11373
From Marek Biskup:
-Added options proofi and proofg to TProfile and TProfile2D
drawn with proof.
-Added support for "ICE" option (see TH1::Reset()) to TH2, TH3,
TProfile and TProfile2D::Reset().
-Rewritten Merge() in TH1, TH2, TH3, TProfile and TProfile2D
to support buffers. Changed the return type from Int_t to Long64_t.

Revision 11373 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 18 22:41:27 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 56935 byte(s)
Diff to previous 11362
From Marek:
- TH1::Merge() adding overflows even when merging histograms with the
  same limits. If the limits are different the overflows are ignored.
  The same in TH2::Merge, TH3::Merge, TProfile::Merge and TProfile2D::Merge.

- Cleaning fHistogram (and this kind of) variables, so that the drawn
  plots aren't deleted in the TProofDrawXXX's destructor.

- Removed TProofNTuple from TProofDrawTGraph.

- Put the initialization code of fFeedback and fPlayer (=MakePlayer())
  in TProof in to Init().

- Added TGraph::Merge(). Added TPolyMarker3D::GetPoint(Int_t, Float&,
  Float&, Float&).

- Removed TProofNTuple from TProofDrawPolyMarker3D.

- Fixed cleaning output lists after processing (set option = "nodelete").
  Now the objects are on the player outputlist and are removed (but not
  deleted) from the selector's outputlist.

- Fixed TPolyMarker3D::Merge() - it seems that nobody has ever tried to
  run this function.

- Added setting tree attributes (like MarkerStyle, MarkerSize, LineColor etc.)
  to a drawn TGraph and TPolyMarker3D in TProofDrawGraph and
  TProofDrawPolyMarker3D.

Revision 11362 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 17 11:39:34 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 54874 byte(s)
Diff to previous 11361
A static global cannot be accessed directly on Windows.
Add a new static function TTreeDrawArgsParser::GetMaxDimension.
This function is called by TProofDraw instead of the direct use
of TTreeDrawArgsParser::fgMaxDimension.

Revision 11361 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 17 10:43:30 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 54870 byte(s)
Diff to previous 11339
From Marek:
renamed TDrawInfo to TTreeDrawArgsParser and moved the files to the
tree directory. Removed TProofNTuple::DrawCopy().

Revision 11339 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 14 22:19:00 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 52360 byte(s)
Diff to previous 11282
From Maarten:
The reserved/standard prefix for PROOF objects in the input and output
is "PROOF" (not _PROOF or __PROOF). Here is a quick patch.

Revision 11282 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 10 18:25:19 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 52394 byte(s)
Diff to previous 11281
libProof now depends on libGraf3d and libGraf. Also const members are not
properly supported on VC7.1 yet.

Revision 11281 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 10 17:57:05 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 52388 byte(s)
Diff to previous 11259
From Marek Biskup:
major new PROOF developments:
 - access to PROOF directly via the TChain interface (creating a TDSet
   in the background).
 - access to PROOF based trees via the TTreeViewer
 - fully implemented the TChain/TDSet::Draw() interface.
 - PROOF sessions can now be browsed via the TBrowser

Revision 11259 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 8 05:33:30 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 6453 byte(s)
Diff to previous 10850
From Philippe:
This patch solves a problem where the sizes of a collection
within a split-collection where not properly loaded (i.e.
TTreeFormula::LoadCurrentDim was not calling GetEntry on
the branch containing the collection within a collection).

Also (and independently):

To support for the cases where the user do
       tree->GetEntry(entry);
       // modify the event
       tree->GetEntry(entry);
       // User expect the event to have reverted to
       // the same state as after the first GetEntry
we insured that TBranch::GetEntry always re-stream the
data from the basket.  Similarly, TTreeFormula::EvalInstance
needs to also insure that it always re-stream the data
from the basket (Some developer uses TTreeFormula directly).

However in case, when we are guaranteed that the data pointed
to by the tree will not modified and we need to call GetEntry
several times on the same branch for the same entry,
this is a waste of time.

We are in this case for the TTreeFormula handled by
TProofDraw, TSelectorDraw and TTreeIndex.
The case where we currently have the inefficiencies are
the cases for the same branch is listed in several
distinct formulas (for example in the 1 dimension and
the selection or as an index) and the cases of
variable dimensions formulas (GetEntry called at least
once in LoadCurrentDim and once more in EvalInstance).

The attached patch solve the issue for TProofDraw,
TSelectorDraw and TTreeIndex by adding a new data member
to TTreeFormula (fQuickLoad), this can be set to tell
TTreeFormula to assume that the data is really read-only
(and hence it does not need to read the branch again is
br->GetReadEntry()==tree->GetReadEntry().

We can not solve the issue in the general case since we
can not guarantee that that data pointed will not be
modified between the call to GetNdata (hence LoadCurrentDim)
and EvalInstance.  The cost of not properly insuring is
high since it involves silently displaying incorrect data.
However LoadCurrentDim could still be improved since it does
not use the optimization used by EvalInstance which insures
that itself reads each branch only once (Fixing this for
LoadCurrentDim would no be trivial)
Note that without the fQuickLoad flag set to true, branches
that are used several time in the same formula are loaded
several times.  (With fQuickLoad set to true, they are loaded
only once).  Solving this inefficiency is a difficult tasks,
since we would need to insure that the branch is read exactly
once not matter what the value of branch->GetReadEntry is.
In addition, this could only take in consideration the formulas
within the same TTreeFormulaManager.  And this would have to
be done without any significant loss for the simple case and
for the case where we can do Boolean optimization (i.e. case
where the content of the branch is not needed to know the
final result of the formula).

Revision 10850 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 28 20:51:25 2004 UTC (10 years ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 6378 byte(s)
Diff to previous 9615
From Maarten:
- Fix handling of non zero first event in TProof::Process()
- Fix TDSet range check
- Cleanup TProofDraw() debug output

Revision 9615 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 29 10:54:55 2004 UTC (10 years, 5 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 6110 byte(s)
Diff to previous 9524

*****************WARNING*****************
With this mega patch, we introduce support for TTree/TChain  with more than
2 billion entries. Several class data members have been changed from
Int_t (or Stat_t) to Long64_t.
==>Trees written with this new version cannot be read with older versions
******************************************

TBranch:
========
 - replace the members with type Int_t or Stat_t by Long64_t
    Long64_t    fEntryNumber;     //  Current entry number (last one filled in this branch)
    Long64_t    fReadEntry;       //! Current entry number when reading
    Long64_t    fEntries;         //  Number of entries
    Long64_t    fTotBytes;        //  Total number of bytes in all leaves before compression
    Long64_t    fZipBytes;        //  Total number of bytes in all leaves after compression
    Long64_t   *fBasketEntry;     //[fMaxBaskets] Table of first entry in eack basket

 - corresponding changes in the member functions
    virtual Int_t     GetEntry(Long64_t entry=0, Int_t getall = 0);
    virtual Int_t     GetEntryExport(Long64_t entry, Int_t getall, TClonesArray *list, Int_t n);
            Int_t     GetEvent(Long64_t entry=0) {return GetEntry(entry);}
            Long64_t *GetBasketEntry() const {return fBasketEntry;}
            Long64_t  GetReadEntry()   const {return fReadEntry;}
            Long64_t  GetTotalSize()   const;
            Long64_t  GetTotBytes()    const {return fTotBytes;}
            Long64_t  GetZipBytes()    const {return fZipBytes;}
            Long64_t  GetEntryNumber() const {return fEntryNumber;}
            Long64_t  GetEntries()     const {return fEntries;}

TBranch::Streamer has been modified to read old files and automatically translate
the old types to the new types.
The new version of Streamer uses the TClass::ReadBuffer/WriteBuffer.

TBranch::Print has been modified to take into account the new data types.

ClassDef version increased to 10.

TBranchClones:
==============
    virtual Int_t    GetEntry(Long64_t entry=0, Int_t getall = 0);

TBranchElement:
===============
            Int_t    GetEntry(Long64_t entry=0, Int_t getall = 0);

TBranchObject:
==============
    virtual Int_t    GetEntry(Long64_t entry=0, Int_t getall = 0);

TChain:
=======
    Long64_t    *fTreeOffset;       //[fTreeOffsetLen]Array of variables

    virtual Int_t     Add(const char *name, Long64_t nentries=kBigNumber);
    virtual Int_t     AddFile(const char *name, Long64_t nentries=kBigNumber);
    virtual Long64_t  Draw(const char *varexp, const TCut &selection, Option_t *option=""
                       ,Long64_t nentries=kBigNumber, Long64_t firstentry=0);
    virtual Long64_t  Draw(const char *varexp, const char *selection, Option_t *option=""
                     ,Long64_t nentries=kBigNumber, Long64_t firstentry=0); // *MENU*
    virtual Long64_t  GetChainEntryNumber(Long64_t entry) const;
    virtual Long64_t  GetEntries() const;
    virtual Int_t     GetEntry(Long64_t entry=0, Int_t getall=0);
            Long64_t  LoadTree(Long64_t entry);
    virtual void      Loop(Option_t *option="",Long64_t nentries=kBigNumber, Long64_t firstentry=0); // *MENU*
    virtual Long64_t  Merge(const char *name);
    virtual Long64_t  Merge(TCollection *list);
    virtual Long64_t  Merge(TFile *file, Int_t basketsize, Option_t *option="");
    virtual Long64_t  Process(const char *filename,Option_t *option="", Long64_t nentries=kBigNumber, Long64_t firstentry=0); // *MENU*
    virtual Long64_t  Process(TSelector *selector,Option_t *option="",  Long64_t nentries=kBigNumber, Long64_t firstentry=0);

ClassDef version changed from 4 to 5

TSelector
=========
   virtual Bool_t      ProcessCut(Long64_t /*entry*/) { return kTRUE; }
   virtual void        ProcessFill(Long64_t /*entry*/) { }
   virtual Bool_t      Process(Long64_t /*entry*/) { return kFALSE; }

TSelectorCint
=============
   virtual Bool_t      ProcessCut(Long64_t entry);
   virtual void        ProcessFill(Long64_t entry);
   virtual Bool_t      Process(Long64_t entry);

TSelectorDraw
=============
    Long64_t       fDraw;           //! Last entry loop number when object was drawn
    Long64_t       fSelectedRows;   //  Number of selected entries
    Long64_t       fOldEstimate;    //  value of Tree fEstimate when selector is called
    Double_t      *fV1;             //![fSelectedRows]Local buffer for variable 1
    Double_t      *fV2;             //![fSelectedRows]Local buffer for variable 2
    Double_t      *fV3;             //![fSelectedRows]Local buffer for variable 3
    Double_t      *fV4;             //![fSelectedRows]Local buffer for variable 4
    Double_t      *fW;              //![fSelectedRows]Local buffer for weights

    virtual Long64_t  GetSelectedRows() const {return fSelectedRows;}
    virtual Bool_t    Process(Long64_t /*entry*/) { return kFALSE; }
    virtual void      ProcessFill(Long64_t entry);
    virtual void      ProcessFillMultiple(Long64_t entry);
    virtual void      ProcessFillObject(Long64_t entry);
    virtual void      SetEstimate(Long64_t n);

TTree
=====
Modified data types
    Long64_t       fEntries;           //  Number of entries
    Long64_t       fTotBytes;          //  Total number of bytes in all branches before compression
    Long64_t       fZipBytes;          //  Total number of bytes in all branches after compression
    Long64_t       fSavedBytes;        //  Number of autosaved bytes
    Long64_t       fMaxEntryLoop;      //  Maximum number of entries to process
    Long64_t       fMaxVirtualSize;    //  Maximum total size of buffers kept in memory
    Long64_t       fAutoSave;          //  Autosave tree when fAutoSave bytes produced
    Long64_t       fEstimate;          //  Number of entries to estimate histogram limits
    Long64_t       fChainOffset;       //! Offset of 1st entry of this Tree in a TChain
    Long64_t       fReadEntry;         //! Number of the entry being processed
    Long64_t       fTotalBuffers;      //! Total number of bytes in branch buffers
    Long64_t       fDebugMin;          //! First entry number to debug
    Long64_t       fDebugMax;          //! Last entry number to debug

New function signatures
    virtual Long64_t     AutoSave(Option_t *option="");
    virtual TTree       *CloneTree(Long64_t nentries=-1, Option_t *option="");
    virtual Long64_t     CopyEntries(TTree *tree, Long64_t nentries=-1);
    virtual TTree       *CopyTree(const char *selection, Option_t *option=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0);
    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); // *MENU*
    virtual Long64_t     Fit(const char *funcname ,const char *varexp, const char *selection="",Option_t *option="" ,Option_t *goption=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0); // *MENU*
    virtual Long64_t     GetChainEntryNumber(Long64_t entry) const {return entry;}
    virtual Long64_t     GetChainOffset() const { return fChainOffset; }
            Long64_t     GetDebugMax()  const {return fDebugMax;}
            Long64_t     GetDebugMin()  const {return fDebugMin;}
    virtual Long64_t     GetEntries() const   {return fEntries;}
    virtual Long64_t     GetEntriesFast() const   {return fEntries;}
    virtual Long64_t     GetEntriesFriend() const;
    virtual Long64_t     GetEstimate() const { return fEstimate; }
    virtual Int_t        GetEntry(Long64_t entry=0, Int_t getall=0);
            Int_t        GetEvent(Long64_t entry=0, Int_t getall=0) {return GetEntry(entry,getall);}
    virtual Long64_t     GetEntryNumberWithBestIndex(Int_t major, Int_t minor=0) const;
    virtual Long64_t     GetEntryNumberWithIndex(Int_t major, Int_t minor=0) const;
    virtual Long64_t     GetEntryNumber(Long64_t entry) const;
    virtual Long64_t     GetMaxEntryLoop() const {return fMaxEntryLoop;}
    static  Long64_t     GetMaxTreeSize();
    virtual Long64_t     GetMaxVirtualSize() const {return fMaxVirtualSize;}
    virtual Long64_t     GetReadEntry()  const {return fReadEntry;}
    virtual Long64_t     GetReadEvent()  const {return fReadEntry;}
    virtual Long64_t     GetSelectedRows() {return GetPlayer()->GetSelectedRows();}
    virtual Long64_t     GetTotBytes() const {return fTotBytes;}
    virtual Long64_t     GetZipBytes() const {return fZipBytes;}
    virtual Long64_t     LoadTree(Long64_t entry);
    virtual Long64_t     LoadTreeFriend(Long64_t entry, TTree *T);
    virtual Long64_t     Merge(TCollection *list);
    TPrincipal          *Principal(const char *varexp="", const char *selection="", Option_t *option="np"
                                   ,Long64_t nentries=1000000000, Long64_t firstentry=0);
    virtual Long64_t     Process(const char *filename,Option_t *option="", Long64_t nentries=1000000000, Long64_t firstentry=0); // *MENU*
    virtual Long64_t     Process(TSelector *selector, Option_t *option="", Long64_t nentries=1000000000, Long64_t firstentry=0);
    virtual Long64_t     Project(const char *hname, const char *varexp, const char *selection="", Option_t *option=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0);
    virtual TSQLResult  *Query(const char *varexp="", const char *selection="", Option_t *option=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0);
    virtual Long64_t     Scan(const char *varexp="", const char *selection="", Option_t *option=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0); // *MENU*
    virtual void         SetDebug(Int_t level=1, Long64_t min=0, Long64_t max=9999999); // *MENU*
    virtual void         SetEntries(Long64_t n);
    virtual void         SetEstimate(Long64_t nentries=10000);
    virtual void         SetMaxEntryLoop(Long64_t maxev=1000000000) {fMaxEntryLoop = maxev;} // *MENU*
    static  void         SetMaxTreeSize(Long64_t maxsize=1900000000);
    virtual void         SetMaxVirtualSize(Long64_t size=0) {fMaxVirtualSize = size;} // *MENU*
    virtual void         Show(Long64_t entry=-1, Int_t lenmax=20);
    virtual Long64_t     UnbinnedFit(const char *funcname ,const char *varexp, const char *selection="",Option_t *option=""
                          ,Long64_t nentries=1000000000, Long64_t firstentry=0);

TTree::Streamer has been modified to real old files.
TTree::Print has been modified to take into account the new data types.

ClassDef version number incremented to 13.

TVirtualTreePlayer
==================
    virtual TTree         *CopyTree(const char *selection, Option_t *option=""
                            ,Long64_t nentries=1000000000, Long64_t firstentry=0) = 0;
    virtual Long64_t       DrawScript(const char* wrapperPrefix,
                                      const char *macrofilename, const char *cutfilename,
                                      Option_t *option, Long64_t nentries, Long64_t firstentry) = 0;
    virtual Long64_t       DrawSelect(const char *varexp, const char *selection, Option_t *option
                            ,Long64_t nentries, Long64_t firstentry) = 0;
    virtual Long64_t       Fit(const char *formula ,const char *varexp, const char *selection,Option_t *option ,Option_t *goption
                            ,Long64_t nentries, Long64_t firstentry) = 0;
    virtual Long64_t       GetSelectedRows() const = 0;
    virtual TPrincipal    *Principal(const char *varexp="", const char *selection="", Option_t *option="np"
                           ,Long64_t nentries=1000000000, Long64_t firstentry=0) = 0;
    virtual Long64_t       Process(const char *filename,Option_t *option="", Long64_t nentries=1000000000, Long64_t firstentry=0) = 0;
    virtual Long64_t       Process(TSelector *selector,Option_t *option="",  Long64_t nentries=1000000000, Long64_t firstentry=0) = 0;
    virtual Long64_t       Scan(const char *varexp, const char *selection, Option_t *option
                            ,Long64_t nentries, Long64_t firstentry) = 0;
    virtual TSQLResult    *Query(const char *varexp, const char *selection, Option_t *option
                            ,Long64_t nentries, Long64_t firstentry) = 0;
    virtual void           SetEstimate(Long64_t n) = 0;
    virtual Long64_t       UnbinnedFit(const char *formula ,const char *varexp, const char *selection,Option_t *option
                            ,Long64_t nentries, Long64_t firstentry) = 0;

TTreeFormula
============
   TLeaf*      GetLeafWithDatamember(const char* topchoice, const char* nextchice, Long64_t readentry) const;
   Bool_t      BranchHasMethod(TLeaf* leaf, TBranch* branch,
                               const char* method,const char* params,
                               Long64_t readentry) const;

TTreePlayer
===========
    Long64_t       fSelectedRows;    //  Number of selected entries

    virtual TTree    *CopyTree(const char *selection, Option_t *option
                       ,Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  DrawScript(const char* wrapperPrefix,
                                 const char *macrofilename, const char *cutfilename,
                                 Option_t *option, Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  DrawSelect(const char *varexp, const char *selection, Option_t *option
                                 ,Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  Fit(const char *formula ,const char *varexp, const char *selection,Option_t *option ,
                          Option_t *goption ,Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  GetSelectedRows() const {return fSelectedRows;}
    TPrincipal       *Principal(const char *varexp, const char *selection, Option_t *option
                       ,Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  Process(const char *filename,Option_t *option, Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  Process(TSelector *selector,Option_t *option,  Long64_t nentries, Long64_t firstentry);
    virtual Long64_t  Scan(const char *varexp, const char *selection, Option_t *option
                       ,Long64_t nentries, Long64_t firstentry);
    virtual TSQLResult *Query(const char *varexp, const char *selection, Option_t *option
                         ,Long64_t nentries, Long64_t firstentry);
    virtual void      SetEstimate(Long64_t n);
    virtual Long64_t  UnbinnedFit(const char *formula ,const char *varexp, const char *selection,Option_t *option
                       ,Long64_t nentries, Long64_t firstentry);

The generated code by TTreePlayer::MakeCode, MakeClass, MakeProxy
uses Long64_t instead of Int_t

TTreeViewer
===========
    Long64_t      Process(const char* filename, Option_t *option="", Long64_t nentries=1000000000, Long64_t firstentry=0); // *MENU*
    void          SetCurrentRecord(Long64_t entry);

THbookBranch
============
    virtual Int_t    GetEntry(Long64_t entry=0, Int_t getall=0);
    virtual void     SetEntries(Long64_t n) {fEntries=n;}

THbookTree
==========
    virtual Int_t    GetEntry(Long64_t entry=0, Int_t getall=0);
    virtual void     InitBranches(Long64_t entry);
    virtual void     SetEntries(Long64_t n);

TProofDraw
==========
    virtual Bool_t   Process(Long64_t /*entry*/);

TProofPlayer
============
    virtual Long64_t  Process(TDSet *set,
    virtual Long64_t  DrawSelect(TDSet *set, const char *varexp,
    Long64_t          Process(TDSet *set, const char *selector,
    Long64_t          DrawSelect(TDSet *set, const char *varexp,

Revision 9524 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 15 22:46:38 2004 UTC (10 years, 6 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 6105 byte(s)
Diff to previous 9459
From Maarten:
- Improved documentation, error handling, and script generation
  in ProofBench.
- Fixed error handling bug in TProofDraw.

Revision 9459 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 9 01:34:51 2004 UTC (10 years, 6 months ago) by rdm
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 6008 byte(s)
Diff to previous 8364
From Maarten:
- Implement TStatus to hold and communicate the status between players
  (master and slave) and selectors
- Use of TStatus in player
- Use TStatus in TProofDraw and cleanup

Revision 8364 - (view) (download) (as text) (annotate) - [select for diffs]
Added Thu Mar 11 18:06:32 2004 UTC (10 years, 10 months ago) by brun
Original Path: trunk/proofplayer/src/TProofDraw.cxx
File length: 5276 byte(s)
Add new class TProofDraw.
make necessary changes in the Linkdef and dependency files (Proof
depends on libTreePlayer)

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9