Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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#include "TAttFill.h"
26#include "TAttLine.h"
27
28class TTree;
29class TGraphPolargram;
30class TPolyLine;
31class TTreeFormula;
33class TList;
34class TSelectorDraw;
35class TString;
36class TLatex;
37class TCanvas;
38class TArc;
39
40class TSpider : public TObject, public TAttFill, public TAttLine {
41private:
42 UInt_t fNx; ///< Number of horizontal spider plots.
43 UInt_t fNy; ///< Number of vertical spider plots.
44 UInt_t fNcols; ///< Number of variables.
45 Int_t fArraySize; ///< Actual size of the arrays.
46 Long64_t fEntry; ///< Present entry number in fTree.
47 Long64_t fNentries; ///< Number of entries.
48 Long64_t fFirstEntry; ///< First entry.
49 Long64_t* fCurrentEntries; ///<![fNx*fNy] current selected entries;
50 Double_t* fAve; ///<[fNcols] Average value of each variable.
51 Double_t* fMax; ///<[fNcols] Maximum value of the variables.
52 Double_t* fMin; ///<[fNcols] Minimum value of the variables.
53 TList* fSuperposed; ///< Superposed spider plots.
54 TTree* fTree; ///< Pointer to the TTree to represent.
55 TPolyLine* fAveragePoly; ///< Polygon representing the average variables value.
56 TArc** fAverageSlices; ///<! Average slices.
57 TCanvas* fCanvas; ///<! Pointer to the mother pad.
58 TList* fFormulas; ///< List of all formulas to represent.
59 TList* fInput; ///< Used for fSelector.
60 TTreeFormulaManager* fManager; ///< Coordinator for the formulas.
61 TGraphPolargram* fPolargram; ///< Polar graph.
62 TList* fPolyList; ///< Polygons representing the variables.
63 TTreeFormula* fSelect; ///< Selection condition
64 TSelectorDraw* fSelector; ///<! Selector.
65 bool fAngularLabels; ///< True if the labels are oriented according to their axis.
66 bool fDisplayAverage; ///< Display or not the average.
67 bool fForceDim; ///< Force dimension.
68 bool fSegmentDisplay; ///< True if displaying a segment plot.
69 bool fShowRange; ///< Show range of variables or not.
70
73 void InitVariables(Long64_t firstentry, Long64_t nentries);
74 void DrawPoly(Option_t* options);
75 void DrawPolyAverage(Option_t* options);
76 void DrawSlices(Option_t* options);
77 void DrawSlicesAverage(Option_t* options);
78 void SyncFormulas();
79 void InitArrays(Int_t newsize);
80 void SetCurrentEntries();
81 void UpdateView();
82
83public:
84 TSpider();
85 TSpider(TTree* tree, const char *varexp, const char *selection, Option_t *option="",
86 Long64_t nentries=0, Long64_t firstentry=0);
87 ~TSpider() override;
88 void AddSuperposed(TSpider* sp);
89 void AddVariable(const char* varexp); // *MENU*
90 void DeleteVariable(const char* varexp); // *MENU*
91 void Draw(Option_t *options="") override;
92 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
93 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
99 bool GetDisplayAverage() const {return fDisplayAverage;}
102 Int_t GetNx() const {return fNx;}
103 Int_t GetNy() const {return fNy;}
104 bool GetSegmentDisplay() const {return fSegmentDisplay;}
105 void GotoEntry(Long64_t e); // *MENU*
106 void GotoNext(); // *MENU*
107 void GotoPrevious(); // *MENU*
108 void GotoFollowing(); // *MENU*
109 void GotoPreceding(); // *MENU*
110 void Paint(Option_t *options) override;
116 void SetLineStyle(Style_t sty) override;
117 void SetLineColor(Color_t col) override;
118 void SetLineWidth(Width_t wid) override;
119 void SetFillColor(Color_t col) override;
120 void SetFillStyle(Style_t sty) override;
121 void SetDisplayAverage(bool disp); // *TOGGLE*
122 void SetVariablesExpression(const char* varexp);
123 void SetNdivRadial(Int_t div); // *MENU*
124 void SetNx(UInt_t nx); // *MENU*
125 void SetNy(UInt_t ny); // *MENU*
126 void SetSelectionExpression(const char* selexp);
127 void SetSegmentDisplay(bool seg); // *TOGGLE*
128 void SetShowRange(bool showrange) {fShowRange = showrange;}
129 void SuperposeTo(TSpider* sp) {sp->AddSuperposed(this);}
130
131 ClassDefOverride(TSpider,0) //Helper class to draw spider
132};
133
134#endif
#define e(i)
Definition RSha256.hxx:103
short Style_t
Definition RtypesCore.h:89
int Int_t
Definition RtypesCore.h:45
short Color_t
Definition RtypesCore.h:92
unsigned int UInt_t
Definition RtypesCore.h:46
short Width_t
Definition RtypesCore.h:91
long long Long64_t
Definition RtypesCore.h:80
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
Option_t Option_t SetLineWidth
Option_t Option_t SetFillStyle
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t SetLineColor
Option_t Option_t SetFillColor
int nentries
Create an Arc.
Definition TArc.h:26
Fill Area Attributes class.
Definition TAttFill.h:19
Line Attributes class.
Definition TAttLine.h:18
The Canvas class.
Definition TCanvas.h:23
To draw polar axis.
To draw Mathematical Formula.
Definition TLatex.h:18
A doubly linked list.
Definition TList.h:38
Mother of all ROOT objects.
Definition TObject.h:41
Defined by an array on N points in a 2-D space.
Definition TPolyLine.h:23
A specialized TSelector for TTree::Draw.
Spider class.
Definition TSpider.h:40
void SetAverageLineStyle(Style_t sty)
Set the LineStyle of the average.
Definition TSpider.cxx:965
TPolyLine * fAveragePoly
Polygon representing the average variables value.
Definition TSpider.h:55
void SetAverageFillColor(Color_t col)
Set the Fill Color of the average.
Definition TSpider.cxx:1001
~TSpider() override
Destructor.
Definition TSpider.cxx:174
UInt_t fNy
Number of vertical spider plots.
Definition TSpider.h:43
TList * fInput
Used for fSelector.
Definition TSpider.h:59
void SetNx(UInt_t nx)
Set the X number of sub pads.
Definition TSpider.cxx:1226
Double_t * fAve
[fNcols] Average value of each variable.
Definition TSpider.h:50
Style_t GetAverageLineStyle() const
Get the LineStyle of the average.
Definition TSpider.cxx:617
Int_t GetNy() const
Definition TSpider.h:103
void SetShowRange(bool showrange)
Definition TSpider.h:128
void GotoPrevious()
Go to the previous entries.
Definition TSpider.cxx:764
TList * fSuperposed
Superposed spider plots.
Definition TSpider.h:53
bool GetDisplayAverage() const
Definition TSpider.h:99
void DrawSlices(Option_t *options)
Draw the slices of the segment plot.
Definition TSpider.cxx:560
Long64_t fFirstEntry
First entry.
Definition TSpider.h:48
void SetDisplayAverage(bool disp)
Display or not the average.
Definition TSpider.cxx:1025
void UpdateView()
Update the polylines or the arcs for the current entries.
Definition TSpider.cxx:1554
TTree * fTree
Pointer to the TTree to represent.
Definition TSpider.h:54
bool fSegmentDisplay
True if displaying a segment plot.
Definition TSpider.h:68
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute the distance to the spider.
Definition TSpider.cxx:439
void SetSegmentDisplay(bool seg)
Set the segment display or not.
Definition TSpider.cxx:1380
void SetNdivRadial(Int_t div)
Set number of radial divisions.
Definition TSpider.cxx:1217
void SetCurrentEntries()
Set the current selected entries.
Definition TSpider.cxx:1067
void AddVariable(const char *varexp)
Add a variable to the plot from its expression.
Definition TSpider.cxx:215
UInt_t fNcols
Number of variables.
Definition TSpider.h:44
bool fShowRange
Show range of variables or not.
Definition TSpider.h:69
void DrawPoly(Option_t *options)
Paint the polygon representing the current entry.
Definition TSpider.cxx:530
bool fAngularLabels
True if the labels are oriented according to their axis.
Definition TSpider.h:65
void DrawSlicesAverage(Option_t *options)
Draw the slices representing the average for the segment plot.
Definition TSpider.cxx:586
Int_t GetNx() const
Definition TSpider.h:102
void GotoEntry(Long64_t e)
Go to a specified entry.
Definition TSpider.cxx:744
TCanvas * fCanvas
! Pointer to the mother pad.
Definition TSpider.h:57
Int_t fArraySize
Actual size of the arrays.
Definition TSpider.h:45
void SetAverageLineColor(Color_t col)
Set the LineColor of the average.
Definition TSpider.cxx:977
TArc ** fAverageSlices
! Average slices.
Definition TSpider.h:56
void SetSelectionExpression(const char *selexp)
Compile selection expression if there is one.
Definition TSpider.cxx:1471
Long64_t fEntry
Present entry number in fTree.
Definition TSpider.h:46
void DeleteVariable(const char *varexp)
Delete a variable from its expression.
Definition TSpider.cxx:353
void SetAverageLineWidth(Width_t wid)
Set the LineWidth of the average.
Definition TSpider.cxx:989
TTreeFormulaManager * fManager
Coordinator for the formulas.
Definition TSpider.h:60
Width_t GetAverageLineWidth() const
Get the LineWidth of the average.
Definition TSpider.cxx:637
TList * fFormulas
List of all formulas to represent.
Definition TSpider.h:58
void SetLineStyle(Style_t sty) override
Set line style.
Definition TSpider.cxx:1137
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute the corresponding event.
Definition TSpider.cxx:667
Color_t GetAverageLineColor() const
Get the LineColor of the average.
Definition TSpider.cxx:627
TTreeFormula * fSelect
Selection condition.
Definition TSpider.h:63
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:832
Int_t FindTextAlign(Double_t theta)
Find the alignement rule to apply for TText::SetTextAlign(Short_t).
Definition TSpider.cxx:676
void SetVariablesExpression(const char *varexp)
Compile the variables expression from the given string varexp.
Definition TSpider.cxx:1484
void SetAverageFillStyle(Style_t sty)
Set the FillStyle of the average.
Definition TSpider.cxx:1013
TSelectorDraw * fSelector
! Selector.
Definition TSpider.h:64
TSpider()
Default constructor.
Definition TSpider.cxx:76
Double_t FindTextAngle(Double_t theta)
Determine the orientation of the polar labels according to their angle.
Definition TSpider.cxx:705
Color_t GetAverageFillColor() const
Get the Fill Color of the average.
Definition TSpider.cxx:647
void SyncFormulas()
Create a TreeFormulaManager to coordinate the formulas.
Definition TSpider.cxx:1522
void AddSuperposed(TSpider *sp)
Allow to superpose several spider views.
Definition TSpider.cxx:206
Long64_t GetCurrentEntry() const
Definition TSpider.h:100
Double_t * fMax
[fNcols] Maximum value of the variables.
Definition TSpider.h:51
Double_t * fMin
[fNcols] Minimum value of the variables.
Definition TSpider.h:52
UInt_t fNx
Number of horizontal spider plots.
Definition TSpider.h:42
void SetNy(UInt_t ny)
Set the Y number of sub pads.
Definition TSpider.cxx:1303
bool fForceDim
Force dimension.
Definition TSpider.h:67
bool GetSegmentDisplay() const
Definition TSpider.h:104
void Paint(Option_t *options) override
Paint the spider.
Definition TSpider.cxx:918
void InitArrays(Int_t newsize)
Check if the arrays size is enough and reallocate them if not.
Definition TSpider.cxx:794
Long64_t fNentries
Number of entries.
Definition TSpider.h:47
Style_t GetAverageFillStyle() const
Get the FillStyle of the average.
Definition TSpider.cxx:657
void SuperposeTo(TSpider *sp)
Definition TSpider.h:129
TGraphPolargram * fPolargram
Polar graph.
Definition TSpider.h:61
void GotoNext()
Go to the next entries.
Definition TSpider.cxx:754
void DrawPolyAverage(Option_t *options)
Paint the Polygon representing the average value of the variables.
Definition TSpider.cxx:492
Long64_t * fCurrentEntries
![fNx*fNy] current selected entries;
Definition TSpider.h:49
TList * fPolyList
Polygons representing the variables.
Definition TSpider.h:62
void GotoPreceding()
Go to the last entry.
Definition TSpider.cxx:784
bool fDisplayAverage
Display or not the average.
Definition TSpider.h:66
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:727
void GotoFollowing()
Go to the next entry.
Definition TSpider.cxx:774
Basic string class.
Definition TString.h:139
Used to coordinate one or more TTreeFormula objects.
Used to pass a selection expression to the Tree drawing routine.
A TTree represents a columnar dataset.
Definition TTree.h:79
th1 Draw()