ATLAS Offline Software
Loading...
Searching...
No Matches
visualize Namespace Reference

Functions

 readXML (filename)
 drawROIGeometry (geometry, is2016)
 drawTopoGeometry (geometry, is2016)
 drawTopoGeometryEtaPhi (geometry, colorBy, is2016)
 drawCodeValues (geometry, is2016)
 drawIValues (geometry, is2016)
 drawRoiDeltaR (geometry, is2016)
 main ()

Variables

list colorMap
list colorMap2
list fillStyleMap2 = [ 3004, 3012, 3005, 3010 ]
list drawOrder
int ETACODE = 0
int PHICODE = 1
int IETA = 2
int IPHI = 3

Function Documentation

◆ drawCodeValues()

visualize.drawCodeValues ( geometry,
is2016 )

Definition at line 297 of file visualize.py.

297def drawCodeValues(geometry, is2016):
298
299 global h,c
300
301 gROOT.Reset()
302 gStyle.SetOptStat(0)
303
304 c = TCanvas('c',"Topo encoding",1400,950)
305 c.Draw()
306
307 h = TH2F("h","Muon Topo encoding %i" % (2016 if is2016 else 2015),8,0,8,8,0,8)
308 h.SetXTitle("#eta")
309 h.SetYTitle("#phi")
310 h.Draw()
311
312 for MioctID in drawOrder:
313 #for MioctID in [3,4,5,6,7]:
314 MIOCT = geometry.getMIOCT(MioctID)
315 for tc in MIOCT.Decode.TopoCells:
316 h.Fill(int(tc['etacode'],16),int(tc['phicode'],16))
317
318 h.Draw("colz")
319 c.Update()
320 c.SaveAs("TopoCodes%s.pdf" % "2016" if is2016 else "2015")
321
322

◆ drawIValues()

visualize.drawIValues ( geometry,
is2016 )

Definition at line 323 of file visualize.py.

323def drawIValues(geometry, is2016):
324
325 global h,c
326
327 gROOT.Reset()
328 gStyle.SetOptStat(0)
329
330 c = TCanvas('c',"Topo encoding",1400,950)
331 c.Draw()
332
333 h = TH2F("h","Muon Topo encoding %i" % (2016 if is2016 else 2015),48,-24,24,64,0,64)
334 h.SetXTitle("#eta_{index}")
335 h.SetYTitle("#phi_{index}")
336 h.Draw()
337
338 for MioctID in drawOrder:
339 MIOCT = geometry.getMIOCT(MioctID)
340 for tc in MIOCT.Decode.TopoCells:
341 h.Fill(int(tc['ieta'])+0.5,int(tc['iphi'])+0.5)
342
343 h.Draw("colz")
344 c.Update()
345 c.SaveAs("TopoCellCenters%s.pdf" % "2016" if is2016 else "2015")
346
347
348

◆ drawRoiDeltaR()

visualize.drawRoiDeltaR ( geometry,
is2016 )

Definition at line 349 of file visualize.py.

