[root] / trunk / tree / treeplayer / inc / TSelectorDraw.h Repository:
ViewVC logotype

Log of /trunk/tree/treeplayer/inc/TSelectorDraw.h

Parent Directory Parent Directory


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

Revision 40643 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 19 19:27:05 2011 UTC (3 years, 5 months ago) by pcanal
File length: 5991 byte(s)
Diff to previous 38741
From Bruno Lenzi: TEntryListArray

TEntryListArray is an extension of TEntryList, used to hold selected entries and subentries (sublists) of a TTree. It is useful in case of a TTree with containers (vectors, arrays, ...). A typical example is the case when each entry of a TTree corresponds to physics events and each subentry (index of arrays) represents a particle.

Its main purpose is to improve the performance of a code that needs to apply complex selections (cuts) on TTree::Draw multiple times. Evaluating such cuts can be time consuming for large trees due to the need for loading the associated information (branches). This operation is done once with the use of a TEntryListArray. Subsequent calls to TTree::Draw only need to load the requested branches for histogramming, while using only the entries and subentries that satisfied the previous selection.

TTree/TSelectorDraw: use of TEntryListArray to select entries and subentries. If the option "entrylistarray" is specified, a TEntryListArray is created and filled with the entries and subentries that pass the given selection. If TTree::Draw is called after a TEntryList is set, only the selected entries and subentries are used to fill histograms or create new entrylists.

Revision 38741 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 5 18:12:39 2011 UTC (3 years, 9 months ago) by pcanal
File length: 5773 byte(s)
Diff to previous 30157
Copy documentation explained the length of the array returned by TSelectorDraw::GetVal.  Add reference to this documentation in the other related function GetV1, etc. in TSelectorDraw, TTreePlayer and TTree.

Revision 30157 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 14 20:12:53 2009 UTC (5 years, 4 months ago) by pcanal
File length: 5517 byte(s)
Diff to previous 22902
In TFormula and TTreeFormula add support for the ternary condition operator ( c ? i : e )

In TSplot, TSpider, TSelectorDraw, TTreePlayer, TTreeTableInterface update the parsing
of colon separated line to properly handle the ternary condition operator, reduce 
code duplication and fix existing parsing bugs (due to the 'almost' duplicated code
syndrome):
  - Removed TSelectorDraw::MakeIndex and TSelectorDraw::GetNameByIndex
  - Added TSelectorDraw::SplitNames to replace those 2 function plus pre-processing code
      that was always used in conjunction with their calls.
  - Updated the calling points to use TSelectorDraw::SplitNames.
  - Removed the unused (and incorrect) TTree::MakeIndex and TTree::GetNameByIndex.

Revision 22902 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 31 09:48:42 2008 UTC (6 years, 9 months ago) by rdm
File length: 5578 byte(s)
Diff to previous 20882
move tree, treeplayer and treeviewer under tree meta 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/treeplayer/inc/TSelectorDraw.h
File length: 5578 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/treeplayer/inc/TSelectorDraw.h
File length: 5578 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/treeplayer/inc/TSelectorDraw.h
File length: 5632 byte(s)
Diff to previous 19577
remove :$ from tag line

Revision 19577 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 9 08:13:58 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5642 byte(s)
Diff to previous 19238
-Fix an unbelievable oddity (thanks Bastien): fObject member was redefining TSelector::fObject.
-Add new function TSelectorDraw::GetTree

