Logo ROOT   6.10/09
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 
35 class TVirtualIndex;
36 
38 
39 private:
40  TTreePlayer(const TTreePlayer &);
42 
43 protected:
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 
57 protected:
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 
63 public:
64  TTreePlayer();
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;}
82  TTreeFormula *GetSelect() const {return fSelector->GetSelect();}
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);
124  void SetScanRedirect(Bool_t on=kFALSE) {fScanRedirect = on;}
125  void SetScanFileName(const char *name) {fScanFileName=name;}
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
void DeleteSelectorFromFile()
Delete any selector created by this object.
Principal Components Analysis (PCA)
Definition: TPrincipal.h:20
void SetScanFileName(const char *name)
Definition: TTreePlayer.h:125
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...
TTreeFormula * GetVar(Int_t i) const
Return the TTreeFormula corresponding to the i-th component of the request formula (where the compone...
long long Long64_t
Definition: RtypesCore.h:69
TTree * fTree
Definition: TTreePlayer.h:44
Abstract interface for Tree Index.
Definition: TVirtualIndex.h:29
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 * GetV2() const
TSelectorDraw * fSelector
Pointer to histogram used for the projection.
Definition: TTreePlayer.h:50
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...
const char Option_t
Definition: RtypesCore.h:62
double T(double x)
Definition: ChebyshevPol.h:34
Basic string class.
Definition: TString.h:129
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
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 void SetTree(TTree *t)
Definition: TTreePlayer.h:126
virtual Double_t * GetV4() const
TTreeFormula * GetSelect() const
Definition: TTreePlayer.h:82
virtual Int_t GetDimension() const
Definition: TTreePlayer.h:76
TPrincipal * Principal(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry)
Interface to the Principal Components Analysis class.
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.
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.
virtual Double_t * GetV3() const
TTreeFormula * GetVar4() const
Definition: TSelectorDraw.h:97
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...
void SetScanRedirect(Bool_t on=kFALSE)
Definition: TTreePlayer.h:124
#define ClassDef(name, id)
Definition: Rtypes.h:297
Bool_t ScanRedirected()
Definition: TTreePlayer.h:120
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.
TTreeFormula * GetVar2() const
Definition: TSelectorDraw.h:93
virtual Double_t * GetV2() const
Definition: TTreePlayer.h:101
TSelector * GetSelector() const
Definition: TTreePlayer.h:84
TSelector * fSelectorFromFile
Pointer to current selector.
Definition: TTreePlayer.h:51
void TakeEstimate(Int_t nfill, Int_t &npoints, Int_t action, TObject *obj, Option_t *option)
TTreeFormula * GetVar1() const
Definition: TTreePlayer.h:89
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
virtual ~TTreePlayer()
Tree destructor.
virtual void UpdateFormulaLeaves()
this function is called by TChain::LoadTree when a new Tree is loaded.
A doubly linked list.
Definition: TList.h:43
virtual void StartViewer(Int_t ww, Int_t wh)
Start the TTreeViewer on this TTree.
virtual Double_t * GetW() const
Definition: TTreePlayer.h:106
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.
virtual void SetEstimate(Long64_t n)
Set number of entries to estimate variable limits.
TTreeFormula * GetSelect() const
Definition: TSelectorDraw.h:86
virtual Double_t * GetW() const
virtual Int_t MakeReader(const char *classname, Option_t *option)
Generate skeleton selector class for this tree.
virtual Double_t * GetV1() const
virtual Long64_t GetSelectedRows() const
Definition: TTreePlayer.h:83
virtual Int_t GetNfill() const
Definition: TTreePlayer.h:80
TClass * fSelectorClass
Pointer to a user defined selector created by this TTreePlayer object.
Definition: TTreePlayer.h:52
const char * fScanFileName
Definition: TTreePlayer.h:46
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.
Int_t fDimension
Definition: TTreePlayer.h:47
virtual Double_t * GetV3() const
Definition: TTreePlayer.h:103
TList * fInput
Pointer to the actual class of the TSelectorFromFile.
Definition: TTreePlayer.h:53
virtual Double_t * GetV4() const
Definition: TTreePlayer.h:105
TTreePlayer & operator=(const TTreePlayer &)
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:71
TH1 * GetHistogram() const
Definition: TTreePlayer.h:77
virtual Int_t MakeCode(const char *filename)
Generate skeleton function for this Tree.
TSelector * GetSelectorFromFile() const
Definition: TTreePlayer.h:85
TTreeFormula * GetVar(Int_t i) const
Definition: TTreePlayer.h:87
virtual Double_t * GetV1() const
Definition: TTreePlayer.h:99
A specialized TSelector for TTree::Draw.
Definition: TSelectorDraw.h:31
const Bool_t kFALSE
Definition: RtypesCore.h:92
TTreeFormula * GetVar4() const
Definition: TTreePlayer.h:95
double Double_t
Definition: RtypesCore.h:55
TSelector * fSelectorUpdate
Pointer to a list of coordinated list TTreeFormula (used by Scan and Query)
Definition: TTreePlayer.h:55
Bool_t fScanRedirect
Pointer to current Tree.
Definition: TTreePlayer.h:45
TH1 * fHistogram
Definition: TTreePlayer.h:49
int nentries
Definition: THbookFile.cxx:89
virtual Int_t GetNfill() const
Definition: TSelectorDraw.h:84
The TH1 histogram class.
Definition: TH1.h:56
TTreeFormula * GetVar3() const
Definition: TSelectorDraw.h:95
virtual void RecursiveRemove(TObject *obj)
cleanup pointers in the player pointing to obj
const char * GetScanFileName() const
Definition: TTreePlayer.h:81
TTreePlayer()
Default Tree constructor.
Definition: TTreePlayer.cxx:98
Mother of all ROOT objects.
Definition: TObject.h:37
virtual Double_t * GetVal(Int_t i) const
Definition: TTreePlayer.h:97
virtual Long64_t GetEntries(const char *selection)
Return the number of entries matching the selection.
Abstract base class defining the interface for the plugins that implement Draw, Scan, Process, MakeProxy, etc.
void TakeAction(Int_t nfill, Int_t &npoints, Int_t &action, TObject *obj, Option_t *option)
Long64_t fSelectedRows
Definition: TTreePlayer.h:48
virtual TVirtualIndex * BuildIndex(const TTree *T, const char *majorname, const char *minorname)
Build the index for the tree (see TTree::BuildIndex)
A TTree object has a header with a name and a title.
Definition: TTree.h:78
TTreeFormula * GetVar3() const
Definition: TTreePlayer.h:93
TList * fFormulaList
input list to the selector
Definition: TTreePlayer.h:54
Implement some of the functionality of the class TTree requiring access to extra libraries (Histogram...
Definition: TTreePlayer.h:37
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:33
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.
TTreeFormula * GetVar2() const
Definition: TTreePlayer.h:91
const Int_t n
Definition: legend1.C:16
virtual Int_t MakeClass(const char *classname, Option_t *option)
Generate skeleton analysis class for this Tree.
TTreeFormula * GetVar1() const
Definition: TSelectorDraw.h:91
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.