349def drawRoiDeltaR(geometry, is2016):
350
351 def getTopoCell(mioct, etacode, phicode):
352 global mioctTCmap
353 mioctTCmap = {}
354 mioctid = mioct['id']
355 if mioctid not in mioctTCmap:
356 d = {}
357 for tc in mioct.Decode.TopoCells:
358 key = ( int(tc['etacode'],16), int(tc['phicode'],16))
359 d[key] = tc
360 mioctTCmap[mioctid] = d
361 return mioctTCmap[mioctid][(etacode,phicode)]
362
363 global c,hB,hEC,hFW
364
365 gROOT.Reset()
366 gStyle.SetOptStat(0)
367
368 c = TCanvas('c',"Topo encoding",1400,950)
369 c.Divide(2,2)
370 c.Draw()
371
372 hB = TH2F("hb","Delta R between ROI and TopoCell %i in Barrel" % (2016 if is2016 else 2015),64,0,64,32,0,32)
373 hB.SetXTitle("SL")
374 hB.SetYTitle("ROI ID")
375
376 hEC = TH2F("hec","Delta R between ROI and TopoCell %i in Endcap" % (2016 if is2016 else 2015),96,0,96,148,0,148)
377 hEC.SetXTitle("SL")
378 hEC.SetYTitle("ROI ID")
379
380 hFW = TH2F("hfw","Delta R between ROI and TopoCell %i in Forward" % (2016 if is2016 else 2015),48,0,48,64,0,64)
381 hFW.SetXTitle("SL")
382 hFW.SetYTitle("ROI ID")
383
384 for MioctID in drawOrder:
385 mioct = geometry.getMIOCT(MioctID)
386
387 for sector in mioct.Sectors:
388 for roi in sector.ROIs:
389 tc = getTopoCell(mioct, int(roi['etacode'],16), int(roi['phicode'],16))
390 deltaEta = float(roi['eta'])-float(tc['ieta'])/10.
391 deltaPhi = float(roi['phi'])-float(tc['iphi'])/10.
392 if deltaPhi>math.pi:
393 deltaPhi -= 2*math.pi # some topocells are made up from ROIs that are on both sides of 0
394 deltaR = math.sqrt(deltaEta*deltaEta+deltaPhi*deltaPhi)
395 sectorid = int(sector['name'].lstrip('ABCDEF'))
396 roiid = int(roi['roiid'])
397 if sector['name'].startswith('B'):
398 hB.Fill(sectorid,roiid,deltaR)
399 elif sector['name'].startswith('E'):
400 if sector['name'].startswith('EA'):
401 sectorid += 48
402 hEC.Fill(sectorid,roiid,deltaR)
403 elif sector['name'].startswith('F'):
404 if sector['name'].startswith('FA'):
405 sectorid += 24
406 hFW.Fill(sectorid,roiid,deltaR)
407
408
409 c.cd(1)
410 hB.Draw("colz")
411 c.cd(2)
412 hEC.Draw("colz")
413 c.cd(3)
414 hFW.Draw("colz")
415 c.Update()
416 c.SaveAs("ROIDeltaR%s.pdf" % "2016" if is2016 else "2015")
417
418
419

◆ drawROIGeometry()

visualize.drawROIGeometry ( geometry,
is2016 )

Definition at line 44 of file visualize.py.

44def drawROIGeometry(geometry, is2016):
45
46 outfn = "ROILayout%s.pdf" % ("2016" if is2016 else "2015")
47
48 global box, c, h, leg
49
50 gROOT.Reset()
51 gStyle.SetOptStat(0)
52
53 c = TCanvas('c',"MuCTPi Geometry %s" % "2016" if is2016 else "2015",1400,950)
54 c.Draw()
55
56 #h = TH2F("h","Muon Geometry",10,-2.6,2.6,10,-6.4,6.4)
57 h = TH2F("h","Muon Geometry %s" % "2016" if is2016 else "2015",10,-2.6,2.6,10,-0.15,6.4)
58 h.SetXTitle("#eta")
59 h.SetYTitle("#phi")
60 h.Draw()
61
62 box = TBox()
63 box.SetFillStyle(0)
64 box.SetLineColor(3)
65 box.SetLineColor(3)
66
67 text = TLatex()
68 text.SetTextSize(0.005)
69 text.SetTextFont(42)
70 text.SetTextAlign(22)
71
72 secLabel = TLatex()
73 secLabel.SetTextSize(0.008)
74 secLabel.SetTextFont(42)
75 secLabel.SetTextAlign(22)
76
77 leg = TLegend(0.7,0.1,0.9,0.4)
78 leg.SetEntrySeparation(0.05)
79 leg.SetNColumns(2)
80
81 #for MIOCT in geometry.getMIOCTs():
82 for colorIndex,MioctID in enumerate(drawOrder):
83 MIOCT = geometry.getMIOCT(MioctID)
84 firstBox = True
85 color = colorMap[colorIndex % len(colorMap)]
86 #print "Using color ",color
87 box.SetLineColor(color)
88 box.SetLineWidth(1)
89
90 for Sector in MIOCT.Sectors:
91 ymin = 10
92 ymax = -10
93 for ROI in Sector.ROIs:
94 c1_x = float(ROI["etamin"])
95 c1_y = float(ROI["phimin"])
96 c2_x = float(ROI["etamax"])
97 c2_y = float(ROI["phimax"])
98 ymin = min(ymin,c1_y)
99 ymax = max(ymax,c2_y)
100 #print "eta [%f - %f], phi [%f - %f]" % (c1_x,c2_x,c1_y,c2_y)
101 b = box.DrawBox(c1_x,c1_y,c2_x,c2_y)
102 text.DrawText( (c1_x + c2_x)/2, (c1_y + c2_y)/2 ,ROI["roiid"])
103 if firstBox:
104 firstBox = False
105 leg.AddEntry(b,"Slot %s" % MIOCT["slot"],"l")
106 if Sector["name"].startswith("B"):
107 if int(Sector["name"][1:])<32:
108 xpos = -0.02
109 ypos = (ymin+ymax)/2 - 0.05
110 else:
111 xpos = 0.02
112 ypos = (ymin+ymax)/2 + 0.03
113 secLabel.DrawText(xpos,ypos,Sector["name"])
114
115 leg.Draw()
116
117 c.Update()
118 c.SaveAs(outfn)
119
120
121
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41