Revision 19238 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 3 10:00:15 2007 UTC (7 years, 6 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5682 byte(s)
Diff to previous 16870
From Bastien Dallapiazza:
-Expand the dimensionality capability of TSelectorDraw to arbitrary
dimensionality.

However, since there is no way yet to draw data with a dimensionality greater
than 4, I kept the capability not available by keeping the dimensionality test
in TSelectorDraw::Compile (l.908) aborting the drawing if dimension > 4.

Revision 16870 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 22 14:16:55 2006 UTC (8 years, 2 months ago) by rdm
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 6080 byte(s)
Diff to previous 16287
remove a bunch of warnings about Long64_t being truncated to Int_t.

Revision 16287 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 17 19:08:13 2006 UTC (8 years, 4 months ago) by pcanal
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 6077 byte(s)
Diff to previous 15935
Implement TTree::GetEntries(const char *selection) which return the number of entries passing the selection

Revision 15935 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 6 07:15:01 2006 UTC (8 years, 5 months ago) by rdm
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 6078 byte(s)
Diff to previous 15134
Handle several issues related to the TTree::Process() and TTree::Draw()
return values:
- TSelector: fStatus increased from Int_t to Long64_t. It is used to
  return the number of selected events by TTree::Draw() which returns
  a Long64_t.
- TVirtualProof, TProof, TDSet, TProofPlayer: Process() and Draw() were
  returning an Int_t, now a Long64_t to be consistent with TTree/TChain.
  Actually returning of TSelector::GetStatus() from the workers to be
  done tomorrow.
  Also added proper comments describing the return values for Draw()
  (number of selected events), and Process() (value returned by
  TSelector::GetStatus()).
- TTree, TChain, TSelectorDraw: added proper comments describing the
  return values of Draw() and Process().

Revision 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 6020 byte(s)
Diff to previous 13210
From Federico Carminati:

"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."

Revision 13210 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 11 23:21:43 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5925 byte(s)
Diff to previous 9615
Update the spacing and documentation to match the coding rule

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/treeplayer/inc/TSelectorDraw.h
File length: 5995 byte(s)
Diff to previous 7403

*****************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 7403 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 7 11:10:36 2003 UTC (11 years, 3 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5975 byte(s)
Diff to previous 6991
Implement support for 4 dimensions in TTree::Draw.
When doing tree.Draw("x:y:z:u"), the variable "u" is mapped to a color number.
A 3-d scatter plot is generated with ncolors TPolymarker3D objects attached
to the produced histogram list of functions.

Revision 6991 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 22 21:15:30 2003 UTC (11 years, 6 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5768 byte(s)
Diff to previous 6699
From Philippe:
TSelectorDraw::CompileVariables now returns a Boolean to indicate its
success or failure.  This is used in TSelectorDraw::Begin to detect a
'compilation' failure (rather than try to guess from the side effects).

With this fix, the case of producing an EventList with a bad selection now
properly fails.

Revision 6699 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 10 19:07:04 2003 UTC (11 years, 7 months ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5768 byte(s)
Diff to previous 5977
From Philippe:
This patch prevents a core dump if the user double click in the TBrowser on a non-split leaf. It also reduces to 1 the
number of message warning that TSelectorDraw does not know how to histogram this type of objects (it only know how to
histogram TBits and numerical types).

Revision 5977 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 24 07:04:29 2003 UTC (12 years ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5736 byte(s)
Diff to previous 5895
From Philippe
Inclosed is a patch that allow the TTree::Drawing a TBits object.  I.e
        mytree->Draw("myevent.myTbits");
will create a 1D histogram from 0 to nbits which is filled for
each bitnumber which is non-null.

This features is enable if and only if the 'to be drawn' formula contains
only one variable and no operations but can contains method calls:

mytree->Draw("event.fH");
mytree->Draw("event.GetHistogram()");
mytree->Draw("event.fH.GetXaxis()");
mytree->Draw("event.GetHistogram().GetXaxis()");
mytree->Draw("event.fH.GetXaxis().IsA()");
mytree->Draw("check("event.GetHeader()");
mytree->Draw("event.GetTrackCopy()");
mytree->Draw("event.GetTrackCopy(2)");
mytree->Draw("event.GetTrackCopy().fTrigBits");

The system will be extended to allow the 'drawing' of classes other than TBits.

This version is working but is not aggresively optimized (no code
duplication) but has a negligeable impact on the existing cases (one extra
'if (bool)' for each TSelectorDraw::ProcessFill.

TTreeFormula has a new eval function EvalObject which returns a pointer to
the (eventual) object pointed to by the formula.  EvalClass return the TClass
corresponding to this object.

Revision 5895 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 13 15:04:30 2003 UTC (12 years ago) by rdm
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5594 byte(s)
Diff to previous 5871
remove two unused argument warnings (reported by MacOS X). Some reformatting
to 3 idents.

Revision 5871 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 11 12:47:02 2003 UTC (12 years ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5594 byte(s)
Diff to previous 5869
Move histogram drawing to TTreePlayer.
Implement TSelectorDraw::Notify replacing the old UpdateFormulaLeaves

Revision 5869 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 11 09:07:20 2003 UTC (12 years ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5680 byte(s)
Diff to previous 5866
From Philippe:
Looking at Maarten's problem  I noticed that the G__var_array are not properly initialized.
In the attached patch I corrected the problem by calling memset on each of the structs.

I also noticed (running Maarten's example) that a few times, the start of an error message is printed but the ending
(which should come from G__genericerror) is not printed because G__const_noerror is set to 1.  So in a couple of place I
preceded the printing of the start of the error message by if (0==G__const_noerror).

Revision 5866 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri Jan 10 14:53:22 2003 UTC (12 years ago) by brun
Original Path: trunk/treeplayer/inc/TSelectorDraw.h
File length: 5429 byte(s)
New class TSelectorDraw deriving from TSelector.
This new class is used from the new version of TTreePlayer::DrawSelect.

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