|
|
// all users - please change the name of this file to lhcbStyle.C
// Commits to lhcbdocs svn of .C files are not allowed
{
// define names for colours
Int_t black = 1; Int_t red = 2; Int_t green = 3; Int_t blue = 4; Int_t yellow = 5; Int_t magenta= 6; Int_t cyan = 7; Int_t purple = 9;
////////////////////////////////////////////////////////////////////
// PURPOSE:
//
// This macro defines a standard style for (black-and-white)
// "publication quality" LHCb ROOT plots.
//
// USAGE:
//
// Include the lines
// gROOT->ProcessLine(".L lhcbstyle.C");
// lhcbStyle();
// at the beginning of your root macro.
//
// Example usage is given in myPlot.C
//
// COMMENTS:
//
// Font:
//
// The font is chosen to be 132, this is Times New Roman (like the text of
// your document) with precision 2.
//
// "Landscape histograms":
//
// The style here is designed for more or less square plots.
// For longer histograms, or canvas with many pads, adjustements are needed.
// For instance, for a canvas with 1x5 histograms:
// TCanvas* c1 = new TCanvas("c1", "L0 muons", 600, 800);
// c1->Divide(1,5);
// Adaptions like the following will be needed:
// gStyle->SetTickLength(0.05,"x");
// gStyle->SetTickLength(0.01,"y");
// gStyle->SetLabelSize(0.15,"x");
// gStyle->SetLabelSize(0.1,"y");
// gStyle->SetStatW(0.15);
// gStyle->SetStatH(0.5);
//
// Authors: Thomas Schietinger, Andrew Powell, Chris Parkes, Niels Tuning
// Maintained by Editorial board member (currently Niels)
///////////////////////////////////////////////////////////////////
// Use times new roman, precision 2
Int_t lhcbFont = 132; // Old LHCb style: 62;
// Line thickness
Double_t lhcbWidth = 1.00; // Old LHCb style: 3.00;
// Text size
Double_t lhcbTSize = 0.04; // 0.04
// use plain black on white colors
gROOT->SetStyle("Plain"); TStyle *lhcbStyle= new TStyle("lhcbStyle","LHCb plots style"); //lhcbStyle->SetErrorX(0); // don't suppress the error bar along X
lhcbStyle->SetFillColor(1); lhcbStyle->SetFillStyle(1001); // solid
lhcbStyle->SetFrameFillColor(0); lhcbStyle->SetFrameBorderMode(0); lhcbStyle->SetPadBorderMode(0); lhcbStyle->SetPadColor(0); lhcbStyle->SetCanvasBorderMode(0); lhcbStyle->SetCanvasColor(0); lhcbStyle->SetStatColor(0); lhcbStyle->SetLegendBorderSize(0); lhcbStyle->SetLegendFont(132);
// If you want the usual gradient palette (blue -> red)
lhcbStyle->SetPalette(1); // If you want colors that correspond to gray scale in black and white:
int colors[8] = {0,5,7,3,6,2,4,1}; lhcbStyle->SetPalette(8,colors);
// set the paper & margin sizes
lhcbStyle->SetPaperSize(20,26); lhcbStyle->SetPadTopMargin(0.05); lhcbStyle->SetPadRightMargin(0.06); // increase for colz plots
lhcbStyle->SetPadBottomMargin(0.16); lhcbStyle->SetPadLeftMargin(0.14); // use large fonts
lhcbStyle->SetTextFont(lhcbFont); lhcbStyle->SetTextSize(lhcbTSize); lhcbStyle->SetLabelFont(lhcbFont,"x"); lhcbStyle->SetLabelFont(lhcbFont,"y"); lhcbStyle->SetLabelFont(lhcbFont,"z"); lhcbStyle->SetLabelSize(lhcbTSize,"x"); lhcbStyle->SetLabelSize(lhcbTSize,"y"); lhcbStyle->SetLabelSize(lhcbTSize,"z"); lhcbStyle->SetTitleFont(lhcbFont); lhcbStyle->SetTitleFont(lhcbFont,"x"); lhcbStyle->SetTitleFont(lhcbFont,"y"); lhcbStyle->SetTitleFont(lhcbFont,"z"); lhcbStyle->SetTitleSize(1.0*lhcbTSize,"x"); lhcbStyle->SetTitleSize(1.0*lhcbTSize,"y"); lhcbStyle->SetTitleSize(1.0*lhcbTSize,"z");
// use medium bold lines and thick markers
lhcbStyle->SetLineWidth(lhcbWidth); lhcbStyle->SetFrameLineWidth(lhcbWidth); lhcbStyle->SetHistLineWidth(lhcbWidth); lhcbStyle->SetFuncWidth(lhcbWidth); lhcbStyle->SetGridWidth(lhcbWidth); lhcbStyle->SetLineStyleString(2,"[12 12]"); // postscript dashes
lhcbStyle->SetMarkerStyle(20); lhcbStyle->SetMarkerSize(1.0);
// label offsets
lhcbStyle->SetLabelOffset(0.010,"X"); lhcbStyle->SetLabelOffset(0.010,"Y");
// by default, do not display histogram decorations:
lhcbStyle->SetOptStat(0); //lhcbStyle->SetOptStat("emr"); // show only nent -e , mean - m , rms -r
// full opts at http://root.cern.ch/root/html/TStyle.html#TStyle:SetOptStat
lhcbStyle->SetStatFormat("6.3g"); // specified as c printf options
lhcbStyle->SetOptTitle(0); //lhcbStyle->SetOptFit(0);
lhcbStyle->SetOptFit(1100); // order is probability, Chi2, errors, parameters
//titles
lhcbStyle->SetTitleOffset(1.2,"X"); lhcbStyle->SetTitleOffset(1.5,"Y"); lhcbStyle->SetTitleOffset(1.2,"Z"); lhcbStyle->SetTitleFillColor(0); lhcbStyle->SetTitleStyle(0); lhcbStyle->SetTitleBorderSize(0); lhcbStyle->SetTitleFont(lhcbFont,"title"); lhcbStyle->SetTitleX(0.0); lhcbStyle->SetTitleY(1.0); lhcbStyle->SetTitleW(1.0); lhcbStyle->SetTitleH(0.05); // look of the statistics box:
lhcbStyle->SetStatBorderSize(0); lhcbStyle->SetStatFont(lhcbFont); lhcbStyle->SetStatFontSize(0.05); lhcbStyle->SetStatX(0.9); lhcbStyle->SetStatY(0.9); lhcbStyle->SetStatW(0.15); lhcbStyle->SetStatH(0.1);
// put tick marks on top and RHS of plots
lhcbStyle->SetPadTickX(1); lhcbStyle->SetPadTickY(1);
// histogram divisions: only 5 in x to avoid label overlaps
lhcbStyle->SetNdivisions(505,"x"); lhcbStyle->SetNdivisions(510,"y"); gROOT->SetStyle("lhcbStyle"); gROOT->ForceStyle();
// add LHCb label
/* TPaveText* lhcbName = new TPaveText(gStyle->GetPadLeftMargin() + 0.05,
0.87 - gStyle->GetPadTopMargin(), gStyle->GetPadLeftMargin() + 0.20, 0.95 - gStyle->GetPadTopMargin(), "BRNDC"); lhcbName->AddText("LHCb"); lhcbName->SetFillColor(0); lhcbName->SetTextAlign(12); lhcbName->SetBorderSize(0);
TText *lhcbLabel = new TText(); lhcbLabel->SetTextFont(lhcbFont); lhcbLabel->SetTextColor(1); lhcbLabel->SetTextSize(lhcbTSize); lhcbLabel->SetTextAlign(12);
TLatex *lhcbLatex = new TLatex(); lhcbLatex->SetTextFont(lhcbFont); lhcbLatex->SetTextColor(1); lhcbLatex->SetTextSize(lhcbTSize); lhcbLatex->SetTextAlign(12);*/
cout << "-------------------------" << endl; cout << "Set LHCb Style - Feb 2012" << endl; cout << "-------------------------" << endl; }
|