◆ drawTopoGeometry()

visualize.drawTopoGeometry ( geometry,
is2016 )

Definition at line 122 of file visualize.py.

122def drawTopoGeometry(geometry, is2016):
123
124 outfn = "TopoLayout%s.pdf" % ("2016" if is2016 else "2015")
125
126 global box, c, h
127
128 gROOT.Reset()
129 gStyle.SetOptStat(0)
130
131 c = TCanvas('c',"MuCTPi to Topo Geometry",1400,950)
132 c.Draw()
133
134 h = TH2F("h","Muon Topo Geometry %s" % "2016" if is2016 else "2015",10,-2.6,2.6,10,-0.15,6.4)
135 h.SetXTitle("#eta")
136 h.SetYTitle("#phi")
137 h.Draw()
138
139 box = TBox()
140 box.SetFillStyle(0)
141 box.SetLineColor(3)
142
143 circle = TArc()
144
145 for colorIndex,MioctID in enumerate(drawOrder):
146 MIOCT = geometry.getMIOCT(MioctID)
147 color = colorMap[colorIndex % len(colorMap)]
148 box.SetLineColor(color)
149 box.SetFillColor(color)
150
151 circle.SetLineColor(color)
152 circle.SetFillColor(color)
153
154 fillStyle = 3004
155 for cellIdx,TopoCell in enumerate(MIOCT.Decode.TopoCells):
156 # corner 1
157 c1_x = float(TopoCell["etamin"])
158 c1_y = float(TopoCell["phimin"])
159 # corner 2
160 c2_x = float(TopoCell["etamax"])
161 c2_y = float(TopoCell["phimax"])
162 # center rounded
163 c_x = float(TopoCell["ieta"])
164 c_y = float(TopoCell["iphi"])
165
166 #print "cell %i : eta [%f - %f], phi [%f - %f]" % (cellIdx, c1_x, c2_x, c1_y, c2_y)
167
168 if fillStyle==3004:
169 fillStyle = 3012
170 else:
171 fillStyle = 3004
172 box.SetFillStyle(fillStyle)
173 box.DrawBox(c1_x,c1_y,c2_x,c2_y)
174 box.SetFillStyle(0)
175 box.DrawBox(c1_x,c1_y,c2_x,c2_y)
176
177 circle.DrawArc(c_x/10.,c_y/10.,0.02)
178
179 c.Update()
180 c.SaveAs(outfn)
181
182
183

◆ drawTopoGeometryEtaPhi()

visualize.drawTopoGeometryEtaPhi ( geometry,
colorBy,
is2016 )

