#!/usr/bin/python # -*- coding: iso-8859-15 -*- 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 # import psyco # psyco.full() # from time import sleep # from optparse import OptionParser # from ROOT_Tools import RootHandler # from CommandLineMod import CommandLine if __name__ == "__main__": gStyle.SetTitleBorderSize ( 0 ) # duh gStyle.SetPadBorderMode ( 0 ) gStyle.SetOptStat ( 111111 ) # Good standard stats display. gStyle.SetOptFit ( 1111 ) # Display fit info if available. gStyle.SetMarkerStyle ( 3 ) # double cross. gStyle.SetMarkerSize ( 1.0 ) # double cross. gStyle.SetOptTitle ( 1 ) # Display histogram titles. gStyle.SetCanvasColor ( 10 ) # Background color (white) gStyle.SetPadColor ( 10 ) # Background color (white) gStyle.SetFillColor ( 10 ) # Background color (white) gStyle.SetHistFillColor ( 10 ) # Background color (white) gStyle.SetFrameFillColor ( 10 ) # Background color (white) # gStyle.SetFuncColor ( 10 ) # Background color (white) gStyle.SetStatColor ( 10 ) # Background color (white) gStyle.SetTextFont ( 132 ) gStyle.SetPadLeftMargin (0.11) gStyle.SetPadBottomMargin (0.13) gStyle.SetPadTopMargin (0.13) gStyle.SetPadRightMargin (0.05) gStyle.SetTitleFillColor ( 10 ) # Background color (white) gStyle.SetTitleFontSize ( 0.08 ) # Title Font Size gStyle.SetTitleX ( 0.05 ) # Title box width gStyle.SetTitleW ( 0.70 ) # Title box width gStyle.SetTitleH ( 0.09 ) # Title box width gStyle.SetTitleBorderSize ( 0 ) gStyle.SetStatW ( 0.2 ) # Statistic box width gStyle.SetStatH ( 0.25 ) # Statistic box width gStyle.SetStatX ( 0.65 ) # Statistic box width gStyle.SetStatY ( 0.95 ) # Statistic box width gStyle.SetStatBorderSize ( 1 ) gStyle.SetLegendBorderSize ( 1 ) gStyle.SetPalette ( 1 ) # Nicer colour scale for 2D histograms. gStyle.SetPaperSize ( 20., 24. ) gStyle.SetHistLineWidth ( 1 ) gStyle.SetLabelFont(132) gStyle.SetLabelFont(132,"X") gStyle.SetLabelFont(132,"Y") gStyle.SetLabelFont(132,"Z") gStyle.SetLabelFont(132,"T") gStyle.SetTitleFont(132) gStyle.SetTitleFont(132,"X") gStyle.SetTitleFont(132,"Y") gStyle.SetTitleFont(132,"Z") gStyle.SetTitleFont(132,"T") gStyle.SetLabelSize(0.09) gStyle.SetLabelSize(0.09,"X") gStyle.SetLabelSize(0.09,"Y") gStyle.SetLabelSize(0.09,"Z") gStyle.SetLabelSize(0.09,"T") gStyle.SetTitleSize(0.09 ) gStyle.SetTitleSize(0.09,"X") gStyle.SetTitleSize(0.09,"Y") gStyle.SetTitleSize(0.09,"Z") gStyle.SetTitleSize(0.09,"T") gStyle.SetTextSize (0.09 ) gStyle.SetTextFont(132) gStyle.SetStatFont(132) gROOT.SetBatch() gROOT.ForceStyle() # No Stats ! gStyle.SetOptStat ( 0 ) # Good standard stats display. gStyle.SetOptFit ( 1111 ) # Display fit info if available. gStyle.SetTitleW ( 0.70 ) # Title box width gStyle.SetPaperSize(13,9) gStyle.SetCanvasDefW(700) # Defaults gStyle.SetCanvasDefH(500) # Defaults # We can have many files in input # FileList = sys.argv[1].split(',') Filename = 'DecayParamVsResolution.dat' # HistName = sys.argv[2] # OutputFile = sys.argv[3] Canv = TCanvas() # Is it correlated or uncorrelated fit ? Correlated = True Correlated = False Title = '' # Leg = TLegend(0.7, 0.7,0.9,0.9) MinX = 1.0 MaxX = 4.5 # MinY = 3620 # MaxY = 3830 # Title = [';Drift time [#mu s];Drift distance [ns]',';Drift time [#mu s];Residuals [#mu m]'] # LegName = ['Before','After'] # File.open('Filename') # # Line = File.readline(); # Line = File.readline(); # for t,Type in enumerate(['p','ct']): for t,Type in enumerate(['p','ct']): DataPoints=[] DiffPoints=[] DataErrors=[] DiffErrors=[] OutputFile = '../USstopsResol_'+Type+'.eps' Data = TGraphErrors(); Diff = TGraphErrors(); MC = TGraphErrors(); Graphs = [Data,Diff,MC] # Files = ['h77datafit'+Type+'30tag.gp','h77mcfit'+Type+'30tag.gp','datamc-diffs-'+Type+'30ag.txt'] Files = ['h77datafit'+Type+'30tag.gp','datamc-diffs-'+Type+'30ag.txt'] for f,F in enumerate(Files): i = 0 print F for line in open(F): if ( line[0] == "#" ): continue # testfloat = float(line.split("\t")) Col = line.split(" ") Col = map(float,Col) if (f < 1): Graphs[f].SetPoint(i, (1/sin(acos(Col[0]))), Col[5]) Graphs[f].SetPointError(i, 0, Col[8]) DataPoints.append(Col[5]) DataErrors.append(Col[8]) else: Graphs[f].SetPoint(i, (1/sin(acos(Col[0]))), Col[6]) Graphs[f].SetPointError(i, 0, Col[7]) Graphs[f+1].SetPoint(i, (1/sin(acos(Col[0]))), DataPoints[i] - Col[6]) Graphs[f+1].SetPointError(i, 0, sqrt(DataErrors[i]*DataErrors[i] - Col[7]*Col[7])) i = i + 1 Canv.Clear() Canv = TCanvas() Canv.cd() MainPad = TPad("MainPad","MainPad", 0., 0.5, 1., 1.) # MainPad.SetLogy() MainPad.Draw() MainPad.SetBottomMargin (0.0) MainPad.SetGrid() DiffPad = TPad("DiffPad", "DiffPad", 0., 0.0, 1., 0.5) DiffPad.Draw() DiffPad.SetGrid() DiffPad.SetTopMargin (0.0) DiffPad.SetBottomMargin (0.20) MainPad.cd() Data.SetLineColor(4) Data.SetLineWidth(1) Data.SetMarkerColor(4) Data.SetMarkerStyle(4) Data.SetMarkerSize(0.7) Data.GetHistogram().SetAxisRange(MinX,MaxX,'X') if ( t == 0 ): Data.GetHistogram().SetAxisRange(0.03,0.255,'Y') Leg = TLegend(0.7, 0.10,0.9,0.40) else: Data.GetHistogram().SetAxisRange(0.011,0.034,'Y') Leg = TLegend(0.7, 0.57,0.9,0.87) Data.GetHistogram().SetNdivisions(505,'Y') Data.SetTitle(';;Width #sigma') Data.GetHistogram().SetTitleOffset(0.6,'Y') Data.GetHistogram().GetYaxis().CenterTitle() Data.Draw('AP') MC.SetLineColor(2) MC.SetMarkerColor(2) MC.SetMarkerStyle(5) MC.SetMarkerSize(0.7) MC.Draw('sameP') TPTMC = TPaveText( ) TPTMC.SetX1NDC(0.25) TPTMC.SetX2NDC(0.45) TPTMC.SetY1NDC(0.70) TPTMC.SetY2NDC(0.87) TTMC = TPTMC.AddText('30-35 MeV/c') TPTMC.SetBorderSize(1) TTMC.SetTextColor(1) TTMC.SetTextAlign(22) TPTMC.Draw() Leg.AddEntry(Data, 'Data', 'p') Leg.AddEntry(MC, 'MC', 'p') Leg.Draw() DiffPad.cd() Diff.Draw('AP') if ( t == 0 ): Diff.GetHistogram().SetAxisRange(-0.016,0.016,'Y') else: Diff.GetHistogram().SetAxisRange(-0.008,0.008,'Y') Diff.GetHistogram().SetAxisRange(MinX,MaxX,'X') Diff.GetHistogram().SetNdivisions(505,'Y') Diff.SetTitle(';1/sin#theta;Data-MC difference #Delta#sigma') Diff.GetHistogram().SetTitleOffset(0.7,'Y') Diff.GetHistogram().GetXaxis().CenterTitle() Diff.GetHistogram().GetYaxis().CenterTitle() Canv.Print(OutputFile)