ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sPhenixStyle.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file sPhenixStyle.C
1 //
2 // sPHENIX Style, based on a style file from BaBar, v0.1
3 //
4 
5 #include <sPhenixStyle.h>
6 
7 #include <TColor.h>
8 #include <TROOT.h>
9 
10 #include <iostream>
11 
13 {
14  static TStyle* sphenixStyle = 0;
15  std::cout << "sPhenixStyle: Applying nominal settings." << std::endl;
16  if (sphenixStyle == 0) sphenixStyle = sPhenixStyle();
17  gROOT->SetStyle("sPHENIX");
18  gROOT->ForceStyle();
19 }
20 
21 TStyle* sPhenixStyle()
22 {
23  TStyle* sphenixStyle = new TStyle("sPHENIX", "sPHENIX style");
24 
25  // use plain black on white colors
26  Int_t icol = 0; // WHITE
27  sphenixStyle->SetFrameBorderMode(icol);
28  sphenixStyle->SetFrameFillColor(icol);
29  sphenixStyle->SetCanvasBorderMode(icol);
30  sphenixStyle->SetCanvasColor(icol);
31  sphenixStyle->SetPadBorderMode(icol);
32  sphenixStyle->SetPadColor(icol);
33  sphenixStyle->SetStatColor(icol);
34  //sphenixStyle->SetFillColor(icol); // don't use: white fill color for *all* objects
35 
36  // set the paper & margin sizes
37  sphenixStyle->SetPaperSize(20, 26);
38 
39  // set margin sizes
40  sphenixStyle->SetPadTopMargin(0.05);
41  sphenixStyle->SetPadRightMargin(0.05);
42  sphenixStyle->SetPadBottomMargin(0.16);
43  sphenixStyle->SetPadLeftMargin(0.16);
44 
45  // set title offsets (for axis label)
46  sphenixStyle->SetTitleXOffset(1.4);
47  sphenixStyle->SetTitleYOffset(1.4);
48 
49  // use large fonts
50  //Int_t font=72; // Helvetica italics
51  Int_t font = 42; // Helvetica
52  Double_t tsize = 0.05;
53  sphenixStyle->SetTextFont(font);
54 
55  sphenixStyle->SetTextSize(tsize);
56  sphenixStyle->SetLabelFont(font, "x");
57  sphenixStyle->SetTitleFont(font, "x");
58  sphenixStyle->SetLabelFont(font, "y");
59  sphenixStyle->SetTitleFont(font, "y");
60  sphenixStyle->SetLabelFont(font, "z");
61  sphenixStyle->SetTitleFont(font, "z");
62 
63  sphenixStyle->SetLabelSize(tsize, "x");
64  sphenixStyle->SetTitleSize(tsize, "x");
65  sphenixStyle->SetLabelSize(tsize, "y");
66  sphenixStyle->SetTitleSize(tsize, "y");
67  sphenixStyle->SetLabelSize(tsize, "z");
68  sphenixStyle->SetTitleSize(tsize, "z");
69 
70  // use bold lines and markers
71  sphenixStyle->SetMarkerStyle(20);
72  sphenixStyle->SetMarkerSize(1.2);
73  sphenixStyle->SetHistLineWidth(2.);
74  sphenixStyle->SetLineStyleString(2, "[12 12]"); // postscript dashes
75 
76  // get rid of X error bars
77  //sphenixStyle->SetErrorX(0.001);
78  // get rid of error bar caps
79  sphenixStyle->SetEndErrorSize(0.);
80 
81  // do not display any of the standard histogram decorations
82  sphenixStyle->SetOptTitle(0);
83  //sphenixStyle->SetOptStat(1111);
84  sphenixStyle->SetOptStat(0);
85  //sphenixStyle->SetOptFit(1111);
86  sphenixStyle->SetOptFit(0);
87 
88  // put tick marks on top and RHS of plots
89  sphenixStyle->SetPadTickX(1);
90  sphenixStyle->SetPadTickY(1);
91 
92  // legend modificatin
93  sphenixStyle->SetLegendBorderSize(0);
94  sphenixStyle->SetLegendFillColor(0);
95  sphenixStyle->SetLegendFont(font);
96 
97 #if ROOT_VERSION_CODE >= ROOT_VERSION(6, 00, 0)
98  std::cout << "sPhenixStyle: ROOT6 mode" << std::endl;
99  sphenixStyle->SetLegendTextSize(tsize);
100  sphenixStyle->SetPalette(kBird);
101 #else
102  std::cout << "sPhenixStyle: ROOT5 mode" << std::endl;
103  // color palette - manually define 'kBird' palette only available in ROOT 6
104  Int_t alpha = 0;
105  Double_t stops[9] = {0.0000, 0.1250, 0.2500, 0.3750, 0.5000, 0.6250, 0.7500, 0.8750, 1.0000};
106  Double_t red[9] = {0.2082, 0.0592, 0.0780, 0.0232, 0.1802, 0.5301, 0.8186, 0.9956, 0.9764};
107  Double_t green[9] = {0.1664, 0.3599, 0.5041, 0.6419, 0.7178, 0.7492, 0.7328, 0.7862, 0.9832};
108  Double_t blue[9] = {0.5293, 0.8684, 0.8385, 0.7914, 0.6425, 0.4662, 0.3499, 0.1968, 0.0539};
109  TColor::CreateGradientColorTable(9, stops, red, green, blue, 255, alpha);
110 #endif
111 
112  sphenixStyle->SetNumberContours(80);
113 
114  return sphenixStyle;
115 }