Belle II Software  release-05-01-25
PXDROIUnpackerModule.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 from basf2 import Module
5 from ROOT import Belle2
6 
7 
8 class PXDRawROIUnpackerModule(Module):
9  """Unpack Raw Rois"""
10 
11  def initialize(self):
12  """reimplementation of Module::initialize()."""
13 
14  self.mHLT = Belle2.PyStoreArray(Belle2.ROIid.Class(), "PXDROIsHLT")
15 
16  self.mDC = Belle2.PyStoreArray(Belle2.ROIid.Class(), "PXDROIsDC")
17 
18  self.mHLT.registerInDataStore()
19  self.mDC.registerInDataStore()
20 
21  def event(self):
22  """reimplementation of Module::event()."""
23 
24  rois = Belle2.PyStoreArray('PXDRawROIss')
25  if not rois:
26  return
27  for q in rois:
28  m = q.getNrROIs()
29  for i in range(0, m):
30  DHEID = q.getDHHID(i)
31  sensor = (DHEID & 0x1) + 1
32  ladder = (DHEID & 0x1E) >> 1 # no +1
33  layer = ((DHEID & 0x20) >> 5) + 1
34  v = Belle2.VxdID(layer, ladder, sensor)
35  if q.getType(i) == 0:
36  ROI = self.mHLT.appendNew()
37  ROI.setSensorID(v)
38  ROI.setMinUid(q.getMinUid(i))
39  ROI.setMaxUid(q.getMaxUid(i))
40  ROI.setMinVid(q.getMinVid(i))
41  ROI.setMaxVid(q.getMaxVid(i))
42  else:
43  ROI = self.mDC.appendNew()
44  ROI.setSensorID(v)
45  ROI.setMinUid(q.getMinUid(i))
46  ROI.setMaxUid(q.getMaxUid(i))
47  ROI.setMinVid(q.getMinVid(i))
48  ROI.setMaxVid(q.getMaxVid(i))
49 
50 
52  """Unpack HLT Payload Rois"""
53 
54  def initialize(self):
55  """reimplementation of Module::initialize()."""
56 
57  self.mPHLT = Belle2.PyStoreArray(Belle2.ROIid.Class(), "PXDROIsPayHLT")
58 
59  self.mPDC = Belle2.PyStoreArray(Belle2.ROIid.Class(), "PXDROIsPayDC")
60 
61  self.mPHLT.registerInDataStore()
62  self.mPDC.registerInDataStore()
63 
64  def event(self):
65  """reimplementation of Module::event()."""
66 
67  q = Belle2.PyStoreObj('ROIpayload')
68  if not q:
69  B2ERROR("ROIpayload is missing")
70  return
71  q = q.obj()
72  n = q.getNrROIs()
73  for i in range(0, n):
74  DHEID = q.getDHHID(i)
75  sensor = (DHEID & 0x1) + 1
76  ladder = (DHEID & 0x1E) >> 1 # no +1
77  layer = ((DHEID & 0x20) >> 5) + 1
78  v = Belle2.VxdID(layer, ladder, sensor)
79  if q.getType(i) == 0:
80  ROI = self.mPHLT.appendNew()
81  ROI.setSensorID(v)
82  ROI.setMinUid(q.getMinUid(i))
83  ROI.setMaxUid(q.getMaxUid(i))
84  ROI.setMinVid(q.getMinVid(i))
85  ROI.setMaxVid(q.getMaxVid(i))
86  else:
87  ROI = self.mPDC.appendNew()
88  ROI.setSensorID(v)
89  ROI.setMinUid(q.getMinUid(i))
90  ROI.setMaxUid(q.getMaxUid(i))
91  ROI.setMinVid(q.getMinVid(i))
92  ROI.setMaxVid(q.getMaxVid(i))
PXDROIUnpackerModule.PXDPayloadROIUnpackerModule.event
def event(self)
Definition: PXDROIUnpackerModule.py:64
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
PXDROIUnpackerModule.PXDRawROIUnpackerModule.mHLT
mHLT
PXDROIsHLT.
Definition: PXDROIUnpackerModule.py:14
PXDROIUnpackerModule.PXDRawROIUnpackerModule.mDC
mDC
PXDROIsDC.
Definition: PXDROIUnpackerModule.py:16
Belle2::PyStoreObj
a (simplified) python wrapper for StoreObjPtr.
Definition: PyStoreObj.h:69
PXDROIUnpackerModule.PXDPayloadROIUnpackerModule.mPHLT
mPHLT
PXDROIsPayHLT.
Definition: PXDROIUnpackerModule.py:57
PXDROIUnpackerModule.PXDRawROIUnpackerModule.event
def event(self)
Definition: PXDROIUnpackerModule.py:21
PXDROIUnpackerModule.PXDPayloadROIUnpackerModule
Definition: PXDROIUnpackerModule.py:51
Belle2::PyStoreArray
a (simplified) python wrapper for StoreArray.
Definition: PyStoreArray.h:58
PXDROIUnpackerModule.PXDRawROIUnpackerModule.initialize
def initialize(self)
Definition: PXDROIUnpackerModule.py:11
PXDROIUnpackerModule.PXDRawROIUnpackerModule
Definition: PXDROIUnpackerModule.py:8
PXDROIUnpackerModule.PXDPayloadROIUnpackerModule.initialize
def initialize(self)
Definition: PXDROIUnpackerModule.py:54
PXDROIUnpackerModule.PXDPayloadROIUnpackerModule.mPDC
mPDC
PXDROIsPayDC.
Definition: PXDROIUnpackerModule.py:59