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 997 of file pydraw.py.
998 """Parse bin specifications from split list of arguments ARGS.
999 NDIM is 1 or 2, and AXIS is 0 or 1, for the x or y axis.
1002 >>> from PyAnalysisUtils import pydraw
1003 >>> pydraw._globals = globals()
1005 >>> ROOT.gPad.Range(0, 1,2,3)
1006 >>> b = _get_bins (["50", "10", "100"], 1, 0)
1007 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1009 >>> b = _get_bins ([], 1, 0)
1010 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1012 >>> b = _get_bins (["!", "10"], 1, 0)
1013 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1015 >>> b = _get_bins (["!", "!", "10"], 1, 0)
1016 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1019 >>> b = _get_bins (["50", "0", "2*scale"], 1, 0)
1020 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1022 >>> b = _get_bins ([], 2, 0)
1023 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1025 >>> b = _get_bins ([], 2, 1)
1026 >>> print (b.nbins, b.lo, b.hi, b.rebin)
1028 >>> b = _get_bins ([], 2, 2)
1029 Traceback (most recent call last):
1034 g = copy.copy (_globals)
1039 if len(args) >= 1
and args[0] !=
'!' and len(args[0]) > 0:
1040 bins.nbins = int (eval (args[0], g))
1045 if len(args) >= 2
and args[1] !=
'!' and len(args[1]) > 0:
1046 bins.lo = float (eval (args[1], g))
1049 if len(args) >= 3
and args[2] !=
'!' and len(args[2]) > 0:
1050 bins.hi = float (eval (args[2], g))
1053 if bins.hi <= bins.lo:
1056 bins.hi = bins.lo + 1
1058 bins.lo = ROOT.gPad.GetUxmin()
1059 bins.hi = ROOT.gPad.GetUxmax()
1061 bins.lo = ROOT.gPad.GetUymin()
1062 bins.hi = ROOT.gPad.GetUymax()