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.
 
 
 

132 lines
4.3 KiB

from ROOT import gROOT, TH1, TH1F, TH1D, TEfficiency
from ROOT import TStyle
def set_style(graph, color, marker, style):
graph.SetLineColor(color)
graph.SetMarkerColor(color)
graph.SetMarkerSize(1.0)
graph.SetMarkerStyle(marker)
if type(graph) == TH1F or type(graph) == TH1 or type(graph) == TH1D:
graph.SetFillColor(color)
# graph.SetFillColorAlpha(color, 0.5)
graph.SetFillStyle(style)
graph.SetLineWidth(2)
if style == 0:
graph.SetFillColor(0)
graph.SetStats(False)
graph.GetYaxis().SetTitleOffset(1.0)
if type(graph) != TEfficiency:
graph.GetYaxis().SetTitleOffset(0.85)
graph.GetYaxis().SetTitleSize(0.06)
graph.GetYaxis().SetLabelSize(0.06)
graph.GetXaxis().SetTitleSize(0.06)
graph.GetXaxis().SetLabelSize(0.06)
graph.GetXaxis().SetTitleFont(132)
graph.GetXaxis().SetLabelFont(132)
graph.GetYaxis().SetTitleFont(132)
graph.GetYaxis().SetLabelFont(132)
return graph
def setLHCbStyle():
global lhcbStyle
lhcbFont = 132
lhcbTSize = 0.05
lhcbWidth = 2
lhcbStyle = TStyle("lhcbStyle", "LHCb plots style")
lhcbStyle.SetFillColor(1)
lhcbStyle.SetFillStyle(1001) # solid 1001
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)
# use large fonts
lhcbStyle.SetTextFont(lhcbFont)
lhcbStyle.SetTitleFont(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")
# 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 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.85, "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")
gROOT.SetStyle("lhcbStyle")
return