#following is adapted from Rob's MyColors.C script
from ROOT import TColor
from array import array
def nice_colours(cStyle):
    #usage: gStyle = nice_colours(gStyle)

    nc = 240  #number of colours
    nr = 6    #"       " ranges

    my_colours = array('i',[])
    n = float(nc)/float(nr)
    ni = int(n)

    # white->blue
    for i in range(ni):
        r, g, b = 1.0-i/n, 1.0-i/n, 1.0
        my_colours.append(TColor.GetColor(r,g,b))
    # blue->cyan
    for i in range(ni):
        r, g, b = 0.0, i/n, 1.0
        my_colours.append(TColor.GetColor(r,g,b))
    # cyan->green
    for i in range(ni):
        r, g, b = 0.0, 1.0, 1.0-i/n
        my_colours.append(TColor.GetColor(r,g,b))
    # green->yellow
    for i in range(ni):
        r, g, b = i/n, 1.0, 0.0
        my_colours.append(TColor.GetColor(r,g,b))
    # yellow->red
    for i in range(ni):
        r, g, b = 1.0, 1.0-i/n, 0.0
        my_colours.append(TColor.GetColor(r,g,b))
    # red->black
    for i in range(ni):
        r, g, b = 1.0-i/n, 0.0, 0.0
        my_colours.append(TColor.GetColor(r,g,b))

    cStyle.SetPalette(240,my_colours)
    return cStyle