13 from ROOT
import Belle2
17 import PXDROIUnpackerModule
19 b2.set_random_seed(42)
25 module which checks if the roy payload from HLT can be created and depacked correctly
30 Returns a python-list containing the ROIs
34 py_list = list(unsortedPyStoreArray)
37 return sorted(py_list,
46 """ load the PXD Digits of the simulation and the packed/unpacked ones
51 b2.B2FATAL(
"ROIs not in file")
55 if not unpackedroisuns:
56 b2.B2FATAL(
"PXDROIsPayHLT not in file")
64 orgrois = self.
sortROIssortROIs(orgroisuns)
65 unpackedrois = self.
sortROIssortROIs(unpackedroisuns)
75 print(f
"Comparing {len(orgrois)} ROIs ")
98 for i
in range(len(orgrois)):
100 if i != 0
and f(org) == f(orgrois[i - 1]):
101 b2.B2WARNING(
"Found the same ROI a second time (Double ROI)!")
103 f
"Check ${org.getSensorID().getID():X} {int(org.getMinUid()):3d} {int(org.getMaxUid()):3d} " +
104 f
"{int(org.getMinVid()):3d} {int(org.getMaxVid()):3d}")
105 if i == 0
or f(org) != f(orgrois[i - 1]):
106 if j == len(unpackedrois):
107 b2.B2FATAL(
"Unpacked ROIs comparison exceeds array limit!")
110 unp = unpackedrois[j]
113 f
"Check Org ${org.getSensorID().getID():X} {org.getMinUid():3d} {org.getMaxUid():3d} " +
114 f
"{org.getMinVid():3d} {org.getMaxVid():3d} Unp ${unp.getSensorID().getID():X} {unp.getMinUid():3d} " +
115 f
"{unp.getMaxUid():3d} {unp.getMinVid():3d} {unp.getMaxVid():3d}")
117 if unp.getMinUid() == 0
and unp.getMinVid() == 0
and unp.getMaxUid() == 250 - 1
and unp.getMaxVid() == 768 - 1:
118 b2.B2INFO(
"Full size ROI")
119 if org.getSensorID().
getID() != unp.getSensorID().
getID():
120 b2.B2INFO(
"DHHID changed")
121 if j == len(unpackedrois):
122 b2.B2FATAL(
"Unpacked ROIs comparison exceeds array limit!")
125 unp = unpackedrois[j]
127 if not(unp.getMinUid() == 0
and unp.getMinVid() == 0
and unp.getMaxUid() == 250 - 1
and unp.getMaxVid() == 768 - 1):
128 assert org.getSensorID().
getID() == unp.getSensorID().
getID()
129 assert org.getMinUid() == unp.getMinUid()
130 assert org.getMaxUid() == unp.getMaxUid()
131 assert org.getMinVid() == unp.getMinVid()
132 assert org.getMaxVid() == unp.getMaxVid()
137 particlegun = b2.register_module(
'ParticleGun')
138 particlegun.param(
'pdgCodes', [13, -13])
139 particlegun.param(
'nTracks', 40)
142 eventinfosetter = b2.register_module(
'EventInfoSetter')
143 eventinfosetter.param({
'evtNumList': [10]})
145 main = b2.create_path()
147 main.add_module(eventinfosetter)
148 main.add_module(particlegun)
152 usePXDDataReduction=
True, cleanupPXDDataReduction=
False)
153 b2.set_module_parameters(main, type=
"Geometry", useDB=
False, components=[
'PXD',
'SVD',
'MagneticFieldConstant4LimitedRSVD'])
155 roiPayloadAssembler = b2.register_module(
'ROIPayloadAssembler')
156 roiPayloadAssembler.param({
"ROIListName":
"ROIs",
"SendAllDownscaler": 0,
157 "SendROIsDownscaler": 0,
"CutNrROIs": 5,
"AcceptAll":
True})
159 main.add_module(roiPayloadAssembler)
162 main.add_module(
'Progress')
A (simplified) python wrapper for StoreArray.
def sortROIs(self, unsortedPyStoreArray)
int getID(const std::vector< double > &breaks, double t)
get id of the time point t
def add_simulation(path, components=None, bkgfiles=None, bkgOverlay=True, forceSetPXDDataReduction=False, usePXDDataReduction=True, cleanupPXDDataReduction=True, generate_2nd_cdc_hits=False, simulateT0jitter=True, isCosmics=False, FilterEvents=False, usePXDGatedMode=False, skipExperimentCheckForBG=False, save_slow_pions_in_mc=False)