Angular analysis of B+->K*+(K+pi0)mumu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

198 lines
6.5 KiB

from ROOT import TStyle, TText, TLatex, TPaveText, gROOT
from Globals import *
from array import array
lhcbStyle = TStyle("lhcbStyle", "LHCb official plots style")
lhcbLabel = TText()
lhcbLatex = TLatex()
lhcb7TeVPrelimL = TPaveText()
lhcb0_9TeVPrelimL = TPaveText()
def LHCbStyle(colzPlot=False, NCont=25):
# ##################################
# # PURPOSE:
# #
# # This file defines a reasonable style for (black-and-white)
# # "publication quality" ROOT plots. The default settings contain
# # many features that are either not desirable for printing on white
# # paper or impair the general readability of plots.
# #
# # USAGE:
#
# Simply add the line
# from LHCbStyle import LHCbStyle
# at the beginning of your root program (and make sure LHCbStyle.py is
# in a location accessible to the compiler). Then add the line
# lhcbStyle()
# somewhere at the beginning of your program
#
# SOME COMMENTS:
#
# Statistics and fit boxes:
#
# "Decorative" items around the histogram are kept to a minimum.
# In particular there is no box with statistics or fit information.
# You can easily change this either by editing your private copy
# of this style file or by calls to "gStyle" in your macro.
# For example,
# gStyle->SetOptFit(1011);
# will add some fit information.
#
# Font:
#
# The font is chosen to be 62, i.e.helvetica-bold-r-normal with
# precision 2. Font is of course a matter of taste, but most people
# will probably agree that Helvetica bold gives close to optimal
# readibility in presentations. It appears to be the ROOT default,
# and since there are still some features in ROOT that simply won't
# respond to any font requests, it is the wise choice to avoid
# ugly font mixtures on the same plot... The precision of the font (2)
# is chosen in order to have a rotatable and scalable font. Be sure
# to use true-type fonts! I.e.
# Unix.*.Root.UseTTFonts: true in your .rootrc file.
#
# "Landscape histograms":
#
# The style here is designed for more or less quadratic plots.
# For very long histograms, 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);
#
##################################
lhcbFont = 132 # Old LHCb style: 62
lhcbWidth = 2 # Old LHCb style: 3.00
lhcbTSize = 0.06
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:
palette = array('i',[0, 5, 7, 3, 6, 2, 4, 1])
lhcbStyle.SetPalette(8, palette)
# set the paper & margin sizes
lhcbStyle.SetPaperSize(20, 26)
lhcbStyle.SetPadTopMargin(0.05)
lhcbStyle.SetPadRightMargin(0.05) # 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.2*lhcbTSize, "x")
lhcbStyle.SetTitleSize(1.2*lhcbTSize, "y")
lhcbStyle.SetTitleSize(1.2*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(1011); # order is probability, Chi2, errors, parameters
#titles
lhcbStyle.SetTitleOffset(0.95, "X")
lhcbStyle.SetTitleOffset(0.95, "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.25)
lhcbStyle.SetStatH(0.15)
# 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")
## add LHCb label
#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);
lhcbLabel.SetTextFont(lhcbFont)
lhcbLabel.SetTextColor(1)
lhcbLabel.SetTextSize(lhcbTSize)
lhcbLabel.SetTextAlign(12)
lhcbLatex.SetTextFont(lhcbFont)
lhcbLatex.SetTextColor(1)
lhcbLatex.SetTextSize(lhcbTSize)
lhcbLatex.SetTextAlign(12)
gROOT.SetStyle("lhcbStyle")
gROOT.ForceStyle()
return