PlottI
 All Classes Files Functions Variables Enumerations Enumerator Pages
PlotDerived.h
1 
2 // ~~ PlotTING CLASS ~~
3 
4 // ----------------------------------------------------------------------------
5 //
6 // This file contains the derived classes for the plotting functionalities
7 // Currently the following derived classes are available:
8 // - SquarePlot: Simple Plot in Square formmat with one pad
9 // - RatioPlot: Simple Plot in Rectangle format with one pad that is meant
10 // to display Ratios
11 // - SingleRatioPlot: Rectangle Plot with two pads. The upper pads are for the
12 // distributions while the lower pad is for the
13 // corresponding ratios
14 // - HeatMapPlot: Simple Plot in Square format for drawing one TH2 (heatmap)
15 // and one corresponding legend
16 //
17 // ----------------------------------------------------------------------------
18 
19 
20 #define DERIVED_H
21 
22 // ----------------------------------------------------------------------------
23 // SQUARE PLOT CLASS
24 // ----------------------------------------------------------------------------
25 
27 class SquarePlot : public Plot
28 {
29 
30 public:
31 
32  SquarePlot(TObjArray* array, TString xTitle, TString yTitle);
33  virtual ~SquarePlot() {}
34 
35  /*virtual*/ void Draw(TString outname);
36 
37 private:
38 
39  TObjArray* plotArray;
40 
41 };
42 
43 // ---- Constructor -----------------------------------------------------------
44 
46 SquarePlot::SquarePlot(TObjArray* array, TString xTitle, TString yTitle): Plot(xTitle, yTitle),
47  plotArray(array)
48 {
49 
50  EnsureAxes(array->At(0), "Main Array");
51 
52  SetCanvasDimensions(1000, 1000);
53  SetCanvasMargins(0.13, 0.03, 0.05, 0.13);
54  SetCanvasOffsets(1.3, 1.5);
55 
56  options = std::vector<std::string> (array->GetEntries(), "SAME");
57 
58 }
59 
60 // ---- Member Functions ------------------------------------------------------
61 
62 void SquarePlot::Draw(TString outname){
63 
66  std::cout << "-----------------------------" << std::endl;
67  std::cout << " Plot Square Canvas:" << std::endl;
68  std::cout << "-----------------------------" << std::endl;
69 
70  if (broken){
71  std::cout << "Due to one or more \033[1;33mFATAL ERRORS\033[0m your Plot will not be drawn" << std::endl;
72  std::cout << "-----------------------------" << std::endl << std::endl;
73  return;
74  }
75 
76  canvas = new TCanvas("canvas", "SQUARE", 10, 10, width+10, height+10);
77  canvas->cd();
78 
79  mainPad = new TPad("mainPad", "Distribution", 0, 0, 1, 1);
82  mainPad->Draw();
83  mainPad->cd();
84 
85  DrawArray(plotArray, mOffset);
86 
87  canvas->Update();
88  canvas->SaveAs(outname.Data());
89  delete canvas;
90 
91  std::cout << "-----------------------------" << std::endl << std::endl;
92 
93 }
94 
95 // ----------------------------------------------------------------------------
96 // RATIO ONLY PLOT CLASS
97 // ----------------------------------------------------------------------------
98 
100 
101 class RatioPlot : public Plot
102 {
103 
104 public:
105 
106  RatioPlot(TObjArray* rArray, TString xTitle, TString yTitle);
107  virtual ~RatioPlot() {};
108 
109  /*virtual*/ void Draw(TString outname);
110  /*virtual*/ void DrawRatioArray(TObjArray* array, Int_t off, Int_t offOpt = 0);
111  void SetUpperOneLimit(Double_t up);
112  void ToggleOne() {drawone = !drawone;}
113 
114 protected:
115 
116  TObjArray* plotArray;
117 
118  TLine* one {nullptr};
119  Double_t oneUp {0};
120 
121  Bool_t drawone {kTRUE};
122 
123 };
124 
125 // ---- Constructor -----------------------------------------------------------
126 
128 RatioPlot::RatioPlot(TObjArray* rArray, TString xTitle, TString yTitle) : Plot(xTitle, yTitle),
129  plotArray(rArray)
130 {
131 
132  EnsureAxes(rArray->At(0), "Main Array");
133 
134  SetCanvasDimensions(1000, 600);
135  SetCanvasMargins(0.15, 0.03, 0.05, 0.2);
136  SetCanvasOffsets(1.1, 1.);
137 
138  options = std::vector<std::string>(rArray->GetEntries(), "SAME");
139 
140 }
141 
142 // ---- Member Functions ------------------------------------------------------
143 
144 void RatioPlot::Draw(TString outname){
145 
148  std::cout << "-----------------------------" << std::endl;
149  std::cout << " Plot Ratio Canvas:" << std::endl;
150  std::cout << "-----------------------------" << std::endl;
151 
152  if (broken){
153  std::cout << "Due to one or more \033[1;33mFATAL ERRORS\033[0m your Plot will not be drawn" << std::endl;
154  std::cout << "-----------------------------" << std::endl << std::endl;
155  return;
156  }
157 
158  canvas = new TCanvas("canvas", "RATIO", /*10*/0, /*10*/0, width/*+10*/, height/*+10*/);
159  canvas->cd();
160 
161  mainPad = new TPad("mainPad", "Ratio", 0, 0, 1, 1);
164  mainPad->Draw();
165  mainPad->cd();
166 
168 
169  canvas->Update();
170  canvas->SaveAs(outname.Data());
171  delete canvas;
172 
173  std::cout << "-----------------------------" << std::endl << std::endl;
174 
175 }
176 
177 void RatioPlot::DrawRatioArray(TObjArray* array, Int_t off, Int_t offOpt){
178 
181  if (drawone){
182  one = new TLine(xRangeLow, 1., (oneUp ? oneUp : xRangeUp), 1.);
183  array->Add(one);
184  options.push_back("SAME");
185  SetLineProperties(one, kBlack, 9, 3.);
186  }
187 
188  DrawArray(array, off, offOpt);
189 
190 
191 }
192 
193 void RatioPlot::SetUpperOneLimit(Double_t up){
194 
197  oneUp = up;
198 
199 }
200 
201 // ----------------------------------------------------------------------------
202 // SINGLE RATIO PLOT CLASS
203 // ----------------------------------------------------------------------------
204 
206 
208 {
209 
210 public:
211 
212  SingleRatioPlot(TObjArray* mainArray, TObjArray* ratioArray, TString xTitle, TString yTitle, TString ratioTitle);
213  virtual ~SingleRatioPlot() {};
214 
215  /*virtual*/ void Draw(TString outname);
216 
217  void SetPadFraction(Double_t frac);
218  void SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t rOffset = 0);
219  void SetOffset(Int_t off, Int_t roff);
220  virtual void SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t rLow, Float_t rUp);
221  virtual void SetOptions(std::string optns, std::string postns);
222 
223 private:
224 
225  static Float_t padFrac;
226 
227  TPad* ratioPad {nullptr};
228  TString ratioTitle;
229 
230  TObjArray* ratioArray;
231 
232  Float_t offsetR {0.};
233  Float_t rRangeUp {1.2};
234  Float_t rRangeLow {0.8};
235 
236  static Int_t rOffset;
237 
238 };
239 
240 // ---- Static Member Variables -----------------------------------------------
241 
242 Float_t SingleRatioPlot::padFrac {.3}; //0.35
243 Int_t SingleRatioPlot::rOffset {1};
244 
245 // ---- Cunstructor -----------------------------------------------------------
246 
248 SingleRatioPlot::SingleRatioPlot(TObjArray* mainArray, TObjArray* rArray, TString xTitle, TString yTitle, TString rTitle) : RatioPlot(mainArray, xTitle, yTitle),
249  ratioTitle(rTitle),
250  ratioArray(rArray)
251 {
252 
253  EnsureAxes(mainArray->At(0), "Main Array");
254  EnsureAxes(rArray->At(0), "Ratio Array");
255 
256  SetCanvasDimensions(1000, 1200);
257  SetCanvasMargins(0.13, 0.03, 0.05, 0.3);
258  SetCanvasOffsets(4., 2., 2.);
259 
260  options = std::vector<std::string>(mainArray->GetEntries()+rArray->GetEntries(), "SAME");
261 
262 }
263 
264 // ---- Member Functions ------------------------------------------------------
265 
266 void SingleRatioPlot::Draw(TString outname){
267 
270  std::cout << "-----------------------------" << std::endl;
271  std::cout << " Plot Single Ratio Canvas: " << std::endl;
272  std::cout << "-----------------------------" << std::endl;
273 
274  if (broken){
275  std::cout << "Due to one or more \033[1;33mFATAL ERRORS\033[0m your Plot will not be drawn" << std::endl;
276  std::cout << "-----------------------------" << std::endl << std::endl;
277  return;
278  }
279 
280  canvas = new TCanvas("canvas", "SINGLE RATIO", 10, 10, width+10, height+10);
281  canvas->cd();
282 
283  mainPad = new TPad("mainPad", "Distribution", 0, padFrac, 1, 1);
286  SuppressXaxis(plotArray->At(0));
287  mainPad->SetBottomMargin(0.);
288  mainPad->Draw();
289 
290  ratioPad = new TPad("ratioPad", "Ratio", 0, 0, 1, padFrac);
291  SetUpPad(ratioPad, logX, kFALSE);
292  ratioPad->SetTopMargin(0.);
293  SetUpStyle(ratioArray->At(0), titleX, ratioTitle, xRangeUp, xRangeLow, rRangeUp, rRangeLow, offsetX, offsetR);
294  ratioPad->Draw();
295 
296  mainPad->cd();
298  ratioPad->cd();
299  DrawRatioArray(ratioArray, rOffset, plotArray->GetEntries());
300 
301  canvas->Update();
302  canvas->SaveAs(outname.Data());
303  delete canvas;
304 
305  std::cout << "-----------------------------" << std::endl << std::endl;
306 
307 }
308 
309 void SingleRatioPlot::SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t rOffset){
310 
313  offsetX = xOffset;
314  offsetY = yOffset;
315  offsetR = rOffset ? rOffset : yOffset;
316 
317 }
318 
320 
323  padFrac = frac;
324 
325 }
326 
327 void SingleRatioPlot::SetOffset(Int_t off, Int_t roff){
328 
332  mOffset = off;
333  rOffset = roff;
334 
335 }
336 
337 void SingleRatioPlot::SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t rLow, Float_t rUp){
338 
341  xRangeUp = xUp;
342  xRangeLow = xLow;
343  yRangeUp = yUp;
344  yRangeLow = yLow;
345  rRangeUp = rUp;
346  rRangeLow = rLow;
347 
348  ranges = kTRUE;
349 
350 }
351 
352 void SingleRatioPlot::SetOptions(std::string optns, std::string postns){
353 
358  std::istringstream options(optns);
359  std::istringstream positions(postns);
360 
361  TString* opt = new TString();
362  TString* pos = new TString();
363 
364  opt->ReadToDelim(options, ';');
365  pos->ReadToDelim(positions, ';');
366  SetOption(opt->Data(), pos->Atoi());
367 
368  opt->ReadLine(options);
369  pos->ReadLine(positions);
370  Plot::SetOptions(opt->Data(), pos->Data(), plotArray->GetEntries());
371 
372 }
373 
374 
375 // ----------------------------------------------------------------------------
376 // HEAT MAP PLOT CLASS
377 // ----------------------------------------------------------------------------
378 
380 
381 class HeatMapPlot : public Plot
382 {
383 
384 public:
385  HeatMapPlot(TObjArray* plotArray, TString xTitle, TString yTitle, TString zTitle = "count");
386  HeatMapPlot(TH2* map, TLegend* l, TString xTitle, TString yTitle, TString zTitle = "count");
387  ~HeatMapPlot() {};
388 
389  void Draw(TString outname);
390 
391  void SetProperties(TH2* map, std::string title = "");
392  void SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t zOffset);
393  /*virtual*/ void SetLog(Bool_t xLog = kFALSE, Bool_t yLog = kTRUE, Bool_t zLog = kFALSE);
394  virtual void SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t zLow, Float_t zUp);
395 
396 
397 private:
398 
399  void EnsureTH2(TObject* first, std::string arrayName);
400 
401  void SetCanvasStyle(TH2* first);
402  void SetPadStyle(TH2* first, TString xTitle, TString yTitle, TString zTitle, Float_t xUp, Float_t xLow, Float_t yUp, Float_t yLow, Float_t zUp, Float_t zLow);
403  void SetUpPad(TPad* pad, Bool_t xLog, Bool_t yLog, Bool_t zLog = kFALSE);
404 
405 
406  TString titleZ {"count"};
407 
408  Float_t offsetZ {0};
409  Bool_t logZ {kFALSE};
410  Float_t zRangeUp {0};
411  Float_t zRangeLow {0};
412 
413  TObjArray *plotArray {nullptr};
414 
415 };
416 
417 // ---- Cunstructor -----------------------------------------------------------
418 
420 HeatMapPlot::HeatMapPlot(TObjArray* array, TString xTitle, TString yTitle, TString zTitle) : Plot(xTitle, yTitle),
421 titleZ(zTitle),
422 plotArray(array)
423 {
424 
425  EnsureTH2(array->At(0), "Heatmap Array");
426 
427  SetCanvasDimensions(1000, 850);
428  SetCanvasMargins(0.13, 0.2, 0.05, .13);
429  SetCanvasOffsets(1.3, 1.4, 1.4);
430 
431  options = std::vector<std::string>(array->GetEntries(), "SAME");
432  options[0] = "SAME COLZ";
433 
434 }
435 
437 HeatMapPlot::HeatMapPlot(TH2* map, TLegend* l, TString xTitle, TString yTitle, TString zTitle) : Plot(xTitle, yTitle),
438 titleZ(zTitle)
439 {
440 
441  // EnsureTH2(array->At(0), "Heatmap Array");
442  plotArray = new TObjArray();
443  plotArray->Add(map);
444  plotArray->Add(l);
445 
446  SetCanvasDimensions(1000, 850);
447  SetCanvasMargins(0.13, 0.2, 0.05, .13);
448  SetCanvasOffsets(1.3, 1.5, 1.5);
449 
450  options = {"SAME COLZ", "SAME"};
451 
452 }
453 
454 // ---- Member Functions ------------------------------------------------------
455 
456 void HeatMapPlot::Draw(TString outname){
457 
460  std::cout << "-----------------------------" << std::endl;
461  std::cout << " Plot Heat Map:" << std::endl;
462  std::cout << "-----------------------------" << std::endl;
463 
464  if (broken){
465  std::cout << "Due to one or more \033[1;33mFATAL ERRORS\033[0m your Plot will not be drawn" << std::endl;
466  std::cout << "-----------------------------" << std::endl << std::endl;
467  return;
468  }
469 
470  canvas = new TCanvas("canvas", "HEATMAP", 10, 10, width+10, height+10);
471  canvas->cd();
472 
473  mainPad = new TPad("mainPad", "Distribution", 0, 0, 1, 1);
474  SetUpPad(mainPad, logX, logY, logZ);
475  SetCanvasStyle((TH2*)plotArray->At(0));
476  SetPadStyle((TH2*)plotArray->At(0), titleX, titleY, titleZ, xRangeUp, xRangeLow, yRangeUp, yRangeLow, zRangeUp, zRangeLow);
477  mainPad->Draw();
478  mainPad->cd();
479 
480  DrawArray(plotArray, 0);
481 
482  canvas->Update();
483  canvas->SaveAs(outname.Data());
484  delete canvas;
485 
486  std::cout << "-----------------------------" << std::endl << std::endl;
487 
488 }
489 
490 void HeatMapPlot::EnsureTH2(TObject* first, std::string arrayName){
491 
492  if (!first) {
493 
494  std::cout << "\033[1;33mFATAL ERROR:\033[0m First entry in array doesn't exist!!" << std::endl;
495  broken = kTRUE;
496  return;
497 
498  }
499 
500  if (!first->InheritsFrom("TH2")){
501 
502  std::cout << "\033[1;33mFATAL ERROR:\033[0m First entry in array must be a TH2 "
503  << "\033[1;36m(" << arrayName << ")\033[0m" << std::endl;
504  std::cout << " In case you don't want to draw a TH2, please use SquarePlot." << std::endl;
505  broken = kTRUE;
506  return;
507 
508  }
509 
510 }
511 
512 void HeatMapPlot::SetProperties(TH2* map, std::string title){
513 
516  map->SetContour(100);
517  map->SetStats(kFALSE);
518  map->SetTitle(title.data());
519 
520 }
521 
522 void HeatMapPlot::SetCanvasStyle(TH2* first){
523 
527 
528  first->GetZaxis()->SetTitleOffset(offsetZ);
529  first->GetZaxis()->SetTickSize(0.03);
530  first->GetZaxis()->SetTitleSize(label);
531  first->GetZaxis()->SetTitleFont(font);
532  first->GetZaxis()->SetLabelFont(font);
533  first->GetZaxis()->SetLabelSize(label);
534 
535 }
536 
537 void HeatMapPlot::SetPadStyle(TH2* first, TString xTitle, TString yTitle, TString zTitle, Float_t xUp, Float_t xLow, Float_t yUp, Float_t yLow, Float_t zUp, Float_t zLow){
538 
541  Plot::SetPadStyle(first, xTitle, yTitle, xUp, xLow, yUp, yLow);
542 
543  first->GetZaxis()->SetRangeUser(zLow, zUp);
544  first->GetZaxis()->SetTitle(zTitle);
545 
546 }
547 
548 void HeatMapPlot::SetUpPad(TPad* pad, Bool_t xLog, Bool_t yLog, Bool_t zLog){
549 
552  Plot::SetUpPad(pad, xLog, yLog);
553 
554  if (zLog){
555  if (zRangeLow > 0) pad->SetLogz(1);
556  else std::cout << "\033[1;31mERROR in SetLog:\033[0m Z-Ranges must be above zero! Logarithm not set!!" << std::endl;
557  }
558 
559 }
560 
561 void HeatMapPlot::SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t zOffset){
562 
565  offsetX = xOffset;
566  offsetY = yOffset;
567  offsetZ = zOffset;
568 
569 }
570 
571 void HeatMapPlot::SetLog(Bool_t xLog, Bool_t yLog, Bool_t zLog){
572 
575  logX = xLog;
576  logY = yLog;
577  logZ = zLog;
578 
579 }
580 
581 void HeatMapPlot::SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t zLow, Float_t zUp){
582 
585  xRangeUp = xUp;
586  xRangeLow = xLow;
587  yRangeUp = yUp;
588  yRangeLow = yLow;
589  zRangeUp = zUp;
590  zRangeLow = zLow;
591 
592  ranges = kTRUE;
593 
594 }
595 
596 
597 //
SquarePlot(TObjArray *array, TString xTitle, TString yTitle)
Constructor.
Definition: PlotDerived.h:46
TLine * one
Horizontal TLine which will be included to every ratio at height 1.
Definition: PlotDerived.h:118
void SetLog(Bool_t xLog=kFALSE, Bool_t yLog=kTRUE, Bool_t zLog=kFALSE)
Definition: PlotDerived.h:571
Class for plotting a single TH2 (heatmap) and one corresponding legend.
Definition: PlotDerived.h:381
HeatMapPlot(TObjArray *plotArray, TString xTitle, TString yTitle, TString zTitle="count")
Constructor.
Definition: PlotDerived.h:420
void SetCanvasOffsets(Float_t xOffset, Float_t yOffset)
Definition: PlotBase.h:314
Float_t yRangeLow
Lower Y-axis range.
Definition: PlotBase.h:101
static void SetLineProperties(PO *pobj, Color_t color, Style_t lstyle, Size_t lwid=2.)
Definition: PlotBase.h:209
virtual void SetOptions(std::string optns, std::string postns)
Definition: PlotDerived.h:352
TPad * mainPad
Main pad.
Definition: PlotBase.h:73
Float_t offsetY
Offset of Y title.
Definition: PlotBase.h:93
Base class for all plotting functionality.
Definition: PlotBase.h:21
void SetOptions(TString opt)
Definition: PlotBase.h:478
virtual void SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t rLow, Float_t rUp)
Definition: PlotDerived.h:337
void SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t zOffset)
Definition: PlotDerived.h:561
SingleRatioPlot(TObjArray *mainArray, TObjArray *ratioArray, TString xTitle, TString yTitle, TString ratioTitle)
Constructor.
Definition: PlotDerived.h:248
Bool_t logX
Should X-axis be logarithmic?
Definition: PlotBase.h:98
Class for a simple square-format plot.
Definition: PlotDerived.h:27
static Int_t mOffset
Offset for style array index.
Definition: PlotBase.h:114
Double_t oneUp
Upper bound on x-Range for TLine one.
Definition: PlotDerived.h:119
void Draw()
Abstract template for function.
Definition: PlotBase.h:37
void SetUpStyle(TObject *first, TString xTitle, TString yTitle, Float_t xUp, Float_t xLow, Float_t yUp, Float_t yLow, Float_t xOff, Float_t yOff)
Definition: PlotBase.h:187
void SetCanvasOffsets(Float_t xOffset, Float_t yOffset, Float_t rOffset=0)
Definition: PlotDerived.h:309
static Style_t label
Label size.
Definition: PlotBase.h:112
TObjArray * plotArray
Array containing all objects to be plotted.
Definition: PlotDerived.h:116
Float_t height
Height of canvas.
Definition: PlotBase.h:91
Bool_t drawone
Variable indicating wether TLine one will be drawn.
Definition: PlotDerived.h:121
Class for a rectangle plot displaying ratios.
Definition: PlotDerived.h:101
void DrawArray(TObjArray *array, Int_t off=0, Int_t offOpt=0)
Definition: PlotBase.h:587
Bool_t logY
Should Y-axis be logarithmic?
Definition: PlotBase.h:99
void SetCanvasMargins(Float_t rMargin, Float_t lMargin, Float_t tMargin, Float_t bMargin)
Definition: PlotBase.h:303
void EnsureAxes(TObject *first, std::string arrayName="")
Definition: PlotBase.h:564
virtual void SetRanges(Float_t xLow, Float_t xUp, Float_t yLow, Float_t yUp, Float_t zLow, Float_t zUp)
Definition: PlotDerived.h:581
void SetCanvasStyle(AO *first, Float_t xOff, Float_t yOff)
Definition: PlotBase.h:155
void SetPadStyle(AO *first, TString xTitle, TString yTitle, Float_t xUp, Float_t xLow, Float_t yUp, Float_t yLow)
Definition: PlotBase.h:175
std::vector< std::string > options
Drawing options.
Definition: PlotBase.h:85
TString titleY
Title of Y-axis.
Definition: PlotBase.h:88
void SetOffset(Int_t off, Int_t roff)
Definition: PlotDerived.h:327
Float_t xRangeUp
Upper X-axis range.
Definition: PlotBase.h:104
Float_t xRangeLow
Lower X-axis range.
Definition: PlotBase.h:103
void SetOption(std::string opt, Int_t pos)
Definition: PlotBase.h:524
void DrawRatioArray(TObjArray *array, Int_t off, Int_t offOpt=0)
Definition: PlotDerived.h:177
static Style_t font
Font style.
Definition: PlotBase.h:111
TString titleX
Title of X-axis.
Definition: PlotBase.h:87
void SuppressXaxis(AO *first)
Definition: PlotBase.h:373
Bool_t ranges
Were ranges set manually?
Definition: PlotBase.h:106
Float_t offsetX
Offset of X title.
Definition: PlotBase.h:92
RatioPlot(TObjArray *rArray, TString xTitle, TString yTitle)
Constructor.
Definition: PlotDerived.h:128
Float_t yRangeUp
Upper Y-axis range.
Definition: PlotBase.h:102
TCanvas * canvas
Main canvas.
Definition: PlotBase.h:74
Float_t width
Width of canvas.
Definition: PlotBase.h:90
Bool_t broken
Did any fatal error occur?
Definition: PlotBase.h:107
void SetProperties(TH2 *map, std::string title="")
Definition: PlotDerived.h:512
void SetUpPad(TPad *pad, Bool_t xLog, Bool_t yLog)
Definition: PlotBase.h:534
void ToggleOne()
Toggle wether TLine indicating ratio = 1, will be drawn.
Definition: PlotDerived.h:112
void SetPadFraction(Double_t frac)
Definition: PlotDerived.h:319
void SetCanvasDimensions(Float_t cWidth, Float_t cHeight)
Definition: PlotBase.h:294
Class for a rectangle plot with the distributions in the upper pad and the ratios in the lower pad...
Definition: PlotDerived.h:207
void SetUpperOneLimit(Double_t up)
Definition: PlotDerived.h:193