#!/usr/bin/python # -*- coding: iso-8859-15 -*- # Anthony Hillairet # April 2009 import os,sys # import getopt ##maybe it's supposed to be sys.argv[:] ... maybe tmpargv = sys.argv sys.argv = [ '-n' ] from ROOT import * sys.argv = tmpargv def FuncFit( x, par ): return ( x[0] * par[0] + par[1] ) if __name__ == "__main__": # ================ Display (Canvas, pads ...) =================== # # Canvas gStyle.SetCanvasColor ( 10 ) # Background color (white) gStyle.SetCanvasDefH(500) # Default = 500 gStyle.SetCanvasDefW(500) # Default = 700 # Output size # gStyle.SetPaperSize ( 20., 24. ) # Default = 20.,26. # For eps: gStyle.SetPaperSize ( 7., 7. ) # Default = 20.,26. # Pads gStyle.SetPadBorderMode ( 0 ) gStyle.SetPadColor ( 10 ) # Background color (white) # gStyle.SetPadLeftMargin (0.13) # gStyle.SetPadBottomMargin (0.13) # gStyle.SetPadRightMargin (0.14) # gStyle.SetPadTopMargin (0.05) gStyle.SetPadLeftMargin (0.14) gStyle.SetPadBottomMargin (0.13) gStyle.SetPadRightMargin (0.10) gStyle.SetPadTopMargin (0.05) # Miscellaneous gStyle.SetFillColor ( 10 ) # Background color (white) gStyle.SetFrameFillColor ( 10 ) # Background color (white) # ================ Fonts variable ================= # Font = 132 # Times roman FontSize = 0.05 # ================ Plots =================== # gStyle.SetOptTitle ( 1 ) # Display histogram titles. gStyle.SetMarkerStyle ( 5 ) # Cross gStyle.SetMarkerSize ( 1 ) # size gStyle.SetPalette ( 1 ) # Nicer colour scale for 2D histograms. gStyle.SetHistLineWidth ( 2 ) # ================ Stat Box =================== # # Display name of the histogram, entries, mean, RMS, underflow, overflow gStyle.SetOptStat ( 111111 ) # Good standard stats display. gStyle.SetOptFit ( 1111 ) # Display fit info if available. gStyle.SetStatColor ( 10 ) # Background color (white) gStyle.SetStatX ( 0.99 ) # Statistic box X gStyle.SetStatY ( 0.98 ) # Statistic box Y gStyle.SetStatW ( 0.25 ) # Statistic box width gStyle.SetStatH ( 0.3 ) # Statistic box height gStyle.SetStatBorderSize ( 1 ) gStyle.SetStatFont(Font) # No Stat box ! # gStyle.SetOptStat ( 0 ) # Good standard stats display. # gStyle.SetOptFit ( 0 ) # Display fit info if available. # ================ Title =================== # gStyle.SetTitleFillColor ( 10 ) # Background color (white) gStyle.SetTitleX ( 0.10 ) # Title box Y gStyle.SetTitleY ( 0.10 ) # Title box Y gStyle.SetTitleW ( 0.50 ) # Title box width gStyle.SetTitleH ( 0.09 ) # Title box height gStyle.SetTitleBorderSize ( 1 ) gStyle.SetTitleFont(Font) gStyle.SetTitleFont(Font, "X") gStyle.SetTitleFont(Font, "Y") gStyle.SetTitleFont(Font, "Z") gStyle.SetTitleFont(Font, "T") gStyle.SetTitleSize(FontSize ) gStyle.SetTitleSize(FontSize,"X") gStyle.SetTitleSize(FontSize,"Y") gStyle.SetTitleSize(FontSize,"Z") gStyle.SetTitleSize(FontSize,"T") # ================ Labels =================== # gStyle.SetLabelFont(Font) gStyle.SetLabelFont(Font, "X") gStyle.SetLabelFont(Font, "Y") gStyle.SetLabelFont(Font, "Z") gStyle.SetLabelFont(Font, "T") gStyle.SetLabelSize(FontSize) gStyle.SetLabelSize(FontSize,"X") gStyle.SetLabelSize(FontSize,"Y") gStyle.SetLabelSize(FontSize,"Z") gStyle.SetLabelSize(FontSize,"T") gStyle.SetStripDecimals(kFALSE) # =============== Text & Legends ================== # gStyle.SetTextFont(Font) gStyle.SetLegendBorderSize ( 1 ) # ============================================= # # Do not display the canvas in a window, plot in a postscript gROOT.SetBatch() # Needed to make sure that all the gStyle parameters are passed to the plots gROOT.ForceStyle() # We can have many files in input File = 'sum452-1_21-1_clk_raw.root' HistName = 'Michel/Spectrum_Selected' # OutputFile = 'output.ps' # eps is preferable because one can change the size of the output OutputFile = '../Derivative_PmuXi.eps' Canv = TCanvas() # Axis range MinX = 0.01 MaxX = 1.0 # MinY = -100. # MaxY = 100. gStyle.SetOptStat ( 0 ) gStyle.SetOptFit ( 0 ) Title = ';x;cos#theta' F = TFile(File) HTmp = F.Get(HistName) gStyle.SetTitleSize(FontSize+0.01, "X") gStyle.SetTitleSize(FontSize+0.01, "Y") Canv.SetTheta(30.0) Canv.SetPhi(60.0) H = TH2D ( "TheH2D", HTmp.GetTitle(), HTmp.GetNbinsX(), 0.,1., HTmp.GetNbinsY(), -1.0,1.0) for b in range(0,HTmp.GetNbinsX()*HTmp.GetNbinsY()): H.SetBinContent(b, HTmp.GetBinContent(b)) H.Draw("SURF2") H.SetTitleOffset( 1.35, 'X') H.SetTitleOffset( 1.15, 'Y') H.SetNdivisions(505) H.SetNdivisions(505,'Y') # Plots title H.SetTitle(Title) # f1 = TF1("f1","gaus", 29.0,30.6) # f1.SetParameter(0,1.2) # f1.SetParameter(1,29.6) # f1.SetParameter(2,0.12569) # f1.SetLineWidth(1) # f1.SetLineColor(3) # f1.Draw("same") # Change the axis range H.SetAxisRange(MinX,MaxX,'X') # H.SetAxisRange(MinY,MaxY,'Y') # Change the position of the axis labels # H.SetTitleOffset( 1.2, 'Y') # If you want to fit a straight line or something else # H.Fit('pol1', "Q","", 20.0, 150.0) # For Postscript # Canv.Print(OutputFile,"Landscape") # For eps Canv.Print(OutputFile)