189def drawTopoGeometryEtaPhi(geometry, colorBy, is2016):
190
191 if colorBy<ETACODE or colorBy>IPHI:
192 return
193
194 global box, c, h, leg
195
196 gROOT.Reset()
197 gStyle.SetOptStat(0)
198
199 c = TCanvas('c',"MuCTPi to Topo Geometry",1400,950)
200 c.Draw()
201
202 h = TH2F("h","Muon Topo Geometry %i" % (2016 if is2016 else 2015),10,-2.6,2.6,10,-0.15,6.4)
203 h.SetXTitle("#eta")
204 h.SetYTitle("#phi")
205 h.Draw()
206
207 box = TBox()
208 box.SetFillStyle(0)
209 box.SetLineColor(3)
210
211 circle = TArc()
212
213 if colorBy==IPHI:
214 leg = TLegend(0.9,0.1,0.98,0.9)
215 else:
216 leg = TLegend(0.8,0.1,0.9,0.35)
217
218
219
220
221 codeInLegend = []
222 for MioctID in drawOrder:
223
224 MIOCT = geometry.getMIOCT(MioctID)
225
226 fillStyle = 3004
227 for cellIdx,TopoCell in enumerate(MIOCT.Decode.TopoCells):
228
229 if colorBy==ETACODE:
230 code = int(TopoCell["etacode"],16)
231 elif colorBy==PHICODE:
232 code = int(TopoCell["phicode"],16)
233 elif colorBy==IETA:
234 code = abs(int(TopoCell["ieta"]))
235 elif colorBy==IPHI:
236 code = int(TopoCell["iphi"])
237 else:
238 raise RuntimeError("Don't know how to color the eta-phi map (%r)" % colorBy)
239 color = colorMap2[code % len(colorMap2)]
240 fillStyle = fillStyleMap2[code % 4]
241 box.SetLineColor(color)
242 box.SetFillColor(color)
243
244 circle.SetLineColor(color)
245 circle.SetFillColor(color)
246
247
248 c1_x = float(TopoCell["etamin"])
249 c1_y = float(TopoCell["phimin"])
250
251 c2_x = float(TopoCell["etamax"])
252 c2_y = float(TopoCell["phimax"])
253
254 c_x = float(TopoCell["ieta"])
255 c_y = float(TopoCell["iphi"])
256
257
258
259
260
261 box.SetFillStyle(fillStyle)
262 b = box.DrawBox(c1_x,c1_y,c2_x,c2_y)
263 box.SetFillStyle(0)
264 box.DrawBox(c1_x,c1_y,c2_x,c2_y)
265
266 circle.DrawArc(c_x/10.,c_y/10.,0.02)
267
268
269 if code not in codeInLegend:
270 codeInLegend += [code]
271 if colorBy==ETACODE:
272 leg.AddEntry(b,"etacode %i" % code,"lf")
273 elif colorBy==PHICODE:
274 leg.AddEntry(b,"phicode %i" % code,"f")
275 elif colorBy==IETA:
276 leg.AddEntry(b,"|ieta| %i" % code,"f")
277 elif colorBy==IPHI:
278 leg.AddEntry(b,"iphi %i" % code,"f")
279
280 leg.Draw()
281
282 c.Update()
283 if colorBy==ETACODE:
284 ext = "EtaCode"
285 elif colorBy==PHICODE:
286 ext = "PhiCode"
287 elif colorBy==IETA:
288 ext = "Eta"
289 elif colorBy==IPHI:
290 ext = "Phi"
291
292
293 c.SaveAs("TopoLayout%s%s.pdf" % ("2016" if is2016 else "2015", ext))
294
295
296