Logo ROOT   6.16/01
Reference Guide
TSpider.h
Go to the documentation of this file.
1// @(#)root/treeviewer:$Id$
2// Author: Bastien Dalla Piazza 20/07/07
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, 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_TSpider
13#define ROOT_TSpider
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// TSpider //
18// //
19// TSpider is a manager used to paint a spider view //
20// of the events of a TNtuple. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TObject.h"
25
26#include "TAttFill.h"
27
28#include "TAttLine.h"
29
30#include "TAttText.h"
31
32class TTree;
33class TGraphPolargram;
34class TPolyLine;
35class TTreeFormula;
37class TList;
38class TSelectorDraw;
39class TString;
40class TLatex;
41class TCanvas;
42class TArc;
43
44class TSpider : public TObject, public TAttFill, public TAttLine {
45private:
46 UInt_t fNx; // Number of horizontal spider plots.
47 UInt_t fNy; // Number of vertical spider plots.
48 UInt_t fNcols; // Number of variables.
49 Int_t fArraySize; // Actual size of the arrays.
50 Long64_t fEntry; // Present entry number in fTree.
51 Long64_t fNentries; // Number of entries.
52 Long64_t fFirstEntry; // First entry.
53 Long64_t* fCurrentEntries; //![fNx*fNy] current selected entries;
54 Double_t* fAve; //[fNcols] Average value of each variable.
55 Double_t* fMax; //[fNcols] Maximum value of the variables.
56 Double_t* fMin; //[fNcols] Minimum value of the variables.
57 TList* fSuperposed; // Superposed spider plots.
58 TTree* fTree; // Pointer to the TTree to represent.
59 TPolyLine* fAveragePoly; // Polygon representing the average variables value.
60 TArc** fAverageSlices; //! Average slices.
61 TCanvas* fCanvas; //! Pointer to the mother pad.
62 TList* fFormulas; // List of all formulas to represent.
63 TList* fInput; // Used for fSelector.
64 TTreeFormulaManager* fManager; // Coordinator for the formulas.
65 TGraphPolargram* fPolargram; // Polar graph.
66 TList* fPolyList; // Polygons representing the variables.
67 TTreeFormula* fSelect; // Selection condition
68 TSelectorDraw* fSelector; //! Selector.
69 Bool_t fAngularLabels; // True if the labels are oriented according to their axis.
70 Bool_t fDisplayAverage; // Display or not the average.
71 Bool_t fForceDim; // Force dimension.
72 Bool_t fSegmentDisplay; // True if displaying a segment plot.
73 Bool_t fShowRange; // Show range of variables or not.
74
77 void InitVariables(Long64_t firstentry, Long64_t nentries);
78 void DrawPoly(Option_t* options);
79 void DrawPolyAverage(Option_t* options);
80 void DrawSlices(Option_t* options);
81 void DrawSlicesAverage(Option_t* options);
82 void SyncFormulas();
83 void InitArrays(Int_t newsize);
84 void SetCurrentEntries();
85 void UpdateView();
86
87public:
88 TSpider();
89 TSpider(TTree* tree, const char *varexp, const char *selection, Option_t *option="",
90 Long64_t nentries=0, Long64_t firstentry=0);
91 ~TSpider();
92 void AddSuperposed(TSpider* sp);
93 void AddVariable(const char* varexp); // *MENU*
94 void DeleteVariable(const char* varexp); // *MENU*
95 virtual void Draw(Option_t *options="");
96 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
97 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
106 Int_t GetNx() const {return fNx;}
107 Int_t GetNy() const {return fNy;}
109 void GotoEntry(Long64_t e); // *MENU*
110 void GotoNext(); // *MENU*
111 void GotoPrevious(); // *MENU*
112 void GotoFollowing(); // *MENU*
113 void GotoPreceding(); // *MENU*
114 virtual void Paint(Option_t *options);
120 virtual void SetLineStyle(Style_t sty);
121 virtual void SetLineColor(Color_t col);
122 virtual void SetLineWidth(Width_t wid);
123 virtual void SetFillColor(Color_t col);
124 virtual void SetFillStyle(Style_t sty);
125 void SetDisplayAverage(Bool_t disp); // *TOGGLE*
126 void SetVariablesExpression(const char* varexp);
127 void SetNdivRadial(Int_t div); // *MENU*
128 void SetNx(UInt_t nx); // *MENU*
129 void SetNy(UInt_t ny); // *MENU*
130 void SetSelectionExpression(const char* selexp);
131 void SetSegmentDisplay(Bool_t seg); // *TOGGLE*
132 void SetShowRange(Bool_t showrange) {fShowRange = showrange;}
133 void SuperposeTo(TSpider* sp) {sp->AddSuperposed(this);}
134
135 ClassDef(TSpider,0) //Helper class to draw spider
136};
137
138#endif
#define e(i)
Definition: RSha256.hxx:103
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
short Width_t
Definition: RtypesCore.h:78
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
short Color_t
Definition: RtypesCore.h:79
long long Long64_t
Definition: RtypesCore.h:69
short Style_t
Definition: RtypesCore.h:76
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:324
int nentries
Definition: THbookFile.cxx:89
Create an Arc.
Definition: TArc.h:28
Fill Area Attributes class.
Definition: TAttFill.h:19
Line Attributes class.
Definition: TAttLine.h:18
The Canvas class.
Definition: TCanvas.h:31
To draw polar axis.
To draw Mathematical Formula.
Definition: TLatex.h:18
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37
Defined by an array on N points in a 2-D space.
Definition: TPolyLine.h:23
A specialized TSelector for TTree::Draw.
Definition: TSelectorDraw.h:31
Spider class.
Definition: TSpider.h:44
void SetAverageLineStyle(Style_t sty)
Set the LineStyle of the average.
Definition: TSpider.cxx:964
TPolyLine * fAveragePoly
Definition: TSpider.h:59
void SetAverageFillColor(Color_t col)
Set the Fill Color of the average.
Definition: TSpider.cxx:1000
virtual void SetFillColor(Color_t col)
Set fill color.
Definition: TSpider.cxx:1184
UInt_t fNy
Definition: TSpider.h:47
~TSpider()
Destructor.
Definition: TSpider.cxx:173
virtual void SetLineStyle(Style_t sty)
Set line style.
Definition: TSpider.cxx:1136
Bool_t fShowRange
Definition: TSpider.h:73
TList * fInput
Definition: TSpider.h:63
void SetNx(UInt_t nx)
Set the X number of sub pads.
Definition: TSpider.cxx:1225
Double_t * fAve
[fNx*fNy] current selected entries;
Definition: TSpider.h:54
Style_t GetAverageLineStyle() const
Get the LineStyle of the average.
Definition: TSpider.cxx:616
Int_t GetNy() const
Definition: TSpider.h:107
void GotoPrevious()
Go to the previous entries.
Definition: TSpider.cxx:763
virtual void SetFillStyle(Style_t sty)
Set fill style.
Definition: TSpider.cxx:1200
TList * fSuperposed
Definition: TSpider.h:57
virtual void SetLineColor(Color_t col)
Set lin color.
Definition: TSpider.cxx:1152
virtual void Paint(Option_t *options)
Paint the spider.
Definition: TSpider.cxx:917
void DrawSlices(Option_t *options)
Draw the slices of the segment plot.
Definition: TSpider.cxx:559
Long64_t fFirstEntry
Definition: TSpider.h:52
void UpdateView()
Update the polylines or the arcs for the current entries.
Definition: TSpider.cxx:1553
TTree * fTree
Definition: TSpider.h:58
void SetNdivRadial(Int_t div)
Set number of radial divisions.
Definition: TSpider.cxx:1216
void SetCurrentEntries()
Set the current selected entries.
Definition: TSpider.cxx:1066
void AddVariable(const char *varexp)
Add a variable to the plot from its expression.
Definition: TSpider.cxx:214
UInt_t fNcols
Definition: TSpider.h:48
void DrawPoly(Option_t *options)
Paint the polygon representing the current entry.
Definition: TSpider.cxx:529
void DrawSlicesAverage(Option_t *options)
Draw the slices representing the average for the segment plot.
Definition: TSpider.cxx:585
Int_t GetNx() const
Definition: TSpider.h:106
void GotoEntry(Long64_t e)
Go to a specified entry.
Definition: TSpider.cxx:743
TCanvas * fCanvas
Average slices.
Definition: TSpider.h:61
Int_t fArraySize
Definition: TSpider.h:49
void SetAverageLineColor(Color_t col)
Set the LineColor of the average.
Definition: TSpider.cxx:976
TArc ** fAverageSlices
Definition: TSpider.h:60
void SetSelectionExpression(const char *selexp)
Compile selection expression if there is one.
Definition: TSpider.cxx:1470
Long64_t fEntry
Definition: TSpider.h:50
void DeleteVariable(const char *varexp)
Delete a variable from its expression.
Definition: TSpider.cxx:352
void SetAverageLineWidth(Width_t wid)
Set the LineWidth of the average.
Definition: TSpider.cxx:988
TTreeFormulaManager * fManager
Definition: TSpider.h:64
Width_t GetAverageLineWidth() const
Get the LineWidth of the average.
Definition: TSpider.cxx:636
void SetShowRange(Bool_t showrange)
Definition: TSpider.h:132
TList * fFormulas
Pointer to the mother pad.
Definition: TSpider.h:62
Color_t GetAverageLineColor() const
Get the LineColor of the average.
Definition: TSpider.cxx:626
TTreeFormula * fSelect
Definition: TSpider.h:67
void InitVariables(Long64_t firstentry, Long64_t nentries)
Browse the tree to set the min, max and average value of each variable of fVar.
Definition: TSpider.cxx:831
void SetDisplayAverage(Bool_t disp)
Display or not the average.
Definition: TSpider.cxx:1024
Int_t FindTextAlign(Double_t theta)
Find the alignement rule to apply for TText::SetTextAlign(Short_t).
Definition: TSpider.cxx:675
void SetVariablesExpression(const char *varexp)
Compile the variables expression from the given string varexp.
Definition: TSpider.cxx:1483
void SetAverageFillStyle(Style_t sty)
Set the FillStyle of the average.
Definition: TSpider.cxx:1012
TSelectorDraw * fSelector
Definition: TSpider.h:68
TSpider()
Default constructor.
Definition: TSpider.cxx:75
Double_t FindTextAngle(Double_t theta)
Determine the orientation of the polar labels according to their angle.
Definition: TSpider.cxx:704
void SetSegmentDisplay(Bool_t seg)
Set the segment display or not.
Definition: TSpider.cxx:1379
Color_t GetAverageFillColor() const
Get the Fill Color of the average.
Definition: TSpider.cxx:646
void SyncFormulas()
Create a TreeFormulaManager to coordinate the formulas.
Definition: TSpider.cxx:1521
void AddSuperposed(TSpider *sp)
Allow to superpose several spider views.
Definition: TSpider.cxx:205
Long64_t GetCurrentEntry() const
Definition: TSpider.h:104
Double_t * fMax
Definition: TSpider.h:55
Double_t * fMin
Definition: TSpider.h:56
UInt_t fNx
Definition: TSpider.h:46
void SetNy(UInt_t ny)
Set the Y number of sub pads.
Definition: TSpider.cxx:1302
Bool_t GetSegmentDisplay() const
Definition: TSpider.h:108
Bool_t fSegmentDisplay
Definition: TSpider.h:72
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute the distance to the spider.
Definition: TSpider.cxx:438
Bool_t fAngularLabels
Selector.
Definition: TSpider.h:69
virtual void SetLineWidth(Width_t wid)
Set line width.
Definition: TSpider.cxx:1168
Bool_t fForceDim
Definition: TSpider.h:71
void InitArrays(Int_t newsize)
Check if the arrays size is enough and reallocate them if not.
Definition: TSpider.cxx:793
virtual void Draw(Option_t *options="")
Draw the spider.
Definition: TSpider.cxx:453
Long64_t fNentries
Definition: TSpider.h:51
Style_t GetAverageFillStyle() const
Get the FillStyle of the average.
Definition: TSpider.cxx:656
void SuperposeTo(TSpider *sp)
Definition: TSpider.h:133
TGraphPolargram * fPolargram
Definition: TSpider.h:65
void GotoNext()
Go to the next entries.
Definition: TSpider.cxx:753
void DrawPolyAverage(Option_t *options)
Paint the Polygon representing the average value of the variables.
Definition: TSpider.cxx:491
Long64_t * fCurrentEntries
Definition: TSpider.h:53
Bool_t fDisplayAverage
Definition: TSpider.h:70
TList * fPolyList
Definition: TSpider.h:66
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute the corresponding event.
Definition: TSpider.cxx:666
void GotoPreceding()
Go to the last entry.
Definition: TSpider.cxx:783
Bool_t GetDisplayAverage() const
Definition: TSpider.h:103
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...
Definition: TSpider.cxx:726
void GotoFollowing()
Go to the next entry.
Definition: TSpider.cxx:773
Basic string class.
Definition: TString.h:131
Used to coordinate one or more TTreeFormula objects.
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
A TTree object has a header with a name and a title.
Definition: TTree.h:71
Definition: tree.py:1