Logo ROOT   6.14/05
Reference Guide
TStyle.cxx
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Rene Brun 12/12/94
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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 #include <string.h>
13 #include <stdio.h>
14 #include <ctype.h>
15 #include <cmath>
16 
17 #include "Riostream.h"
18 #include "TApplication.h"
19 #include "TColor.h"
20 #include "TROOT.h"
21 #include "TStyle.h"
22 #include "TSystem.h"
23 #include "TVirtualPad.h"
24 #include "TVirtualMutex.h"
25 #include "TEnv.h"
26 
28 const UInt_t kTakeStyle = BIT(17);
29 
31 
32 /** \class TStyle
33 \ingroup Base
34  \ingroup GraphicsAtt
35 
36 TStyle objects may be created to define special styles.
37 By default ROOT creates a default style that can be accessed via
38 the gStyle pointer.
39 
40 This class includes functions to set some of the following object attributes.
41  - Canvas
42  - Pad
43  - Histogram axis
44  - Lines
45  - Fill areas
46  - Text
47  - Markers
48  - Functions
49  - Histogram Statistics and Titles
50 
51 All objects that can be drawn in a pad inherit from one or more attribute classes
52 like TAttLine, TAttFill, TAttText, TAttMarker. When the objects are created, their
53 default attributes are taken from the current style. The current style is an object
54 of the class[TStyle](https://root.cern.ch/doc/master/classTStyle.html) and can be
55 referenced via the global variable `gStyle` (in TStyle.h).
56 
57 ROOT provides two styles called "Default" and "Plain". The "Default"
58 style is created simply by:
59 
60 ~~~ .cpp
61 auto default = new TStyle("Default","Default Style");
62 ~~~
63 
64 The "**Plain**" style can be used if you are working on a monochrome display or
65 if you want to get a "conventional" Postscript output. These are the instructions
66 in the ROOT constructor to create the "Plain*" style.
67 
68 ```
69 auto plain = new TStyle("Plain","Plain Style (no colors/fill areas)");
70 
71  plain->SetCanvasBorderMode(0);
72  plain->SetPadBorderMode(0);
73  plain->SetPadColor(0);
74  plain->SetCanvasColor(0);
75  plain->SetTitleColor(0);
76  plain->SetStatColor(0);
77 ```
78 
79 You can set the current style with:
80 
81 ```
82 gROOT->SetStyle(style_name);
83 ```
84 
85 You can get a pointer to an existing style with:
86 
87 ```
88 auto style = gROOT->GetStyle(style_name);
89 ```
90 
91 You can create additional styles with:
92 
93 ```
94  TStyle *st1 = new TStyle("st1","my style");
95  st1->Set....
96  st1->cd(); this becomes now the current style gStyle
97 ```
98 
99 In your [rootlogon.C](https://root.cern.ch/doc/master/classexamples/startsession.log.html)
100 file, you can redefine the default parameters via statements like:
101 
102 ```
103  gStyle->SetStatX(0.7);
104  gStyle->SetStatW(0.2);
105  gStyle->SetLabelOffset(1.2);
106  gStyle->SetLabelFont(72);
107 ```
108 
109 Note that when an object is created, its attributes are taken from the current
110 style. For example, you may have created an histogram in a previous session,
111 saved it in a file. Meanwhile, if you have changed the style, the histogram will
112 be drawn with the old attributes. You can force the current style attributes to
113 be set when you read an object from a file by calling:
114 
115 ```
116 gROOT->ForceStyle();
117 ```
118 
119 before reading the objects from the file.
120 
121 Let's assume you have a canvas or pad with your histogram or any other object,
122 you can force these objects to get the attributes of the current style via:
123 
124 ```
125 canvas->UseCurrentStyle();
126 ```
127 
128 The description of the style functions should be clear from the name of the
129 TStyle Setters or Getters. Some functions have an extended description, in particular:
130 
131  - TStyle:SetLabelFont.
132  - TStyle:SetLineStyleString, to set the format of dashed lines.
133  - TStyle:SetOptStat.
134  - TStyle:SetPalette to change the colors palette.
135  - TStyle:SetTitleOffset.
136 
137 */
138 
139 ////////////////////////////////////////////////////////////////////////////////
140 /// Default constructor.
141 
143 {
144  Reset();
145 }
146 
147 ////////////////////////////////////////////////////////////////////////////////
148 /// Create a new TStyle.
149 /// The following names are reserved to create special styles
150 /// - `Classic`: the default style set in TStyle::Reset
151 /// - `Plain`: a black&white oriented style
152 /// - `Bold`
153 /// - `Video`
154 /// - `Pub`
155 /// - `Modern`
156 /// - `ATLAS`: style used by the ATLAS experiment
157 /// (see the definition of these styles below).
158 ///
159 /// Note a side-effect of calling gStyle->SetFillColor(0). This is nearly
160 /// equivalent of selecting the "Plain" style.
161 ///
162 /// Many graphics attributes may be set via the TStyle, see in particular
163 /// - TStyle::SetNdivisions
164 /// - TStyle::SetAxisColor
165 /// - TStyle::SetHeaderPS
166 /// - TStyle::SetTitlePS
167 /// - TStyle::SetLabelColor
168 /// - TStyle::SetLabelFont
169 /// - TStyle::SetLabelOffset
170 /// - TStyle::SetLabelSize
171 /// - TStyle::SetOptDate
172 /// - TStyle::SetLineStyleString
173 /// - TStyle::SetOptFit
174 /// - TStyle::SetOptStat
175 /// - TStyle::SetPaperSize
176 /// - TStyle::SetTickLength
177 /// - TStyle::SetTitleOffset
178 /// - TStyle::SetTitleSize
179 /// - TStyle::SetPalette
180 /// - TStyle::SetTimeOffset
181 /// - TStyle::SetStripDecimals
182 ///
183 /// The current style is pointed by gStyle.
184 ///
185 /// When calling myStyle->cd(), gStyle is set to myStyle.
186 ///
187 /// One can also use gROOT to change the current style, e.g.
188 ///
189 /// gROOT->SetStyle("Plain") will change the current style gStyle to the
190 /// "Plain" style
191 ///
192 /// See also TROOT::ForceStyle and TROOT::UseCurrentStyle
193 
194 TStyle::TStyle(const char *name, const char *title)
195 {
196  TString style_name = name;
197 
198  SetNameTitle(style_name, title);
199 
200  // If another style was already created with the same name, it is overwrite.
201  delete gROOT->GetStyle(style_name);
202 
203  Reset();
204 
205  {
207  gROOT->GetListOfStyles()->Add(this);
208  }
209 
210  if (strcmp(style_name,"Modern") == 0) {
211  // Modern style
215  SetCanvasColor(0);
216  SetPadBorderMode(0);
217  SetPadColor(0);
218  SetStatColor(0);
219  SetTitleFont(42,"");
220  SetLabelFont(42,"x");
221  SetTitleFont(42,"x");
222  SetLabelFont(42,"y");
223  SetTitleFont(42,"y");
224  SetLabelFont(42,"z");
225  SetTitleFont(42,"z");
226  SetStatFont(42);
227  SetLabelSize(0.035,"x");
228  SetTitleSize(0.035,"x");
229  SetLabelSize(0.035,"y");
230  SetTitleSize(0.035,"y");
231  SetLabelSize(0.035,"z");
232  SetTitleSize(0.035,"z");
233  SetTitleSize(0.050,"");
234  SetTitleAlign(23);
235  SetTitleX(0.5);
238  SetTitleStyle(0);
239  SetTitleOffset(0.,"Y");
241  SetOptStat(1111);
242  SetStatY(0.935);
246  SetLegendFont(42);
247  SetLegendTextSize(0.);
248  SetFuncWidth(2);
249  SetFuncColor(2);
250  }
251  if (strcmp(style_name,"Plain") == 0) {
252  // May be a standard style to be initialised
256  SetPadBorderMode(0);
257  SetPadColor(0);
258  SetCanvasColor(0);
261  SetStatColor(0);
264  return;
265  }
266  if (strcmp(style_name,"Bold") == 0) {
267  // Authors: Art Poskanzer and Jim Thomas, LBNL, Oct. 2000
268  SetPalette(1,0);
269  SetCanvasColor(10);
272  SetFrameFillColor(10);
273  SetPadColor(10);
274  SetPadTickX(1);
275  SetPadTickY(1);
276  SetPadBottomMargin(0.15);
277  SetPadLeftMargin(0.15);
278  SetHistLineWidth(3);
280  SetFuncWidth(3);
282  SetLineWidth(3);
283  SetLabelSize(0.05,"xyz");
284  SetLabelOffset(0.01,"y");
285  SetLabelColor(kBlue,"xy");
286  SetTitleSize(0.06,"xyz");
287  SetTitleOffset(1.3,"Y");
288  SetTitleFillColor(10);
290  SetStatColor(10);
291  return;
292  }
293  if (strcmp(style_name,"Video") == 0) {
294  // Author: Art Poskanzer, LBNL, Oct. 1999
295  SetPalette(1,0);
296  SetCanvasColor(10);
299  SetFrameFillColor(10);
300  SetPadColor(10);
301  SetPadTickX(1);
302  SetPadTickY(1);
303  SetPadBottomMargin(0.2);
304  SetPadLeftMargin(0.2);
305  SetHistLineWidth(8);
307  SetLabelSize(0.06,"xyz");
308  SetLabelColor(kBlue,"xyz");
309  SetTitleSize(0.08,"xyz");
310  SetTitleFillColor(10);
312  SetStatColor(10);
313  SetFuncWidth(8);
315  SetLineWidth(3);
316  return;
317  }
318  if (strcmp(style_name,"Pub") == 0) {
319  // Authors: Art Poskanzer and Jim Thomas, LBNL, Oct. 2000
320  SetOptTitle(0);
321  SetOptStat(0);
322  SetPalette(8,0);
323  SetCanvasColor(10);
326  SetFrameFillColor(10);
327  SetPadColor(10);
328  SetPadTickX(1);
329  SetPadTickY(1);
330  SetPadBottomMargin(0.15);
331  SetPadLeftMargin(0.15);
332  SetHistLineWidth(3);
334  SetFuncWidth(3);
336  SetLineWidth(3);
337  SetLabelSize(0.05,"xyz");
338  SetLabelOffset(0.01,"y");
339  SetLabelColor(kBlack,"xyz");
340  SetTitleSize(0.06,"xyz");
341  SetTitleOffset(1.3,"y");
342  SetTitleFillColor(10);
344  return;
345  }
346  if (strcmp(style_name,"ATLAS") == 0) {
347  // Author: M.Sutton - Atlas Collaboration 2010
351  SetCanvasColor(0);
352  SetPadBorderMode(0);
353  SetPadColor(0);
354  SetStatColor(0);
355  SetPaperSize(20,26);
356  SetPadTopMargin(0.05);
357  SetPadRightMargin(0.05);
358  SetPadBottomMargin(0.16);
359  SetPadLeftMargin(0.16);
360  SetTitleXOffset(1.4);
361  SetTitleYOffset(1.4);
362  Int_t font = 42;
363  Double_t tsize=0.05;
364  SetTextFont(font);
365  SetTextSize(tsize);
366  SetLabelFont(font,"x");
367  SetTitleFont(font,"x");
368  SetLabelFont(font,"y");
369  SetTitleFont(font,"y");
370  SetLabelFont(font,"z");
371  SetTitleFont(font,"z");
372  SetLabelSize(tsize,"x");
373  SetTitleSize(tsize,"x");
374  SetLabelSize(tsize,"y");
375  SetTitleSize(tsize,"y");
376  SetLabelSize(tsize,"z");
377  SetTitleSize(tsize,"z");
378  SetMarkerStyle(20);
379  SetMarkerSize(1.2);
380  SetHistLineWidth(2.);
381  SetLineStyleString(2,"[12 12]");
382  SetErrorX(0.0001); // get rid of X error bars (as recommended in ATLAS figure guidelines)
383  SetEndErrorSize(0.); // get rid of error bar caps
384  SetOptTitle(0);
385  SetOptStat(0);
386  SetOptFit(0);
387  SetPadTickX(1);
388  SetPadTickY(1);
389  }
390 }
391 
392 ////////////////////////////////////////////////////////////////////////////////
393 /// Destructor.
394 
396 {
398  gROOT->GetListOfStyles()->Remove(this);
399  if (gStyle == this) gStyle = (TStyle*)gROOT->GetListOfStyles()->Last();
400 }
401 
402 ////////////////////////////////////////////////////////////////////////////////
403 /// Copy constructor.
404 
405 TStyle::TStyle(const TStyle &style) : TNamed(style), TAttLine(style), TAttFill(style), TAttMarker(style), TAttText(style)
406 {
407  ((TStyle&)style).Copy(*this);
408 }
409 
410 ////////////////////////////////////////////////////////////////////////////////
411 /// Browse the style object.
412 
414 {
415  cd();
416 }
417 
418 ////////////////////////////////////////////////////////////////////////////////
419 /// Create some standard styles.
420 
422 {
423  TColor *col = new TColor(); // force the initialisation of fgPalette
424  new TStyle("Plain", "Plain Style (no colors/fill areas)");
425  new TStyle("Bold", "Bold Style");;
426  new TStyle("Video", "Style for video presentation histograms");
427  new TStyle("Pub", "Style for Publications");
428  new TStyle("Classic","Classic Style");
429  new TStyle("Default","Equivalent to Classic");
430  new TStyle("Modern", "Modern Style");
431  new TStyle("ATLAS", "ATLAS Style");
432  delete col;
433 }
434 
435 ////////////////////////////////////////////////////////////////////////////////
436 /// Change current style.
437 
439 {
440  gStyle = this;
441 }
442 
443 ////////////////////////////////////////////////////////////////////////////////
444 /// Copy this style.
445 
446 void TStyle::Copy(TObject &obj) const
447 {
448  TAttLine::Copy(((TStyle&)obj));
449  TAttFill::Copy(((TStyle&)obj));
450  TAttMarker::Copy(((TStyle&)obj));
451  TAttText::Copy(((TStyle&)obj));
452  fXaxis.Copy(((TStyle&)obj).fXaxis);
453  fYaxis.Copy(((TStyle&)obj).fYaxis);
454  fZaxis.Copy(((TStyle&)obj).fZaxis);
455  fAttDate.Copy(((TStyle&)obj).fAttDate);
456  ((TStyle&)obj).fIsReading = fIsReading;
457  ((TStyle&)obj).fScreenFactor = fScreenFactor;
458  ((TStyle&)obj).fCanvasPreferGL = fCanvasPreferGL;
459  ((TStyle&)obj).fCanvasColor = fCanvasColor;
460  ((TStyle&)obj).fCanvasBorderSize = fCanvasBorderSize;
461  ((TStyle&)obj).fCanvasBorderMode = fCanvasBorderMode;
462  ((TStyle&)obj).fCanvasDefH = fCanvasDefH;
463  ((TStyle&)obj).fCanvasDefW = fCanvasDefW;
464  ((TStyle&)obj).fCanvasDefX = fCanvasDefX;
465  ((TStyle&)obj).fCanvasDefY = fCanvasDefY;
466  ((TStyle&)obj).fPadColor = fPadColor;
467  ((TStyle&)obj).fPadBorderSize = fPadBorderSize;
468  ((TStyle&)obj).fPadBorderMode = fPadBorderMode;
469  ((TStyle&)obj).fPadBottomMargin = fPadBottomMargin;
470  ((TStyle&)obj).fPadTopMargin = fPadTopMargin;
471  ((TStyle&)obj).fPadLeftMargin = fPadLeftMargin;
472  ((TStyle&)obj).fPadRightMargin = fPadRightMargin;
473  ((TStyle&)obj).fPadGridX = fPadGridX;
474  ((TStyle&)obj).fPadGridY = fPadGridY;
475  ((TStyle&)obj).fPadTickX = fPadTickX;
476  ((TStyle&)obj).fPadTickY = fPadTickY;
477  ((TStyle&)obj).fPaperSizeX = fPaperSizeX;
478  ((TStyle&)obj).fPaperSizeY = fPaperSizeY;
479  ((TStyle&)obj).fFuncColor = fFuncColor;
480  ((TStyle&)obj).fFuncStyle = fFuncStyle;
481  ((TStyle&)obj).fFuncWidth = fFuncWidth;
482  ((TStyle&)obj).fGridColor = fGridColor;
483  ((TStyle&)obj).fGridStyle = fGridStyle;
484  ((TStyle&)obj).fGridWidth = fGridWidth;
485  ((TStyle&)obj).fHatchesSpacing = fHatchesSpacing;
486  ((TStyle&)obj).fHatchesLineWidth = fHatchesLineWidth;
487  ((TStyle&)obj).fFrameFillColor = fFrameFillColor;
488  ((TStyle&)obj).fFrameFillStyle = fFrameFillStyle;
489  ((TStyle&)obj).fFrameLineColor = fFrameLineColor;
490  ((TStyle&)obj).fFrameLineStyle = fFrameLineStyle;
491  ((TStyle&)obj).fFrameLineWidth = fFrameLineWidth;
492  ((TStyle&)obj).fFrameBorderSize = fFrameBorderSize;
493  ((TStyle&)obj).fFrameBorderMode = fFrameBorderMode;
494  ((TStyle&)obj).fHistFillColor = fHistFillColor;
495  ((TStyle&)obj).fHistFillStyle = fHistFillStyle;
496  ((TStyle&)obj).fHistLineColor = fHistLineColor;
497  ((TStyle&)obj).fHistLineStyle = fHistLineStyle;
498  ((TStyle&)obj).fHistLineWidth = fHistLineWidth;
499  ((TStyle&)obj).fHistMinimumZero = fHistMinimumZero;
500  ((TStyle&)obj).fHistTopMargin = fHistTopMargin;
501  ((TStyle&)obj).fBarWidth = fBarWidth;
502  ((TStyle&)obj).fBarOffset = fBarOffset;
503  ((TStyle&)obj).fDrawBorder = fDrawBorder;
504  ((TStyle&)obj).fOptLogx = fOptLogx;
505  ((TStyle&)obj).fOptLogy = fOptLogy;
506  ((TStyle&)obj).fOptLogz = fOptLogz;
507  ((TStyle&)obj).fOptDate = fOptDate;
508  ((TStyle&)obj).fOptFit = fOptFit;
509  ((TStyle&)obj).fOptStat = fOptStat;
510  ((TStyle&)obj).fOptTitle = fOptTitle;
511  ((TStyle&)obj).fEndErrorSize = fEndErrorSize;
512  ((TStyle&)obj).fErrorX = fErrorX;
513  ((TStyle&)obj).fStatColor = fStatColor;
514  ((TStyle&)obj).fStatTextColor = fStatTextColor;
515  ((TStyle&)obj).fStatBorderSize = fStatBorderSize;
516  ((TStyle&)obj).fStatFont = fStatFont;
517  ((TStyle&)obj).fStatFontSize = fStatFontSize;
518  ((TStyle&)obj).fStatStyle = fStatStyle;
519  ((TStyle&)obj).fStatFormat = fStatFormat;
520  ((TStyle&)obj).fStatW = fStatW;
521  ((TStyle&)obj).fStatH = fStatH ;
522  ((TStyle&)obj).fStatX = fStatX;
523  ((TStyle&)obj).fStatY = fStatY;
524  ((TStyle&)obj).fTitleAlign = fTitleAlign;
525  ((TStyle&)obj).fTitleColor = fTitleColor;
526  ((TStyle&)obj).fTitleTextColor = fTitleTextColor;
527  ((TStyle&)obj).fTitleFont = fTitleFont;
528  ((TStyle&)obj).fTitleFontSize = fTitleFontSize;
529  ((TStyle&)obj).fTitleStyle = fTitleStyle;
530  ((TStyle&)obj).fTitleBorderSize = fTitleBorderSize;
531  ((TStyle&)obj).fTitleW = fTitleW;
532  ((TStyle&)obj).fTitleH = fTitleH;
533  ((TStyle&)obj).fTitleX = fTitleX;
534  ((TStyle&)obj).fTitleY = fTitleY;
535  ((TStyle&)obj).fDateX = fDateX;
536  ((TStyle&)obj).fDateY = fDateY;
537  ((TStyle&)obj).fFitFormat = fFitFormat;
538  ((TStyle&)obj).fPaintTextFormat = fPaintTextFormat;
539  ((TStyle&)obj).fShowEventStatus = fShowEventStatus;
540  ((TStyle&)obj).fShowEditor = fShowEditor;
541  ((TStyle&)obj).fShowToolBar = fShowToolBar;
542  ((TStyle&)obj).fLegoInnerR = fLegoInnerR;
543  ((TStyle&)obj).fStripDecimals = fStripDecimals;
544  ((TStyle&)obj).fNumberContours = fNumberContours;
545  ((TStyle&)obj).fLegendBorderSize = fLegendBorderSize;
546  ((TStyle&)obj).fLegendFillColor = fLegendFillColor;
547  ((TStyle&)obj).fLegendFont = fLegendFont;
548  ((TStyle&)obj).fLegendTextSize = fLegendTextSize;
549 
550  Int_t i;
551  for (i=0;i<30;i++) {
552  ((TStyle&)obj).fLineStyle[i] = fLineStyle[i];
553  }
554  ((TStyle&)obj).fHeaderPS = fHeaderPS;
555  ((TStyle&)obj).fTitlePS = fTitlePS;
556  ((TStyle&)obj).fLineScalePS = fLineScalePS;
557  ((TStyle&)obj).fJoinLinePS = fJoinLinePS;
558  ((TStyle&)obj).fColorModelPS = fColorModelPS;
559  ((TStyle&)obj).fTimeOffset = fTimeOffset;
560  ((TStyle&)obj).fImageScaling = fImageScaling;
561 }
562 
563 ////////////////////////////////////////////////////////////////////////////////
564 /// Function used by the TStyle manager when drawing a canvas showing the
565 /// current style.
566 
568 {
569  gPad->SetSelected(this);
570  return 0;
571 }
572 
573 ////////////////////////////////////////////////////////////////////////////////
574 /// Reset.
575 
577 {
578  fIsReading = kTRUE;
583  SetFillStyle(1001);
584  SetFillColor(19);
585  fXaxis.ResetAttAxis("X");
586  fYaxis.ResetAttAxis("Y");
587  fZaxis.ResetAttAxis("Z");
588  if (gEnv) fCanvasPreferGL = gEnv->GetValue("OpenGL.CanvasPreferGL",0);
589  else fCanvasPreferGL = kFALSE;
590  fCanvasColor = 19;
593  fCanvasDefH = 500;
594  fCanvasDefW = 700;
595  fCanvasDefX = 10;
596  fCanvasDefY = 10;
600  fPadBottomMargin= 0.1;
601  fPadTopMargin = 0.1;
602  fPadLeftMargin = 0.1;
603  fPadRightMargin = 0.1;
604  fPadGridX = kFALSE;
605  fPadGridY = kFALSE;
606  fPadTickX = 0;
607  fPadTickY = 0;
608  fFuncColor = 1;
609  fFuncStyle = 1;
610  fFuncWidth = 3;
611  fGridColor = 0;
612  fGridStyle = 3;
613  fGridWidth = 1;
614  fHatchesSpacing = 1;
615  fHatchesLineWidth = 1;
616  fHistLineColor = 1;
617  fHistFillColor = 0;
618  fHistFillStyle = 1001;
619  fHistLineStyle = 1;
620  fHistLineWidth = 1;
622  fHistTopMargin = 0.05;
623  fFrameLineColor = 1;
624  fFrameFillColor = 0;
625  fFrameFillStyle = 1001;
626  fFrameLineStyle = 1;
627  fFrameLineWidth = 1;
628  fFrameBorderSize= 1;
629  fFrameBorderMode= 1;
630  fBarWidth = 1;
631  fBarOffset = 0;
632  fDrawBorder = 0;
633  fOptLogx = 0;
634  fOptLogy = 0;
635  fOptLogz = 0;
636  fOptDate = 0;
637  fOptFile = 0;
638  fOptFit = 0;
639  fOptStat = 1;
640  fOptTitle = 1;
641  fEndErrorSize = 2;
642  fErrorX = 0.5;
643  fScreenFactor = 1;
645  fStatTextColor = 1;
646  fStatBorderSize = 2;
647  fStatFont = 62;
648  fStatFontSize = 0;
649  fStatStyle = 1001;
650  fStatW = 0.20;
651  fStatH = 0.16;
652  fStatX = 0.98;
653  fStatY = 0.995;
654  SetStatFormat();
655  SetFitFormat();
657  fTitleAlign = 13;
659  fTitleTextColor = 1;
660  fTitleFont = 62;
661  fTitleFontSize = 0;
662  fTitleStyle = 1001;
663  fTitleBorderSize= 2;
664  fTitleW = 0;
665  fTitleH = 0;
666  fTitleX = 0.01;
667  fTitleY = 0.995;
668  fShowEventStatus= 0;
669  fShowEditor = 0;
670  fShowToolBar = 0;
671  fLegoInnerR = 0.5;
672  fHeaderPS = "";
673  fTitlePS = "";
675  fNumberContours = 20;
677  fLegendFont = 62;
678  fLegendTextSize = 0.,
679  fLegendFillColor = 0;
680  fImageScaling = 1.;
681 
682  SetDateX();
683  SetDateY();
684  fAttDate.SetTextSize(0.025);
686  SetLineScalePS();
687  SetJoinLinePS();
688  SetColorModelPS();
689  SetLineStyleString(1," ");
690  SetLineStyleString(2,"12 12");
691  SetLineStyleString(3,"4 8");
692  SetLineStyleString(4,"12 16 4 16");
693  SetLineStyleString(5,"20 12 4 12");
694  SetLineStyleString(6,"20 12 4 12 4 12 4 12");
695  SetLineStyleString(7,"20 20");
696  SetLineStyleString(8,"20 12 4 12 4 12");
697  SetLineStyleString(9,"80 20");
698  SetLineStyleString(10,"80 40 4 40");
699  for (Int_t i=11;i<30;i++) SetLineStyleString(i," ");
700 
701  SetPaperSize();
702 
703  SetPalette();
704 
705  fTimeOffset = 788918400; // UTC time at 01/01/95
706 
707  TString style_name = opt;
708 
709  if (strcmp(style_name,"Modern") == 0) {
710  // Modern style
714  SetCanvasColor(0);
715  SetPadBorderMode(0);
716  SetPadColor(0);
717  SetStatColor(0);
718  SetTitleFont(42,"");
719  SetLabelFont(42,"x");
720  SetTitleFont(42,"x");
721  SetLabelFont(42,"y");
722  SetTitleFont(42,"y");
723  SetLabelFont(42,"z");
724  SetTitleFont(42,"z");
725  SetStatFont(42);
726  SetLabelSize(0.035,"x");
727  SetTitleSize(0.035,"x");
728  SetLabelSize(0.035,"y");
729  SetTitleSize(0.035,"y");
730  SetLabelSize(0.035,"z");
731  SetTitleSize(0.035,"z");
732  SetTitleSize(0.050,"");
733  SetTitleAlign(23);
734  SetTitleX(0.5);
737  SetTitleStyle(0);
738  SetTitleOffset(0.,"Y");
740  SetOptStat(1111);
741  SetStatY(0.935);
745  SetLegendFont(42);
746  SetLegendTextSize(0.);
747  SetFuncWidth(2);
748  SetFuncColor(2);
749  }
750  if (strcmp(style_name,"Plain") == 0) {
753  SetPadBorderMode(0);
754  SetPadColor(0);
755  SetCanvasColor(0);
758  SetStatColor(0);
761  return;
762  }
763  if (strcmp(style_name,"Bold") == 0) {
764  SetPalette(1,0);
765  SetCanvasColor(10);
768  SetFrameFillColor(10);
769  SetPadColor(10);
770  SetPadTickX(1);
771  SetPadTickY(1);
772  SetPadBottomMargin(0.15);
773  SetPadLeftMargin(0.15);
774  SetHistLineWidth(3);
776  SetFuncWidth(3);
778  SetLineWidth(3);
779  SetLabelSize(0.05,"xyz");
780  SetLabelOffset(0.01,"y");
781  SetLabelColor(kBlue,"xy");
782  SetTitleSize(0.06,"xyz");
783  SetTitleOffset(1.3,"Y");
784  SetTitleFillColor(10);
786  SetStatColor(10);
787  return;
788  }
789  if (strcmp(style_name,"Video") == 0) {
790  SetPalette(1,0);
791  SetCanvasColor(10);
794  SetFrameFillColor(10);
795  SetPadColor(10);
796  SetPadTickX(1);
797  SetPadTickY(1);
798  SetPadBottomMargin(0.2);
799  SetPadLeftMargin(0.2);
800  SetHistLineWidth(8);
802  SetLabelSize(0.06,"xyz");
803  SetLabelColor(kBlue,"xyz");
804  SetTitleSize(0.08,"xyz");
805  SetTitleFillColor(10);
807  SetStatColor(10);
808  SetFuncWidth(8);
810  SetLineWidth(3);
811  return;
812  }
813  if (strcmp(style_name,"Pub") == 0) {
814  SetOptTitle(0);
815  SetOptStat(0);
816  SetPalette(8,0);
817  SetCanvasColor(10);
820  SetFrameFillColor(10);
821  SetPadColor(10);
822  SetPadTickX(1);
823  SetPadTickY(1);
824  SetPadBottomMargin(0.15);
825  SetPadLeftMargin(0.15);
826  SetHistLineWidth(3);
828  SetFuncWidth(3);
830  SetLineWidth(3);
831  SetLabelSize(0.05,"xyz");
832  SetLabelOffset(0.01,"y");
833  SetLabelColor(kBlack,"xyz");
834  SetTitleSize(0.06,"xyz");
835  SetTitleOffset(1.3,"y");
836  SetTitleFillColor(10);
838  return;
839  }
840  if (strcmp(style_name,"ATLAS") == 0) {
844  SetCanvasColor(0);
845  SetPadBorderMode(0);
846  SetPadColor(0);
847  SetStatColor(0);
848  SetPaperSize(20,26);
849  SetPadTopMargin(0.05);
850  SetPadRightMargin(0.05);
851  SetPadBottomMargin(0.16);
852  SetPadLeftMargin(0.16);
853  SetTitleXOffset(1.4);
854  SetTitleYOffset(1.4);
855  Int_t font = 42;
856  Double_t tsize=0.05;
857  SetTextFont(font);
858  SetTextSize(tsize);
859  SetLabelFont(font,"x");
860  SetTitleFont(font,"x");
861  SetLabelFont(font,"y");
862  SetTitleFont(font,"y");
863  SetLabelFont(font,"z");
864  SetTitleFont(font,"z");
865  SetLabelSize(tsize,"x");
866  SetTitleSize(tsize,"x");
867  SetLabelSize(tsize,"y");
868  SetTitleSize(tsize,"y");
869  SetLabelSize(tsize,"z");
870  SetTitleSize(tsize,"z");
871  SetMarkerStyle(20);
872  SetMarkerSize(1.2);
873  SetHistLineWidth(2.);
874  SetLineStyleString(2,"[12 12]");
875  SetErrorX(0.0001);
876  SetEndErrorSize(0.);
877  SetOptTitle(0);
878  SetOptStat(0);
879  SetOptFit(0);
880  SetPadTickX(1);
881  SetPadTickY(1);
882  return;
883  }
884 }
885 
886 ////////////////////////////////////////////////////////////////////////////////
887 /// Return number of divisions.
888 
890 {
891  Int_t ax = AxisChoice(axis);
892  if (ax == 1) return fXaxis.GetNdivisions();
893  if (ax == 2) return fYaxis.GetNdivisions();
894  if (ax == 3) return fZaxis.GetNdivisions();
895  return 0;
896 }
897 
898 ////////////////////////////////////////////////////////////////////////////////
899 /// Return the axis color number in the axis.
900 
902 {
903  Int_t ax = AxisChoice(axis);
904  if (ax == 1) return fXaxis.GetAxisColor();
905  if (ax == 2) return fYaxis.GetAxisColor();
906  if (ax == 3) return fZaxis.GetAxisColor();
907  return 0;
908 }
909 
910 ////////////////////////////////////////////////////////////////////////////////
911 /// Return color number i in current palette.
912 
914 {
915  return TColor::GetColorPalette(i);
916 }
917 
918 ////////////////////////////////////////////////////////////////////////////////
919 /// Return the label color number in the axis.
920 
922 {
923  Int_t ax = AxisChoice(axis);
924  if (ax == 1) return fXaxis.GetLabelColor();
925  if (ax == 2) return fYaxis.GetLabelColor();
926  if (ax == 3) return fZaxis.GetLabelColor();
927  return 0;
928 }
929 
930 ////////////////////////////////////////////////////////////////////////////////
931 /// Return label font.
932 
934 {
935  Int_t ax = AxisChoice(axis);
936  if (ax == 1) return fXaxis.GetLabelFont();
937  if (ax == 2) return fYaxis.GetLabelFont();
938  if (ax == 3) return fZaxis.GetLabelFont();
939  return 0;
940 }
941 
942 ////////////////////////////////////////////////////////////////////////////////
943 /// Return label offset.
944 
946 {
947  Int_t ax = AxisChoice(axis);
948  if (ax == 1) return fXaxis.GetLabelOffset();
949  if (ax == 2) return fYaxis.GetLabelOffset();
950  if (ax == 3) return fZaxis.GetLabelOffset();
951  return 0;
952 }
953 
954 ////////////////////////////////////////////////////////////////////////////////
955 /// Return label size.
956 
958 {
959  Int_t ax = AxisChoice(axis);
960  if (ax == 1) return fXaxis.GetLabelSize();
961  if (ax == 2) return fYaxis.GetLabelSize();
962  if (ax == 3) return fZaxis.GetLabelSize();
963  return 0;
964 }
965 
966 ////////////////////////////////////////////////////////////////////////////////
967 /// Return line style string (used by PostScript).
968 /// See SetLineStyleString for more explanations
969 
970 const char *TStyle::GetLineStyleString(Int_t i) const
971 {
972  if (i < 1 || i > 29) return fLineStyle[0].Data();
973  return fLineStyle[i].Data();
974 }
975 
976 ////////////////////////////////////////////////////////////////////////////////
977 /// Return number of colors in the color palette.
978 
980 {
981  return TColor::GetNumberOfColors();
982 }
983 
984 
985 ////////////////////////////////////////////////////////////////////////////////
986 /// Set paper size for PostScript output.
987 
988 void TStyle::GetPaperSize(Float_t &xsize, Float_t &ysize) const
989 {
990  xsize = fPaperSizeX;
991  ysize = fPaperSizeY;
992 }
993 
994 ////////////////////////////////////////////////////////////////////////////////
995 /// Return tick length.
996 
998 {
999  Int_t ax = AxisChoice(axis);
1000  if (ax == 1) return fXaxis.GetTickLength();
1001  if (ax == 2) return fYaxis.GetTickLength();
1002  if (ax == 3) return fZaxis.GetTickLength();
1003  return 0;
1004 }
1005 
1006 ////////////////////////////////////////////////////////////////////////////////
1007 /// Return title color.
1008 
1010 {
1011  Int_t ax = AxisChoice(axis);
1012  if (ax == 1) return fXaxis.GetTitleColor();
1013  if (ax == 2) return fYaxis.GetTitleColor();
1014  if (ax == 3) return fZaxis.GetTitleColor();
1015  return fTitleTextColor;
1016 }
1017 
1018 ////////////////////////////////////////////////////////////////////////////////
1019 /// Return title font.
1020 
1022 {
1023  Int_t ax = AxisChoice(axis);
1024  if (ax == 1) return fXaxis.GetTitleFont();
1025  if (ax == 2) return fYaxis.GetTitleFont();
1026  if (ax == 3) return fZaxis.GetTitleFont();
1027  return fTitleFont;
1028 }
1029 
1030 ////////////////////////////////////////////////////////////////////////////////
1031 /// Return title offset.
1032 
1034 {
1035  Int_t ax = AxisChoice(axis);
1036  if (ax == 1) return fXaxis.GetTitleOffset();
1037  if (ax == 2) return fYaxis.GetTitleOffset();
1038  if (ax == 3) return fZaxis.GetTitleOffset();
1039  return 0;
1040 }
1041 
1042 ////////////////////////////////////////////////////////////////////////////////
1043 /// Return title size.
1044 
1046 {
1047  Int_t ax = AxisChoice(axis);
1048  if (ax == 1) return fXaxis.GetTitleSize();
1049  if (ax == 2) return fYaxis.GetTitleSize();
1050  if (ax == 3) return fZaxis.GetTitleSize();
1051  return fTitleFontSize;
1052 }
1053 
1054 ////////////////////////////////////////////////////////////////////////////////
1055 /// Show the options from the current style
1056 
1058 {
1059  gROOT->ProcessLine(Form("TStyleManager::PaintStyle((TStyle*)0x%lx,\"%s\")",
1060  (ULong_t)this,option));
1061 }
1062 
1063 ////////////////////////////////////////////////////////////////////////////////
1064 /// Define the color model used by TPostScript and TPDF (RGB or CMYK).
1065 /// CMY and CMYK models are subtractive color models unlike RGB which is
1066 /// additive. They are mainly used for printing purposes. CMY means Cyan Magenta
1067 /// Yellow. To convert RGB to CMY it is enough to do: C=1-R, M=1-G and Y=1-B.
1068 /// CMYK has one more component K (black). The conversion from RGB to CMYK is:
1069 /// ~~~ {.cpp}
1070 /// Double_t Black = TMath::Min(TMath::Min(1-Red,1-Green),1-Blue);
1071 /// Double_t Cyan = (1-Red-Black)/(1-Black);
1072 /// Double_t Magenta = (1-Green-Black)/(1-Black);
1073 /// Double_t Yellow = (1-Blue-Black)/(1-Black);
1074 /// ~~~
1075 /// CMYK adds the black component which allows better quality for black
1076 /// printing. PostScript and PDF support the CMYK model.
1077 ///
1078 /// - c = 0 means TPostScript and TPDF will use RGB color model (default)
1079 /// - c = 1 means TPostScript and TPDF will use CMYK color model
1080 
1082 {
1083  fColorModelPS = c;
1084 }
1085 
1086 ////////////////////////////////////////////////////////////////////////////////
1087 /// If the argument zero=kTRUE the minimum value for the Y axis of 1-d histograms
1088 /// is set to 0.
1089 ///
1090 /// If the minimum bin content is greater than 0 and TH1::SetMinimum
1091 /// has not been called.
1092 /// Otherwise the minimum is based on the minimum bin content.
1093 
1095 {
1096  fHistMinimumZero = zero;
1097 }
1098 
1099 ////////////////////////////////////////////////////////////////////////////////
1100 /// Set the number of divisions to draw an axis.
1101 /// ndiv : Number of divisions.
1102 /// ~~~ {.cpp}
1103 /// n = N1 + 100*N2 + 10000*N3
1104 /// N1=number of primary divisions.
1105 /// N2=number of secondary divisions.
1106 /// N3=number of 3rd divisions.
1107 /// e.g.:
1108 /// nndi=0 --> no tick marks.
1109 /// nndi=2 --> 2 divisions, one tick mark in the middle
1110 /// of the axis.
1111 /// ~~~
1112 /// axis specifies which axis ("x","y","z"), default = "x"
1113 /// if axis="xyz" set all 3 axes
1114 
1116 {
1117  TString opt = axis;
1118  opt.ToLower();
1119  if (opt.Contains("x")) fXaxis.SetNdivisions(n);
1120  if (opt.Contains("y")) fYaxis.SetNdivisions(n);
1121  if (opt.Contains("z")) fZaxis.SetNdivisions(n);
1122 }
1123 
1124 ////////////////////////////////////////////////////////////////////////////////
1125 /// Set color to draw the axis line and tick marks.
1126 /// axis specifies which axis ("x","y","z"), default = "x"
1127 /// if axis="xyz" set all 3 axes
1128 
1130 {
1131  TString opt = axis;
1132  opt.ToLower();
1133 
1134  if (opt.Contains("x")) fXaxis.SetAxisColor(color);
1135  if (opt.Contains("y")) fYaxis.SetAxisColor(color);
1136  if (opt.Contains("z")) fZaxis.SetAxisColor(color);
1137 }
1138 
1139 ////////////////////////////////////////////////////////////////////////////////
1140 /// Set the size (in pixels) of the small lines drawn at the
1141 /// end of the error bars (TH1 or TGraphErrors).
1142 ///
1143 /// The default value is 2 pixels.
1144 /// Set np=0 to remove these lines
1145 
1147 {
1148  if (np >= 0) fEndErrorSize = np;
1149  else fEndErrorSize = 0;
1150 }
1151 
1152 ////////////////////////////////////////////////////////////////////////////////
1153 /// Define a string to be inserted in the Postscript header.
1154 ///
1155 /// The string in header will be added to the Postscript file
1156 /// immediately following the %%Page line
1157 /// For example, this string may contain special Postscript instructions like
1158 /// ~~~ {.cpp}
1159 /// 200 200 translate
1160 /// ~~~
1161 /// the following header string will print the string "my annotation" at the
1162 /// bottom left corner of the page (outside the user area)
1163 /// ~~~ {.cpp}
1164 /// "gsave 100 -100 t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( my annotation ) show gr"
1165 /// ~~~
1166 /// This information is used in TPostScript::Initialize
1167 
1168 void TStyle::SetHeaderPS(const char *header)
1169 {
1170  fHeaderPS = header;
1171 }
1172 
1173 ////////////////////////////////////////////////////////////////////////////////
1174 /// Sets the `fIsReading` member to reading (default=kTRUE).
1175 ///
1176 /// `fIsReading` (used via `gStyle->IsReading()`) can be used in
1177 /// the functions `myclass::UseCurrentStyle` to read from the current style
1178 /// or write to the current style
1179 
1181 {
1182  fIsReading = reading;
1183 }
1184 
1185 ////////////////////////////////////////////////////////////////////////////////
1186 /// Define a string to be used in the %%Title of the Postscript files.
1187 /// If this string is not defined, ROOT will use the canvas title.
1188 
1189 void TStyle::SetTitlePS(const char *pstitle)
1190 {
1191  fTitlePS = pstitle;
1192 }
1193 
1194 ////////////////////////////////////////////////////////////////////////////////
1195 /// Set axis labels color.
1196 /// axis specifies which axis ("x","y","z"), default = "x"
1197 /// if axis="xyz" set all 3 axes
1198 
1200 {
1201  TString opt = axis;
1202  opt.ToLower();
1203 
1204  if (opt.Contains("x")) fXaxis.SetLabelColor(color);
1205  if (opt.Contains("y")) fYaxis.SetLabelColor(color);
1206  if (opt.Contains("z")) fZaxis.SetLabelColor(color);
1207 }
1208 
1209 ////////////////////////////////////////////////////////////////////////////////
1210 /// Set font number used to draw axis labels.
1211 /// - font : Text font code = 10*fontnumber + precision
1212 /// - Font numbers must be between 1 and 14
1213 /// - precision = 1 fast hardware fonts (steps in the size)
1214 /// - precision = 2 scalable and rotatable hardware fonts
1215 /// The default font number is 62.
1216 /// axis specifies which axis ("x","y","z"), default = "x"
1217 /// if axis="xyz" set all 3 axes
1218 
1220 {
1221  TString opt = axis;
1222  opt.ToLower();
1223 
1224  if (opt.Contains("x")) fXaxis.SetLabelFont(font);
1225  if (opt.Contains("y")) fYaxis.SetLabelFont(font);
1226  if (opt.Contains("z")) fZaxis.SetLabelFont(font);
1227 }
1228 
1229 ////////////////////////////////////////////////////////////////////////////////
1230 /// Set offset between axis and axis labels.
1231 /// The offset is expressed as a percent of the pad height.
1232 /// axis specifies which axis ("x","y","z"), default = "x"
1233 /// if axis="xyz" set all 3 axes
1234 
1236 {
1237  TString opt = axis;
1238  opt.ToLower();
1239 
1240  if (opt.Contains("x")) fXaxis.SetLabelOffset(offset);
1241  if (opt.Contains("y")) fYaxis.SetLabelOffset(offset);
1242  if (opt.Contains("z")) fZaxis.SetLabelOffset(offset);
1243 }
1244 
1245 ////////////////////////////////////////////////////////////////////////////////
1246 /// Set size of axis labels. The size is expressed as a percent of the pad height.
1247 /// axis specifies which axis ("x","y","z"), default = "x"
1248 /// if axis="xyz" set all 3 axes
1249 
1251 {
1252  TString opt = axis;
1253  opt.ToLower();
1254 
1255  if (opt.Contains("x")) fXaxis.SetLabelSize(size);
1256  if (opt.Contains("y")) fYaxis.SetLabelSize(size);
1257  if (opt.Contains("z")) fZaxis.SetLabelSize(size);
1258 }
1259 
1260 ////////////////////////////////////////////////////////////////////////////////
1261 /// Set line style string using the PostScript convention.
1262 /// A line is a suite of segments, each segment is described by the number of
1263 /// pixels. The initial and alternating elements (second, fourth, and so on)
1264 /// are the dashes, and the others spaces between dashes.
1265 ///
1266 /// Default fixed line styles are pre-defined as:
1267 /// ~~~ {.cpp}
1268 /// linestyle 1 "[]" solid
1269 /// linestyle 2 "[12 12]" dashed
1270 /// linestyle 3 "[4 8]" dotted
1271 /// linestyle 4 "[12 16 4 16]" dash-dotted
1272 /// ~~~
1273 /// For example the following lines define the line style 5 to 9.
1274 /// ~~~ {.cpp}
1275 /// gStyle->SetLineStyleString(5,"20 12 4 12");
1276 /// gStyle->SetLineStyleString(6,"20 12 4 12 4 12 4 12");
1277 /// gStyle->SetLineStyleString(7,"20 20");
1278 /// gStyle->SetLineStyleString(8,"20 12 4 12 4 12");
1279 /// gStyle->SetLineStyleString(9,"80 20");
1280 /// ~~~
1281 /// \image html base_linestyle.png
1282 /// Note:
1283 /// - Up to 30 different styles may be defined.
1284 /// - The opening and closing brackets may be omitted
1285 /// - It is recommended to use 4 as the smallest segment length and multiple of
1286 /// 4 for other lengths.
1287 /// - The line style 1 to 10 are predefined. 1 to 4 cannot be changed.
1288 
1290 {
1291 
1292  char *l;
1293  Int_t nch = strlen(text);
1294  char *st = new char[nch+10];
1295  snprintf(st,nch+10," ");
1296  strlcat(st,text,nch+10);
1297  l = strstr(st,"["); if (l) l[0] = ' ';
1298  l = strstr(st,"]"); if (l) l[0] = ' ';
1299  if (i >= 1 && i <= 29) fLineStyle[i] = st;
1300  delete [] st;
1301 }
1302 
1303 ////////////////////////////////////////////////////////////////////////////////
1304 /// Set the default number of contour levels when drawing 2-d plots.
1305 
1307 {
1308  if (number > 0 && number < 1000) {
1309  fNumberContours = number;
1310  return;
1311  }
1312 
1313  Error("SetNumberContours","Illegal number of contours: %d, must be > 0 and < 1000",number);
1314 }
1315 
1316 ////////////////////////////////////////////////////////////////////////////////
1317 /// If optdate is non null, the current date/time will be printed in the canvas.
1318 /// The position of the date string can be controlled by:
1319 /// optdate = 10*format + mode
1320 /// - mode = 1 (default) date is printed in the bottom/left corner.
1321 /// - mode = 2 date is printed in the bottom/right corner.
1322 /// - mode = 3 date is printed in the top/right corner.
1323 /// - format = 0 (default) date has the format like: "Wed Sep 25 17:10:35 2002"
1324 /// - format = 1 date has the format like: "2002-09-25"
1325 /// - format = 2 date has the format like: "2002-09-25 17:10:35"
1326 ///
1327 /// examples:
1328 /// - optdate = 1 date like "Wed Sep 25 17:10:35 2002" in the bottom/left corner.
1329 /// - optdate = 13 date like "2002-09-25" in the top/right corner.
1330 ///
1331 /// The date position can also be controlled by:
1332 /// gStyle->SetDateX(x); x in NDC
1333 /// gStyle->SetDateY(y); y in NDC
1334 ///
1335 /// The date text attributes can be changed with:
1336 /// ~~~ {.cpp}
1337 /// gStyle->GetAttDate()->SetTextFont(font=62);
1338 /// gStyle->GetAttDate()->SetTextSize(size=0.025);
1339 /// gStyle->GetAttDate()->SetTextAngle(angle=0);
1340 /// gStyle->GetAttDate()->SetTextAlign(align=11);
1341 /// gStyle->GetAttDate()->SetTextColor(color=1);
1342 /// ~~~
1343 /// The current date attributes can be obtained via:
1344 /// ~~~ {.cpp}
1345 /// gStyle->GetAttDate()->GetTextxxxx();
1346 /// ~~~
1347 /// When the date option is active, a text object is created when the pad
1348 /// paint its list of primitives. The text object is named "DATE".
1349 /// The DATE attributes can also be edited interactively (position
1350 /// and attributes) via the normal context menu.
1351 
1353 {
1354  fOptDate = optdate;
1355  Int_t mode = optdate%10;
1356  if (mode == 1) {
1357  SetDateX(0.01);
1358  SetDateY(0.01);
1359  fAttDate.SetTextAlign(11);
1360  }
1361  if (mode == 2) {
1362  SetDateX(0.99);
1363  SetDateY(0.01);
1364  fAttDate.SetTextAlign(31);
1365  }
1366  if (mode == 3) {
1367  SetDateX(0.99);
1368  SetDateY(0.99);
1369  fAttDate.SetTextAlign(33);
1370  }
1371 }
1372 
1373 ////////////////////////////////////////////////////////////////////////////////
1374 /// The type of information about fit parameters printed in the histogram
1375 /// statistics box can be selected via the parameter `mode`.
1376 /// The parameter mode can be = `pcev`:
1377 /// - p = 1; print Probability
1378 /// - c = 1; print Chisquare/Number of degrees of freedom
1379 /// - e = 1; print errors (if e=1, v must be 1)
1380 /// - v = 1; print name/values of parameters
1381 /// Example: `gStyle->SetOptFit(1011);`
1382 /// print fit probability, parameter names/values and errors.
1383 /// - When "v"=1 is specified, only the non-fixed parameters are shown.
1384 /// - When "v"=2 all parameters are shown.
1385 ///
1386 /// #### Notes:
1387 /// - `gStyle->SetOptFit(1)` is a shortcut allowing to set the most common
1388 /// case and is equivalent to `gStyle->SetOptFit(111)`
1389 /// - At ROOT startup the option fit is set to `0`. So, to see the fit parameters
1390 /// on all plot resulting from a fit, a call to `gStyle->SetOptFit()` with a
1391 /// non null value should be done. One can put it in the `rootlogon.C` file to
1392 /// always have it.
1393 ///
1394 /// see also SetOptStat below.
1395 
1397 {
1398  fOptFit = mode;
1399  if (gPad) {
1400  TObject *obj;
1401  TIter next(gPad->GetListOfPrimitives());
1402  while ((obj = next())) {
1403  TObject *stats = obj->FindObject("stats");
1404  if (stats) stats->SetBit(kTakeStyle);
1405  }
1406  gPad->Modified(); gPad->Update();
1407  }
1408 }
1409 
1410 ////////////////////////////////////////////////////////////////////////////////
1411 /// The type of information printed in the histogram statistics box
1412 /// can be selected via the parameter mode.
1413 /// The parameter mode can be = `ksiourmen`
1414 /// - k = 1; kurtosis printed
1415 /// - k = 2; kurtosis and kurtosis error printed
1416 /// - s = 1; skewness printed
1417 /// - s = 2; skewness and skewness error printed
1418 /// - i = 1; integral of bins printed
1419 /// - i = 2; integral of bins with option "width" printed
1420 /// - o = 1; number of overflows printed
1421 /// - u = 1; number of underflows printed
1422 /// - r = 1; rms printed
1423 /// - r = 2; rms and rms error printed
1424 /// - m = 1; mean value printed
1425 /// - m = 2; mean and mean error values printed
1426 /// - e = 1; number of entries printed
1427 /// - n = 1; name of histogram is printed
1428 ///
1429 /// Example: `gStyle->SetOptStat(11);`
1430 /// print only name of histogram and number of entries.
1431 /// `gStyle->SetOptStat(1101);` displays the name of histogram, mean value and RMS.
1432 ///
1433 /// #### Notes:
1434 ///
1435 /// - never call `SetOptStat(000111);` but `SetOptStat(1111)`, 0001111 will
1436 /// be taken as an octal number !!
1437 /// - `SetOptStat(1)` is s shortcut allowing to set the most common case, and is
1438 /// taken as `SetOptStat(1111)` (for backward compatibility with older versions.
1439 /// If you want to print only the name of the histogram call `SetOptStat(1000000001)`.
1440 /// - that in case of 2-D histograms, when selecting just underflow (10000)
1441 /// or overflow (100000), the stats box will show all combinations
1442 /// of underflow/overflows and not just one single number!
1443 
1445 {
1446  fOptStat = mode;
1447  if (gPad) {
1448  TObject *obj;
1449  TIter next(gPad->GetListOfPrimitives());
1450  while ((obj = next())) {
1451  TObject *stats = obj->FindObject("stats");
1452  if (stats) stats->SetBit(kTakeStyle);
1453  }
1454  gPad->Modified(); gPad->Update();
1455  }
1456 }
1457 
1458 ////////////////////////////////////////////////////////////////////////////////
1459 /// The parameter mode can be any combination of kKsSiourRmMen
1460 /// - k : kurtosis printed
1461 /// - K : kurtosis and kurtosis error printed
1462 /// - s : skewness printed
1463 /// - S : skewness and skewness error printed
1464 /// - i : integral of bins printed
1465 /// - I : integral of bins with option "width" printed
1466 /// - o : number of overflows printed
1467 /// - u : number of underflows printed
1468 /// - r : rms printed
1469 /// - R : rms and rms error printed
1470 /// - m : mean value printed
1471 /// - M : mean value mean error values printed
1472 /// - e : number of entries printed
1473 /// - n : name of histogram is printed
1474 ///
1475 /// Example: `gStyle->SetOptStat("ne");`
1476 /// print only name of histogram and number of entries.
1477 ///
1478 /// - `gStyle->SetOptStat("n")` print only the name of the histogram
1479 /// - `gStyle->SetOptStat("nemr")` is the default
1480 
1482 {
1483  Int_t mode=0;
1484 
1485  TString opt = stat;
1486 
1487  if (opt.Contains("n")) mode+=1;
1488  if (opt.Contains("e")) mode+=10;
1489  if (opt.Contains("m")) mode+=100;
1490  if (opt.Contains("M")) mode+=200;
1491  if (opt.Contains("r")) mode+=1000;
1492  if (opt.Contains("R")) mode+=2000;
1493  if (opt.Contains("u")) mode+=10000;
1494  if (opt.Contains("o")) mode+=100000;
1495  if (opt.Contains("i")) mode+=1000000;
1496  if (opt.Contains("I")) mode+=2000000;
1497  if (opt.Contains("s")) mode+=10000000;
1498  if (opt.Contains("S")) mode+=20000000;
1499  if (opt.Contains("k")) mode+=100000000;
1500  if (opt.Contains("K")) mode+=200000000;
1501  if (mode == 1) mode = 1000000001;
1502 
1503  SetOptStat(mode);
1504 }
1505 
1506 ////////////////////////////////////////////////////////////////////////////////
1507 /// Set paper size for PostScript output.
1508 
1510 {
1511  switch (size) {
1512  case kA4:
1513  SetPaperSize(20, 26);
1514  break;
1515  case kUSLetter:
1516  SetPaperSize(20, 24);
1517  break;
1518  default:
1519  Error("SetPaperSize", "illegal paper size %d\n", (int)size);
1520  break;
1521  }
1522 }
1523 
1524 ////////////////////////////////////////////////////////////////////////////////
1525 /// Set paper size for PostScript output.
1526 /// The paper size is specified in centimeters. Default is 20x26.
1527 /// See also TPad::Print
1528 
1530 {
1531  fPaperSizeX = xsize;
1532  fPaperSizeY = ysize;
1533 }
1534 
1535 ////////////////////////////////////////////////////////////////////////////////
1536 /// Set the tick marks length for an axis.
1537 /// axis specifies which axis ("x","y","z"), default = "x"
1538 /// if axis="xyz" set all 3 axes
1539 
1541 {
1542  TString opt = axis;
1543  opt.ToLower();
1544 
1545  if (opt.Contains("x")) fXaxis.SetTickLength(length);
1546  if (opt.Contains("y")) fYaxis.SetTickLength(length);
1547  if (opt.Contains("z")) fZaxis.SetTickLength(length);
1548 }
1549 
1550 ////////////////////////////////////////////////////////////////////////////////
1551 /// - if axis =="x" set the X axis title color
1552 /// - if axis =="y" set the Y axis title color
1553 /// - if axis =="z" set the Z axis title color
1554 ///
1555 /// any other value of axis will set the pad title color
1556 ///
1557 /// if axis="xyz" set all 3 axes
1558 
1560 {
1561  TString opt = axis;
1562  opt.ToLower();
1563 
1564  Bool_t set = kFALSE;
1565  if (opt.Contains("x")) {fXaxis.SetTitleColor(color); set = kTRUE;}
1566  if (opt.Contains("y")) {fYaxis.SetTitleColor(color); set = kTRUE;}
1567  if (opt.Contains("z")) {fZaxis.SetTitleColor(color); set = kTRUE;}
1568  if (!set) fTitleColor = color;
1569 }
1570 
1571 ////////////////////////////////////////////////////////////////////////////////
1572 /// - if axis =="x" set the X axis title font
1573 /// - if axis =="y" set the Y axis title font
1574 /// - if axis =="z" set the Z axis title font
1575 ///
1576 /// any other value of axis will set the pad title font
1577 ///
1578 /// if axis="xyz" set all 3 axes
1579 
1581 {
1582  TString opt = axis;
1583  opt.ToLower();
1584 
1585  Bool_t set = kFALSE;
1586  if (opt.Contains("x")) {fXaxis.SetTitleFont(font); set = kTRUE;}
1587  if (opt.Contains("y")) {fYaxis.SetTitleFont(font); set = kTRUE;}
1588  if (opt.Contains("z")) {fZaxis.SetTitleFont(font); set = kTRUE;}
1589  if (!set) fTitleFont = font;
1590 }
1591 
1592 ////////////////////////////////////////////////////////////////////////////////
1593 /// Specify a parameter offset to control the distance between the axis
1594 /// and the axis title.
1595 ///
1596 /// - offset = 1 means : use the default distance
1597 /// - offset = 1.2 means: the distance will be 1.2*(default distance)
1598 /// - offset = 0.8 means: the distance will be 0.8*(default distance)
1599 ///
1600 /// axis specifies which axis ("x","y","z"), default = "x"
1601 /// if axis="xyz" set all 3 axes
1602 
1604 {
1605  TString opt = axis;
1606  opt.ToLower();
1607 
1608  if (opt.Contains("x")) fXaxis.SetTitleOffset(offset);
1609  if (opt.Contains("y")) fYaxis.SetTitleOffset(offset);
1610  if (opt.Contains("z")) fZaxis.SetTitleOffset(offset);
1611 }
1612 
1613 ////////////////////////////////////////////////////////////////////////////////
1614 /// - if axis =="x" set the X axis title size
1615 /// - if axis =="y" set the Y axis title size
1616 /// - if axis =="z" set the Z axis title size
1617 ///
1618 /// any other value of axis will set the pad title size
1619 ///
1620 /// if axis="xyz" set all 3 axes
1621 
1623 {
1624  TString opt = axis;
1625  opt.ToLower();
1626 
1627  Bool_t set = kFALSE;
1628  if (opt.Contains("x")) {fXaxis.SetTitleSize(size); set = kTRUE;}
1629  if (opt.Contains("y")) {fYaxis.SetTitleSize(size); set = kTRUE;}
1630  if (opt.Contains("z")) {fZaxis.SetTitleSize(size); set = kTRUE;}
1631  if (!set) fTitleFontSize = size;
1632 }
1633 
1634 ////////////////////////////////////////////////////////////////////////////////
1635 /// See TColor::SetPalette.
1636 
1638 {
1639  TColor::SetPalette(ncolors,colors,alpha);
1640 }
1641 
1642 ////////////////////////////////////////////////////////////////////////////////
1643 /// Change the time offset for time plotting.
1644 /// Times are expressed in seconds. The corresponding numbers usually have 9
1645 /// digits (or more if one takes into account fractions of seconds).
1646 /// Thus, since it is very inconvenient to plot very large numbers on a scale,
1647 /// one has to set an offset time that will be added to the axis beginning,
1648 /// in order to plot times correctly and conveniently. A convenient way to
1649 /// set the time offset is to use TDatime::Convert().
1650 ///
1651 /// By default the time offset is set to 788918400 which corresponds to
1652 /// 01/01/1995. This allows to have valid dates until 2072. The standard
1653 /// UNIX time offset in 1970 allows only valid dates until 2030.
1654 
1656 {
1657  fTimeOffset = toffset;
1658 }
1659 
1660 ////////////////////////////////////////////////////////////////////////////////
1661 /// Set option to strip decimals when drawing axis labels.
1662 /// By default, TGaxis::PaintAxis removes trailing 0s after a dot
1663 /// in the axis labels. Ex: {0,0.5,1,1.5,2,2.5, etc}
1664 /// If this function is called with strip=kFALSE, TGAxis::PaintAxis will
1665 /// draw labels with the same number of digits after the dot
1666 /// Ex: (0.0,0.5,1.0,1.5,2.0,2.5,etc}
1667 
1669 {
1670  fStripDecimals = strip;
1671 }
1672 
1673 ////////////////////////////////////////////////////////////////////////////////
1674 /// Save the current style in a C++ macro file.
1675 
1676 void TStyle::SaveSource(const char *filename, Option_t *option)
1677 {
1678  // Opens a file named filename or "Rootstyl.C"
1679  TString ff = strlen(filename) ? filename : "Rootstyl.C";
1680 
1681  // Computes the main method name.
1682  const char *fname = gSystem->BaseName(ff);
1683  Int_t lenfname = strlen(fname);
1684  char *sname = new char[lenfname + 1];
1685  Int_t i = 0;
1686  while ((i < lenfname) && (fname[i] != '.')) {
1687  sname[i] = fname[i];
1688  i++;
1689  }
1690  if (i == lenfname) ff += ".C";
1691  sname[i] = 0;
1692 
1693  // Tries to open the file.
1694  std::ofstream out;
1695  out.open(ff.Data(), std::ios::out);
1696  if (!out.good()) {
1697  delete [] sname;
1698  Error("SaveSource", "cannot open file: %s", ff.Data());
1699  return;
1700  }
1701 
1702  // Writes macro header, date/time stamp as string, and the used Root version
1703  TDatime t;
1704  out <<"// Mainframe macro generated from application: " << gApplication->Argv(0) << std::endl;
1705  out <<"// By ROOT version " << gROOT->GetVersion() << " on " << t.AsSQLString() << std::endl;
1706  out << std::endl;
1707 
1708  char quote = '"';
1709 
1710  // Writes include.
1711  out << "#if !defined( __CINT__) || defined (__MAKECINT__)" << std::endl << std::endl;
1712  out << "#ifndef ROOT_TStyle" << std::endl;
1713  out << "#include " << quote << "TStyle.h" << quote << std::endl;
1714  out << "#endif" << std::endl;
1715  out << std::endl << "#endif" << std::endl;
1716 
1717  // Writes the macro entry point equal to the fname
1718  out << std::endl;
1719  out << "void " << sname << "()" << std::endl;
1720  out << "{" << std::endl;
1721  delete [] sname;
1722 
1723  TStyle::SavePrimitive(out, option);
1724 
1725  out << "}" << std::endl;
1726  out.close();
1727 
1728  printf(" C++ macro file %s has been generated\n", gSystem->BaseName(ff));
1729 }
1730 
1731 ////////////////////////////////////////////////////////////////////////////////
1732 /// Save a main frame widget as a C++ statement(s) on output stream out.
1733 
1734 void TStyle::SavePrimitive(std::ostream &out, Option_t * /*= ""*/)
1735 {
1736  char quote = '"';
1737 
1738  out << " // Add the saved style to the current ROOT session." << std::endl;
1739  out << std::endl;
1740  out<<" "<<"delete gROOT->GetStyle("<<quote<<GetName()<<quote<<");"<< std::endl;
1741  out << std::endl;
1742  out<<" "<<"TStyle *tmpStyle = new TStyle("
1743  << quote << GetName() << quote << ", "
1744  << quote << GetTitle() << quote << ");" << std::endl;
1745 
1746  // fXAxis, fYAxis and fZAxis
1747  out<<" "<<"tmpStyle->SetNdivisions(" <<GetNdivisions("x") <<", \"x\");"<<std::endl;
1748  out<<" "<<"tmpStyle->SetNdivisions(" <<GetNdivisions("y") <<", \"y\");"<<std::endl;
1749  out<<" "<<"tmpStyle->SetNdivisions(" <<GetNdivisions("z") <<", \"z\");"<<std::endl;
1750  out<<" "<<"tmpStyle->SetAxisColor(" <<GetAxisColor("x") <<", \"x\");"<<std::endl;
1751  out<<" "<<"tmpStyle->SetAxisColor(" <<GetAxisColor("y") <<", \"y\");"<<std::endl;
1752  out<<" "<<"tmpStyle->SetAxisColor(" <<GetAxisColor("z") <<", \"z\");"<<std::endl;
1753  out<<" "<<"tmpStyle->SetLabelColor(" <<GetLabelColor("x") <<", \"x\");"<<std::endl;
1754  out<<" "<<"tmpStyle->SetLabelColor(" <<GetLabelColor("y") <<", \"y\");"<<std::endl;
1755  out<<" "<<"tmpStyle->SetLabelColor(" <<GetLabelColor("z") <<", \"z\");"<<std::endl;
1756  out<<" "<<"tmpStyle->SetLabelFont(" <<GetLabelFont("x") <<", \"x\");"<<std::endl;
1757  out<<" "<<"tmpStyle->SetLabelFont(" <<GetLabelFont("y") <<", \"y\");"<<std::endl;
1758  out<<" "<<"tmpStyle->SetLabelFont(" <<GetLabelFont("z") <<", \"z\");"<<std::endl;
1759  out<<" "<<"tmpStyle->SetLabelOffset("<<GetLabelOffset("x")<<", \"x\");"<<std::endl;
1760  out<<" "<<"tmpStyle->SetLabelOffset("<<GetLabelOffset("y")<<", \"y\");"<<std::endl;
1761  out<<" "<<"tmpStyle->SetLabelOffset("<<GetLabelOffset("z")<<", \"z\");"<<std::endl;
1762  out<<" "<<"tmpStyle->SetLabelSize(" <<GetLabelSize("x") <<", \"x\");"<<std::endl;
1763  out<<" "<<"tmpStyle->SetLabelSize(" <<GetLabelSize("y") <<", \"y\");"<<std::endl;
1764  out<<" "<<"tmpStyle->SetLabelSize(" <<GetLabelSize("z") <<", \"z\");"<<std::endl;
1765  out<<" "<<"tmpStyle->SetTickLength(" <<GetTickLength("x") <<", \"x\");"<<std::endl;
1766  out<<" "<<"tmpStyle->SetTickLength(" <<GetTickLength("y") <<", \"y\");"<<std::endl;
1767  out<<" "<<"tmpStyle->SetTickLength(" <<GetTickLength("z") <<", \"z\");"<<std::endl;
1768  out<<" "<<"tmpStyle->SetTitleOffset("<<GetTitleOffset("x")<<", \"x\");"<<std::endl;
1769  out<<" "<<"tmpStyle->SetTitleOffset("<<GetTitleOffset("y")<<", \"y\");"<<std::endl;
1770  out<<" "<<"tmpStyle->SetTitleOffset("<<GetTitleOffset("z")<<", \"z\");"<<std::endl;
1771  out<<" "<<"tmpStyle->SetTitleSize(" <<GetTitleSize("x") <<", \"x\");"<<std::endl;
1772  out<<" "<<"tmpStyle->SetTitleSize(" <<GetTitleSize("y") <<", \"y\");"<<std::endl;
1773  out<<" "<<"tmpStyle->SetTitleSize(" <<GetTitleSize("z") <<", \"z\");"<<std::endl;
1774  out<<" "<<"tmpStyle->SetTitleColor(" <<GetTitleColor("x") <<", \"x\");"<<std::endl;
1775  out<<" "<<"tmpStyle->SetTitleColor(" <<GetTitleColor("y") <<", \"y\");"<<std::endl;
1776  out<<" "<<"tmpStyle->SetTitleColor(" <<GetTitleColor("z") <<", \"z\");"<<std::endl;
1777  out<<" "<<"tmpStyle->SetTitleFont(" <<GetTitleFont("x") <<", \"x\");"<<std::endl;
1778  out<<" "<<"tmpStyle->SetTitleFont(" <<GetTitleFont("y") <<", \"y\");"<<std::endl;
1779  out<<" "<<"tmpStyle->SetTitleFont(" <<GetTitleFont("z") <<", \"z\");"<<std::endl;
1780 
1781  out<<" "<<"tmpStyle->SetBarWidth(" <<GetBarWidth() <<");"<<std::endl;
1782  out<<" "<<"tmpStyle->SetBarOffset(" <<GetBarOffset() <<");"<<std::endl;
1783  out<<" "<<"tmpStyle->SetDrawBorder(" <<GetDrawBorder() <<");"<<std::endl;
1784  out<<" "<<"tmpStyle->SetOptLogx(" <<GetOptLogx() <<");"<<std::endl;
1785  out<<" "<<"tmpStyle->SetOptLogy(" <<GetOptLogy() <<");"<<std::endl;
1786  out<<" "<<"tmpStyle->SetOptLogz(" <<GetOptLogz() <<");"<<std::endl;
1787  out<<" "<<"tmpStyle->SetOptDate(" <<GetOptDate() <<");"<<std::endl;
1788  out<<" "<<"tmpStyle->SetOptStat(" <<GetOptStat() <<");"<<std::endl;
1789 
1790  if (GetOptTitle()) out << " tmpStyle->SetOptTitle(kTRUE);" << std::endl;
1791  else out << " tmpStyle->SetOptTitle(kFALSE);" << std::endl;
1792  out<<" "<<"tmpStyle->SetOptFit(" <<GetOptFit() <<");"<<std::endl;
1793  out<<" "<<"tmpStyle->SetNumberContours(" <<GetNumberContours() <<");"<<std::endl;
1794 
1795  // fAttDate
1796  out<<" "<<"tmpStyle->GetAttDate()->SetTextFont(" <<GetAttDate()->GetTextFont() <<");"<<std::endl;
1797  out<<" "<<"tmpStyle->GetAttDate()->SetTextSize(" <<GetAttDate()->GetTextSize() <<");"<<std::endl;
1798  out<<" "<<"tmpStyle->GetAttDate()->SetTextAngle("<<GetAttDate()->GetTextAngle()<<");"<<std::endl;
1799  out<<" "<<"tmpStyle->GetAttDate()->SetTextAlign("<<GetAttDate()->GetTextAlign()<<");"<<std::endl;
1800  out<<" "<<"tmpStyle->GetAttDate()->SetTextColor("<<GetAttDate()->GetTextColor()<<");"<<std::endl;
1801 
1802  out<<" "<<"tmpStyle->SetDateX(" <<GetDateX() <<");"<<std::endl;
1803  out<<" "<<"tmpStyle->SetDateY(" <<GetDateY() <<");"<<std::endl;
1804  out<<" "<<"tmpStyle->SetEndErrorSize(" <<GetEndErrorSize() <<");"<<std::endl;
1805  out<<" "<<"tmpStyle->SetErrorX(" <<GetErrorX() <<");"<<std::endl;
1806  out<<" "<<"tmpStyle->SetFuncColor(" <<GetFuncColor() <<");"<<std::endl;
1807  out<<" "<<"tmpStyle->SetFuncStyle(" <<GetFuncStyle() <<");"<<std::endl;
1808  out<<" "<<"tmpStyle->SetFuncWidth(" <<GetFuncWidth() <<");"<<std::endl;
1809  out<<" "<<"tmpStyle->SetGridColor(" <<GetGridColor() <<");"<<std::endl;
1810  out<<" "<<"tmpStyle->SetGridStyle(" <<GetGridStyle() <<");"<<std::endl;
1811  out<<" "<<"tmpStyle->SetGridWidth(" <<GetGridWidth() <<");"<<std::endl;
1812  out<<" "<<"tmpStyle->SetLegendBorderSize("<<GetLegendBorderSize()<<");"<<std::endl;
1813  out<<" "<<"tmpStyle->SetLegendFillColor(" <<GetLegendFillColor() <<");"<<std::endl;
1814  out<<" "<<"tmpStyle->SetLegendFont(" <<GetLegendFont() <<");"<<std::endl;
1815  out<<" "<<"tmpStyle->SetLegendTextSize(" <<GetLegendTextSize() <<");"<<std::endl;
1816  out<<" "<<"tmpStyle->SetHatchesLineWidth("<<GetHatchesLineWidth()<<");"<<std::endl;
1817  out<<" "<<"tmpStyle->SetHatchesSpacing(" <<GetHatchesSpacing() <<");"<<std::endl;
1818  out<<" "<<"tmpStyle->SetFrameFillColor(" <<GetFrameFillColor() <<");"<<std::endl;
1819  out<<" "<<"tmpStyle->SetFrameLineColor(" <<GetFrameLineColor() <<");"<<std::endl;
1820  out<<" "<<"tmpStyle->SetFrameFillStyle(" <<GetFrameFillStyle() <<");"<<std::endl;
1821  out<<" "<<"tmpStyle->SetFrameLineStyle(" <<GetFrameLineStyle() <<");"<<std::endl;
1822  out<<" "<<"tmpStyle->SetFrameLineWidth(" <<GetFrameLineWidth() <<");"<<std::endl;
1823  out<<" "<<"tmpStyle->SetFrameBorderSize(" <<GetFrameBorderSize() <<");"<<std::endl;
1824  out<<" "<<"tmpStyle->SetFrameBorderMode(" <<GetFrameBorderMode() <<");"<<std::endl;
1825  out<<" "<<"tmpStyle->SetHistFillColor(" <<GetHistFillColor() <<");"<<std::endl;
1826  out<<" "<<"tmpStyle->SetHistLineColor(" <<GetHistLineColor() <<");"<<std::endl;
1827  out<<" "<<"tmpStyle->SetHistFillStyle(" <<GetHistFillStyle() <<");"<<std::endl;
1828  out<<" "<<"tmpStyle->SetHistLineStyle(" <<GetHistLineStyle() <<");"<<std::endl;
1829  out<<" "<<"tmpStyle->SetHistLineWidth(" <<GetHistLineWidth() <<");"<<std::endl;
1830  if (GetHistMinimumZero()) out<<" tmpStyle->SetHistMinimumZero(kTRUE);" <<std::endl;
1831  else out<<" tmpStyle->SetHistMinimumZero(kFALSE);"<<std::endl;
1832  if (GetCanvasPreferGL()) out<<" tmpStyle->SetCanvasPreferGL(kTRUE);" <<std::endl;
1833  else out<<" tmpStyle->SetCanvasPreferGL(kFALSE);"<<std::endl;
1834  out<<" "<<"tmpStyle->SetCanvasColor(" <<GetCanvasColor() <<");"<<std::endl;
1835  out<<" "<<"tmpStyle->SetCanvasBorderSize("<<GetCanvasBorderSize()<<");"<<std::endl;
1836  out<<" "<<"tmpStyle->SetCanvasBorderMode("<<GetCanvasBorderMode()<<");"<<std::endl;
1837  out<<" "<<"tmpStyle->SetCanvasDefH(" <<GetCanvasDefH() <<");"<<std::endl;
1838  out<<" "<<"tmpStyle->SetCanvasDefW(" <<GetCanvasDefW() <<");"<<std::endl;
1839  out<<" "<<"tmpStyle->SetCanvasDefX(" <<GetCanvasDefX() <<");"<<std::endl;
1840  out<<" "<<"tmpStyle->SetCanvasDefY(" <<GetCanvasDefY() <<");"<<std::endl;
1841  out<<" "<<"tmpStyle->SetPadColor(" <<GetPadColor() <<");"<<std::endl;
1842  out<<" "<<"tmpStyle->SetPadBorderSize(" <<GetPadBorderSize() <<");"<<std::endl;
1843  out<<" "<<"tmpStyle->SetPadBorderMode(" <<GetPadBorderMode() <<");"<<std::endl;
1844  out<<" "<<"tmpStyle->SetPadBottomMargin(" <<GetPadBottomMargin() <<");"<<std::endl;
1845  out<<" "<<"tmpStyle->SetPadTopMargin(" <<GetPadTopMargin() <<");"<<std::endl;
1846  out<<" "<<"tmpStyle->SetPadLeftMargin(" <<GetPadLeftMargin() <<");"<<std::endl;
1847  out<<" "<<"tmpStyle->SetPadRightMargin(" <<GetPadRightMargin() <<");"<<std::endl;
1848  if (GetPadGridX()) out<<" tmpStyle->SetPadGridX(kTRUE);" <<std::endl;
1849  else out<<" tmpStyle->SetPadGridX(kFALSE);"<<std::endl;
1850  if (GetPadGridY()) out<<" tmpStyle->SetPadGridY(kTRUE);" <<std::endl;
1851  else out<<" tmpStyle->SetPadGridY(kFALSE);"<<std::endl;
1852  out<<" "<<"tmpStyle->SetPadTickX(" <<GetPadTickX() <<");"<<std::endl;
1853  out<<" "<<"tmpStyle->SetPadTickY(" <<GetPadTickY() <<");"<<std::endl;
1854 
1855  // fPaperSizeX, fPaperSizeY
1856  out<<" "<<"tmpStyle->SetPaperSize(" <<fPaperSizeX <<", "
1857  <<fPaperSizeY <<");"<<std::endl;
1858 
1859  out<<" "<<"tmpStyle->SetScreenFactor(" <<GetScreenFactor() <<");"<<std::endl;
1860  out<<" "<<"tmpStyle->SetStatColor(" <<GetStatColor() <<");"<<std::endl;
1861  out<<" "<<"tmpStyle->SetStatTextColor(" <<GetStatTextColor() <<");"<<std::endl;
1862  out<<" "<<"tmpStyle->SetStatBorderSize(" <<GetStatBorderSize() <<");"<<std::endl;
1863  out<<" "<<"tmpStyle->SetStatFont(" <<GetStatFont() <<");"<<std::endl;
1864  out<<" "<<"tmpStyle->SetStatFontSize(" <<GetStatFontSize() <<");"<<std::endl;
1865  out<<" "<<"tmpStyle->SetStatStyle(" <<GetStatStyle() <<");"<<std::endl;
1866  out<<" "<<"tmpStyle->SetStatFormat(" <<quote << GetStatFormat()
1867  <<quote <<");"<<std::endl;
1868  out<<" "<<"tmpStyle->SetStatX(" <<GetStatX() <<");"<<std::endl;
1869  out<<" "<<"tmpStyle->SetStatY(" <<GetStatY() <<");"<<std::endl;
1870  out<<" "<<"tmpStyle->SetStatW(" <<GetStatW() <<");"<<std::endl;
1871  out<<" "<<"tmpStyle->SetStatH(" <<GetStatH() <<");"<<std::endl;
1872  if (GetStripDecimals()) out<<" tmpStyle->SetStripDecimals(kTRUE);" <<std::endl;
1873  else out<<" tmpStyle->SetStripDecimals(kFALSE);"<<std::endl;
1874  out<<" "<<"tmpStyle->SetTitleAlign(" <<GetTitleAlign() <<");"<<std::endl;
1875  out<<" "<<"tmpStyle->SetTitleFillColor(" <<GetTitleFillColor() <<");"<<std::endl;
1876  out<<" "<<"tmpStyle->SetTitleTextColor(" <<GetTitleTextColor() <<");"<<std::endl;
1877  out<<" "<<"tmpStyle->SetTitleBorderSize("<<GetTitleBorderSize()<<");"<<std::endl;
1878  out<<" "<<"tmpStyle->SetTitleFont(" <<GetTitleFont() <<");"<<std::endl;
1879  out<<" "<<"tmpStyle->SetTitleFontSize(" <<GetTitleFontSize() <<");"<<std::endl;
1880  out<<" "<<"tmpStyle->SetTitleStyle(" <<GetTitleStyle() <<");"<<std::endl;
1881  out<<" "<<"tmpStyle->SetTitleX(" <<GetTitleX() <<");"<<std::endl;
1882  out<<" "<<"tmpStyle->SetTitleY(" <<GetTitleY() <<");"<<std::endl;
1883  out<<" "<<"tmpStyle->SetTitleW(" <<GetTitleW() <<");"<<std::endl;
1884  out<<" "<<"tmpStyle->SetTitleH(" <<GetTitleH() <<");"<<std::endl;
1885  out<<" "<<"tmpStyle->SetLegoInnerR(" <<GetLegoInnerR() <<");"<<std::endl;
1886  out<<std::endl;
1887 
1888  // fPalette
1889  out<<" "<<"Int_t fPaletteColor[" <<GetNumberOfColors() <<"] = {";
1890  for (Int_t ci=0; ci<GetNumberOfColors()-1; ++ci) {
1891  if (ci % 10 == 9)
1892  out<<std::endl<<" ";
1893  out<<GetColorPalette(ci)<<", ";
1894  }
1895  out<<GetColorPalette(GetNumberOfColors() - 1) <<"};"<<std::endl;
1896  out<<" "<<"tmpStyle->SetPalette(" << GetNumberOfColors()
1897  << ", fPaletteColor);" << std::endl;
1898  out<<std::endl;
1899 
1900  // fLineStyle
1901  out<<" "<<"TString fLineStyleArrayTmp[30] = {";
1902  for (Int_t li=0; li<29; ++li) {
1903  if (li % 5 == 4)
1904  out<<std::endl<<" ";
1905  out<<quote << fLineStyle[li].Data() << quote << ", ";
1906  }
1907  out<<quote<<fLineStyle[29].Data()<<quote<<"};"<<std::endl;
1908  out<<" "<<"for (Int_t i=0; i<30; i++)"<<std::endl;
1909  out<<" "<<" tmpStyle->SetLineStyleString(i, fLineStyleArrayTmp[i]);"<<std::endl;
1910  out<<std::endl;
1911 
1912  out<<" "<<"tmpStyle->SetHeaderPS(" <<quote<<GetHeaderPS()
1913  <<quote <<");"<<std::endl;
1914  out<<" "<<"tmpStyle->SetTitlePS(" <<quote<<GetTitlePS()
1915  <<quote <<");"<<std::endl;
1916  out<<" "<<"tmpStyle->SetFitFormat(" <<quote<<GetFitFormat()
1917  <<quote <<");"<<std::endl;
1918  out<<" "<<"tmpStyle->SetPaintTextFormat("<<quote<<GetPaintTextFormat()
1919  <<quote <<");"<<std::endl;
1920  out<<" "<<"tmpStyle->SetLineScalePS(" <<GetLineScalePS() <<");"<<std::endl;
1921  out<<" "<<"tmpStyle->SetJoinLinePS(" <<GetJoinLinePS() <<");"<<std::endl;
1922  out<<" "<<"tmpStyle->SetColorModelPS(" <<GetColorModelPS() <<");"<<std::endl;
1923  out<<" "<<Form("tmpStyle->SetTimeOffset(%9.0f);", GetTimeOffset()) <<std::endl;
1924  out<<std::endl;
1925 
1926  // Inheritance :
1927  // TAttLine :
1928  out <<" " <<"tmpStyle->SetLineColor(" <<GetLineColor() <<");" <<std::endl;
1929  out <<" " <<"tmpStyle->SetLineStyle(" <<GetLineStyle() <<");" <<std::endl;
1930  out <<" " <<"tmpStyle->SetLineWidth(" <<GetLineWidth() <<");" <<std::endl;
1931 
1932  // TAttFill
1933  out <<" " <<"tmpStyle->SetFillColor(" <<GetFillColor() <<");" <<std::endl;
1934  out <<" " <<"tmpStyle->SetFillStyle(" <<GetFillStyle() <<");" <<std::endl;
1935 
1936  // TAttMarker
1937  out <<" " <<"tmpStyle->SetMarkerColor(" <<GetMarkerColor() <<");" <<std::endl;
1938  out <<" " <<"tmpStyle->SetMarkerSize(" <<GetMarkerSize() <<");" <<std::endl;
1939  out <<" " <<"tmpStyle->SetMarkerStyle(" <<GetMarkerStyle() <<");" <<std::endl;
1940 
1941  // TAttText
1942  out <<" " <<"tmpStyle->SetTextAlign(" <<GetTextAlign() <<");" <<std::endl;
1943  out <<" " <<"tmpStyle->SetTextAngle(" <<GetTextAngle() <<");" <<std::endl;
1944  out <<" " <<"tmpStyle->SetTextColor(" <<GetTextColor() <<");" <<std::endl;
1945  out <<" " <<"tmpStyle->SetTextFont(" <<GetTextFont() <<");" <<std::endl;
1946  out <<" " <<"tmpStyle->SetTextSize(" <<GetTextSize() <<");" <<std::endl;
1947 }
Color_t fFuncColor
Function color.
Definition: TStyle.h:55
Int_t GetColorModelPS() const
Definition: TStyle.h:184
Style_t GetFrameLineStyle() const
Definition: TStyle.h:215
Style_t GetLegendFont() const
Definition: TStyle.h:192
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
Definition: TSystem.cxx:932
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title Offset is a correction factor with respect to the "s...
Definition: TAttAxis.cxx:294
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Int_t fOptFit
True if option Fit is selected.
Definition: TStyle.h:44
Width_t fFuncWidth
Function line width.
Definition: TStyle.h:57
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition: TAttLine.h:43
Float_t fLineScalePS
Line scale factor when drawing lines on Postscript.
Definition: TStyle.h:132
virtual Float_t GetTickLength() const
Definition: TAttAxis.h:44
Float_t GetLineScalePS() const
Definition: TStyle.h:275
TString fTitlePS
User defined Postscript file title.
Definition: TStyle.h:129
Color_t GetStatColor() const
Definition: TStyle.h:244
Float_t fPadRightMargin
Pad right margin.
Definition: TStyle.h:95
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
Definition: TStyle.cxx:1021
Color_t fLegendFillColor
Legend fill color.
Definition: TStyle.h:62
Color_t GetLabelColor(Option_t *axis="X") const
Return the label color number in the axis.
Definition: TStyle.cxx:921
Float_t fTitleH
Height of title box.
Definition: TStyle.h:125
void SetEndErrorSize(Float_t np=2)
Set the size (in pixels) of the small lines drawn at the end of the error bars (TH1 or TGraphErrors)...
Definition: TStyle.cxx:1146
TString fFitFormat
Printing format for fit parameters.
Definition: TStyle.h:130
TString fLineStyle[30]
String describing line style i (for postScript)
Definition: TStyle.h:127
void SetPadLeftMargin(Float_t margin=0.1)
Definition: TStyle.h:337
Float_t GetPadLeftMargin() const
Definition: TStyle.h:200
Int_t fOptStat
True if option Stat is selected.
Definition: TStyle.h:41
Bool_t fHistMinimumZero
True if default minimum is 0, false if minimum is automatic.
Definition: TStyle.h:79
Float_t GetLabelSize(Option_t *axis="X") const
Return label size.
Definition: TStyle.cxx:957
Float_t fTitleW
Width of title box.
Definition: TStyle.h:124
short Style_t
Definition: RtypesCore.h:76
void SetStatColor(Color_t color=19)
Definition: TStyle.h:367
void SetFrameBorderMode(Int_t mode=1)
Definition: TStyle.h:355
Color_t GetTitleTextColor() const
Definition: TStyle.h:259
Int_t GetNumberContours() const
Definition: TStyle.h:228
virtual void ResetAttText(Option_t *toption="")
Reset this text attributes to default values.
Definition: TAttText.cxx:332
virtual Color_t GetTextColor() const
Return the text color.
Definition: TAttText.h:34
float Float_t
Definition: RtypesCore.h:53
Style_t GetGridStyle() const
Definition: TStyle.h:210
Style_t fFrameLineStyle
Pad frame line style.
Definition: TStyle.h:70
virtual Float_t GetLabelOffset() const
Definition: TAttAxis.h:40
void SetLabelFont(Style_t font=62, Option_t *axis="X")
Set font number used to draw axis labels.
Definition: TStyle.cxx:1219
virtual Short_t GetTextAlign() const
Return the text alignment.
Definition: TAttText.h:32
const char Option_t
Definition: RtypesCore.h:62
Int_t fFrameBorderMode
Pad frame border mode.
Definition: TStyle.h:73
Color_t GetAxisColor(Option_t *axis="X") const
Return the axis color number in the axis.
Definition: TStyle.cxx:901
Width_t fFrameBorderSize
Pad frame border size.
Definition: TStyle.h:72
Int_t fHatchesLineWidth
Hatches line width for hatch styles > 3100.
Definition: TStyle.h:65
Definition: Rtypes.h:59
TAttAxis fZaxis
Z axis attributes.
Definition: TStyle.h:32
void SetDateY(Float_t y=0.01)
Definition: TStyle.h:316
virtual void ResetAttAxis(Option_t *option="")
Reset axis attributes.
Definition: TAttAxis.cxx:79
void SetAxisColor(Color_t color=1, Option_t *axis="X")
Set color to draw the axis line and tick marks.
Definition: TStyle.cxx:1129
void SetHistLineWidth(Width_t width=1)
Definition: TStyle.h:360
Color_t fStatColor
Stat fill area color.
Definition: TStyle.h:103
Int_t fPadBorderMode
Pad border mode.
Definition: TStyle.h:91
Int_t fCanvasDefX
Default canvas top X position.
Definition: TStyle.h:87
#define BIT(n)
Definition: Rtypes.h:78
virtual Color_t GetAxisColor() const
Definition: TAttAxis.h:37
Definition: Rtypes.h:58
virtual void SetLabelColor(Color_t color=1, Float_t alpha=1.)
Set color of labels.
Definition: TAttAxis.cxx:173
Float_t fStatY
Y position of top right corner of stat box.
Definition: TStyle.h:111
Bool_t GetPadGridY() const
Definition: TStyle.h:203
Color_t GetLegendFillColor() const
Definition: TStyle.h:191
void GetPaperSize(Float_t &xsize, Float_t &ysize) const
Set paper size for PostScript output.
Definition: TStyle.cxx:988
void SaveSource(const char *filename, Option_t *option=0)
Save the current style in a C++ macro file.
Definition: TStyle.cxx:1676
virtual Float_t GetTextAngle() const
Return the text angle.
Definition: TAttText.h:33
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
Definition: TAttAxis.cxx:229
TAttAxis fYaxis
Y axis attributes.
Definition: TStyle.h:31
void SetFrameLineWidth(Width_t width=1)
Definition: TStyle.h:353
static Int_t GetNumberOfColors()
Static function returning number of colors in the color palette.
Definition: TColor.cxx:1404
TStyle()
Default constructor.
Definition: TStyle.cxx:142
Style_t fTitleStyle
Fill area style of title PaveLabel.
Definition: TStyle.h:121
#define gROOT
Definition: TROOT.h:410
Float_t GetEndErrorSize() const
Definition: TStyle.h:173
Int_t GetPadTickY() const
Definition: TStyle.h:205
Width_t fPadBorderSize
Pad border size.
Definition: TStyle.h:90
Float_t fTitleFontSize
Font size in pixels for fonts with precision type 3.
Definition: TStyle.h:120
void SetStatBorderSize(Width_t size=2)
Definition: TStyle.h:370
void SetTitleFont(Style_t font=62, Option_t *axis="X")
Definition: TStyle.cxx:1580
Basic string class.
Definition: TString.h:131
virtual void SetTitleFont(Style_t font=62)
Set the title font.
Definition: TAttAxis.cxx:322
void ToLower()
Change string to lower-case.
Definition: TString.cxx:1100
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
R__EXTERN TVirtualMutex * gROOTMutex
Definition: TROOT.h:57
void Copy(TAttMarker &attmarker) const
Copy this marker attributes to a new TAttMarker.
Definition: TAttMarker.cxx:210
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition: TAttFill.h:39
TAttText * GetAttDate()
Definition: TStyle.h:158
Float_t fDateY
Y position of the date in the canvas (in NDC)
Definition: TStyle.h:52
Width_t GetLegendBorderSize() const
Definition: TStyle.h:190
Definition: Rtypes.h:59
void SetStatY(Float_t y=0)
Definition: TStyle.h:375
virtual Float_t GetLabelSize() const
Definition: TAttAxis.h:41
Color_t GetFrameLineColor() const
Definition: TStyle.h:213
Width_t fTitleBorderSize
Border size of Title PavelLabel.
Definition: TStyle.h:118
R__EXTERN TApplication * gApplication
Definition: TApplication.h:165
void SetTimeOffset(Double_t toffset)
Change the time offset for time plotting.
Definition: TStyle.cxx:1655
Float_t GetScreenFactor() const
Definition: TStyle.h:243
Float_t GetTitleY() const
Definition: TStyle.h:268
Int_t fCanvasDefH
Default canvas height.
Definition: TStyle.h:85
Color_t GetFrameFillColor() const
Definition: TStyle.h:212
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Definition: TNamed.cxx:154
void SetPadBottomMargin(Float_t margin=0.1)
Definition: TStyle.h:335
const char * GetFitFormat() const
Definition: TStyle.h:187
virtual void SetLabelOffset(Float_t offset=0.005)
Set distance between the axis and the labels The distance is expressed in per cent of the pad width...
Definition: TAttAxis.cxx:193
Style_t fFrameFillStyle
Pad frame fill style.
Definition: TStyle.h:69
Int_t GetCanvasDefW() const
Definition: TStyle.h:180
Width_t fFrameLineWidth
Pad frame line width.
Definition: TStyle.h:71
Style_t fTitleFont
Font style of Title PaveLabel.
Definition: TStyle.h:119
void SetTitlePS(const char *pstitle)
Define a string to be used in the %Title of the Postscript files.
Definition: TStyle.cxx:1189
void SetLineStyleString(Int_t i, const char *text)
Set line style string using the PostScript convention.
Definition: TStyle.cxx:1289
virtual Width_t GetLineWidth() const
Return the line width.
Definition: TAttLine.h:35
Style_t GetLabelFont(Option_t *axis="X") const
Return label font.
Definition: TStyle.cxx:933
Float_t fPaperSizeY
PostScript paper size along Y.
Definition: TStyle.h:101
Width_t GetFuncWidth() const
Definition: TStyle.h:208
Double_t GetLegendTextSize() const
Definition: TStyle.h:193
Int_t GetHatchesLineWidth() const
Definition: TStyle.h:188
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:694
Int_t GetCanvasDefX() const
Definition: TStyle.h:181
Int_t fOptLogy
True if log scale in y.
Definition: TStyle.h:38
Color_t GetGridColor() const
Definition: TStyle.h:209
Int_t fOptLogx
True if log scale in X.
Definition: TStyle.h:37
Width_t GetHistLineWidth() const
Definition: TStyle.h:223
Int_t GetCanvasBorderMode() const
Definition: TStyle.h:178
void SetCanvasColor(Color_t color=19)
Definition: TStyle.h:321
Double_t GetHatchesSpacing() const
Definition: TStyle.h:189
void SetNdivisions(Int_t n=510, Option_t *axis="X")
Set the number of divisions to draw an axis.
Definition: TStyle.cxx:1115
virtual void SetLabelFont(Style_t font=62)
Set labels&#39; font.
Definition: TAttAxis.cxx:183
static void SetPalette(Int_t ncolors, Int_t *colors, Float_t alpha=1.)
Static function.
Definition: TColor.cxx:2398
const UInt_t kTakeStyle
Definition: TStyle.cxx:28
virtual void cd()
Change current style.
Definition: TStyle.cxx:438
TString fPaintTextFormat
Printing format for TH2::PaintText.
Definition: TStyle.h:131
Int_t fPadTickX
True to set special pad ticks along X.
Definition: TStyle.h:98
virtual Style_t GetMarkerStyle() const
Return the marker style.
Definition: TAttMarker.h:32
void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
Definition: TStyle.cxx:1622
Marker Attributes class.
Definition: TAttMarker.h:19
virtual Style_t GetTitleFont() const
Definition: TAttAxis.h:46
void SetTitleAlign(Int_t a=13)
Definition: TStyle.h:380
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
Definition: TAttText.h:45
Int_t GetTitleAlign()
Definition: TStyle.h:257
virtual Style_t GetLineStyle() const
Return the line style.
Definition: TAttLine.h:34
void SetNumberContours(Int_t number=20)
Set the default number of contour levels when drawing 2-d plots.
Definition: TStyle.cxx:1306
void SetTitleBorderSize(Width_t size=2)
Definition: TStyle.h:385
void SetLegendBorderSize(Width_t size=4)
Definition: TStyle.h:328
static Int_t GetColorPalette(Int_t i)
Static function returning the color number i in current palette.
Definition: TColor.cxx:1384
Double_t fHistTopMargin
Margin between histogram&#39;s top and pad&#39;s top.
Definition: TStyle.h:80
Fill Area Attributes class.
Definition: TAttFill.h:19
void SetFrameFillColor(Color_t color=1)
Definition: TStyle.h:349
void SetLabelColor(Color_t color=1, Option_t *axis="X")
Set axis labels color.
Definition: TStyle.cxx:1199
Float_t GetTitleFontSize() const
Definition: TStyle.h:261
Bool_t GetPadGridX() const
Definition: TStyle.h:202
virtual void ResetAttFill(Option_t *option="")
Reset this fill attributes to default values.
Definition: TAttFill.cxx:224
Int_t GetPadTickX() const
Definition: TStyle.h:204
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
Definition: TAttLine.cxx:164
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
virtual Float_t GetTextSize() const
Return the text size.
Definition: TAttText.h:36
Width_t fHistLineWidth
Histogram line width.
Definition: TStyle.h:78
Int_t fCanvasDefW
Default canvas width.
Definition: TStyle.h:86
void SetTitleX(Float_t x=0)
Definition: TStyle.h:390
Bool_t fStripDecimals
Strip decimals in axis labels.
Definition: TStyle.h:114
Int_t GetOptFit() const
Definition: TStyle.h:231
Float_t fPadTopMargin
Pad top margin.
Definition: TStyle.h:93
void SetPadTickX(Int_t tickx)
Definition: TStyle.h:341
Float_t fDateX
X position of the date in the canvas (in NDC)
Definition: TStyle.h:51
Style_t fLegendFont
Legend font style.
Definition: TStyle.h:63
Style_t GetHistFillStyle() const
Definition: TStyle.h:221
virtual Size_t GetMarkerSize() const
Return the marker size.
Definition: TAttMarker.h:33
Float_t GetStatX() const
Definition: TStyle.h:251
Float_t GetTitleX() const
Definition: TStyle.h:267
void SetTitleTextColor(Color_t color=1)
Definition: TStyle.h:382
Int_t fOptDate
True if date option is selected.
Definition: TStyle.h:40
Int_t GetOptDate() const
Definition: TStyle.h:229
void SetHeaderPS(const char *header)
Define a string to be inserted in the Postscript header.
Definition: TStyle.cxx:1168
Style_t fStatStyle
Fill area style of Stats PaveLabel.
Definition: TStyle.h:108
Int_t fColorModelPS
PostScript color model: 0 = RGB, 1 = CMYK.
Definition: TStyle.h:35
Double_t fLegendTextSize
Legend text size. If 0 the size is computed automatically.
Definition: TStyle.h:64
Int_t GetFrameBorderMode() const
Definition: TStyle.h:218
Float_t GetBarWidth() const
Definition: TStyle.h:171
void SetTitleYOffset(Float_t offset=1)
Definition: TStyle.h:388
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
Definition: TStyle.cxx:913
Width_t fStatBorderSize
Border size of Stats PaveLabel.
Definition: TStyle.h:105
Int_t fDrawBorder
Flag to draw border(=1) or not (0)
Definition: TStyle.h:36
Style_t GetStatStyle() const
Definition: TStyle.h:249
virtual void ResetAttLine(Option_t *option="")
Reset this line attributes to default values.
Definition: TAttLine.cxx:252
Float_t fStatH
Height of stat box.
Definition: TStyle.h:113
virtual Color_t GetLabelColor() const
Definition: TAttAxis.h:38
Style_t fHistLineStyle
Histogram line style.
Definition: TStyle.h:77
Color_t fStatTextColor
Stat text color.
Definition: TStyle.h:104
short Color_t
Definition: RtypesCore.h:79
Color_t fTitleTextColor
Title text color.
Definition: TStyle.h:117
Width_t GetFrameBorderSize() const
Definition: TStyle.h:217
virtual Int_t GetNdivisions() const
Definition: TAttAxis.h:36
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
Definition: TAttText.h:41
void SetTitleColor(Color_t color=1, Option_t *axis="X")
Definition: TStyle.cxx:1559
Style_t fFuncStyle
Function style.
Definition: TStyle.h:56
void SetStatFont(Style_t font=62)
Definition: TStyle.h:371
Int_t fCanvasBorderMode
Canvas border mode.
Definition: TStyle.h:84
TStyle objects may be created to define special styles.
Definition: TStyle.h:27
void Copy(TAttText &atttext) const
Copy this text attributes to a new TAttText.
Definition: TAttText.cxx:291
Float_t fTitleX
X position of top left corner of title box.
Definition: TStyle.h:122
Float_t GetErrorX() const
Definition: TStyle.h:174
const char * GetPaintTextFormat() const
Definition: TStyle.h:237
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Float_t GetLegoInnerR() const
Definition: TStyle.h:227
Float_t fImageScaling
Image scaling to produce high definition bitmap images.
Definition: TStyle.h:136
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
Definition: TObject.cxx:321
void SetPadBorderMode(Int_t mode=1)
Definition: TStyle.h:334
void SetCanvasBorderMode(Int_t mode=1)
Definition: TStyle.h:323
Color_t fFrameLineColor
Pad frame line color.
Definition: TStyle.h:68
TAttText fAttDate
Canvas date attribute.
Definition: TStyle.h:50
Width_t fGridWidth
Grid line width.
Definition: TStyle.h:60
R__EXTERN TSystem * gSystem
Definition: TSystem.h:540
Float_t GetTitleH() const
Definition: TStyle.h:270
Float_t fBarWidth
Width of bar for graphs.
Definition: TStyle.h:33
Color_t fTitleColor
Title fill area color.
Definition: TStyle.h:116
void SetPadColor(Color_t color=19)
Definition: TStyle.h:332
Int_t GetPadBorderMode() const
Definition: TStyle.h:197
Style_t GetStatFont() const
Definition: TStyle.h:247
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition: TAttFill.h:37
Float_t GetStatY() const
Definition: TStyle.h:252
virtual Font_t GetTextFont() const
Return the text font.
Definition: TAttText.h:35
const char * GetLineStyleString(Int_t i=1) const
Return line style string (used by PostScript).
Definition: TStyle.cxx:970
void SetOptDate(Int_t datefl=1)
If optdate is non null, the current date/time will be printed in the canvas.
Definition: TStyle.cxx:1352
Float_t GetStatW() const
Definition: TStyle.h:253
void SetTitleStyle(Style_t style=1001)
Definition: TStyle.h:383
void SetIsReading(Bool_t reading=kTRUE)
Sets the fIsReading member to reading (default=kTRUE).
Definition: TStyle.cxx:1180
Float_t GetPadBottomMargin() const
Definition: TStyle.h:198
Width_t GetCanvasBorderSize() const
Definition: TStyle.h:177
Float_t GetPadRightMargin() const
Definition: TStyle.h:201
Text Attributes class.
Definition: TAttText.h:18
Bool_t GetHistMinimumZero() const
Definition: TStyle.h:224
TString fHeaderPS
User defined additional Postscript header.
Definition: TStyle.h:128
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...
Definition: TStyle.cxx:1396
const char * GetTitlePS() const
Definition: TStyle.h:272
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Function used by the TStyle manager when drawing a canvas showing the current style.
Definition: TStyle.cxx:567
const char * AsSQLString() const
Return the date & time in SQL compatible string format, like: 1997-01-15 20:16:28.
Definition: TDatime.cxx:151
Style_t GetFrameFillStyle() const
Definition: TStyle.h:214
void Copy(TAttAxis &attaxis) const
Copy of the object.
Definition: TAttAxis.cxx:61
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual void Paint(Option_t *option="")
Show the options from the current style.
Definition: TStyle.cxx:1057
virtual Float_t GetTitleOffset() const
Definition: TAttAxis.h:42
virtual void Copy(TObject &style) const
Copy this style.
Definition: TStyle.cxx:446
Int_t fShowEventStatus
Show event status panel.
Definition: TStyle.h:45
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
char * Form(const char *fmt,...)
Float_t fErrorX
Per cent of bin width for errors along X.
Definition: TStyle.h:54
Int_t GetOptLogy() const
Definition: TStyle.h:235
void SetTickLength(Float_t length=0.03, Option_t *axis="X")
Set the tick marks length for an axis.
Definition: TStyle.cxx:1540
virtual ~TStyle()
Destructor.
Definition: TStyle.cxx:395
Double_t fHatchesSpacing
Hatches spacing for hatch styles > 3100.
Definition: TStyle.h:66
void SetFuncWidth(Width_t width=4)
Definition: TStyle.h:345
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Definition: TAttMarker.h:40
void SavePrimitive(std::ostream &out, Option_t *="")
Save a main frame widget as a C++ statement(s) on output stream out.
Definition: TStyle.cxx:1734
Color_t fCanvasColor
Canvas color.
Definition: TStyle.h:82
void SetColorModelPS(Int_t c=0)
Define the color model used by TPostScript and TPDF (RGB or CMYK).
Definition: TStyle.cxx:1081
virtual Color_t GetTitleColor() const
Definition: TAttAxis.h:45
Float_t fScreenFactor
Multiplication factor for canvas size and position.
Definition: TStyle.h:102
Bool_t fIsReading
! Set to FALSE when userclass::UseCurrentStyle is called by the style manager
Definition: TStyle.h:135
Bool_t fPadGridX
True to get the grid along X.
Definition: TStyle.h:96
Int_t fNumberContours
Default number of contours for 2-d plots.
Definition: TStyle.h:49
Float_t GetDateX() const
Definition: TStyle.h:185
Int_t GetOptLogz() const
Definition: TStyle.h:236
virtual void SetAxisColor(Color_t color=1, Float_t alpha=1.)
Set color of the line axis and tick marks.
Definition: TAttAxis.cxx:163
void SetHistMinimumZero(Bool_t zero=kTRUE)
If the argument zero=kTRUE the minimum value for the Y axis of 1-d histograms is set to 0...
Definition: TStyle.cxx:1094
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Definition: TStyle.cxx:979
Int_t GetOptLogx() const
Definition: TStyle.h:234
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels The size is expressed in per cent of the pad width.
Definition: TAttAxis.cxx:204
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Definition: TAttMarker.h:41
virtual void SetTitleColor(Color_t color=1)
Set color of axis title.
Definition: TAttAxis.cxx:313
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title The size is expressed in per cent of the pad width.
Definition: TAttAxis.cxx:304
EPaperSize
Definition: TStyle.h:139
const char * GetHeaderPS() const
Definition: TStyle.h:271
void SetDateX(Float_t x=0.01)
Definition: TStyle.h:315
Color_t GetTitleFillColor() const
Definition: TStyle.h:258
Int_t GetJoinLinePS() const
Definition: TStyle.h:274
virtual void ResetAttMarker(Option_t *toption="")
Reset this marker attributes to the default values.
Definition: TAttMarker.cxx:235
Float_t GetTitleOffset(Option_t *axis="X") const
Return title offset.
Definition: TStyle.cxx:1033
const Bool_t kFALSE
Definition: RtypesCore.h:88
TAttAxis fXaxis
X axis attributes.
Definition: TStyle.h:30
Float_t fTitleY
Y position of top left corner of title box.
Definition: TStyle.h:123
virtual Color_t GetLineColor() const
Return the line color.
Definition: TAttLine.h:33
Width_t fLegendBorderSize
Legend box border size.
Definition: TStyle.h:61
Float_t fEndErrorSize
Size of lines at the end of error bars.
Definition: TStyle.h:53
void SetLabelOffset(Float_t offset=0.005, Option_t *axis="X")
Set offset between axis and axis labels.
Definition: TStyle.cxx:1235
Color * colors
Definition: X3DBuffer.c:19
Width_t GetTitleBorderSize() const
Definition: TStyle.h:262
Float_t GetTitleW() const
Definition: TStyle.h:269
Color_t GetTitleColor(Option_t *axis="X") const
Return title color.
Definition: TStyle.cxx:1009
Color_t GetHistFillColor() const
Definition: TStyle.h:219
void SetJoinLinePS(Int_t joinline=0)
Definition: TStyle.h:287
static void BuildStyles()
Create some standard styles.
Definition: TStyle.cxx:421
#define ClassImp(name)
Definition: Rtypes.h:359
Bool_t fPadGridY
True to get the grid along Y.
Definition: TStyle.h:97
void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
Specify a parameter offset to control the distance between the axis and the axis title.
Definition: TStyle.cxx:1603
double Double_t
Definition: RtypesCore.h:55
Int_t GetOptStat() const
Definition: TStyle.h:232
TText * text
Int_t fOptLogz
True if log scale in z.
Definition: TStyle.h:39
Color_t GetHistLineColor() const
Definition: TStyle.h:220
Int_t fOptTitle
True if option Title is selected.
Definition: TStyle.h:42
R__EXTERN TEnv * gEnv
Definition: TEnv.h:171
unsigned long ULong_t
Definition: RtypesCore.h:51
Int_t GetDrawBorder() const
Definition: TStyle.h:172
Float_t GetPadTopMargin() const
Definition: TStyle.h:199
Int_t AxisChoice(Option_t *axis) const
Definition: TStyle.h:145
TCanvas * style()
Definition: style.C:1
char ** Argv() const
Definition: TApplication.h:136
virtual Color_t GetFillColor() const
Return the fill area color.
Definition: TAttFill.h:30
Float_t fPaperSizeX
PostScript paper size along X.
Definition: TStyle.h:100
virtual void Reset(Option_t *option="")
Reset.
Definition: TStyle.cxx:576
void SetLineScalePS(Float_t scale=3)
Definition: TStyle.h:288
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Definition: TString.h:619
Float_t fPadLeftMargin
Pad left margin.
Definition: TStyle.h:94
#define R__LOCKGUARD(mutex)
The color creation and management class.
Definition: TColor.h:19
Float_t fBarOffset
Offset of bar for graphs.
Definition: TStyle.h:34
Float_t fStatFontSize
Font size in pixels for fonts with precision type 3.
Definition: TStyle.h:107
virtual Float_t GetTitleSize() const
Definition: TAttAxis.h:43
Style_t fHistFillStyle
Histogram fill style.
Definition: TStyle.h:76
Width_t GetStatBorderSize() const
Definition: TStyle.h:246
virtual void Browse(TBrowser *b)
Browse the style object.
Definition: TStyle.cxx:413
Int_t GetCanvasDefH() const
Definition: TStyle.h:179
Int_t fShowEditor
Show pad editor.
Definition: TStyle.h:46
Color_t fHistFillColor
Histogram fill color.
Definition: TStyle.h:74
Width_t GetPadBorderSize() const
Definition: TStyle.h:196
Color_t fFrameFillColor
Pad frame fill color.
Definition: TStyle.h:67
void SetPadTopMargin(Float_t margin=0.1)
Definition: TStyle.h:336
Style_t fGridStyle
Grid line style.
Definition: TStyle.h:59
Color_t fPadColor
Pad color.
Definition: TStyle.h:89
void SetPaperSize(EPaperSize size)
Set paper size for PostScript output.
Definition: TStyle.cxx:1509
Mother of all ROOT objects.
Definition: TObject.h:37
Int_t fJoinLinePS
Determines the appearance of joining lines on PostScript.
Definition: TStyle.h:133
void SetLabelSize(Float_t size=0.04, Option_t *axis="X")
Set size of axis labels.
Definition: TStyle.cxx:1250
Width_t GetFrameLineWidth() const
Definition: TStyle.h:216
Float_t GetStatFontSize() const
Definition: TStyle.h:248
void SetTitleXOffset(Float_t offset=1)
Definition: TStyle.h:386
Float_t GetTitleSize(Option_t *axis="X") const
Return title size.
Definition: TStyle.cxx:1045
Style_t GetHistLineStyle() const
Definition: TStyle.h:222
Int_t fOptFile
True if option File is selected.
Definition: TStyle.h:43
void SetLegendFont(Style_t font=62)
Definition: TStyle.h:330
Int_t fTitleAlign
Title box alignment.
Definition: TStyle.h:115
Int_t fShowToolBar
Show toolbar.
Definition: TStyle.h:47
Float_t GetDateY() const
Definition: TStyle.h:186
Float_t GetTickLength(Option_t *axis="X") const
Return tick length.
Definition: TStyle.cxx:997
Style_t GetFuncStyle() const
Definition: TStyle.h:207
auto * l
Definition: textangle.C:4
void SetTitleFillColor(Color_t color=1)
Definition: TStyle.h:381
Color_t fGridColor
Grid line color (if 0 use axis line color)
Definition: TStyle.h:58
Float_t GetStatH() const
Definition: TStyle.h:254
Width_t fCanvasBorderSize
Canvas border size.
Definition: TStyle.h:83
Float_t GetLabelOffset(Option_t *axis="X") const
Return label offset.
Definition: TStyle.cxx:945
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
Definition: TStyle.cxx:1444
void SetOptTitle(Int_t tit=1)
Definition: TStyle.h:312
TString fStatFormat
Printing format for stats.
Definition: TStyle.h:109
#define snprintf
Definition: civetweb.c:1351
Color_t GetFuncColor() const
Definition: TStyle.h:206
#define gPad
Definition: TVirtualPad.h:285
virtual void SetTickLength(Float_t length=0.03)
Set tick mark length The length is expressed in per cent of the pad width.
Definition: TAttAxis.cxx:280
#define c(i)
Definition: RSha256.hxx:101
Color_t GetCanvasColor() const
Definition: TStyle.h:176
void SetPadTickY(Int_t ticky)
Definition: TStyle.h:342
Float_t GetBarOffset() const
Definition: TStyle.h:170
Style_t GetTitleStyle() const
Definition: TStyle.h:260
void SetStatFormat(const char *format="6.4g")
Definition: TStyle.h:373
Int_t GetCanvasDefY() const
Definition: TStyle.h:182
Definition: Rtypes.h:59
Double_t fTimeOffset
Time offset to the beginning of an axis.
Definition: TStyle.h:134
Width_t GetGridWidth() const
Definition: TStyle.h:211
virtual Color_t GetMarkerColor() const
Return the marker color.
Definition: TAttMarker.h:31
void SetPaintTextFormat(const char *format="g")
Definition: TStyle.h:363
Bool_t fCanvasPreferGL
If true, rendering in canvas is with GL.
Definition: TStyle.h:81
virtual Style_t GetFillStyle() const
Return the fill area style.
Definition: TAttFill.h:31
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition: TAttText.h:46
void SetFitFormat(const char *format="5.4g")
Definition: TStyle.h:282
Color_t GetStatTextColor() const
Definition: TStyle.h:245
Int_t GetNdivisions(Option_t *axis="X") const
Return number of divisions.
Definition: TStyle.cxx:889
void SetLegendFillColor(Color_t color=0)
Definition: TStyle.h:329
Bool_t GetCanvasPreferGL() const
Definition: TStyle.h:175
void SetPadRightMargin(Float_t margin=0.1)
Definition: TStyle.h:338
Color_t fHistLineColor
Histogram line color.
Definition: TStyle.h:75
void SetErrorX(Float_t errorx=0.5)
Definition: TStyle.h:318
void SetHistLineColor(Color_t color=1)
Definition: TStyle.h:357
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
Definition: TEnv.cxx:491
const Bool_t kTRUE
Definition: RtypesCore.h:87
Int_t GetStripDecimals() const
Definition: TStyle.h:255
const Int_t n
Definition: legend1.C:16
Float_t fStatW
Width of stat box.
Definition: TStyle.h:112
Float_t fPadBottomMargin
Pad bottom margin.
Definition: TStyle.h:92
Line Attributes class.
Definition: TAttLine.h:18
void SetPalette(Int_t ncolors=kBird, Int_t *colors=0, Float_t alpha=1.)
See TColor::SetPalette.
Definition: TStyle.cxx:1637
Float_t fStatX
X position of top right corner of stat box.
Definition: TStyle.h:110
Int_t fCanvasDefY
Default canvas top Y position.
Definition: TStyle.h:88
Style_t fStatFont
Font style of Stats PaveLabel.
Definition: TStyle.h:106
void SetFuncColor(Color_t color=1)
Definition: TStyle.h:344
char name[80]
Definition: TGX11.cxx:109
Float_t fLegoInnerR
Inner radius for cylindrical legos.
Definition: TStyle.h:126
virtual Style_t GetLabelFont() const
Definition: TAttAxis.h:39
void SetStripDecimals(Bool_t strip=kTRUE)
Set option to strip decimals when drawing axis labels.
Definition: TStyle.cxx:1668
const char * GetStatFormat() const
Definition: TStyle.h:250
virtual const char * GetTitle() const
Returns title of object.
Definition: TNamed.h:48
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
Definition: TDatime.h:37
TStyle * gStyle
Definition: TStyle.cxx:27
void Copy(TAttFill &attfill) const
Copy this fill attributes to a new TAttFill.
Definition: TAttFill.cxx:201
Int_t GetOptTitle() const
Definition: TStyle.h:233
Color_t GetPadColor() const
Definition: TStyle.h:195
const char * Data() const
Definition: TString.h:364
Int_t fPadTickY
True to set special pad ticks along Y.
Definition: TStyle.h:99
Double_t GetTimeOffset() const
Definition: TStyle.h:256
void SetLegendTextSize(Double_t size=0.)
Definition: TStyle.h:331