def my_style(): gStyle.SetLabelSize(fontsize, "x") gStyle.SetLabelSize(fontsize, "y") gStyle.SetLabelSize(fontsize, "z") gStyle.SetTitleFontSize(1.5 * fontsize) gStyle.SetTitleSize(fontsize, "x") gStyle.SetTitleSize(fontsize, "y") gStyle.SetTitleSize(fontsize, "z") gStyle.SetTickLength(0, "Y") gStyle.SetTitleOffset(1.5, "xy") gStyle.SetTitleFont(62, "bla") gStyle.SetPadBottomMargin(0.15) gStyle.SetPadTopMargin(0.10) gStyle.SetPadLeftMargin(0.32) gStyle.SetPadRightMargin(0.05) gStyle.SetStatX(0.88) gStyle.SetStatY(0.87) gStyle.SetNdivisions(505) gStyle.SetCanvasColor(-1) gStyle.SetPadColor(-1) gStyle.SetFrameFillColor(-1) gStyle.SetTitleFillColor(-1) gStyle.SetFillColor(-1) gStyle.SetFillStyle(4000) gStyle.SetStatStyle(0) gStyle.SetTitleStyle(0) gStyle.SetCanvasBorderSize(0) gStyle.SetFrameBorderSize(0) gStyle.SetLegendBorderSize(0) gStyle.SetStatBorderSize(0) gStyle.SetTitleBorderSize(0)
def efficiencytracking(var): # plots the efficiency vs pT, eta and phi for all the species(it extracts the # Efficiency from qa - tracking - efficiency if you have ran with-- make - eff) hadron_list = [ "pion", "proton", "kaon", "electron", "muon", ] color_list = [1, 2, 4, 6, 8] marker_list = [20, 21, 22, 34, 45] fileo2 = TFile("../codeHF/AnalysisResults_O2.root") c1 = TCanvas("c1", "Efficiency") gStyle.SetOptStat(0) gStyle.SetErrorX(0) gStyle.SetFrameLineWidth(2) gStyle.SetTitleSize(0.045, "x") gStyle.SetTitleSize(0.045, "y") gStyle.SetMarkerSize(1) gStyle.SetLabelOffset(0.015, "x") gStyle.SetLabelOffset(0.02, "y") gStyle.SetTickLength(-0.02, "x") gStyle.SetTickLength(-0.02, "y") gStyle.SetTitleOffset(1.1, "x") gStyle.SetTitleOffset(1.0, "y") c1.SetCanvasSize(800, 600) c1.cd() c1.SetGridy() c1.SetGridx() eff_list = [] if var == "Pt": hempty = TH1F("hempty", ";Transverse Momentum(GeV/c);Efficiency", 100, 0.05, 10) gPad.SetLogx() elif var == "Eta": hempty = TH1F("hempty", ";Pseudorapidity;Efficiency", 100, -4.0, 4.0) elif var == "Phi": hempty = TH1F("hempty", ";Azimuthal angle(rad);Efficiency", 100, 0.0, 6.0) hempty.GetYaxis().CenterTitle() hempty.GetXaxis().CenterTitle() hempty.GetXaxis().SetNoExponent() hempty.GetXaxis().SetMoreLogLabels(1) hempty.Draw() leg = TLegend(0.55, 0.15, 0.89, 0.35, "P") leg.SetNColumns(2) leg.SetHeader("Minimum bias KrKr #sqrt{s} = 6.46TeV", "C") leg.SetFillColor(0) for i, had in enumerate(hadron_list): leff = fileo2.Get("qa-tracking-efficiency-%s/Efficiency" % had) if var == "Pt": eff = leff.At(0) elif var == "Eta": eff = leff.At(1) elif var == "Phi": eff = leff.At(2) gPad.Update() eff.Paint("p") gr = eff.GetPaintedGraph().Clone() for j in range(0, gr.GetN()): gr.GetEXlow()[j] = 0 gr.GetEXhigh()[j] = 0 gr.SetLineColor(color_list[i]) gr.SetMarkerColor(color_list[i]) gr.SetMarkerStyle(marker_list[i]) eff_list.append(gr) gr.Draw(" same p") leg.AddEntry(eff_list[i], had, "p") leg.Draw() saveCanvas(c1, "efficiency_tracking_%s" % var)
def initialize2(self): # For the canvas: gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasColor(kWhite) gStyle.SetCanvasDefH(600) #Height of canvas gStyle.SetCanvasDefW(600) #Width of canvas gStyle.SetCanvasDefX(0) #POsition on screen gStyle.SetCanvasDefY(0) # For the Pad: gStyle.SetPadBorderMode(0) # gStyle.SetPadBorderSize(Width_t size = 1) gStyle.SetPadColor(kWhite) gStyle.SetPadGridX(False) gStyle.SetPadGridY(False) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # For the frame: gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillStyle(1000) gStyle.SetFrameFillColor(0) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) # For the histo: # gStyle.SetHistFillColor(1) # gStyle.SetHistFillStyle(0) gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(1) # gStyle.SetLegoInnerR(Float_t rad = 0.5) # gStyle.SetNumberContours(Int_t number = 20) gStyle.SetEndErrorSize(2) # gStyle.SetErrorMarker(20) gStyle.SetErrorX(0.) gStyle.SetMarkerStyle(20) #For the fit/function: gStyle.SetOptFit(1) gStyle.SetFitFormat("5.4g") gStyle.SetFuncColor(2) gStyle.SetFuncStyle(1) gStyle.SetFuncWidth(1) #For the date: gStyle.SetOptDate(0) # gStyle.SetDateX(Float_t x = 0.01) # gStyle.SetDateY(Float_t y = 0.01) # For the statistics box: gStyle.SetOptFile(0) gStyle.SetOptStat( 0) # To display the mean and RMS: SetOptStat("mr") gStyle.SetStatColor(kWhite) gStyle.SetStatFont(42) gStyle.SetStatFontSize(0.025) gStyle.SetStatTextColor(1) gStyle.SetStatFormat("6.4g") gStyle.SetStatBorderSize(1) gStyle.SetStatH(0.1) gStyle.SetStatW(0.15) # gStyle.SetStatStyle(Style_t style = 1001) # gStyle.SetStatX(Float_t x = 0) # gStyle.SetStatY(Float_t y = 0) # Margins: gStyle.SetPadTopMargin(0.05) gStyle.SetPadBottomMargin(0.13) gStyle.SetPadLeftMargin(0.16) gStyle.SetPadRightMargin(0.02) # For the Global title: gStyle.SetOptTitle(0) gStyle.SetTitleFont(42) gStyle.SetTitleColor(1) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05) # gStyle.SetTitleH(0) # Set the height of the title box # gStyle.SetTitleW(0) # Set the width of the title box # gStyle.SetTitleX(0) # Set the position of the title box # gStyle.SetTitleY(0.985) # Set the position of the title box # gStyle.SetTitleStyle(Style_t style = 1001) # gStyle.SetTitleBorderSize(2) # For the axis titles: gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.06, "XYZ") # gStyle.SetTitleXSize(Float_t size = 0.02) # Another way to set the size? # gStyle.SetTitleYSize(Float_t size = 0.02) gStyle.SetTitleXOffset(0.9) gStyle.SetTitleYOffset(1.25) # gStyle.SetTitleOffset(1.1, "Y") # Another way to set the Offset # For the axis labels: gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.05, "XYZ") # For the axis: gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(True) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX( 1) # To get tick marks on the opposite side of the frame gStyle.SetPadTickY(1) # Change for log plots: gStyle.SetOptLogx(0) gStyle.SetOptLogy(0) gStyle.SetOptLogz(0) # Postscript options: gStyle.SetPaperSize(20., 20.)
def setTDRStyle(force): gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasColor(kWhite) gStyle.SetCanvasDefH(600) gStyle.SetCanvasDefW(600) gStyle.SetCanvasDefX(0) gStyle.SetCanvasDefY(0) gStyle.SetPadBorderMode(0) gStyle.SetPadColor(kWhite) gStyle.SetPadGridX(False) gStyle.SetPadGridY(False) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(0) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) if force: gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(1) gStyle.SetEndErrorSize(2) gStyle.SetErrorX(0.) gStyle.SetMarkerStyle(20) gStyle.SetOptFit(1) gStyle.SetFitFormat("5.4g") gStyle.SetFuncColor(2) gStyle.SetFuncStyle(1) gStyle.SetFuncWidth(1) gStyle.SetOptDate(0) gStyle.SetOptFile(0) gStyle.SetOptStat(0) gStyle.SetStatColor(kWhite) gStyle.SetStatFont(42) gStyle.SetStatFontSize(0.04) gStyle.SetStatTextColor(1) gStyle.SetStatFormat("6.4g") gStyle.SetStatBorderSize(1) gStyle.SetStatH(0.1) gStyle.SetStatW(0.2) gStyle.SetPadTopMargin(0.05) gStyle.SetPadBottomMargin(0.13) gStyle.SetPadLeftMargin(0.16) gStyle.SetPadRightMargin(0.04) gStyle.SetOptTitle(0) gStyle.SetTitleFont(42) gStyle.SetTitleColor(1) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05) gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.06, "XYZ") gStyle.SetTitleXOffset(0.9) gStyle.SetTitleYOffset(1.25) gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.05, "XYZ") gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(True) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX(1) gStyle.SetPadTickY(1) gStyle.SetOptLogx(0) gStyle.SetOptLogy(0) gStyle.SetOptLogz(0) gStyle.SetPaperSize(20.,20.) gROOT.ForceStyle()
gStyle.SetPadColor(10) gStyle.SetGridColor(16) gStyle.SetFrameFillColor(10) gStyle.SetFillColor(10) gStyle.SetTitleFillColor(10) gStyle.SetTitleBorderSize(0) gStyle.SetCanvasColor(10) gStyle.SetStatColor(10) gStyle.SetLabelSize(0.08, "xyz") gStyle.SetTitleSize(0.08, "xyz") gStyle.SetFrameLineWidth(1) gStyle.SetHistLineWidth(1) gStyle.SetNdivisions(510, "x") gStyle.SetNdivisions(508, "y") gStyle.SetNdivisions(8, "z") gStyle.SetTickLength(0.03, "x") gStyle.SetTickLength(0.03, "y") gStyle.SetTickLength(0.03, "z") gStyle.SetFrameBorderSize(1) gStyle.SetLegendBorderSize(1) gStyle.SetCanvasBorderSize(1) gStyle.SetPadBorderSize(1) gStyle.SetStatBorderSize(1) gStyle.SetTitleBorderSize(1) gStyle.SetLabelOffset(0.005, "x") gStyle.SetLabelOffset(0.005, "y") gStyle.SetLabelOffset(0.005, "z") gStyle.SetBarWidth(0.1) gStyle.SetLineWidth(1) gStyle.SetTitleOffset(1, "x") gStyle.SetTitleOffset(0.8, "y")
gStyle.SetPadBottomMargin(0.13) gStyle.SetPadLeftMargin(0.15) gStyle.SetPadRightMargin(0.05) gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.04, "XYZ") gStyle.SetTitleXOffset(1.1) gStyle.SetTitleYOffset(2) gStyle.SetTextAlign(12) gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.04, "XYZ") gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(True) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX(1) gStyle.SetPadTickY(1) gROOT.ForceStyle() #set the text for the luminosity label if (intLumi < 1000.): LumiInPb = intLumi LumiText = "L_{int} = " + str(intLumi) + " pb^{-1}" LumiText = "L_{int} = " + str.format('{0:.1f}', LumiInPb) + " pb^{-1}" else: LumiInFb = intLumi / 1000. LumiText = "L_{int} = " + str.format('{0:.1f}', LumiInFb) + " fb^{-1}" #bestest place for lumi. label, in top left corner
def DrawOverlap(histList, titleVec, legendtext, pngname, logstatus=[0, 0], xRange=[-99999, 99999, 1], cat='2b'): gStyle.SetOptTitle(0) gStyle.SetOptStat(0) gStyle.SetTitleOffset(1.1, "Y") #gStyle.SetTitleOffset(1.9,"X"); gStyle.SetLineWidth(3) gStyle.SetFrameLineWidth(3) gStyle.SetTickLength(0.0, "x") i = 0 # histList_=[] # histList=[] # histList1=[] # maximum=[] ## Legend leg = TLegend(0.2, 0.80, 0.89, 0.89) #,NULL,"brNDC"); leg.SetBorderSize(0) leg.SetNColumns(3) # leg.SetLineColor(1) leg.SetLineStyle(1) leg.SetLineWidth(1) # leg.SetFillColor(0) leg.SetFillStyle(0) leg.SetTextFont(42) leg.SetTextSize(0.05) c = TCanvas("c1", "c1", 0, 0, 500, 500) c.SetBottomMargin(0.15) c.SetLeftMargin(0.15) c.SetLogy(logstatus[1]) c.SetLogx(logstatus[0]) # print ("you have provided "+str(len(fileVec))+" files and "+str(len(histVec))+" histograms to make a overlapping plot" ) # print "opening rootfiles" c.cd() print "provided hists", histList for ih in range(len(histList)): tt = type(histList[ih]) if logstatus[1] is 1: histList[ih].SetMaximum(1.5) #1.4 for log histList[ih].SetMinimum(0.1) #1.4 for log if logstatus[1] is 0: maxi = histList[ih].GetMaximum() histList[ih].SetMaximum(maxi * 2) #1.4 for log histList[ih].SetMinimum(0) #1.4 for log # print "graph_status =" ,(tt is TGraphAsymmErrors) # print "hist status =", (tt is TH1D) or (tt is TH1F) if ih == 0: if tt is TGraphAsymmErrors: histList[ih].Draw("APL") if (tt is TH1D) or (tt is TH1F) or (tt is TH1) or (tt is TH1I): histList[ih].Draw("PE2 ") if ih > 0: #histList[ih].SetLineWidth(2) if tt is TGraphAsymmErrors: histList[ih].Draw("PL same") if (tt is TH1D) or (tt is TH1F) or (tt is TH1) or (tt is TH1I): histList[ih].Draw("PE0 same") if tt is TGraphAsymmErrors: histList[ih].SetMaximum(100) histList[ih].SetMarkerColor(colors[ih]) histList[ih].SetLineColor(colors[ih]) histList[ih].SetLineWidth(0) histList[ih].SetMarkerStyle(markerStyle[ih]) histList[ih].SetMarkerSize(1) leg.AddEntry(histList[ih], legendtext[ih], "PL") if (tt is TH1D) or (tt is TH1F) or (tt is TH1) or (tt is TH1I): print "setting style for hist" print "color code", colors[ih] # histList[ih].SetLineStyle(linestyle[ih]) histList[ih].SetLineColor(colors[ih]) histList[ih].SetMarkerColor(colors[ih]) histList[ih].SetFillColor(colors[ih]) histList[ih].SetMarkerStyle(20) histList[ih].SetMarkerSize(1.0) histList[ih].SetLineWidth(1) #invert legend between first and second if ih == 0: leg.AddEntry(histList[ih + 1], legendtext[ih + 1], "PEL") #"f") if ih == 1: leg.AddEntry(histList[ih - 1], legendtext[ih - 1], 'f') #"PEL") histList[ih].GetYaxis().SetTitle(titleVec[1]) histList[ih].GetYaxis().SetTitleSize(0.052) histList[ih].GetYaxis().SetTitleOffset(1.4) histList[ih].GetYaxis().SetTitleFont(42) histList[ih].GetYaxis().SetLabelFont(42) histList[ih].GetYaxis().SetLabelSize(.052) histList[ih].GetXaxis().SetRangeUser(xRange[0], xRange[1]) # histList[ih].GetXaxis().SetLabelSize(0.0000); histList[ih].GetXaxis().SetTitle(titleVec[0]) histList[ih].GetXaxis().SetLabelSize(0.052) histList[ih].GetXaxis().SetTitleSize(0.052) #histList[ih].GetXaxis().SetTitleOffset(1.14) histList[ih].GetXaxis().SetTitleFont(42) histList[ih].GetXaxis().SetLabelFont(42) histList[ih].GetYaxis().SetLabelFont(42) histList[ih].GetXaxis().SetNdivisions(507) #histList[ih].GetXaxis().SetMoreLogLabels(); #histList[ih].GetXaxis().SetNoExponent(); #histList[ih].GetTGaxis().SetMaxDigits(3); # histList[ih].GetXaxis().SetTickSize(0.00) i = i + 1 pt = TPaveText(0.01, 0.92, 0.95, 0.96, "brNDC") pt.SetBorderSize(0) pt.SetTextAlign(12) pt.SetFillStyle(0) pt.SetTextFont(42) pt.SetTextSize(0.046) #text = pt.AddText(0.12,0.35,"CMS Internal 36 fb^{-1} (2016) ") text = pt.AddText(0.12, 0.35, "CMS Internal 41.5 fb^{-1} (2017) ") #text = pt.AddText(0.12,0.35,"CMS Internal 59.6 fb^{-1} (2018) ") #text = pt.AddText(0.6,0.5,"41.5 fb^{-1} (2017) ") cattxt = TLatex(0.20, 0.75, cat + ' ' + "category") cattxt.SetTextSize(0.06) cattxt.SetTextAlign(12) cattxt.SetNDC(1) cattxt.SetTextFont(42) pt.Draw() cattxt.Draw() leg.Draw() outputdirname = 'TFplots/' histname = outputdirname + pngname c.SaveAs(histname + '.png') c.SaveAs(histname + '.pdf')
def setStyle(): gStyle.SetPadBorderMode(0) gStyle.SetFrameBorderMode(0) gStyle.SetPadBottomMargin(0.12) gStyle.SetPadLeftMargin(0.12) gStyle.SetCanvasColor(ROOT.kWhite) gStyle.SetCanvasDefH(600) #Height of canvas gStyle.SetCanvasDefW(600) #Width of canvas gStyle.SetCanvasDefX(0) #POsition on screen gStyle.SetCanvasDefY(0) gStyle.SetPadTopMargin(0.05) gStyle.SetPadBottomMargin(0.15) #0.13); gStyle.SetPadLeftMargin(0.11) #0.16); gStyle.SetPadRightMargin(0.05) #0.02); # For the Pad: gStyle.SetPadBorderMode(0) gStyle.SetPadColor(ROOT.kWhite) gStyle.SetPadGridX(ROOT.kFALSE) gStyle.SetPadGridY(ROOT.kFALSE) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # For the frame: gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(0) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(ROOT.kTRUE) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(505, "XYZ") gStyle.SetPadTickX(1) # To get tick marks on the opposite side of the frame gStyle.SetPadTickY(1) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.05, "XYZ") gStyle.SetTitleXOffset(1.15) #0.9); gStyle.SetTitleYOffset(1.3) # => 1.15 if exponents gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.045, "XYZ") gStyle.SetPadBorderMode(0) gStyle.SetFrameBorderMode(0) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05) gStyle.SetOptStat(0) gStyle.SetOptTitle(0) gStyle.SetOptFit(1) NRGBs = 5 NCont = 255 stops = [0.00, 0.34, 0.61, 0.84, 1.00] red = [0.00, 0.00, 0.87, 1.00, 0.51] green = [0.00, 0.81, 1.00, 0.20, 0.00] blue = [0.51, 1.00, 0.12, 0.00, 0.00] stopsArray = array('d', stops) redArray = array('d', red) greenArray = array('d', green) blueArray = array('d', blue) TColor.CreateGradientColorTable(NRGBs, stopsArray, redArray, greenArray, blueArray, NCont) gStyle.SetNumberContours(NCont)
def gPeak(h=None, inDir=None, isData=None, lumi=None): # Set the stats off gStyle.SetOptStat(0) gStyle.SetOptTitle(0) gStyle.SetTickLength(0.03) # Get the log(E) histogram hFit = h.Clone() hFit.SetMarkerStyle(8) hFit.GetYaxis().SetTitleSize(0.062) hFit.GetYaxis().SetLabelSize(0.062) hFit.GetYaxis().SetTitleOffset(0.62) hFit.GetYaxis().SetTitle("1/E dN_{b jets}/dlog(E)") hFit.GetXaxis().SetLabelOffset(1) hFit.GetXaxis().SetTitle("log(E)") hFit.SetLineColor(kBlack) hFit.SetMarkerColor(kBlack) # Define the fit function and parameters ## Set limits minToFit = 3.6 maxToFit = 4.8 ## Set the function fitfunc = TF1("Gaussian fit", myFitFunc, minToFit, maxToFit, 3) ## Set normalization fitfunc.SetParameter(0, h.Integral()) fitfunc.SetParLimits(0, 0.1 * h.Integral(), 2.5 * h.Integral()) ## Set gaussian mean starting value and limits fitfunc.SetParameter(1, 4.2) fitfunc.SetParLimits(1, 4., 4.4) ## Set gaussian width starting value and limits fitfunc.SetParameter(2, 0.65) fitfunc.SetParLimits(2, 0.35, 0.95) ## Some cosmetics fitfunc.SetLineColor(kBlue) fitfunc.SetLineWidth(3) fitfunc.SetLineStyle(1) # Do the fit hFit.Fit("Gaussian fit", "EM", "", minToFit, maxToFit) # "E" stands for Minos, "M" for improving fit results # cf. ftp://root.cern.ch/root/doc/5FittingHistograms.pdf # Get Fit Parameters mean = fitfunc.GetParameter(1) meanErr = fitfunc.GetParError(1) sigma = fitfunc.GetParameter(2) sigmaErr = fitfunc.GetParError(2) chi2 = fitfunc.GetChisquare() NDF = fitfunc.GetNDF() chi2ndf = chi2 / NDF # Calculate the uncalibrated Energy peak position and its uncertainty Ereco = math.exp(mean) Err = abs(Ereco * meanErr) return Ereco, Err # Make a pull distribution hPull = h.Clone("Pull") for ibin in range(1, hFit.GetNbinsX() + 1): if hFit.GetBinCenter(ibin) > minToFit and hFit.GetBinCenter( ibin) <= maxToFit: binCont = hFit.GetBinContent(ibin) binErr = hFit.GetBinError(ibin) valIntegral = fitfunc.Eval(hFit.GetBinCenter(ibin)) if binErr != 0: pull = (binCont - valIntegral) / binErr hPull.SetBinContent(ibin, pull) hPull.SetBinError(ibin, 1) else: hPull.SetBinContent(ibin, 0.) hPull.SetBinError(ibin, 0.) hPull.SetMarkerStyle(8) hPull.GetYaxis().SetNdivisions(504) hPull.GetYaxis().SetTitleSize(0.140) hPull.GetYaxis().SetLabelSize(0.140) hPull.GetYaxis().SetTitleOffset(0.27) hPull.GetYaxis().SetTitle("#frac{Data-Fit}{Uncertainty}") hPull.GetXaxis().SetTitleSize(0.160) hPull.GetXaxis().SetLabelSize(0.150) hPull.GetXaxis().SetTitleOffset(0.8) hPull.GetXaxis().SetTitle("log(E)") hPull.SetLineColor(kBlack) hPull.SetMarkerColor(kBlack) # Plot the result ## Create a canvas with two pads for plotting your histograms c = TCanvas('c', 'c') p1 = ROOT.TPad('p1', 'p1', 0., 0.3, 1.0, 1.0) p1.SetBorderMode(0) p1.SetBorderSize(2) p1.SetTickx(1) p1.SetTicky(1) p1.SetTopMargin(0.13) p1.SetBottomMargin(0.02) p1.Draw() p2 = ROOT.TPad('p2', 'p2', 0., 0., 1.0, 0.3) p2.SetGridy() p2.SetBorderMode(0) p2.SetBorderSize(2) p2.SetTickx(1) p2.SetTicky(1) p2.SetTopMargin(0.05) p2.SetBottomMargin(0.3) p2.Draw() ## Draw in the pad of the fit p1.cd() hFit.GetXaxis().SetRangeUser(minToFit, maxToFit) hFit.Draw() ##Create some labels about the statistics caption1 = TLatex() caption1.SetTextSize(0.045) caption1.SetTextFont(42) caption1.SetNDC() caption1.DrawLatex(0.75, 0.8, 'Fit Results') caption1.DrawLatex(0.73, 0.76, '#mu = %4.2f #pm %4.2f' % (mean, meanErr)) caption1.DrawLatex(0.73, 0.72, '#sigma = %4.2f #pm %4.2f' % (sigma, sigmaErr)) caption1.DrawLatex(0.74, 0.67, '#chi^{2}/ndf = %4.2f' % (chi2ndf)) caption2 = TLatex() caption2.SetTextSize(0.05) caption2.SetTextFont(42) caption2.SetNDC() caption2.DrawLatex(0.35, 0.44, 'Uncalibrated Measurement') caption2.DrawLatex(0.35, 0.39, '<E_{b}> = (%4.2f #pm %4.2f) GeV' % (Ereco, Err)) ## CMS labels label1 = TLatex() label1.SetNDC() label1.SetTextFont(60) label1.SetTextSize(0.09) label1.SetTextAlign(31) label1.DrawLatex(0.19, 0.9, "CMS") label2 = TLatex() label2.SetNDC() label2.SetTextFont(42) label2.SetTextSize(0.0765) label2.SetTextAlign(11) if isData is True: label2.DrawLatex(0.2, 0.9, "#it{Preliminary}") else: label2.DrawLatex(0.2, 0.9, "#it{Simulation preliminary}") label3 = TLatex() label3.SetNDC() label3.SetTextFont(42) label3.SetTextSize(0.0765) label3.SetTextAlign(31) label3.DrawLatex(0.90, 0.9, "%d pb^{-1} (13 TeV)" % lumi) ## Edit the pad for the pull p2.cd() hPull.GetXaxis().SetRangeUser(minToFit, maxToFit) hPull.Draw("e") # save and delete sName = inDir + "/fit_" if isData is True: sName = sName + "Data" else: sName = sName + "MC" c.SaveAs(sName + ".pdf") c.SaveAs(sName + ".png") del c fitfunc.IsA().Destructor(fitfunc) del caption1, caption2 #all done here ;) return Ereco, Err
def initialize(fitresults=True, grid=False): gROOT.SetStyle("Plain") gStyle.SetOptFit() gStyle.SetOptStat(0) # For the canvas: gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasColor(kWhite) gStyle.SetCanvasDefH(600) #Height of canvas gStyle.SetCanvasDefW(600) #Width of canvas gStyle.SetCanvasDefX(0) #POsition on screen gStyle.SetCanvasDefY(0) # For the Pad: gStyle.SetPadBorderMode(0) gStyle.SetPadColor(kWhite) gStyle.SetPadGridX(False) gStyle.SetPadGridY(False) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # For the frame: gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(kWhite) gStyle.SetFrameFillStyle(1000) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) # For the histo: gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(2) gStyle.SetEndErrorSize(2) gStyle.SetErrorX(0.) gStyle.SetMarkerStyle(20) #For the fit/function: gStyle.SetOptFit(1) gStyle.SetFitFormat("5.4g") gStyle.SetFuncColor(2) gStyle.SetFuncStyle(1) gStyle.SetFuncWidth(1) #For the date: gStyle.SetOptDate(0) # For the statistics box: gStyle.SetOptFile(0) gStyle.SetOptStat(0) # To display the mean and RMS: SetOptStat("mr") gStyle.SetStatColor(kWhite) gStyle.SetStatFont(42) gStyle.SetStatFontSize(0.025) gStyle.SetStatTextColor(1) gStyle.SetStatFormat("6.4g") gStyle.SetStatBorderSize(1) gStyle.SetStatH(0.1) gStyle.SetStatW(0.15) # Margins: gStyle.SetPadTopMargin(0.05) gStyle.SetPadLeftMargin(0.16) gStyle.SetPadRightMargin(0.04) # top group adaption, original is 0.02 gStyle.SetPadBottomMargin(0.13) # For the Global title: gStyle.SetOptTitle(0) gStyle.SetTitleFont(42) gStyle.SetTitleColor(1) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05) # For the axis titles: gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.06, "XYZ") gStyle.SetTitleXOffset(0.9) gStyle.SetTitleYOffset(1.25) # For the axis labels: gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.05, "XYZ") #gStyle.SetLabelSize(0.04, "XYZ") # For the axis: gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(True) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX(1) # To get tick marks on the opposite side of the frame gStyle.SetPadTickY(1) # Change for log plots: gStyle.SetOptLogx(0) gStyle.SetOptLogy(0) gStyle.SetOptLogz(0) gStyle.SetPalette(1) #(1,0) # another top group addition gStyle.SetHatchesSpacing(1.0) # Postscript options: gStyle.SetPaperSize(20., 20.) # For graphs gStyle.SetErrorX(0) # suppress error along x if grid: gStyle.SetPadGridX(gridOn) gStyle.SetPadGridY(gridOn) gStyle.SetGridColor(kGray)
def initStyle(): gROOT.SetStyle("Plain") # For the canvas: gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasColor(kWhite) gStyle.SetCanvasDefH(700) #Height of canvas gStyle.SetCanvasDefW(700) #Width of canvas gStyle.SetCanvasDefX(0) #Position on screen gStyle.SetCanvasDefY(0) # For the line: gStyle.SetLineWidth(2) # For the Pad: gStyle.SetPadBorderMode(0) # gStyle.SetPadBorderSize(Width_t size = 1) gStyle.SetPadColor(kWhite) gStyle.SetPadGridX(True) gStyle.SetPadGridY(True) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # For the frame: gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(0) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) # For the histo: # gStyle.SetHistFillColor(1) # gStyle.SetHistFillStyle(0) gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(2) # gStyle.SetLegoInnerR(Float_t rad = 0.5) # gStyle.SetNumberContours(Int_t number = 20) gStyle.SetEndErrorSize(2) #gStyle.SetErrorMarker(20) gStyle.SetErrorX(0.) gStyle.SetMarkerStyle(8) gStyle.SetMarkerSize(1) #For the fit/function: gStyle.SetOptFit(0) gStyle.SetFitFormat("5.4g") gStyle.SetFuncColor(2) gStyle.SetFuncStyle(1) gStyle.SetFuncWidth(1) #For the date: gStyle.SetOptDate(0) # gStyle.SetDateX(Float_t x = 0.01) # gStyle.SetDateY(Float_t y = 0.01) # For the statistics box: gStyle.SetOptFile(0) gStyle.SetOptStat(0) # To display the mean and RMS: SetOptStat("mr") gStyle.SetStatColor(kWhite) gStyle.SetStatFont(42) gStyle.SetStatFontSize(0.025) gStyle.SetStatTextColor(1) gStyle.SetStatFormat("6.4g") gStyle.SetStatBorderSize(1) gStyle.SetStatH(0.1) gStyle.SetStatW(0.15) # gStyle.SetStatStyle(Style_t style = 1001) # gStyle.SetStatX(Float_t x = 0) # gStyle.SetStatY(Float_t y = 0) # Margins: gStyle.SetPadTopMargin(0.11) gStyle.SetPadBottomMargin(0.13) gStyle.SetPadLeftMargin(0.17) gStyle.SetPadRightMargin(0.07) # For the Global title: gStyle.SetOptTitle(0) gStyle.SetTitleFont(42) gStyle.SetTitleColor(1) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.04) # gStyle.SetTitleH(0) # Set the height of the title box # gStyle.SetTitleW(0) # Set the width of the title box #gStyle.SetTitleX(0.35) # Set the position of the title box #gStyle.SetTitleY(0.986) # Set the position of the title box # gStyle.SetTitleStyle(Style_t style = 1001) #gStyle.SetTitleBorderSize(0) # For the axis titles: gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.05, "XYZ") # gStyle.SetTitleXSize(Float_t size = 0.02) # Another way to set the size? # gStyle.SetTitleYSize(Float_t size = 0.02) gStyle.SetTitleXOffset(1.) gStyle.SetTitleYOffset(1.3) #gStyle.SetTitleOffset(1.1, "Y") # Another way to set the Offset # For the axis labels: gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.035, "XYZ") # For the axis: gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(True) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX( 1) # To get tick marks on the opposite side of the frame gStyle.SetPadTickY(1) # Change for log plots: gStyle.SetOptLogx(0) gStyle.SetOptLogy(0) gStyle.SetOptLogz(0) gStyle.SetPalette(1) #(1,0) # another top group addition gStyle.SetHatchesSpacing(1.0) # Postscript options: gStyle.SetPaperSize(20., 20.) #gStyle.SetPaperSize(TStyle.kA4) #gStyle.SetPaperSize(27., 29.7) #TGaxis.SetMaxDigits(3) # gStyle.SetLineScalePS(Float_t scale = 3) # gStyle.SetLineStyleString(Int_t i, const char* text) # gStyle.SetHeaderPS(const char* header) # gStyle.SetTitlePS(const char* pstitle) #gStyle.SetColorModelPS(1) # gStyle.SetBarOffset(Float_t baroff = 0.5) # gStyle.SetBarWidth(Float_t barwidth = 0.5) # gStyle.SetPaintTextFormat(const char* format = "g") # gStyle.SetPalette(Int_t ncolors = 0, Int_t* colors = 0) # gStyle.SetTimeOffset(Double_t toffset) # gStyle.SetHistMinimumZero(kTRUE) #gStyle.cd() print "TDR Style initialized"
def tdrstyle(): gROOT.SetStyle("Plain") gStyle.SetAxisColor(1, "XYZ") gStyle.SetCanvasColor(0) #gStyle.SetCanvasBorderSize(10) gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasDefH(700) gStyle.SetCanvasDefW(700) gStyle.SetCanvasDefX(0) gStyle.SetCanvasDefY(0) gStyle.SetFitFormat("5.4g") gStyle.SetFuncColor(2) gStyle.SetFuncStyle(1) gStyle.SetFuncWidth(1) gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillStyle(0) gStyle.SetFrameFillColor(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) # 0? gStyle.SetFrameLineWidth(1) # 1? gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) #gStyle.SetHistFillColor(1) #gStyle.SetHistFillStyle(0) gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(1) gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42,"XYZ") gStyle.SetLabelOffset(0.007,"XYZ") # 0.010? gStyle.SetLabelSize(0.05,"XYZ") # 0.04? gStyle.SetLegendBorderSize(0) gStyle.SetLegendFillColor(0) gStyle.SetLegendFont(42) gStyle.SetMarkerSize(1.0) gStyle.SetMarkerStyle(20) gStyle.SetLineColor(1) gStyle.SetLineWidth(2) #gStyle.SetLineScalePS(2) gStyle.SetOptDate(0) gStyle.SetOptFile(0) gStyle.SetOptFit(1) gStyle.SetOptStat(0) gStyle.SetOptTitle(0) #gStyle.SetOptLogx(0) #gStyle.SetOptLogy(0) #gStyle.SetOptLogz(0) gStyle.SetPadColor(0) gStyle.SetPadBorderMode(0) gStyle.SetPadBorderSize(10) gStyle.SetPadTopMargin(0.05) # 0.08? gStyle.SetPadBottomMargin(0.13) gStyle.SetPadLeftMargin(0.16) gStyle.SetPadRightMargin(0.03) # 0.05? gStyle.SetPadGridX(0) gStyle.SetPadGridY(0) gStyle.SetPadTickX(1) gStyle.SetPadTickY(1) gStyle.SetStatColor(0) gStyle.SetStatFont(42) gStyle.SetStatFontSize(0.025) gStyle.SetStatTextColor(1) gStyle.SetStatFormat("6.4g") gStyle.SetStatBorderSize(1) gStyle.SetStatH(0.1) gStyle.SetStatW(0.15) #gStyle.SetStatX(0) #gStyle.SetStatY(0) #gStyle.SetTextSize(0.055) gStyle.SetTextFont(42) gStyle.SetTitleBorderSize(0) gStyle.SetTitleColor(1) gStyle.SetTitleFont(42) gStyle.SetTitleColor(1,"XYZ") gStyle.SetTitleFont(42,"XYZ") gStyle.SetTitleSize(0.06,"XYZ") # 0.05? #gStyle.SetTitleOffset(1.4,"XYZ") gStyle.SetTitleOffset(0.9,"X") gStyle.SetTitleOffset(1.20,"Y") gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05) gStyle.SetTitleTextColor(1) #gStyle.SetTitleH(0) #gStyle.SetTitleW(0) #gStyle.SetTitleX(0) #gStyle.SetTitleY(0.985) #gStyle.SetTitleStyle(1001) gStyle.SetPalette(1) #gStyle.SetNdivisions(510, "XYZ") # 505? gStyle.SetNdivisions(505, "XYZ") gStyle.SetEndErrorSize(2) # 2? #gStyle.SetErrorMarker(20) #gStyle.SetErrorX(0.) #gStyle.SetPaperSize(20.,20.) gStyle.SetStripDecimals(1) gStyle.SetTickLength(0.03, "XYZ") return 1
def main(): #gROOT.SetBatch(True) gROOT.SetBatch(False) gStyle.SetOptTitle(1) # Title for histograms gStyle.SetPadRightMargin(0.15) gStyle.SetCanvasDefW(800) gStyle.SetTickLength(0, "X") gStyle.SetTickLength(0, "Y") maxUInt = 4294967295 # Maximum integer to be used. Default value when the decoder cannot decode anything #maxTime = 12800 maxTime = 3200 # Maximum time to be displayed: ignore for now the four-frames # MicroBooNE channel map ChMap = ubmap.ChannelMap( "/home/jcrespo/MicroBooNE/ubelec01/MicroBooNEChannelMap/MicroBooNEChannelMap.txt" ) crateChain = [] # List holding the TChain from each crate for f in xrange(1, len(sys.argv)): crateChain.append(TChain("tpcfifo_tpcfifo_tree")) crateChain[-1].AddFile(sys.argv[f]) print 'SN stream file ', crateChain[-1].GetFile().GetName() # Get crate number from file name crate = int(re.findall("\d+", sys.argv[f])[0]) print 'Crate ', crate if f != crate: print 'ERROR: Expected crate {} but got crate {}'.format(f, crate) sys.exit() # Get run number from file name run = int(re.findall("\d+", sys.argv[f])[-2]) print 'Run ', run # Add check so all files have same run number # Canvas for event display. It will be renamed later canvas = TCanvas("c", "c") canvas.Divide(1, 3) # 2-D histograms depicting planes hU = TH2I("hU", "hU", 2400, 0, 2400, maxTime, 0, maxTime) hV = TH2I("hV", "hV", 2400, 0, 2400, maxTime, 0, maxTime) hY = TH2I("hY", "hY", 3456, 0, 3456, maxTime, 0, maxTime) # Color scale maxima and minima. Roughly based on typical baseline +/- 100 ADC hU.SetMaximum(2148) hU.SetMinimum(1948) hV.SetMaximum(2148) hV.SetMinimum(1948) hY.SetMaximum(575) hY.SetMinimum(375) # List holding the current entry index for each crate crateEntry = [0] * len(crateChain) # Align all crates to show this frame first frameReference = 0 # While TChains have entries while WithinLimits(crateEntry, crateChain): hU.Reset() hV.Reset() hY.Reset() for crate, chain in enumerate(crateChain): frame = -1 frameMissing = False while frame != frameReference: chain.GetEntry(crateEntry[crate]) fifo = chain.tpcfifo_tpcfifo_branch frame = fifo.event_frame_number() event = fifo.event_number() if ((frame < frameReference) or (event == maxUInt) or (frame == maxUInt)): crateEntry[crate] += 1 if frame > frameReference: frameMissing = True break if frameMissing: continue crate += 1 # enumerate starts from 0 print 'SN stream crate {} event {} frame {}'.format( crate, event, frame) last_ch = 0 # last channel used xmitAddr = 3 # XMIT address # First and last TPC crates have the XMIT in a different slot if crate == 1: xmitAddr = 7 elif crate == 9: xmitAddr = 4 modId = xmitAddr + 1 # placeholder until decoder is able to handle this modAddr = xmitAddr + 1 # placeholder until decoder is able to handle this # tpcfifo is a vector of ROIs without channel separation for roi in fifo: # roi is a fifo object (defined at core/DataFormat) ch = roi.channel_number() # Hack: detect module change when there is a negative difference between channel numbers if ch - last_ch < 0: # Not completely safe modId += 1 modAddr += 1 last_ch = ch t0SN = roi.readout_sample_number_RAW() #modId = roi.module_id() # decoder does not decode this yet #modAddr = roi.module_address() # decoder does not decode this yet # print 'ROI found in crate {}, module {}/slot {}, channel {} at time {} with {} samples'.format( # crate, modId, modAddr, ch, t0SN, roi.size() # ) plane, larch = ChMap.CrateFEMCh2PlaneWire(crate, modAddr, ch) # Correct for offset due to presamples + lost ADC in NU stream due to channel header? presamples = 7 # Hardcoded t0SN = t0SN - presamples - 1 for s in xrange(roi.size()): tdc = t0SN + s adc = roi[s] if plane == "Y": hY.Fill(larch, tdc, adc) elif plane == "U": hU.Fill(larch, tdc, adc) elif plane == "V": hV.Fill(larch, tdc, adc) #if crate != 9: # continue # If crate counter did not reach 9, it means one or more crates were bad. canvasNameTitle = "canvas_run%d_frame%d" % (run, frame) canvas.SetName(canvasNameTitle) canvas.SetTitle(canvasNameTitle) canvas.cd(1) hU.SetTitle( "Plane U Run %d Frame %d; Channel; Time (#times 0.5 #mus)" % (run, frame)) hU.Draw("colz") canvas.Update() canvas.cd(2) hV.SetTitle( "Plane V Run %d Frame %d; Channel; Time (#times 0.5 #mus)" % (run, frame)) hV.Draw("colz") canvas.Update() canvas.cd(3) hY.SetTitle( "Plane Y Run %d Frame %d; Channel; Time (#times 0.5 #mus)" % (run, frame)) hY.Draw("colz") canvas.Update() print "Enter any key to go to next frame" dummy = sys.stdin.readline() frameReference += 1 # End of loop over SN events sys.exit()
def setStyle(): gStyle.SetPadBorderMode(0) gStyle.SetFrameBorderMode(0) gStyle.SetPadBottomMargin(0.12) gStyle.SetPadLeftMargin(0.12) gStyle.SetCanvasColor(ROOT.kWhite) gStyle.SetCanvasDefH(600) #Height of canvas gStyle.SetCanvasDefW(600) #Width of canvas gStyle.SetCanvasDefX(0) #POsition on screen gStyle.SetCanvasDefY(0) gStyle.SetPadTopMargin(0.05) gStyle.SetPadBottomMargin(0.15) #0.13); gStyle.SetPadLeftMargin(0.15) #0.16); gStyle.SetPadRightMargin(0.05) #0.02); # For the Pad: gStyle.SetPadBorderMode(0) # gStyle.SetPadBorderSize(Width_t size = 1); gStyle.SetPadColor(ROOT.kWhite) gStyle.SetPadGridX(ROOT.kFALSE) gStyle.SetPadGridY(ROOT.kFALSE) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # For the frame: gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(0) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(1) gStyle.SetFrameLineWidth(1) gStyle.SetAxisColor(1, "XYZ") gStyle.SetStripDecimals(ROOT.kTRUE) gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(505, "XYZ") gStyle.SetPadTickX(1) # To get tick marks on the opposite side of the frame gStyle.SetPadTickY(1) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) gStyle.SetTitleColor(1, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.05, "XYZ") # gStyle.SetTitleXSize(Float_t size = 0.02); # Another way to set the size? # gStyle.SetTitleYSize(Float_t size = 0.02); gStyle.SetTitleXOffset(1.15) #0.9); gStyle.SetTitleYOffset(1.3) # => 1.15 if exponents gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.045, "XYZ") gStyle.SetPadBorderMode(0) gStyle.SetFrameBorderMode(0) gStyle.SetTitleTextColor(1) gStyle.SetTitleFillColor(10) gStyle.SetTitleFontSize(0.05)
def setgstyle(): # Zero horizontal error bars gStyle.SetErrorX(0) # For the canvas gStyle.SetCanvasBorderMode(0) gStyle.SetCanvasColor(0) gStyle.SetCanvasDefH(800) # Height of canvas gStyle.SetCanvasDefW(800) # Width of canvas gStyle.SetCanvasDefX(0) # Position on screen gStyle.SetCanvasDefY(0) # For the frame gStyle.SetFrameBorderMode(0) gStyle.SetFrameBorderSize(1) gStyle.SetFrameFillColor(1) gStyle.SetFrameFillStyle(0) gStyle.SetFrameLineColor(1) gStyle.SetFrameLineStyle(0) gStyle.SetFrameLineWidth(1) # For the Pad gStyle.SetPadBorderMode(0) gStyle.SetPadColor(0) gStyle.SetPadGridX(False) gStyle.SetPadGridY(False) gStyle.SetGridColor(0) gStyle.SetGridStyle(3) gStyle.SetGridWidth(1) # Margins gStyle.SetPadTopMargin(0.08) gStyle.SetPadBottomMargin(0.19) gStyle.SetPadLeftMargin(0.17) #gStyle.SetPadRightMargin(0.07) # For the histo: gStyle.SetHistLineColor(1) gStyle.SetHistLineStyle(0) gStyle.SetHistLineWidth(2) gStyle.SetMarkerSize(1.4) gStyle.SetEndErrorSize(4) # For the statistics box: gStyle.SetOptStat(0) # For the axis gStyle.SetAxisColor(1, "XYZ") gStyle.SetTickLength(0.03, "XYZ") gStyle.SetNdivisions(510, "XYZ") gStyle.SetPadTickX(1) gStyle.SetPadTickY(1) gStyle.SetStripDecimals(False) # For the axis labels and titles gStyle.SetTitleColor(1, "XYZ") gStyle.SetLabelColor(1, "XYZ") gStyle.SetLabelFont(42, "XYZ") gStyle.SetLabelOffset(0.007, "XYZ") gStyle.SetLabelSize(0.045, "XYZ") gStyle.SetTitleFont(42, "XYZ") gStyle.SetTitleSize(0.06, "XYZ") # For the legend gStyle.SetLegendBorderSize(0)
#!/usr/bin/env python from ROOT import TCanvas, TFile, gPad, gStyle gStyle.SetOptStat(0) gStyle.SetErrorX(0) gStyle.SetFrameLineWidth(1) gStyle.SetTitleSize(0.045, "x") gStyle.SetTitleSize(0.045, "y") gStyle.SetMarkerSize(1) gStyle.SetLabelOffset(0.015, "x") gStyle.SetLabelOffset(0.02, "y") gStyle.SetTickLength(-0.02, "x") gStyle.SetTickLength(-0.02, "y") gStyle.SetTitleOffset(1.1, "x") gStyle.SetTitleOffset(1.0, "y") def saveCanvas(canvas, title): format_list = ["png", ".pdf", ".root"] for fileFormat in format_list: canvas.SaveAs(title + fileFormat) def kinematic_plots(var1): fileo2 = TFile("../codeHF/AnalysisResults_O2.root") cres = TCanvas("cres", "resolution distribution") cres.SetCanvasSize(1600, 1200) cres.Divide(1, 3) sig = fileo2.Get("hf-task-jpsi-mc/h%sSig" % var1) bkg = fileo2.Get("hf-task-jpsi-mc/h%sBg" % var1) gen = fileo2.Get("hf-task-jpsi-mc/h%sGen" % var1)