Definition at line 189 of file visualize.py.

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 #leg.SetEntrySeparation(0.05)
218 #leg.SetNColumns(2)
219
220
221 codeInLegend = []
222 for MioctID in drawOrder:
223 #for MioctID in [3,4,5,6,7]:
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 # corner 1
248 c1_x = float(TopoCell["etamin"])
249 c1_y = float(TopoCell["phimin"])
250 # corner 2
251 c2_x = float(TopoCell["etamax"])
252 c2_y = float(TopoCell["phimax"])
253 # center
254 c_x = float(TopoCell["ieta"])
255 c_y = float(TopoCell["iphi"])
256
257 #if code>63:
258 # continue
259 #print "cell %i : eta [%f - %f], phi [%f - %f]" % (cellIdx, c1_x, c2_x, c1_y, c2_y)
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

◆ main()

visualize.main ( )

Definition at line 420 of file visualize.py.

420def main():
421
422 parser = argparse.ArgumentParser( description=__doc__,
423 formatter_class = argparse.RawTextHelpFormatter)
424
425 parser.add_argument( '-i', dest='filename', default="TrigConfMuctpi/TestMioctGeometry2016.xml", type=str,
426 help='name of muon geometry xml file')
427
428 args = parser.parse_args()
429
430 is2016 = '2016' in args.filename
431
432 print("Using input %s" % args.filename)
433
434 geometry = readXML(args.filename)
435
436 drawROIGeometry(geometry, is2016 = is2016)
437
438 drawTopoGeometry(geometry, is2016 = is2016)
439
440 drawTopoGeometryEtaPhi(geometry, colorBy=ETACODE, is2016 = is2016)
441
442 drawTopoGeometryEtaPhi(geometry, colorBy=PHICODE, is2016 = is2016)
443
444 drawTopoGeometryEtaPhi(geometry, colorBy=IPHI, is2016 = is2016)
445
446 drawTopoGeometryEtaPhi(geometry, colorBy=IETA, is2016 = is2016)
447
448 drawCodeValues(geometry, is2016 = is2016)
449
450 drawIValues(geometry, is2016 = is2016)
451
452 drawRoiDeltaR(geometry, is2016 = is2016)
453
454
455 input("Press Enter to continue...")
456
457
void print(char *figname, TCanvas *c1)
int main()
Definition hello.cxx:18

◆ readXML()

visualize.readXML ( filename)

Definition at line 38 of file visualize.py.

38def readXML(filename):
39 geom = MioctGeometryXMLReader(filename)
40 #print [str(m) for m in geom.getMIOCTs()]
41 return geom
42
43

Variable Documentation

◆ colorMap

list visualize.colorMap
Initial value:
1= [ 1, 13,
2 8, 3,
3 5,801,
4 9, 4,
5 50, 2,
6 11, 7,
7 30, 51,
8 6, 38 ]

Definition at line 13 of file visualize.py.

◆ colorMap2

list visualize.colorMap2
Initial value:
1= [
2 1, 8, 801, 9, 50, 4,
3 2, 11, 7, 30, 51, 6, 38 ]

Definition at line 22 of file visualize.py.

◆ drawOrder

list visualize.drawOrder
Initial value:
1= [ 0, 8,
2 7, 15,
3 6, 14,
4 5, 13,
5 4, 12,
6 3, 11,
7 2, 10,
8 1, 9 ]

Definition at line 28 of file visualize.py.

◆ ETACODE

int visualize.ETACODE = 0

Definition at line 184 of file visualize.py.

◆ fillStyleMap2

list visualize.fillStyleMap2 = [ 3004, 3012, 3005, 3010 ]

Definition at line 25 of file visualize.py.

◆ IETA

int visualize.IETA = 2

Definition at line 186 of file visualize.py.

◆ IPHI

int visualize.IPHI = 3

Definition at line 187 of file visualize.py.

◆ PHICODE

int visualize.PHICODE = 1

Definition at line 185 of file visualize.py.