Belle II Software  release-05-01-25
plotPhase2VXDAlignment.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 # *****************************************************************************
4 
5 # title : plotVXDALignmentPayloadPhase2.py
6 # description : Produce png file loaded from localdb for phase 2
7 # author : Jakub Kandra (jakub.kandra@karlov.mff.cuni.cz)
8 # date : 8. 2. 2018
9 
10 # *****************************************************************************
11 
12 
13 import sys
14 import numpy as np
15 import pandas as pd
16 import matplotlib.pyplot as plt
17 import matplotlib.patches as patches
18 import ROOT
19 from ROOT import Belle2
20 
21 if len(sys.argv) < 2:
22  sys.exit("No input .root file specified!")
23 
24 inputroot = sys.argv[1]
25 file = ROOT.TFile(inputroot, "OPEN")
26 vxd = file.Get("VXDAlignment")
27 
28 fileName = inputroot + '.txt'
29 
30 text_file = open(fileName, "w")
31 text_file.write("layer ladder sensor param value\n")
32 for entry in vxd.getMap():
33  element_parameter = entry.first
34  value = entry.second
35  element = element_parameter.first
36  param = element_parameter.second
37  vxdid = Belle2.VxdID(element)
38  layer = vxdid.getLayerNumber()
39  ladder = vxdid.getLadderNumber()
40  sensor = vxdid.getSensorNumber()
41  if sensor != 0:
42  text_file.write("{0} {1} {2} {3} {4}\n".format(layer, ladder, sensor, param, value))
43  # print("{0} {1} {2} {3} {4}\n".format(layer, ladder, sensor, param, value))
44 
45 for parameter in range(1, 7):
46  text_file.write("{0} {1} {2} {3} {4}\n".format(1, 0, 1, parameter, vxd.get(int(Belle2.VxdID(1, 0, 0, 1)), parameter)))
47  text_file.write("{0} {1} {2} {3} {4}\n".format(1, 0, 2, parameter, vxd.get(int(Belle2.VxdID(1, 0, 0, 2)), parameter)))
48  text_file.write("{0} {1} {2} {3} {4}\n".format(3, 0, 1, parameter, vxd.get(int(Belle2.VxdID(3, 0, 0, 1)), parameter)))
49  text_file.write("{0} {1} {2} {3} {4}\n".format(3, 0, 2, parameter, vxd.get(int(Belle2.VxdID(3, 0, 0, 2)), parameter)))
50  for layer in range(1, 7):
51  text_file.write("{0} {1} {2} {3} {4}\n".format(layer, 1, 0, parameter, vxd.get(int(Belle2.VxdID(layer, 1, 0)), parameter)))
52 
53 text_file.close()
54 
55 beast2_sensors = [
56  (1, 1, 1), (1, 1, 2),
57  (2, 1, 1), (2, 1, 2),
58  (3, 1, 1), (3, 1, 2),
59  (4, 1, 1), (4, 1, 2), (4, 1, 3),
60  (5, 1, 1), (5, 1, 2), (5, 1, 3), (5, 1, 4),
61  (6, 1, 1), (6, 1, 2), (6, 1, 3), (6, 1, 4), (6, 1, 5)
62 ]
63 
64 beast2_ladders = [
65  (1, 1, 0),
66  (2, 1, 0),
67  (3, 1, 0),
68  (4, 1, 0),
69  (5, 1, 0),
70  (6, 1, 0)
71 ]
72 
73 beast2_halfshells = [
74  (1, 0, 1),
75  (3, 0, 1)
76 ]
77 
78 # Read data into a pandas DataFrame
79 print('reading from file ' + fileName)
80 
81 dataframe = pd.read_table(
82  fileName,
83  sep=' ',
84  skipinitialspace=True,
85  skiprows=1,
86  names=[
87  'layer',
88  'ladder',
89  'sensor',
90  'parameter',
91  'value'])
92 
93 scale = np.where(dataframe.parameter < 4, 1.0e4, 1.0e3)
94 for colname in ['value']:
95  dataframe[colname] *= scale
96 
97 font = {'family': 'normal', 'weight': 'bold', 'size': 22}
98 
99 sensorCoordinates = (
100  [0.20, 0.00, 0.60, 0.10],
101  [0.60, 0.00, 0.99, 0.10],
102  [0.20, 0.12, 0.60, 0.22],
103  [0.60, 0.12, 0.99, 0.22],
104  [0.20, 0.25, 0.60, 0.35],
105  [0.60, 0.25, 0.99, 0.35],
106  [0.00, 0.38, 0.30, 0.52],
107  [0.30, 0.38, 0.60, 0.52],
108  [0.60, 0.38, 0.90, 0.52],
109  [0.00, 0.58, 0.25, 0.72],
110  [0.25, 0.58, 0.50, 0.72],
111  [0.50, 0.58, 0.75, 0.72],
112  [0.75, 0.58, 0.99, 0.72],
113  [0.00, 0.78, 0.20, 0.92],
114  [0.20, 0.78, 0.40, 0.92],
115  [0.40, 0.78, 0.60, 0.92],
116  [0.60, 0.78, 0.80, 0.92],
117  [0.80, 0.78, 0.99, 0.92])
118 
119 excludedSensor = [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]
120 excludedLadder = [True, True, True, True, True, True]
121 excludedHalfShell = [True, True]
122 
123 quantity = [r'NAN', r'$u$ = ', r'$v$ = ', r'$w$ = ', r'$\alpha$ = ', r'$\beta$ = ', r'$\gamma$ = ']
124 unit = [r'NAN', ' um', ' um', ' um', ' mrad', ' mrad', ' mrad']
125 line = ['NAN', r'$u$ = NAN', r'$v$ = NAN', r'$w$ = NAN', r'$\alpha$ = NAN', r'$\beta$ = NAN', r'$\gamma$ = NAN']
126 
127 fig = plt.figure(figsize=(8.27, 11.69))
128 ax = fig.add_subplot(111)
129 
130 ax.text(0.00, 0.97, 'Experiment: 1002(Phase II), Run: XXXX, Date: 6/10/2017', color='black', size='14.5', weight='bold')
131 
132 ax.text(0.05, 0.03, ' layer 1 \nladder 1', color='black', size='12', weight='bold')
133 ax.text(0.05, 0.15, ' layer 2 \nladder 1', color='black', size='12', weight='bold')
134 ax.text(0.05, 0.28, ' layer 3 \nladder 1', color='black', size='12', weight='bold')
135 ax.text(0.40, 0.53, ' layer 4 ladder 1', color='black', size='12', weight='bold')
136 ax.text(0.40, 0.73, ' layer 5 ladder 1', color='black', size='12', weight='bold')
137 ax.text(0.40, 0.93, ' layer 6 ladder 1', color='black', size='12', weight='bold')
138 
139 
140 number = 0.0
141 for i in range(0, 18):
142  layer_id, ladder_id, sensor_id = beast2_sensors[i]
143  print('Sensor: ', layer_id, '.', ladder_id, '.', sensor_id)
144  for j in [1, 2, 3, 4, 5, 6]:
145  number = float(dataframe['value'][dataframe['layer'] == layer_id][dataframe['ladder'] == ladder_id]
146  [dataframe['sensor'] == sensor_id][dataframe['parameter'] == j])
147  if (number != 0.0):
148  excludedSensor[i] = False
149  line[j] = quantity[j] + str(round(number, 5)) + unit[j]
150  print(line[j])
151  else:
152  print('Non calculated ladder!!')
153  print('')
154 
155  if excludedSensor[i]:
156  if (i == 6 or i == 9 or i == 13):
157  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
158  sensorCoordinates[i][1] - 0.03],
159  [sensorCoordinates[i][2],
160  sensorCoordinates[i][1]],
161  [sensorCoordinates[i][2],
162  sensorCoordinates[i][3]],
163  [sensorCoordinates[i][0],
164  sensorCoordinates[i][3] + 0.03]],
165  facecolor='red',
166  alpha=0.3,
167  edgecolor='black'))
168  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
169  sensorCoordinates[i][1] - 0.03],
170  [sensorCoordinates[i][2],
171  sensorCoordinates[i][1]],
172  [sensorCoordinates[i][2],
173  sensorCoordinates[i][3]],
174  [sensorCoordinates[i][0],
175  sensorCoordinates[i][3] + 0.03]],
176  fill=None))
177  else:
178  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0], sensorCoordinates[i][1]],
179  [sensorCoordinates[i][2], sensorCoordinates[i][1]],
180  [sensorCoordinates[i][2], sensorCoordinates[i][3]],
181  [sensorCoordinates[i][0], sensorCoordinates[i][3]]],
182  facecolor='red', alpha=0.3, edgecolor='black'))
183  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0], sensorCoordinates[i][1]],
184  [sensorCoordinates[i][2], sensorCoordinates[i][1]],
185  [sensorCoordinates[i][2], sensorCoordinates[i][3]],
186  [sensorCoordinates[i][0], sensorCoordinates[i][3]]], fill=None))
187 
188  else:
189  if (i == 6 or i == 9 or i == 13):
190  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
191  sensorCoordinates[i][1] - 0.03],
192  [sensorCoordinates[i][2],
193  sensorCoordinates[i][1]],
194  [sensorCoordinates[i][2],
195  sensorCoordinates[i][3]],
196  [sensorCoordinates[i][0],
197  sensorCoordinates[i][3] + 0.03]],
198  facecolor='green',
199  alpha=0.1,
200  edgecolor='black'))
201  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
202  sensorCoordinates[i][1] - 0.03],
203  [sensorCoordinates[i][2],
204  sensorCoordinates[i][1]],
205  [sensorCoordinates[i][2],
206  sensorCoordinates[i][3]],
207  [sensorCoordinates[i][0],
208  sensorCoordinates[i][3] + 0.03]],
209  fill=None))
210  else:
211  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
212  sensorCoordinates[i][1]],
213  [sensorCoordinates[i][2],
214  sensorCoordinates[i][1]],
215  [sensorCoordinates[i][2],
216  sensorCoordinates[i][3]],
217  [sensorCoordinates[i][0],
218  sensorCoordinates[i][3]]],
219  facecolor='green',
220  alpha=0.1,
221  edgecolor='black'))
222  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0], sensorCoordinates[i][1]],
223  [sensorCoordinates[i][2], sensorCoordinates[i][1]],
224  [sensorCoordinates[i][2], sensorCoordinates[i][3]],
225  [sensorCoordinates[i][0], sensorCoordinates[i][3]]], fill=None))
226 
227  if (i < 6):
228  ax.text(
229  sensorCoordinates[i][0] + 0.02,
230  sensorCoordinates[i][1] + 0.080,
231  line[1],
232  color='black',
233  size='8',
234  bbox=dict(
235  facecolor='white',
236  edgecolor='black',
237  boxstyle='round,pad=0.15'))
238  ax.text(
239  sensorCoordinates[i][0] + 0.02,
240  sensorCoordinates[i][1] + 0.045,
241  line[2],
242  color='black',
243  size='8',
244  bbox=dict(
245  facecolor='white',
246  edgecolor='black',
247  boxstyle='round,pad=0.15'))
248  ax.text(
249  sensorCoordinates[i][0] + 0.02,
250  sensorCoordinates[i][1] + 0.010,
251  line[3],
252  color='black',
253  size='8',
254  bbox=dict(
255  facecolor='white',
256  edgecolor='black',
257  boxstyle='round,pad=0.15'))
258  ax.text(
259  sensorCoordinates[i][0] + 0.20,
260  sensorCoordinates[i][1] + 0.078,
261  line[4],
262  color='black',
263  size='8',
264  bbox=dict(
265  facecolor='white',
266  edgecolor='black',
267  boxstyle='round,pad=0.15'))
268  ax.text(
269  sensorCoordinates[i][0] + 0.20,
270  sensorCoordinates[i][1] + 0.045,
271  line[5],
272  color='black',
273  size='8',
274  bbox=dict(
275  facecolor='white',
276  edgecolor='black',
277  boxstyle='round,pad=0.15'))
278  ax.text(
279  sensorCoordinates[i][0] + 0.20,
280  sensorCoordinates[i][1] + 0.012,
281  line[6],
282  color='black',
283  size='8',
284  bbox=dict(
285  facecolor='white',
286  edgecolor='black',
287  boxstyle='round,pad=0.15'))
288  else:
289  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.024,
290  sensorCoordinates[i][1] + 0.121,
291  line[1],
292  color='black',
293  size='8',
294  bbox=dict(facecolor='white',
295  edgecolor='black',
296  boxstyle='round,pad=0.15'))
297  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.024,
298  sensorCoordinates[i][1] + 0.099,
299  line[2],
300  color='black',
301  size='8',
302  bbox=dict(facecolor='white',
303  edgecolor='black',
304  boxstyle='round,pad=0.15'))
305  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.024,
306  sensorCoordinates[i][1] + 0.077,
307  line[3],
308  color='black',
309  size='8',
310  bbox=dict(facecolor='white',
311  edgecolor='black',
312  boxstyle='round,pad=0.15'))
313  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.030,
314  sensorCoordinates[i][1] + 0.055,
315  line[4],
316  color='black',
317  size='8',
318  bbox=dict(facecolor='white',
319  edgecolor='black',
320  boxstyle='round,pad=0.15'))
321  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.030,
322  sensorCoordinates[i][1] + 0.033,
323  line[5],
324  color='black',
325  size='8',
326  bbox=dict(facecolor='white',
327  edgecolor='black',
328  boxstyle='round,pad=0.15'))
329  ax.text(sensorCoordinates[i][0] + (sensorCoordinates[i][2] - sensorCoordinates[i][0]) / 4 - 0.030,
330  sensorCoordinates[i][1] + 0.011,
331  line[6],
332  color='black',
333  size='8',
334  bbox=dict(facecolor='white',
335  edgecolor='black',
336  boxstyle='round,pad=0.15'))
337 
338  line = ['NAN', r'$u$ = NAN', r'$v$ = NAN', r'$w$ = NAN', r'$\alpha$ = NAN', r'$\beta$ = NAN', r'$\gamma$ = NAN']
339 
340 ax.axis('off')
341 fig.savefig('outputSensors.png', dpi=300)
342 
343 """
344 fig = plt.figure(figsize=(8.27, 11.69))
345 ax = fig.add_subplot(111)
346 """
347 
348 ax.cla()
349 ax.text(0.00, 0.97, 'Experiment: 1002(Phase II), Run: XXXX, Date: 6/10/2017', color='black', size='14.5', weight='bold')
350 
351 ax.text(0.00, 0.325, ' layer 1 ladder 1', color='black', size='12', weight='bold')
352 ax.text(0.00, 0.405, ' layer 2 ladder 1', color='black', size='12', weight='bold')
353 ax.text(0.00, 0.485, ' layer 3 ladder 1', color='black', size='12', weight='bold')
354 ax.text(0.00, 0.59, ' layer 4 ladder 1', color='black', size='12', weight='bold')
355 ax.text(0.00, 0.73, ' layer 5 ladder 1', color='black', size='12', weight='bold')
356 ax.text(0.00, 0.88, ' layer 6 ladder 1', color='black', size='12', weight='bold')
357 
358 sensorCoordinates = (
359  [0.20, 0.30, 0.60, 0.36],
360  [0.60, 0.30, 0.99, 0.36],
361  [0.20, 0.38, 0.60, 0.44],
362  [0.60, 0.38, 0.99, 0.44],
363  [0.20, 0.46, 0.60, 0.52],
364  [0.60, 0.46, 0.99, 0.52],
365  [0.00, 0.56, 0.30, 0.63],
366  [0.30, 0.56, 0.60, 0.63],
367  [0.60, 0.56, 0.90, 0.63],
368  [0.00, 0.70, 0.25, 0.78],
369  [0.25, 0.70, 0.50, 0.78],
370  [0.50, 0.70, 0.75, 0.78],
371  [0.75, 0.70, 0.99, 0.78],
372  [0.00, 0.85, 0.20, 0.92],
373  [0.20, 0.85, 0.40, 0.92],
374  [0.40, 0.85, 0.60, 0.92],
375  [0.60, 0.85, 0.80, 0.92],
376  [0.80, 0.85, 0.99, 0.92])
377 
378 number = 0.0
379 for i in range(0, 6):
380  layer_id, ladder_id, sensor_id = beast2_ladders[i]
381  for j in [1, 2, 3, 4, 5, 6]:
382  number = float(dataframe['value'][dataframe['layer'] == layer_id][dataframe['ladder'] == ladder_id]
383  [dataframe['sensor'] == sensor_id][dataframe['parameter'] == j])
384  if (number != 0.0):
385  excludedLadder[i] = False
386 
387 for i in range(0, 18):
388  excludedSensor[i] = False
389  if i in range(0, 2):
390  if excludedLadder[0]:
391  excludedSensor[i] = True
392  if i in range(2, 4):
393  if excludedLadder[1]:
394  excludedSensor[i] = True
395  if i in range(4, 6):
396  if excludedLadder[2]:
397  excludedSensor[i] = True
398  if i in range(6, 9):
399  if excludedLadder[3]:
400  excludedSensor[i] = True
401  if i in range(9, 13):
402  if excludedLadder[4]:
403  excludedSensor[i] = True
404  if i in range(13, 18):
405  if excludedLadder[5]:
406  excludedSensor[i] = True
407 
408  if excludedSensor[i]:
409  if (i == 6 or i == 9 or i == 13):
410  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
411  sensorCoordinates[i][1] - 0.03],
412  [sensorCoordinates[i][2],
413  sensorCoordinates[i][1]],
414  [sensorCoordinates[i][2],
415  sensorCoordinates[i][3]],
416  [sensorCoordinates[i][0],
417  sensorCoordinates[i][3] + 0.03]],
418  facecolor='red',
419  alpha=0.3,
420  edgecolor='black'))
421  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
422  sensorCoordinates[i][1] - 0.03],
423  [sensorCoordinates[i][2],
424  sensorCoordinates[i][1]],
425  [sensorCoordinates[i][2],
426  sensorCoordinates[i][3]],
427  [sensorCoordinates[i][0],
428  sensorCoordinates[i][3] + 0.03]],
429  fill=None))
430  else:
431  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0], sensorCoordinates[i][1]],
432  [sensorCoordinates[i][2], sensorCoordinates[i][1]],
433  [sensorCoordinates[i][2], sensorCoordinates[i][3]],
434  [sensorCoordinates[i][0], sensorCoordinates[i][3]]],
435  facecolor='red', alpha=0.3, edgecolor='black'))
436  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0], sensorCoordinates[i][1]],
437  [sensorCoordinates[i][2], sensorCoordinates[i][1]],
438  [sensorCoordinates[i][2], sensorCoordinates[i][3]],
439  [sensorCoordinates[i][0], sensorCoordinates[i][3]]], fill=None))
440 
441  else:
442  if (i == 6 or i == 9 or i == 13):
443  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
444  sensorCoordinates[i][1] - 0.03],
445  [sensorCoordinates[i][2],
446  sensorCoordinates[i][1]],
447  [sensorCoordinates[i][2],
448  sensorCoordinates[i][3]],
449  [sensorCoordinates[i][0],
450  sensorCoordinates[i][3] + 0.03]],
451  facecolor='green',
452  alpha=0.1,
453  edgecolor='green'))
454 
455  else:
456 
457  ax.add_patch(plt.Polygon([[sensorCoordinates[i][0],
458  sensorCoordinates[i][1]],
459  [sensorCoordinates[i][2],
460  sensorCoordinates[i][1]],
461  [sensorCoordinates[i][2],
462  sensorCoordinates[i][3]],
463  [sensorCoordinates[i][0],
464  sensorCoordinates[i][3]]],
465  facecolor='green',
466  alpha=0.1,
467  edgecolor='green'))
468 
469 ladderCoordinates = (
470  [0.30, 0.325],
471  [0.30, 0.405],
472  [0.30, 0.485],
473  [0.30, 0.59],
474  [0.30, 0.74],
475  [0.30, 0.88]
476 )
477 
478 number = 0.0
479 for i in range(0, 6):
480  layer_id, ladder_id, sensor_id = beast2_ladders[i]
481  print('Sensor: ', layer_id, '.', ladder_id, '.', sensor_id)
482  for j in [1, 2, 3, 4, 5, 6]:
483  number = float(dataframe['value'][dataframe['layer'] == layer_id][dataframe['ladder'] == ladder_id]
484  [dataframe['sensor'] == sensor_id][dataframe['parameter'] == j])
485  if (number != 0.0):
486  line[j] = quantity[j] + str(round(number, 5)) + unit[j]
487  print(line[j])
488  else:
489  print('Non calculated ladder!!')
490  print('')
491 
492  if not excludedLadder[i]:
493  ax.text(
494  ladderCoordinates[i][0] + 0.000,
495  ladderCoordinates[i][1] + 0.011,
496  line[1],
497  color='black',
498  size='8',
499  bbox=dict(
500  facecolor='white',
501  edgecolor='black',
502  boxstyle='round,pad=0.15'))
503 
504  ax.text(
505  ladderCoordinates[i][0] + 0.200,
506  ladderCoordinates[i][1] + 0.011,
507  line[2],
508  color='black',
509  size='8',
510  bbox=dict(
511  facecolor='white',
512  edgecolor='black',
513  boxstyle='round,pad=0.15'))
514  ax.text(
515  ladderCoordinates[i][0] + 0.400,
516  ladderCoordinates[i][1] + 0.011,
517  line[3],
518  color='black',
519  size='8',
520  bbox=dict(
521  facecolor='white',
522  edgecolor='black',
523  boxstyle='round,pad=0.15'))
524  ax.text(
525  ladderCoordinates[i][0] + 0.000,
526  ladderCoordinates[i][1] - 0.011,
527  line[4],
528  color='black',
529  size='8',
530  bbox=dict(
531  facecolor='white',
532  edgecolor='black',
533  boxstyle='round,pad=0.15'))
534  ax.text(
535  ladderCoordinates[i][0] + 0.200,
536  ladderCoordinates[i][1] - 0.011,
537  line[5],
538  color='black',
539  size='8',
540  bbox=dict(
541  facecolor='white',
542  edgecolor='black',
543  boxstyle='round,pad=0.15'))
544  ax.text(
545  ladderCoordinates[i][0] + 0.400,
546  ladderCoordinates[i][1] - 0.011,
547  line[6],
548  color='black',
549  size='8',
550  bbox=dict(
551  facecolor='white',
552  edgecolor='black',
553  boxstyle='round,pad=0.15'))
554  line = ['NAN', r'$u$ = NAN', r'$v$ = NAN', r'$w$ = NAN', r'$\alpha$ = NAN', r'$\beta$ = NAN', r'$\gamma$ = NAN']
555 
556 ax.text(0.10, 0.25, ' PXD half shell', color='black', size='12', weight='bold')
557 ax.text(0.70, 0.25, ' SVD half shell', color='black', size='12', weight='bold')
558 
559 number = 0.0
560 for i in range(0, 2):
561  layer_id, ladder_id, sensor_id = beast2_halfshells[i]
562  print('Sensor: ', layer_id, '.', ladder_id, '.', sensor_id)
563  for j in [1, 2, 3, 4, 5, 6]:
564  number = float(dataframe['value'][dataframe['layer'] == layer_id][dataframe['ladder'] == ladder_id]
565  [dataframe['sensor'] == sensor_id][dataframe['parameter'] == j])
566  if (number != 0.0):
567  excludedHalfShell[i] = False
568  line[j] = quantity[j] + str(round(number, 5)) + unit[j]
569  print(line[j])
570  else:
571  print('Non calculated ladder!!')
572  print('')
573 
574  if excludedHalfShell[i]:
575  ax.add_patch(patches.Arc(xy=[0.45, 0.15], width=0.10, height=0.07, angle=.0,
576  theta1=-90.0, theta2=90.0, color='red', alpha=0.1, linewidth=35.0))
577  ax.add_patch(patches.Arc(xy=[0.45, 0.15], width=0.28, height=0.20, angle=.0,
578  theta1=-90.0, theta2=90.0, color='red', alpha=0.1, linewidth=40.0))
579  else:
580  ax.add_patch(patches.Arc(xy=[0.45, 0.15], width=0.10, height=0.07, angle=.0,
581  theta1=-90.0, theta2=90.0, color='green', alpha=0.1, linewidth=35.0))
582  ax.add_patch(patches.Arc(xy=[0.45, 0.15], width=0.28, height=0.20, angle=.0,
583  theta1=-90.0, theta2=90.0, color='green', alpha=0.1, linewidth=40.0))
584 
585  ax.text(0.12 + 0.6 * i, 0.22,
586  line[1],
587  color='black',
588  size='8',
589  bbox=dict(
590  facecolor='white',
591  edgecolor='black',
592  boxstyle='round,pad=0.15'))
593 
594  ax.text(0.12 + 0.6 * i, 0.19,
595  line[2],
596  color='black',
597  size='8',
598  bbox=dict(
599  facecolor='white',
600  edgecolor='black',
601  boxstyle='round,pad=0.15'))
602  ax.text(0.12 + 0.6 * i, 0.16,
603  line[3],
604  color='black',
605  size='8',
606  bbox=dict(
607  facecolor='white',
608  edgecolor='black',
609  boxstyle='round,pad=0.15'))
610  ax.text(0.12 + 0.6 * i, 0.13,
611  line[4],
612  color='black',
613  size='8',
614  bbox=dict(
615  facecolor='white',
616  edgecolor='black',
617  boxstyle='round,pad=0.15'))
618  ax.text(0.12 + 0.6 * i, 0.10,
619  line[5],
620  color='black',
621  size='8',
622  bbox=dict(
623  facecolor='white',
624  edgecolor='black',
625  boxstyle='round,pad=0.15'))
626  ax.text(0.12 + 0.6 * i, 0.07,
627  line[6],
628  color='black',
629  size='8',
630  bbox=dict(
631  facecolor='white',
632  edgecolor='black',
633  boxstyle='round,pad=0.15'))
634  line = ['NAN', r'$u$ = NAN', r'$v$ = NAN', r'$w$ = NAN', r'$\alpha$ = NAN', r'$\beta$ = NAN', r'$\gamma$ = NAN']
635 
636 ax.axis('off')
637 fig.savefig('outputLadders.png', dpi=300)
638 # plt.show()
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43