Belle II Software  release-05-02-19
condition_checker.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 """\
5 This module contains classes for plotting calibration constants.
6 Author: qingyuan.liu@desy.de
7 """
8 
9 __all__ = ["ConditionCheckerBase", "PXDMaskedPixelsChecker", "PXDDeadPixelsChecker", "PXDOccupancyInfoChecker"]
10 
11 from abc import ABC, abstractmethod
12 from ROOT import Belle2
13 import ROOT
14 import numpy as np
15 from root_numpy import array2hist
16 from pxd.utils import get_sensor_graphs, get_sensor_maps, sensorID_list
17 from pxd.utils import latex_r, nPixels, nVCells, nUCells
18 
19 # import basf2
20 
21 # lookup dictionary for finding a checker based on objType
22 __checker_dict__ = {
23  Belle2.PXDMaskedPixelPar: "PXDMaskedPixelsChecker",
24  Belle2.PXDDeadPixelPar: "PXDDeadPixelsChecker",
25  Belle2.PXDOccupancyInfoPar: "PXDOccupancyInfoChecker",
26  Belle2.PXDGainMapPar: "PXDGainMapChecker",
27 }
28 
29 # plot categories and styles for PXDHotPixelMasking calibration
30 type_list = ['hot', 'dead', 'hot_dead', 'occ_no_mask', 'occ_masked']
31 # label_list = ['Hot', 'Dead', 'Hot/Dead', 'Occupancy (No Mask)', 'Occupancy (With Mask)']
32 label_list = ['Hot pixels', 'Dead pixels', 'Hot/Dead pixels', 'No Mask', 'With Mask']
33 color_list = [ROOT.kRed + 1, ROOT.kAzure - 5, ROOT.kGray + 2, ROOT.kOrange + 1, ROOT.kSpring + 5]
34 max_list = [4., 4., 20., 3., 3.]
35 plot_type_dict = {
36  _type: {'label': _label, 'color': _color, 'max': _max}
37  for (_type, _label, _color, _max) in zip(type_list, label_list, color_list, max_list)
38 }
39 # marker_style = 20
40 
41 
42 # condition db object (payload) checkers
44  """Abstract base class describing interfaces to make plots from condition db."""
45 
46  def __init__(self, name, objType, tfile, rundir="", use_hist=False):
47  """
48  """
49  super().__init__()
50 
51  self.name = name
52 
53  self._objType = objType
54 
55  self.dbObj = Belle2.PyDBObj(self.name, self.objType.Class())
56 
57  self.eventMetaData = Belle2.PyStoreObj("EventMetaData")
58 
59  self.tfile = tfile
60 
61  self.rundir = rundir # empty means skipping self.hists
62  if self.rundir != "":
63  self.tfile.cd()
64  self.tfile.mkdir(self.rundir)
65 
66  self.graphs = {}
67 
68  self.hists = {}
69 
71 
72  self.runstart = 999999 # a big number that will never be used
73 
74  self.runend = -1
75 
76  self.expstart = 999999
77 
78  self.use_hist = use_hist
79 
80  self.define_graphs()
81 
82  @property
83  def objType(self):
84  """
85  DBObj type (read only)
86  """
87  return self._objType
88 
89  @property
90  def run(self):
91  """
92  Run number
93  """
94  return self.eventMetaData.getRun()
95 
96  @property
97  def exp(self):
98  """
99  Experiment number
100  """
101  return self.eventMetaData.getExperiment()
102 
103  def beginRun(self):
104  """
105  Call functions at beginning of a run
106  """
107  self.define_hists()
108  self.fill_plots()
109 
110  def define_graphs(self, ytitle=""):
111  """
112  Method to define TGraph
113  Parameters:
114  ytitle (str): Label for TGraph y-axis
115  """
116  self.tfile.cd()
117  self.graphs.update(get_sensor_graphs(ytitle))
118 
119  def define_hists(self, name=None, title=None, ztitle=None, **kwargs):
120  """
121  Method to define TH2
122  Parameters:
123  name (str): name for TH2, to which sensor name will be attached
124  title (str): title for TH2
125  ztitle (str): title for z-axis (color bar)
126  kwargs: additional arguments
127  """
128  if self.rundir:
129  self.tfile.cd(self.rundir)
130  self.hists.update(get_sensor_maps(name, title, ztitle, self.run, **kwargs))
131 
132  @abstractmethod
133  def get_db_content(self):
134  """
135  Abstract method to get content of a payload
136  Should return a Dictionary with sensorID.getID() as key and relaated calibration results as value
137  """
138 
139  @abstractmethod
140  def get_graph_value(self, sensor_db_content):
141  """
142  Abstract method to get a value for each TGraph
143  Parameters:
144  sensor_db_content (Any): Calibration results of a module
145  """
146 
147  def get_graph_value_from_hist(self, h2=None):
148  """
149  Method to get a value for each TGraph
150  Parameters:
151  h2 (TH2): If not none, get value from h2
152  """
153  return None
154 
155  def set_hist_content(self, h2, sensor_db_content):
156  """
157  Method to set TH2 bins
158  Parameters:
159  h2 (TH2): TH2F object for handling values of a pixel matrix
160  sensor_db_content (Any): Calibration results of a module
161  """
162  pass
163 
164  def fill_plots(self):
165  """
166  Method to fill plot objects
167  """
168  if self.exp < self.expstart:
169  self.expstart = self.exp
170  if self.run < self.runstart:
171  self.runstart = self.run
172  if self.run > self.runend:
173  self.runend = self.run
174 
175  db_content = self.get_db_content()
176  values_dict = {}
177  pre_values_dict = {}
178  for sensorID in sensorID_list:
179  sensor_db_content = db_content[sensorID.getID()]
180  if self.graphs:
181  if not self.use_hist:
182  values_dict[sensorID.getID()] = self.get_graph_value(sensor_db_content)
183  gr = self.graphs[sensorID.getID()]
184  pre_values_dict[sensorID.getID()] = gr.GetPointY(gr.GetN() - 1)
185  # Saving graph points only for different values (sensor-wise)
186  # value = self.get_graph_value(sensor_db_content)
187  # pre_value = gr.GetPointY(gr.GetN()-1)
188  # if value != pre_value:
189  # gr.SetPoint(gr.GetN(), self.run, value)
190  # Saving masked map
191  if self.rundir != "" and self.hists:
192  h2 = self.hists[sensorID.getID()]
193  self.set_hist_content(h2, sensor_db_content)
194  # Update title with total count
195  h2.SetTitle(h2.GetTitle() + self.hist_title_suffix)
196  self.tfile.cd(self.rundir)
197  h2.Write()
198  if self.use_hist:
199  values_dict[sensorID.getID()] = self.get_graph_value_from_hist(h2)
200  # Saving graph points only for different conditions
201  if values_dict != pre_values_dict:
202  for sensorID in sensorID_list:
203  gr = self.graphs[sensorID.getID()]
204  gr.SetPoint(gr.GetN(), self.run, values_dict[sensorID.getID()])
205 
206  def draw_plots(self, canvas=None, cname="", ymin=0., ymax=None):
207  """
208  Method to draw plots on a TCanvas
209  Parameters:
210  canvas (TCanvas): ROOT TCanvas for plotting
211  canme (str): Name of the canvas
212  ymin (float): minimum value of y-axis for plotting
213  ymax (float): maximum of y-axis for plotting
214  """
215  if not canvas:
216  return
217  else:
218  canvas.Clear()
219  canvas.SetWindowSize(1000, 400)
220  canvas.SetLeftMargin(0.09)
221  canvas.SetRightMargin(0.05)
222  self.tfile.cd()
223  for i, sensorID in enumerate(sensorID_list):
224  sensor_id = sensorID.getID()
225  if i == 0:
226  if ymax:
227  self.graphs[sensor_id].SetMaximum(ymax)
228  self.graphs[sensor_id].SetMinimum(ymin)
229  self.graphs[sensor_id].Draw("AP")
230  else:
231  self.graphs[sensor_id].Draw("P")
232  if self.graphs["TLegends"]:
233  for leg in self.graphs["TLegends"]:
234  leg.Draw()
235  self.save_canvas(canvas, cname)
236 
237  def save_canvas(self, canvas, cname, with_logy=False):
238  """
239  Save TCanvas to png/pdf format and write it to the default ROOT file
240  """
241  if cname:
242  canvas.SetName(cname)
243  exp_run = f"e{self.expstart:05}_r{self.runstart:04}-{self.runend:04}"
244  # Draw Belle II label
245  latex_r.DrawLatex(0.95, 0.92, "Belle II Experiment: " + exp_run.replace("_", " "))
246  # Print and write TCanvas
247  canvas.SetLogy(0)
248  canvas.Print(f"{exp_run}_{cname}_vs_run.png")
249  canvas.Print(f"{exp_run}_{cname}_vs_run.pdf")
250  if with_logy:
251  canvas.SetLogy(1)
252  canvas.Update()
253  canvas.Modified()
254  canvas.Print(f"{exp_run}_{cname}_vs_run_logy.png")
255  canvas.Print(f"{exp_run}_{cname}_vs_run_logy.pdf")
256  self.tfile.cd()
257  canvas.Write()
258 
259 
261  """
262  Checker for PXDOccupancyInfoPar
263  """
264 
265  def __init__(self, name, tfile, rundir=""):
266  """
267  """
268  super().__init__(name, Belle2.PXDOccupancyInfoPar, tfile, "")
269 
270  def define_graphs(self):
271  """
272  Method to define TGraph
273  """
274  super().define_graphs(ytitle="Occupancy (With Mask) [%]")
275 
276  def get_db_content(self):
277  content_dic = {}
278  for sensorID in sensorID_list:
279  numID = sensorID.getID()
280  raw_occ = self.dbObj.getOccupancy(numID)
281  # The default value is -1. It seems 0 will not be updated into the payload.
282  content_dic[numID] = raw_occ if raw_occ >= 0 else 0
283 
284  return content_dic
285 
286  def get_graph_value(self, sensor_db_content):
287  return sensor_db_content * 100
288 
289  def draw_plots(self, canvas=None):
290  """
291  Method to draw plots on a TCanvas
292  """
293  # We don't use raw occupanncy. They will be corrected after takig out dead pixels
294  pass
295  # super().draw_plots(canvas=canvas, cname="OccupancyWithMask", ymin=0., ymax=plot_type_dict["occ_masked"]["max"])
296 
297 
298 class PXDMaskedPixelsChecker(ConditionCheckerBase):
299  """
300  Checker for PXDMaskedPixelPar
301  """
302 
303  def __init__(self, name, tfile, rundir="maps"):
304  """
305  """
306  super().__init__(name, Belle2.PXDMaskedPixelPar, tfile, rundir)
307 
308  def define_graphs(self):
309  """
310  Method to define TGraph
311  """
312  super().define_graphs(ytitle="Hot pixels [%]")
313 
314  def define_hists(self):
315  """
316  Method to define TH2
317  """
318  super().define_hists(name="MaskedPixels", title="Masked Pixels", ztitle="isMasked")
319 
320  def get_db_content(self):
321  return self.dbObj.getMaskedPixelMap()
322 
323  def get_graph_value(self, sensor_db_content):
324  hotcount = len(sensor_db_content)
325 
326  self.hist_title_suffix = f" ({hotcount} pixels)"
327  return hotcount * 100. / nPixels
328 
329  def set_hist_content(self, h2, sensor_db_content):
330  # loop over all masked pixels
331  for pixelID in sensor_db_content:
332  uCell = int(pixelID / nVCells)
333  vCell = pixelID % nVCells
334  h2.SetBinContent(int(uCell + 1), int(vCell + 1), 1)
335 
336  def draw_plots(self, canvas=None, cname="PXDHotPixel", ymin=0., ymax=plot_type_dict["hot"]["max"]):
337  """
338  Method to draw plots on a TCanvas
339  """
340  super().draw_plots(canvas=canvas, cname=cname, ymin=ymin, ymax=ymax)
341 
342 
344  """
345  Checker for PXDDeadPixelPar
346  """
347 
348  def __init__(self, name, tfile, rundir="maps", use_hist=True):
349  """
350  """
351  super().__init__(name, Belle2.PXDDeadPixelPar, tfile, rundir)
352 
353  def define_graphs(self):
354  """
355  Method to define TGraph
356  """
357  super().define_graphs(ytitle="Dead pixels [%]")
358 
359  def define_hists(self):
360  """
361  Method to define TH2
362  """
363  super().define_hists(name="DeadPixels", title="Dead Pixels", ztitle="isDead")
364 
365  def get_db_content(self):
366  deadsensormap = self.dbObj.getDeadSensorMap()
367  deaddrainmap = self.dbObj.getDeadDrainMap()
368  deadrowmap = self.dbObj.getDeadRowMap()
369  deadsinglesmap = self.dbObj.getDeadSinglePixelMap()
370 
371  content_dic = {}
372  for sensorID in sensorID_list:
373  numID = sensorID.getID()
374  content_dic[numID] = {}
375  if numID in deadsensormap:
376  content_dic[numID]["deadsensor"] = True
377  else:
378  content_dic[numID]["deadsensor"] = False
379  content_dic[numID]["deaddrains"] = deaddrainmap[numID]
380  content_dic[numID]["deadrows"] = deadrowmap[numID]
381  content_dic[numID]["deadsingles"] = deadsinglesmap[numID]
382  return content_dic
383 
384  def get_graph_value(self, sensor_db_content):
385  deadcount = 0
386  if sensor_db_content["deadsensor"]:
387  deadcount = nPixels
388  else:
389  n_deaddrains = len(sensor_db_content["deaddrains"])
390  n_deadrows = len(sensor_db_content["deadrows"])
391  if n_deaddrains == 0 or n_deadrows == 0:
392  # Every dead drain counts for 192 dead pixels
393  deadcount = n_deaddrains * 192
394  # Every dead row counts for 250 dead pixels
395  # This can lead to double counting of dead pixel from dead drains
396  # The double counting can be avoided by using TH2.Integral().
397  deadcount += n_deadrows * 250
398  # Every dead single pixels
399  deadcount += len(sensor_db_content["deadsingles"])
400  else: # Using a histogram to avoid double counting
401  # Just create a temporary TH2
402  h2 = list(get_sensor_maps(sensorID_list=sensorID_list[0:1]).values())[0]
403  self.set_hist_content(h2, sensor_db_content)
404  deadcount = h2.Integral()
405 
406  self.hist_title_suffix = f" ({deadcount} pixels)"
407  return min(deadcount, nPixels) * 100. / nPixels
408 
410  return h2.Integral() * 100. / nPixels
411 
412  def set_hist_content(self, h2, sensor_db_content):
413  # loop over all dead pixels
414  if sensor_db_content["deadsensor"]:
415  ones = np.ones(nPixels)
416  h2.SetContent(ones)
417  else:
418  for drainID in sensor_db_content["deaddrains"]:
419  for iGate in range(192):
420  uCell = drainID / 4
421  vCell = drainID % 4 + iGate * 4
422  h2.SetBinContent(int(uCell + 1), int(vCell + 1), 1)
423 
424  for vCell in sensor_db_content["deadrows"]:
425  for uCell in range(nUCells):
426  h2.SetBinContent(int(uCell + 1), int(vCell + 1), 1)
427 
428  for pixelID in sensor_db_content["deadsingles"]:
429  uCell = int(pixelID / nVCells)
430  vCell = pixelID % nVCells
431  h2.SetBinContent(int(uCell + 1), int(vCell + 1), 1)
432 
433  def draw_plots(self, canvas=None, cname="PXDDeadPixel", ymin=0., ymax=plot_type_dict["dead"]["max"]):
434  """
435  Method to draw plots on a TCanvas
436  """
437  super().draw_plots(canvas=canvas, cname=cname, ymin=ymin, ymax=ymax)
438 
439 
441  """
442  Checker for PXDGainMapPar
443  """
444 
445  def __init__(self, name, tfile, rundir="maps"):
446  """
447  """
448  super().__init__(name, Belle2.PXDGainMapPar, tfile, rundir)
449 
450  def define_graphs(self):
451  """
452  Method to define TGraph
453  """
454  super().define_graphs(ytitle="Gain / MC default")
455 
456  def define_hists(self):
457  """
458  Method to define TH2
459  """
460  nU = self.dbObj.getBinsU()
461  nV = self.dbObj.getBinsV()
462  super().define_hists(name="GainMap", title="Gain / MC default", ztitle="Relative gain", nUCells=nU, nVCells=nV)
463 
464  def get_db_content(self):
465  gainMap = self.dbObj.getCalibrationMap()
466  content_dic = {}
467  for sensorID in sensorID_list:
468  numID = sensorID.getID()
469  content_dic[numID] = np.array(list(gainMap[numID]))
470  return content_dic
471 
472  def get_graph_value(self, sensor_db_content):
473  """
474  sensor_db_content (np.array): Array of gain factors of a module
475  """
476  return sensor_db_content.mean()
477 
478  def set_hist_content(self, h2, sensor_db_content):
479  array2hist(sensor_db_content.reshape(h2.GetNbinsX(), h2.GetNbinsY()), h2)
480 
481  def draw_plots(self, canvas=None, cname="PXDGain", ymin=0.5, ymax=2.5):
482  """
483  Method to draw plots on a TCanvas
484  """
485  super().draw_plots(canvas=canvas, cname=cname, ymin=ymin, ymax=ymax)
pxd.calibration.condition_checker.ConditionCheckerBase.runend
runend
The last run.
Definition: condition_checker.py:74
pxd.calibration.condition_checker.PXDDeadPixelsChecker.get_graph_value
def get_graph_value(self, sensor_db_content)
Definition: condition_checker.py:384
pxd.calibration.condition_checker.ConditionCheckerBase.tfile
tfile
TFile for saving plots.
Definition: condition_checker.py:59
pxd.calibration.condition_checker.PXDDeadPixelsChecker.define_graphs
def define_graphs(self)
Definition: condition_checker.py:353
pxd.calibration.condition_checker.ConditionCheckerBase.eventMetaData
eventMetaData
pointer to the event metadata
Definition: condition_checker.py:57
pxd.calibration.condition_checker.PXDOccupancyInfoChecker.get_db_content
def get_db_content(self)
Definition: condition_checker.py:276
pxd.calibration.condition_checker.ConditionCheckerBase.run
def run(self)
Definition: condition_checker.py:90
pxd.calibration.condition_checker.PXDGainMapChecker.__init__
def __init__(self, name, tfile, rundir="maps")
Definition: condition_checker.py:445
pxd.calibration.condition_checker.ConditionCheckerBase.get_graph_value
def get_graph_value(self, sensor_db_content)
Definition: condition_checker.py:140
pxd.calibration.condition_checker.ConditionCheckerBase.use_hist
use_hist
Flag to get TGraph values from a histogram (TH2F)
Definition: condition_checker.py:78
pxd.calibration.condition_checker.ConditionCheckerBase.define_hists
def define_hists(self, name=None, title=None, ztitle=None, **kwargs)
Definition: condition_checker.py:119
pxd.calibration.condition_checker.PXDDeadPixelsChecker.set_hist_content
def set_hist_content(self, h2, sensor_db_content)
Definition: condition_checker.py:412
pxd.calibration.condition_checker.ConditionCheckerBase.define_graphs
def define_graphs(self, ytitle="")
Definition: condition_checker.py:110
pxd.calibration.condition_checker.PXDDeadPixelsChecker.draw_plots
def draw_plots(self, canvas=None, cname="PXDDeadPixel", ymin=0., ymax=plot_type_dict["dead"]["max"])
Definition: condition_checker.py:433
pxd.calibration.condition_checker.ConditionCheckerBase.hists
hists
Dictionary of plots (TH1) to be saved for each run.
Definition: condition_checker.py:68
pxd.calibration.condition_checker.PXDGainMapChecker.define_hists
def define_hists(self)
Definition: condition_checker.py:456
pxd.calibration.condition_checker.PXDDeadPixelsChecker.get_graph_value_from_hist
def get_graph_value_from_hist(self, h2)
Definition: condition_checker.py:409
pxd.calibration.condition_checker.ConditionCheckerBase.beginRun
def beginRun(self)
Definition: condition_checker.py:103
Belle2::PyStoreObj
a (simplified) python wrapper for StoreObjPtr.
Definition: PyStoreObj.h:69
Belle2::PXDGainMapPar
The payload class for PXD gain corrections.
Definition: PXDGainMapPar.h:53
pxd.calibration.condition_checker.PXDOccupancyInfoChecker
Definition: condition_checker.py:260
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.define_hists
def define_hists(self)
Definition: condition_checker.py:314
pxd.calibration.condition_checker.ConditionCheckerBase.hist_title_suffix
hist_title_suffix
Hist title suffix.
Definition: condition_checker.py:70
Belle2::PXDDeadPixelPar
The payload telling which PXD pixel is dead (=Readout system does not receive signals)
Definition: PXDDeadPixelPar.h:43
pxd.calibration.condition_checker.PXDGainMapChecker.get_db_content
def get_db_content(self)
Definition: condition_checker.py:464
pxd.calibration.condition_checker.PXDOccupancyInfoChecker.draw_plots
def draw_plots(self, canvas=None)
Definition: condition_checker.py:289
pxd.calibration.condition_checker.ConditionCheckerBase.set_hist_content
def set_hist_content(self, h2, sensor_db_content)
Definition: condition_checker.py:155
pxd.calibration.condition_checker.PXDGainMapChecker.draw_plots
def draw_plots(self, canvas=None, cname="PXDGain", ymin=0.5, ymax=2.5)
Definition: condition_checker.py:481
pxd.calibration.condition_checker.PXDGainMapChecker
Definition: condition_checker.py:440
pxd.calibration.condition_checker.ConditionCheckerBase.name
name
DBObj name.
Definition: condition_checker.py:51
Belle2::PyDBObj
Class to access a DBObjPtr from Python.
Definition: PyDBObj.h:50
Belle2::getRun
static ExpRun getRun(map< ExpRun, pair< double, double >> runs, double t)
Get exp number + run number from time.
Definition: Splitter.cc:262
pxd.calibration.condition_checker.ConditionCheckerBase.graphs
graphs
Dictionary of plots (TGraph) summarizing variables vs run.
Definition: condition_checker.py:66
pxd.calibration.condition_checker.ConditionCheckerBase.exp
def exp(self)
Definition: condition_checker.py:97
pxd.calibration.condition_checker.PXDDeadPixelsChecker.__init__
def __init__(self, name, tfile, rundir="maps", use_hist=True)
Definition: condition_checker.py:348
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.get_db_content
def get_db_content(self)
Definition: condition_checker.py:320
pxd.calibration.condition_checker.ConditionCheckerBase.rundir
rundir
Directory for writing histograms of each run.
Definition: condition_checker.py:61
pxd.calibration.condition_checker.PXDDeadPixelsChecker.define_hists
def define_hists(self)
Definition: condition_checker.py:359
pxd.calibration.condition_checker.PXDOccupancyInfoChecker.__init__
def __init__(self, name, tfile, rundir="")
Definition: condition_checker.py:265
pxd.calibration.condition_checker.ConditionCheckerBase.save_canvas
def save_canvas(self, canvas, cname, with_logy=False)
Definition: condition_checker.py:237
pxd.calibration.condition_checker.ConditionCheckerBase.dbObj
dbObj
DBObjPtr for the condition.
Definition: condition_checker.py:55
pxd.utils
Definition: utils.py:1
pxd.calibration.condition_checker.ConditionCheckerBase.expstart
expstart
The 1st exp.
Definition: condition_checker.py:76
pxd.calibration.condition_checker.ConditionCheckerBase._objType
_objType
DBObj type.
Definition: condition_checker.py:53
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.get_graph_value
def get_graph_value(self, sensor_db_content)
Definition: condition_checker.py:323
pxd.calibration.condition_checker.ConditionCheckerBase.get_graph_value_from_hist
def get_graph_value_from_hist(self, h2=None)
Definition: condition_checker.py:147
pxd.calibration.condition_checker.ConditionCheckerBase.__init__
def __init__(self, name, objType, tfile, rundir="", use_hist=False)
Definition: condition_checker.py:46
pxd.calibration.condition_checker.PXDDeadPixelsChecker
Definition: condition_checker.py:343
pxd.calibration.condition_checker.ConditionCheckerBase
Definition: condition_checker.py:43
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.set_hist_content
def set_hist_content(self, h2, sensor_db_content)
Definition: condition_checker.py:329
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.define_graphs
def define_graphs(self)
Definition: condition_checker.py:308
pxd.calibration.condition_checker.PXDGainMapChecker.get_graph_value
def get_graph_value(self, sensor_db_content)
Definition: condition_checker.py:472
pxd.calibration.condition_checker.PXDGainMapChecker.set_hist_content
def set_hist_content(self, h2, sensor_db_content)
Definition: condition_checker.py:478
pxd.calibration.condition_checker.PXDOccupancyInfoChecker.get_graph_value
def get_graph_value(self, sensor_db_content)
Definition: condition_checker.py:286
pxd.calibration.condition_checker.ConditionCheckerBase.draw_plots
def draw_plots(self, canvas=None, cname="", ymin=0., ymax=None)
Definition: condition_checker.py:206
pxd.calibration.condition_checker.ConditionCheckerBase.get_db_content
def get_db_content(self)
Definition: condition_checker.py:133
Belle2::PXDOccupancyInfoPar
The payload collecting some meta information from running the masking algorithm.
Definition: PXDOccupancyInfoPar.h:38
pxd.calibration.condition_checker.ConditionCheckerBase.objType
def objType(self)
Definition: condition_checker.py:83
pxd.calibration.condition_checker.ConditionCheckerBase.fill_plots
def fill_plots(self)
Definition: condition_checker.py:164
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.draw_plots
def draw_plots(self, canvas=None, cname="PXDHotPixel", ymin=0., ymax=plot_type_dict["hot"]["max"])
Definition: condition_checker.py:336
pxd.calibration.condition_checker.PXDGainMapChecker.define_graphs
def define_graphs(self)
Definition: condition_checker.py:450
pxd.calibration.condition_checker.PXDDeadPixelsChecker.get_db_content
def get_db_content(self)
Definition: condition_checker.py:365
pxd.calibration.condition_checker.PXDMaskedPixelsChecker.__init__
def __init__(self, name, tfile, rundir="maps")
Definition: condition_checker.py:303
pxd.calibration.condition_checker.PXDOccupancyInfoChecker.define_graphs
def define_graphs(self)
Definition: condition_checker.py:270
pxd.calibration.condition_checker.ConditionCheckerBase.runstart
runstart
The 1st run.
Definition: condition_checker.py:72
Belle2::PXDMaskedPixelPar
The payload telling which PXD pixel to mask (ignore)
Definition: PXDMaskedPixelPar.h:34