-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsamplecolor.py
executable file
·178 lines (150 loc) · 7.37 KB
/
samplecolor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#!/usr/bin/env python2.7
"""Based on Will's helperfunctons.py, get the colors associated with samples"""
import ROOT
from ROOT import TColor
import sys, argparse
def run():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('samples', nargs="*")
parser.add_argument('-d', '--isdan', action='store_true')
args = parser.parse_args(sys.argv[1:])
samples = args.samples
for sample in samples:
printRGB(sample, args.isdan)
# allow piping
if len(samples) == 0 and not sys.stdin.isatty():
for line in sys.stdin:
printRGB(line.strip(), args.isdan)
def getColour(name, isDan = False):
name = name.replace('+','')
if 'scharm' in name or 'stop' in name:
try: int(name.split('_')[-1])
except: name = name.split('_')[-1]+'_'+'_'.join(name.split('_')[:-1])
if not isDan:
if 'QCD' == name: return ROOT.kOrange+2
if 'ttbarV' == name: return ROOT.kGreen+3
if 'Other' == name: return ROOT.kOrange+2
if 'diboson' == name: return ROOT.kBlue-6
if 'nunuqq' == name: return ROOT.kGreen
if 'lnu' == name: return ROOT.kBlue
if 'llqq' == name: return ROOT.kRed
if 'lnuqq' == name: return ROOT.kBlue+4
if 'singleTop'==name or 'singletop'== name: return ROOT.kGreen-2
if 'ttbar' == name: return ROOT.kGreen
if 'Top' == name: return ROOT.kGreen
if 'WjetsB' == name: return ROOT.kBlue-3
if 'WjetsC' == name: return ROOT.kBlue-2
if 'WjetsL' == name: return ROOT.kBlue-1
if 'Wjets' == name: return ROOT.kBlue-3
if 'ZjetsB' == name: return ROOT.kBlue+3
if 'ZjetsC' == name: return ROOT.kBlue+2
if 'ZjetsL' == name: return ROOT.kBlue+1
if 'Zjets' == name: return ROOT.kBlue+3
if 'ZjetsB_ee' == name: return ROOT.kBlue+3
if 'ZjetsB_mm' == name: return ROOT.kBlue+2
if 'ZjetsB_tt' == name: return ROOT.kBlue+1
if 'ZjetsB_nn' == name: return ROOT.kBlue
if 'scharm_200_1' == name: return ROOT.kRed
if 'scharm_200_75' == name: return ROOT.kRed
if 'scharm_300_1' == name: return ROOT.kMagenta
if 'scharm_300_100' == name: return ROOT.kCyan+2
if 'scharm_300_200' == name: return ROOT.kRed
if 'scharm_400_1' == name: return ROOT.kCyan
if 'scharm_400_100' == name: return ROOT.kMagenta
if 'scharm_400_200' == name: return ROOT.kMagenta+3
if 'scharm_400_300' == name: return ROOT.kMagenta+3
if 'scharm_500_1' == name: return ROOT.kOrange-3
if 'scharm_500_100' == name: return ROOT.kOrange-3
if 'scharm_500_200' == name: return ROOT.kCyan
if 'scharm_500_300' == name: return ROOT.kCyan
if 'scharm_500_400' == name: return ROOT.kMagenta+3
if 'scharm_500_450' == name: return ROOT.kMagenta+3
if 'scharm_600_1' == name: return ROOT.kGreen
if 'scharm_600_100' == name: return ROOT.kOrange-3
if 'scharm_600_200' == name: return ROOT.kBlue
if 'scharm_600_300' == name: return ROOT.kMagenta+3
if 'scharm_600_400' == name: return ROOT.kMagenta+3
if 'scharm_600_500' == name: return ROOT.kMagenta+3
if 'scharm_700_1' == name: return ROOT.kGreen
if 'scharm_700_100' == name: return ROOT.kOrange-3
if 'scharm_700_200' == name: return ROOT.kBlue
if 'scharm_700_300' == name: return ROOT.kMagenta+3
if 'scharm_700_400' == name: return ROOT.kMagenta+3
if 'scharm_700_500' == name: return ROOT.kMagenta+3
if 'stop_100_70' == name: return ROOT.kSpring
if 'stop_150_75' == name: return ROOT.kOrange+3
if 'stop_175_100' == name: return ROOT.kOrange+3
if 'stop_200_125' == name: return ROOT.kBlue
if 'stop_250_175' == name: return ROOT.kGreen
if 'stop_300_240' == name: return ROOT.kPink
if 'stop_350_300' == name: return ROOT.kPink-5
if 'stop_400_350' == name: return ROOT.kYellow
print "ERROR:", name, "not recognised"
else:
if 'QCD' == name: return ROOT.kCyan+1
if 'ttbarV' == name: return ROOT.kRed+3
if 'Other' == name: return ROOT.kOrange+2
if 'diboson' == name: return ROOT.kMagenta-10
if 'nunuqq' == name: return ROOT.kGreen
if 'lnu' == name: return ROOT.kBlue
if 'llqq' == name: return ROOT.kRed
if 'lnuqq' == name: return ROOT.kBlue+4
if 'singleTop'==name or 'singletop'== name: return ROOT.kCyan+3
if 'ttbar' == name: return ROOT.kBlue
if 'Top' == name: return ROOT.kGreen
if 'WjetsB' == name: return ROOT.kRed
if 'WjetsC' == name: return ROOT.kYellow
if 'WjetsL' == name: return ROOT.kMagenta+3
if 'Wjets' == name: return ROOT.kBlue-3
if 'ZjetsB' == name: return ROOT.kOrange-3
if 'ZjetsC' == name: return ROOT.kGreen+3
if 'ZjetsL' == name: return ROOT.kMagenta+2
if 'Zjets' == name: return ROOT.kBlue+3
if 'ZjetsB_ee' == name: return ROOT.kBlue+3
if 'ZjetsB_mm' == name: return ROOT.kBlue+2
if 'ZjetsB_tt' == name: return ROOT.kBlue+1
if 'ZjetsB_nn' == name: return ROOT.kBlue
if 'scharm_200_1' == name: return ROOT.kRed
if 'scharm_200_75' == name: return ROOT.kRed
if 'scharm_300_1' == name: return ROOT.kMagenta
if 'scharm_300_100' == name: return ROOT.kCyan+2
if 'scharm_300_200' == name: return ROOT.kRed
if 'scharm_400_1' == name: return ROOT.kCyan
if 'scharm_400_100' == name: return ROOT.kMagenta
if 'scharm_400_200' == name: return ROOT.kBlack
if 'scharm_400_300' == name: return ROOT.kMagenta+3
if 'scharm_500_1' == name: return ROOT.kOrange-3
if 'scharm_500_100' == name: return ROOT.kOrange-3
if 'scharm_500_200' == name: return ROOT.kCyan
if 'scharm_500_300' == name: return ROOT.kCyan
if 'scharm_500_400' == name: return ROOT.kMagenta+3
if 'scharm_500_450' == name: return ROOT.kMagenta+3
if 'scharm_600_1' == name: return ROOT.kGreen
if 'scharm_600_100' == name: return ROOT.kOrange-3
if 'scharm_600_200' == name: return ROOT.kBlue
if 'scharm_600_300' == name: return ROOT.kMagenta+3
if 'scharm_600_400' == name: return ROOT.kMagenta+3
if 'scharm_600_500' == name: return ROOT.kMagenta+3
if 'scharm_700_1' == name: return ROOT.kGreen
if 'scharm_700_100' == name: return ROOT.kOrange-3
if 'scharm_700_200' == name: return ROOT.kBlue
if 'scharm_700_300' == name: return ROOT.kMagenta+3
if 'scharm_700_400' == name: return ROOT.kMagenta+3
if 'scharm_700_500' == name: return ROOT.kMagenta+3
if 'stop_100_70' == name: return ROOT.kSpring
if 'stop_150_75' == name: return ROOT.kOrange+3
if 'stop_175_100' == name: return ROOT.kOrange+3
if 'stop_200_125' == name: return ROOT.kBlue
if 'stop_250_175' == name: return ROOT.kGreen
if 'stop_300_240' == name: return ROOT.kPink
if 'stop_350_300' == name: return ROOT.kPink-5
if 'stop_400_350' == name: return ROOT.kYellow
print "ERROR:", name, "not recognised"
def printRGB(sample, isDan):
print ' '.join(['{:.3f}'.format(x) for x in getRGB(sample, isDan)])
def getRGB(sample, isDan):
code = getColour(sample)
color = ROOT.gROOT.GetColor(code)
return color.GetRed(), color.GetGreen(), color.GetBlue()
if __name__ == '__main__':
run()