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