12 #ifndef ROOT_TParallelCoord
13 #define ROOT_TParallelCoord
21 class TParallelCoordSelect;
22 class TParallelCoordVar;
23 class TParallelCoordRange;
28 class TParallelCoord :
public TNamed {
31 kVertDisplay = BIT(14),
32 kCurveDisplay = BIT(15),
33 kPaintEntries = BIT(16),
34 kLiveUpdate = BIT(17),
35 kGlobalScale = BIT(19),
36 kCandleChart = BIT(20),
37 kGlobalLogScale = BIT(21)
42 Long64_t fCurrentFirst;
49 TEntryList *fCurrentEntries;
50 TEntryList *fInitEntries;
53 TString fTreeFileName;
56 TParallelCoordSelect* fCurrentSelection;
60 void PaintEntries(TParallelCoordSelect* sel=NULL);
61 void SetAxesPosition();
65 TParallelCoord(Long64_t nentries);
66 TParallelCoord(TTree* tree, Long64_t nentries);
67 virtual ~TParallelCoord();
69 void AddVariable(Double_t* val,
const char* title=
"");
70 void AddVariable(
const char* varexp);
71 void AddSelection(
const char* title);
72 void ApplySelectionToTree();
73 static void BuildParallelCoord(TSelectorDraw* selector, Bool_t candle);
74 void CleanUpSelections(TParallelCoordRange* range);
75 void RemoveVariable(TParallelCoordVar* var);
76 Bool_t RemoveVariable(
const char* var);
77 void DeleteSelection(TParallelCoordSelect* sel);
78 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
79 virtual void Draw(Option_t* options=
"");
80 virtual void ExecuteEvent(Int_t entry, Int_t px, Int_t py);
81 Bool_t GetCandleChart() {
return TestBit(kCandleChart);}
82 Long64_t GetCurrentFirst() {
return fCurrentFirst;}
83 Long64_t GetCurrentN() {
return fCurrentN;}
84 TParallelCoordSelect* GetCurrentSelection();
85 Bool_t GetCurveDisplay()
const {
return TestBit(kCurveDisplay);}
86 Int_t GetDotsSpacing()
const {
return fDotsSpacing;}
87 TEntryList *GetEntryList(Bool_t sel=kTRUE);
88 Double_t GetGlobalMin();
89 Double_t GetGlobalMax();
90 Bool_t GetGlobalScale() {
return TestBit(kGlobalScale);}
91 Bool_t GetGlobalLogScale() {
return TestBit(kGlobalLogScale);}
92 Color_t GetLineColor() {
return fLineColor;}
93 Width_t GetLineWidth() {
return fLineWidth;}
95 UInt_t GetNvar() {
return fNvar;}
96 Long64_t GetNentries() {
return fNentries;}
97 TList *GetSelectList() {
return fSelectList;}
98 TParallelCoordSelect* GetSelection(
const char* title);
100 Double_t *GetVariable(
const char* var);
101 Double_t *GetVariable(Int_t i);
102 TList *GetVarList() {
return fVarList;}
103 Bool_t GetVertDisplay()
const {
return TestBit(kVertDisplay);}
104 Int_t GetWeightCut()
const {
return fWeightCut;};
105 virtual void Paint(Option_t* options=
"");
107 void SaveEntryLists(
const char* filename=
"", Bool_t overwrite=kFALSE);
108 void SavePrimitive(std::ostream & out,Option_t *options);
109 void SaveTree(
const char* filename=
"", Bool_t overwrite=kFALSE);
110 void SetAxisHistogramBinning(Int_t n=100);
111 void SetAxisHistogramHeight(Double_t h=0.5);
112 void SetAxisHistogramLineWidth(Int_t lw=2);
113 void SetCandleChart(Bool_t can);
114 virtual void SetCurveDisplay(Bool_t curve=1) {SetBit(kCurveDisplay,curve);}
115 void SetCurrentEntries(TEntryList* entries) {fCurrentEntries = entries;}
116 void SetCurrentFirst(Long64_t);
117 void SetCurrentN(Long64_t);
118 TParallelCoordSelect* SetCurrentSelection(
const char* title);
119 void SetCurrentSelection(TParallelCoordSelect* sel);
120 void SetDotsSpacing(Int_t s=0);
121 static void SetEntryList(TParallelCoord* para, TEntryList* enlist);
122 void SetGlobalScale(Bool_t gl);
123 void SetGlobalLogScale(Bool_t);
124 void SetGlobalMin(Double_t min);
125 void SetGlobalMax(Double_t max);
126 void SetInitEntries(TEntryList* entries) {fInitEntries = entries;}
127 void SetLineColor(Color_t col) {fLineColor = col;}
128 void SetLineWidth(Width_t wid) {fLineWidth = wid;}
129 void SetLiveRangesUpdate(Bool_t);
130 void SetNentries(Long64_t n) {fNentries = n;}
131 void SetTree(TTree* tree) {fTree = tree;}
132 void SetVertDisplay(Bool_t vert=kTRUE);
133 void SetWeightCut(Int_t w=0) {fWeightCut = w;}
136 ClassDef(TParallelCoord,1);