Logo ROOT   6.16/01
Reference Guide
TParallelCoordVar.h
Go to the documentation of this file.
1// @(#)root/treeviewer:$Id$
2// Author: Bastien Dalla Piazza 02/08/2007
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_TParallelCoordVar
13#define ROOT_TParallelCoordVar
14
15#include "TAttLine.h"
16#include "TNamed.h"
17#include "TAttFill.h"
18
19class TParallelCoord;
22class TH1F;
23
24class TParallelCoordVar : public TNamed, public TAttLine, public TAttFill {
25public:
29 kShowBarHisto = BIT(16)
30 };
31private:
32 Int_t fNbins; // Number of bins in fHistogram.
33 Int_t fHistoLW; // Line width used to draw the histogram line.
34 Int_t fId; // Id identifying the variable for the editor.
35 Long64_t fNentries; // Number of stored entries values.
36 Double_t fX1; // x1 coordinate of the axis.
37 Double_t fX2; // x2 coordinate of the axis.
38 Double_t fY1; // y1 coordinate of the axis.
39 Double_t fY2; // y2 coordinate of the axis.
40 Double_t fMinInit; // Memory of the minimum when first initialized.
41 Double_t fMaxInit; // Memory of the maximum when first initialized.
42 Double_t fMean; // Average.
43 Double_t fMinCurrent; // Current used minimum.
44 Double_t fMaxCurrent; // Current used maximum.
45 Double_t fMed; // Median value (Q2).
46 Double_t fQua1; // First quantile (Q1).
47 Double_t fQua3; // Third quantile (Q3).
48 Double_t fHistoHeight; // Histogram Height.
49 Double_t *fVal; //![fNentries] Entries values for the variable.
50 TList *fRanges; // List of the TParallelRange owned by TParallelCoordVar.
51 TParallelCoord *fParallel; // Pointer to the TParallelCoord which owns the TParallelCoordVar.
52 TH1F *fHistogram; //! Histogram holding the variable distribution.
53
54public:
56 TParallelCoordVar(Double_t *val, const char* title,Int_t id, TParallelCoord* gram);
58
59 void AddRange(TParallelCoordRange* range);
60 void AddRange() {AddRange(NULL);} // *MENU*
61 void DeleteVariable(); // *MENU*
62 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
63 virtual void Draw(Option_t *option="");
64 Bool_t Eval(Long64_t evtidx, TParallelCoordSelect *select); // Check an entry is within its ranges owned by a given TParallelSelect.
65 virtual void ExecuteEvent(Int_t entry, Int_t px, Int_t py);
69 Int_t GetId() {return fId;}
70 Bool_t GetLogScale() const {return TestBit (kLogScale);}
71 Int_t GetHistBinning() const {return fNbins;}
79 void GetMinMaxMean();
80 void GetQuantiles();
81 Double_t GetX() {return fX1;}
82 Double_t GetY() {return fY1;}
83 Int_t GetNbins() {return fNbins;}
84 Long64_t GetNentries() const {return fNentries;}
85 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
87 TList *GetRanges() {return fRanges;}
88 Double_t *GetValues() {return fVal;}
90 Bool_t GetVert() {return fX1 == fX2;} // Tells if the axis is vertical or not.
91 void GetXYfromValue(Double_t value, Double_t & x, Double_t & y);
92 void Init();
93 virtual void Paint(Option_t* option="");
94 void PaintBoxPlot();
95 void PaintHistogram();
96 void PaintLabels();
97 virtual void Print(Option_t* option="") const; // *MENU*
98 void SavePrimitive(std::ostream & out, Option_t *options);
99 void SetBoxPlot(Bool_t box); // *TOGGLE* *GETTER=GetBoxPlot
100 void SetBarHisto(Bool_t h) {SetBit(kShowBarHisto,h);} // *TOGGLE* *GETTER=GetBarHisto
101 void SetHistogramLineWidth(Int_t lw=2) {fHistoLW = lw;} // *MENU*
102 void SetHistogramHeight(Double_t h=0); // *MENU*
103 void SetHistogramBinning(Int_t n=100); // *MENU*
104 void SetCurrentLimits(Double_t min, Double_t max); // *MENU*
105 void SetCurrentMin(Double_t min);
106 void SetCurrentMax(Double_t max);
107 void SetInitMin(Double_t min) {fMinInit = min;}
108 void SetInitMax(Double_t max) {fMaxInit = max;}
110 void SetLogScale(Bool_t log); // *TOGGLE* *GETTER=GetLogScale
111 void SetTitle(const char* /*title*/) {} // To hide TNamed::SetTitle.
112 void SetValues(Long64_t length, Double_t* val);
113 void SetX(Double_t x, Bool_t gl); // Set a new x position in case of a vertical display.
114 void SetY(Double_t y, Bool_t gl); // Set a new y position in case of a horizontal display.
115 void Unzoom() {SetCurrentLimits(fMinInit,fMaxInit);} // *MENU* Reset fMin and fMax to their original value.
116
117 ClassDef(TParallelCoordVar,1); // A Variable of a parallel coordinates plot.
118};
119
120#endif
#define h(i)
Definition: RSha256.hxx:106
int Int_t
Definition: RtypesCore.h:41
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:324
#define BIT(n)
Definition: Rtypes.h:82
double log(double)
Fill Area Attributes class.
Definition: TAttFill.h:19
Line Attributes class.
Definition: TAttLine.h:18
1-D histogram with a float per channel (see TH1 documentation)}
Definition: TH1.h:571
A doubly linked list.
Definition: TList.h:44
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:694
EStatusBits
Definition: TObject.h:57
A TParallelCoordRange is a range used for parallel coordinates plots.
A TParallelCoordSelect is a specialised TList to hold TParallelCoordRanges used by TParallelCoord.
TParallelCoord axes.
void SetInitMin(Double_t min)
TH1F * GetHistogram()
Create or recreate the histogram.
void GetEntryXY(Long64_t n, Double_t &x, Double_t &y)
Get the position of the variable on the graph for the n'th entry.
Double_t GetValuefromXY(Double_t x, Double_t y)
Get the value corresponding to the position.
Double_t * GetValues()
void SetLogScale(Bool_t log)
Set the axis in log scale.
void PaintBoxPlot()
Paint the boxes in the case of a candle chart.
void PaintLabels()
Paint the axis labels and titles.
void PaintHistogram()
Paint the histogram on the axis.
Double_t GetCurrentMax() const
void SetCurrentMin(Double_t min)
Set the current minimum of the axis.
void SavePrimitive(std::ostream &out, Option_t *options)
Save the TParallelCoordVar as a macro.
TParallelCoord * GetParallel()
virtual void Print(Option_t *option="") const
Print the axis main data.
void SetBarHisto(Bool_t h)
Double_t GetCurrentMin() const
void SetLiveRangesUpdate(Bool_t on)
If true, the pad is updated while the motion of a dragged range.
void SetX(Double_t x, Bool_t gl)
Set the X position of the axis in the case of a vertical axis.
void SetY(Double_t y, Bool_t gl)
Set the Y position of the axis in the case of a horizontal axis.
void SetBoxPlot(Bool_t box)
Set the axis to display a candle.
void SetCurrentMax(Double_t max)
Set the current maximum of the axis.
TList * fRanges
[fNentries] Entries values for the variable.
void GetQuantiles()
Get the box plot values (quantiles).
void SetHistogramHeight(Double_t h=0)
Set the height of the bar histogram.
void DeleteVariable()
Delete variables.
TParallelCoordVar()
Histogram holding the variable distribution.
virtual void Draw(Option_t *option="")
Draw the axis.
TParallelCoord * fParallel
Bool_t Eval(Long64_t evtidx, TParallelCoordSelect *select)
Check if the entry is within the range(s) of "select".
Double_t GetHistHeight()
virtual void Paint(Option_t *option="")
Paint the axis.
Int_t GetHistBinning() const
Long64_t GetNentries() const
Double_t GetCurrentAverage() const
Int_t GetEntryWeight(Long64_t evtidx)
Get the entry weight: The weight of an entry for a given variable is the bin content of the histogram...
~TParallelCoordVar()
Destructor.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes the distance from the axis.
void SetInitMax(Double_t max)
void SetHistogramLineWidth(Int_t lw=2)
Bool_t GetLogScale() const
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns info about this axis.
void SetTitle(const char *)
Set the title of the TNamed.
void Init()
Initialise the TParallelVar variables.
virtual void ExecuteEvent(Int_t entry, Int_t px, Int_t py)
Execute the corresponding entry.
void GetXYfromValue(Double_t value, Double_t &x, Double_t &y)
Get a position corresponding to the value on the axis.
void GetMinMaxMean()
Get mean, min and max of those variable.
void SetValues(Long64_t length, Double_t *val)
Set the variable values.
void SetHistogramBinning(Int_t n=100)
Set the histogram binning.
void SetCurrentLimits(Double_t min, Double_t max)
Set the limits within which one the entries must be painted.
Parallel Coordinates class.
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Definition: fillpatterns.C:1
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16
static constexpr double gram