Parse bin specifications from split list of arguments ARGS.
NDIM is 1 or 2, and AXIS is 0 or 1, for the x or y axis.
Examples:
>>> from PyAnalysisUtils import pydraw
>>> pydraw._globals = globals()
>>> import ROOT
>>> ROOT.gPad.Range(0, 1,2,3)
>>> b = _get_bins (["50", "10", "100"], 1, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 10.0 100.0 0
>>> b = _get_bins ([], 1, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 0 1 1
>>> b = _get_bins (["!", "10"], 1, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 10.0 11.0 1
>>> b = _get_bins (["!", "!", "10"], 1, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 0 10.0 0
>>> scale = 10
>>> b = _get_bins (["50", "0", "2*scale"], 1, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 0.0 20.0 0
>>> b = _get_bins ([], 2, 0)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 0.0 2.0 1
>>> b = _get_bins ([], 2, 1)
>>> print (b.nbins, b.lo, b.hi, b.rebin)
50 1.0 3.0 1
>>> b = _get_bins ([], 2, 2)
Traceback (most recent call last):
...
AssertionError
Definition at line 995 of file pydraw.py.
996 """Parse bin specifications from split list of arguments ARGS.
997 NDIM is 1 or 2, and AXIS is 0 or 1, for the x or y axis.
1000 >>> from PyAnalysisUtils import pydraw
1001 >>> pydraw._globals = globals()
1003 >>> ROOT.gPad.Range(0, 1,2,3)
1004 >>> b = _get_bins (["50", "10", "100"], 1, 0)
1005 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1007 >>> b = _get_bins ([], 1, 0)
1008 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1010 >>> b = _get_bins (["!", "10"], 1, 0)
1011 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1013 >>> b = _get_bins (["!", "!", "10"], 1, 0)
1014 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1017 >>> b = _get_bins (["50", "0", "2*scale"], 1, 0)
1018 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1020 >>> b = _get_bins ([], 2, 0)
1021 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1023 >>> b = _get_bins ([], 2, 1)
1024 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1026 >>> b = _get_bins ([], 2, 2)
1027 Traceback (most recent call last):
1032 g = copy.copy (_globals)
1037 if len(args) >= 1
and args[0] !=
'!' and len(args[0]) > 0:
1038 bins.nbins = int (eval (args[0], g))
1043 if len(args) >= 2
and args[1] !=
'!' and len(args[1]) > 0:
1044 bins.lo = float (eval (args[1], g))
1047 if len(args) >= 3
and args[2] !=
'!' and len(args[2]) > 0:
1048 bins.hi = float (eval (args[2], g))
1051 if bins.hi <= bins.lo:
1054 bins.hi = bins.lo + 1
1056 bins.lo = ROOT.gPad.GetUxmin()
1057 bins.hi = ROOT.gPad.GetUxmax()
1059 bins.lo = ROOT.gPad.GetUymin()
1060 bins.hi = ROOT.gPad.GetUymax()