Logo ROOT   6.18/05
Reference Guide
TTreePlayer.h
Go to the documentation of this file.
1// @(#)root/treeplayer:$Id$
2// Author: Rene Brun 12/01/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TTreePlayer
13#define ROOT_TTreePlayer
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TTreePlayer //
19// //
20// A TTree object is a list of TBranch. //
21// To Create a TTree object one must: //
22// - Create the TTree header via the TTree constructor //
23// - Call the TBranch constructor for every branch. //
24// //
25// To Fill this object, use member function Fill with no parameters. //
26// The Fill function loops on all defined TBranch. //
27// //
28//////////////////////////////////////////////////////////////////////////
29
30#include "TTree.h"
31#include "TSelectorDraw.h"
32#include "TVirtualTreePlayer.h"
33
34
35class TVirtualIndex;
36
38
39private:
42
43protected:
44 TTree *fTree; //! Pointer to current Tree
45 Bool_t fScanRedirect; // Switch to redirect TTree::Scan output to a file
46 const char *fScanFileName; // Name of the file where Scan is redirected
47 Int_t fDimension; // Dimension of the current expression
48 Long64_t fSelectedRows; // Number of selected entries
49 TH1 *fHistogram; //! Pointer to histogram used for the projection
50 TSelectorDraw *fSelector; //! Pointer to current selector
51 TSelector *fSelectorFromFile;//! Pointer to a user defined selector created by this TTreePlayer object
52 TClass *fSelectorClass; //! Pointer to the actual class of the TSelectorFromFile
53 TList *fInput; //! input list to the selector
54 TList *fFormulaList; //! Pointer to a list of coordinated list TTreeFormula (used by Scan and Query)
55 TSelector *fSelectorUpdate; //! Set to the selector address when it's entry list needs to be updated by the UpdateFormulaLeaves function
56
57protected:
58 const char *GetNameByIndex(TString &varexp, Int_t *index,Int_t colindex);
59 void TakeAction(Int_t nfill, Int_t &npoints, Int_t &action, TObject *obj, Option_t *option);
60 void TakeEstimate(Int_t nfill, Int_t &npoints, Int_t action, TObject *obj, Option_t *option);
62
63public:
65 virtual ~TTreePlayer();
66 virtual TVirtualIndex *BuildIndex(const TTree *T, const char *majorname, const char *minorname);
67 virtual TTree *CopyTree(const char *selection, Option_t *option
68 ,Long64_t nentries, Long64_t firstentry);
69 virtual Long64_t DrawScript(const char* wrapperPrefix,
70 const char *macrofilename, const char *cutfilename,
71 Option_t *option, Long64_t nentries, Long64_t firstentry);
72 virtual Long64_t DrawSelect(const char *varexp, const char *selection, Option_t *option
73 ,Long64_t nentries, Long64_t firstentry);
74 virtual Int_t Fit(const char *formula ,const char *varexp, const char *selection,Option_t *option ,
75 Option_t *goption ,Long64_t nentries, Long64_t firstentry);
76 virtual Int_t GetDimension() const {return fDimension;}
77 TH1 *GetHistogram() const {return fHistogram;}
78 virtual Long64_t GetEntries(const char *selection);
79 virtual Long64_t GetEntriesToProcess(Long64_t firstentry, Long64_t nentries) const;
80 virtual Int_t GetNfill() const {return fSelector->GetNfill();}
81 const char *GetScanFileName() const {return fScanFileName;}
83 virtual Long64_t GetSelectedRows() const {return fSelectedRows;}
84 TSelector *GetSelector() const {return fSelector;}
86 // See TSelectorDraw::GetVar
87 TTreeFormula *GetVar(Int_t i) const {return fSelector->GetVar(i);};
88 // See TSelectorDraw::GetVar
89 TTreeFormula *GetVar1() const {return fSelector->GetVar1();}
90 // See TSelectorDraw::GetVar
91 TTreeFormula *GetVar2() const {return fSelector->GetVar2();}
92 // See TSelectorDraw::GetVar
93 TTreeFormula *GetVar3() const {return fSelector->GetVar3();}
94 // See TSelectorDraw::GetVar
95 TTreeFormula *GetVar4() const {return fSelector->GetVar4();}
96 // See TSelectorDraw::GetVal
97 virtual Double_t *GetVal(Int_t i) const {return fSelector->GetVal(i);};
98 // See TSelectorDraw::GetVal
99 virtual Double_t *GetV1() const {return fSelector->GetV1();}
100 // See TSelectorDraw::GetVal
101 virtual Double_t *GetV2() const {return fSelector->GetV2();}
102 // See TSelectorDraw::GetVal
103 virtual Double_t *GetV3() const {return fSelector->GetV3();}
104 // See TSelectorDraw::GetVal
105 virtual Double_t *GetV4() const {return fSelector->GetV4();}
106 virtual Double_t *GetW() const {return fSelector->GetW();}
107 virtual Int_t MakeClass(const char *classname, Option_t *option);
108 virtual Int_t MakeCode(const char *filename);
109 virtual Int_t MakeProxy(const char *classname,
110 const char *macrofilename = 0, const char *cutfilename = 0,
111 const char *option = 0, Int_t maxUnrolling = 3);
112 virtual Int_t MakeReader(const char *classname, Option_t *option);
113 TPrincipal *Principal(const char *varexp, const char *selection, Option_t *option
114 ,Long64_t nentries, Long64_t firstentry);
115 virtual Long64_t Process(const char *filename,Option_t *option, Long64_t nentries, Long64_t firstentry);
116 virtual Long64_t Process(TSelector *selector,Option_t *option, Long64_t nentries, Long64_t firstentry);
117 virtual void RecursiveRemove(TObject *obj);
118 virtual Long64_t Scan(const char *varexp, const char *selection, Option_t *option
119 ,Long64_t nentries, Long64_t firstentry);
121 virtual TSQLResult *Query(const char *varexp, const char *selection, Option_t *option
122 ,Long64_t nentries, Long64_t firstentry);
123 virtual void SetEstimate(Long64_t n);
126 virtual void SetTree(TTree *t) {fTree = t;}
127 virtual void StartViewer(Int_t ww, Int_t wh);
128 virtual Int_t UnbinnedFit(const char *formula ,const char *varexp, const char *selection,Option_t *option
129 ,Long64_t nentries, Long64_t firstentry);
130 virtual void UpdateFormulaLeaves();
131
132 ClassDef(TTreePlayer,3); //Manager class to play with TTrees
133};
134
135#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
long long Long64_t
Definition: RtypesCore.h:69
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:326
char name[80]
Definition: TGX11.cxx:109
int nentries
Definition: THbookFile.cxx:89
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
The TH1 histogram class.
Definition: TH1.h:56
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37
Principal Components Analysis (PCA)
Definition: TPrincipal.h:20
A specialized TSelector for TTree::Draw.
Definition: TSelectorDraw.h:31
virtual Double_t * GetW() const
TTreeFormula * GetSelect() const
Definition: TSelectorDraw.h:86
TTreeFormula * GetVar(Int_t i) const
Return the TTreeFormula corresponding to the i-th component of the request formula (where the compone...
virtual Double_t * GetV4() const
TTreeFormula * GetVar3() const
Definition: TSelectorDraw.h:95
virtual Double_t * GetV2() const
TTreeFormula * GetVar2() const
Definition: TSelectorDraw.h:93
TTreeFormula * GetVar1() const
Definition: TSelectorDraw.h:91
TTreeFormula * GetVar4() const
Definition: TSelectorDraw.h:97
virtual Double_t * GetV1() const
virtual Double_t * GetVal(Int_t i) const
Return the last values corresponding to the i-th component of the formula being processed (where the ...
virtual Double_t * GetV3() const
virtual Int_t GetNfill() const
Definition: TSelectorDraw.h:84
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:33
Basic string class.
Definition: TString.h:131
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
Implement some of the functionality of the class TTree requiring access to extra libraries (Histogram...
Definition: TTreePlayer.h:37
virtual void UpdateFormulaLeaves()
this function is called by TChain::LoadTree when a new Tree is loaded.
virtual Int_t MakeProxy(const char *classname, const char *macrofilename=0, const char *cutfilename=0, const char *option=0, Int_t maxUnrolling=3)
Generate a skeleton analysis class for this Tree using TBranchProxy.
TList * fInput
Pointer to the actual class of the TSelectorFromFile.
Definition: TTreePlayer.h:53
TSelector * GetSelector() const
Definition: TTreePlayer.h:84
void DeleteSelectorFromFile()
Delete any selector created by this object.
virtual Long64_t DrawSelect(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Draw expression varexp for specified entries that matches the selection.
TTreePlayer & operator=(const TTreePlayer &)
virtual Long64_t GetSelectedRows() const
Definition: TTreePlayer.h:83
virtual Long64_t GetEntries(const char *selection)
Return the number of entries matching the selection.
virtual Double_t * GetV3() const
Definition: TTreePlayer.h:103
TSelectorDraw * fSelector
Pointer to histogram used for the projection.
Definition: TTreePlayer.h:50
virtual Double_t * GetV1() const
Definition: TTreePlayer.h:99
virtual Int_t UnbinnedFit(const char *formula, const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Unbinned fit of one or more variable(s) from a Tree.
const char * GetNameByIndex(TString &varexp, Int_t *index, Int_t colindex)
Set to the selector address when it's entry list needs to be updated by the UpdateFormulaLeaves funct...
virtual ~TTreePlayer()
Tree destructor.
TH1 * GetHistogram() const
Definition: TTreePlayer.h:77
virtual Int_t Fit(const char *formula, const char *varexp, const char *selection, Option_t *option, Option_t *goption, Long64_t nentries, Long64_t firstentry)
Fit a projected item(s) from a Tree.
Long64_t fSelectedRows
Definition: TTreePlayer.h:48
void TakeEstimate(Int_t nfill, Int_t &npoints, Int_t action, TObject *obj, Option_t *option)
TSelector * fSelectorFromFile
Pointer to current selector.
Definition: TTreePlayer.h:51
virtual Double_t * GetV4() const
Definition: TTreePlayer.h:105
const char * fScanFileName
Definition: TTreePlayer.h:46
TList * fFormulaList
input list to the selector
Definition: TTreePlayer.h:54
virtual TTree * CopyTree(const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Copy a Tree with selection, make a clone of this Tree header, then copy the selected entries.
virtual Int_t MakeCode(const char *filename)
Generate skeleton function for this Tree.
virtual Double_t * GetV2() const
Definition: TTreePlayer.h:101
TTreeFormula * GetVar1() const
Definition: TTreePlayer.h:89
TTreeFormula * GetSelect() const
Definition: TTreePlayer.h:82
void TakeAction(Int_t nfill, Int_t &npoints, Int_t &action, TObject *obj, Option_t *option)
TTree * fTree
Definition: TTreePlayer.h:44
virtual Int_t MakeClass(const char *classname, Option_t *option)
Generate skeleton analysis class for this Tree.
virtual void SetEstimate(Long64_t n)
Set number of entries to estimate variable limits.
void SetScanRedirect(Bool_t on=kFALSE)
Definition: TTreePlayer.h:124
virtual Long64_t DrawScript(const char *wrapperPrefix, const char *macrofilename, const char *cutfilename, Option_t *option, Long64_t nentries, Long64_t firstentry)
Draw the result of a C++ script.
TSelector * GetSelectorFromFile() const
Definition: TTreePlayer.h:85
void SetScanFileName(const char *name)
Definition: TTreePlayer.h:125
TTreeFormula * GetVar4() const
Definition: TTreePlayer.h:95
virtual Long64_t Scan(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Loop on Tree and print entries passing selection.
virtual Int_t GetNfill() const
Definition: TTreePlayer.h:80
TPrincipal * Principal(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Interface to the Principal Components Analysis class.
TSelector * fSelectorUpdate
Pointer to a list of coordinated list TTreeFormula (used by Scan and Query)
Definition: TTreePlayer.h:55
TH1 * fHistogram
Definition: TTreePlayer.h:49
virtual void StartViewer(Int_t ww, Int_t wh)
Start the TTreeViewer on this TTree.
Bool_t fScanRedirect
Pointer to current Tree.
Definition: TTreePlayer.h:45
virtual Double_t * GetVal(Int_t i) const
Definition: TTreePlayer.h:97
TTreePlayer(const TTreePlayer &)
virtual Double_t * GetW() const
Definition: TTreePlayer.h:106
virtual TSQLResult * Query(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Loop on Tree and return TSQLResult object containing entries passing selection.
virtual Int_t GetDimension() const
Definition: TTreePlayer.h:76
TClass * fSelectorClass
Pointer to a user defined selector created by this TTreePlayer object.
Definition: TTreePlayer.h:52
TTreeFormula * GetVar3() const
Definition: TTreePlayer.h:93
const char * GetScanFileName() const
Definition: TTreePlayer.h:81
virtual void SetTree(TTree *t)
Definition: TTreePlayer.h:126
virtual TVirtualIndex * BuildIndex(const TTree *T, const char *majorname, const char *minorname)
Build the index for the tree (see TTree::BuildIndex)
Int_t fDimension
Definition: TTreePlayer.h:47
virtual Long64_t Process(const char *filename, Option_t *option, Long64_t nentries, Long64_t firstentry)
Process this tree executing the TSelector code in the specified filename.
Bool_t ScanRedirected()
Definition: TTreePlayer.h:120
TTreePlayer()
Default Tree constructor.
Definition: TTreePlayer.cxx:98
virtual Int_t MakeReader(const char *classname, Option_t *option)
Generate skeleton selector class for this tree.
virtual void RecursiveRemove(TObject *obj)
cleanup pointers in the player pointing to obj
TTreeFormula * GetVar2() const
Definition: TTreePlayer.h:91
TTreeFormula * GetVar(Int_t i) const
Definition: TTreePlayer.h:87
virtual Long64_t GetEntriesToProcess(Long64_t firstentry, Long64_t nentries) const
return the number of entries to be processed this function checks that nentries is not bigger than th...
A TTree represents a columnar dataset.
Definition: TTree.h:71
Abstract interface for Tree Index.
Definition: TVirtualIndex.h:29
Abstract base class defining the interface for the plugins that implement Draw, Scan,...
const Int_t n
Definition: legend1.C:16
double T(double x)
Definition: ChebyshevPol.h:34