#!/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


if __name__ == "__main__":

	# ================ Display (Canvas, pads ...) =================== #
	#	Canvas
	gStyle.SetCanvasColor		( 10		)	# Background color (white)
	# gStyle.SetCanvasDefH(500)					# Default = 500
	# gStyle.SetCanvasDefW(700)					# Default = 700

	#	Output size
	# gStyle.SetPaperSize			( 20., 24.	)	# Default = 20.,26.
	# For eps:
	gStyle.SetPaperSize			( 12., 17.	)	# 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.13)
	gStyle.SetPadBottomMargin	(0.13)
	gStyle.SetPadRightMargin		(0.05)
	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.06


	# ================ 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		= 'run_50691_to_50705.root'

	HistName 	= 'Graph'
	# OutputFile	= 'output.ps'
	#	eps is preferable because one can change the size of the output
	OutputFile	= '../EdgeScan.eps'

	Canv = TCanvas()

	#	Axis range
	# MinX = 0.0
	# MaxX = 10
	# MinY = -100.
	# MaxY = 100.
	gStyle.SetOptStat			( 0	)	
	gStyle.SetOptFit			( 0	)	

	Title	= ';P [MeV];M scintillator counts, normalized'
	F = TFile(File)
	
	H	= F.Get(HistName)

	H.Draw("AP")

	H.GetHistogram().SetNdivisions(505)

	#	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)