17hwneurotracks =
'CDCTriggerNeuroTracks'
18hwneuroinput2dfindertracks =
'CDCTriggerNNInput2DFinderTracks'
19hwneuroinputsegmenthits =
'CDCTriggerNNInputSegmentHits'
27hwsimneurotracks =
'TSimNeuroTracks'
31simneurotracks_swtssw2d =
'TRGCDCNeuroTracks'
32simsegmenthits =
'SimSegmentHits'
33sim2dtracks_swts =
'TRGCDC2DFinderTracks'
41 nullpath = basf2.create_path()
42 mfilter = basf2.register_module(
"CDCTriggerUnpacker", unpackNeuro=
True)
43 path.add_module(mfilter)
44 mfilter.if_value(
'<1', nullpath)
53 def param(self, params):
54 for key, value
in params.items():
55 setattr(self, key, value)
58 from ROOT
import Belle2
61 self.return_value(lower
and higher)
77 from ROOT
import Belle2
80 def neurotrack_allgoodquality(self):
81 from ROOT
import Belle2
84 if tr.getQualityVector() > 0:
106 print(
"some kind of error")
110def add_nnta_gzip_test_output(
116 excludeBranchNames=[],
121 outpaths.append([
".random_"+str(x), basf2.create_path()])
128 rm.if_value(
'==0', outpaths[0][1])
129 rm.if_value(
'==1', outpaths[1][1])
130 rm.if_value(
'==2', outpaths[2][1])
131 rm.if_value(
'==3', outpaths[3][1])
133 nnta = basf2.register_module(
nntd.nntd())
134 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
135 p[1].add_module(nnta)
136 p[1].add_module(
'CDCTriggerNeuroData',
138 NeuroTrackInputMode=
False,
139 inputCollectionName=hwneuroinput2dfindertracks,
142 hitCollectionName=hwneuroinputsegmenthits,
143 EventTimeName=
"CDCTriggerNeuroETFT0",
144 targetCollectionName=
'RecoTracks',
145 trainOnRecoTracks=
True,
146 gzipFilename=baseGzipFileName+p[0]+
".gz",
147 configFileName=configFileName,
148 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
150 if p[0] ==
".random_3":
151 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
152 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
155def add_nnta_gzip_output(path, baseAnaFileName, configFileName, baseGzipFileName):
159 outpaths.append([
".random_"+str(x), basf2.create_path()])
166 rm.if_value(
'==0', outpaths[0][1])
167 rm.if_value(
'==1', outpaths[1][1])
168 rm.if_value(
'==2', outpaths[2][1])
169 rm.if_value(
'==3', outpaths[3][1])
171 nnta = basf2.register_module(
nntd.nntd())
172 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
173 p[1].add_module(nnta)
174 p[1].add_module(
'CDCTriggerNeuroData',
176 NeuroTrackInputMode=
False,
177 inputCollectionName=hwneuroinput2dfindertracks,
180 hitCollectionName=hwneuroinputsegmenthits,
181 EventTimeName=
"CDCTriggerNeuroETFT0",
182 targetCollectionName=
'RecoTracks',
183 trainOnRecoTracks=
True,
184 gzipFilename=baseGzipFileName+p[0]+
".gz",
185 configFileName=configFileName,
186 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
196 excludeBranchNames=[],
201 outpaths.append([
".random_"+str(x), basf2.create_path()])
208 rm.if_value(
'==0', outpaths[0][1])
209 rm.if_value(
'==1', outpaths[1][1])
210 rm.if_value(
'==2', outpaths[2][1])
211 rm.if_value(
'==3', outpaths[3][1])
213 nnta = basf2.register_module(
nntd.nntd())
214 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
215 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
216 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
217 p[1].add_module(nnta)
218 p[1].add_module(
'CDCTriggerNeuroData',
220 NeuroTrackInputMode=
False,
221 inputCollectionName=hwneuroinput2dfindertracks,
224 hitCollectionName=hwneuroinputsegmenthits,
225 EventTimeName=
"CDCTriggerNeuroETFT0",
226 targetCollectionName=
'RecoTracks',
227 trainOnRecoTracks=
True,
228 gzipFilename=baseGzipFileName+p[0]+
".gz",
229 configFileName=configFileName,
230 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
234def add_nnta_root_output(path, baseOutputFileName, baseAnaFileName, excludeBranchNames=[], branchNames=[]):
238 outpaths.append([
".random_"+str(x), basf2.create_path()])
245 rm.if_value(
'==0', outpaths[0][1])
246 rm.if_value(
'==1', outpaths[1][1])
247 rm.if_value(
'==2', outpaths[2][1])
248 rm.if_value(
'==3', outpaths[3][1])
250 nnta = basf2.register_module(
nntd.nntd())
251 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
252 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
253 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
254 p[1].add_module(nnta)
257def add_neuro_unpacker(path, debug_level=4, debugout=False, **kwargs):
259 unpacker = basf2.register_module(
'CDCTriggerUnpacker')
261 unpacker.logging.log_level = basf2.LogLevel.DEBUG
262 unpacker.logging.debug_level = debug_level
263 unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
265 unpacker.param(
'headerSize', 3)
267 unpacker.param(
'unpackTracker2D',
False)
269 unpacker.param(
'decode2DFinderTrack',
False)
271 unpacker.param(
'decode2DFinderInput',
False)
272 unpacker.param(
'2DNodeId', [
277 unpacker.param(
'NeuroNodeId', [
283 if 'useDB' in kwargs:
284 unpacker.param(
'useDB', kwargs[
'useDB'])
286 unpacker.param(
'useDB',
True)
288 if 'sim13dt' in kwargs:
289 unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
291 unpacker.param(
'sim13dt',
False)
292 unpacker.param(
'unpackNeuro',
True)
293 unpacker.param(
'decodeNeuro',
True)
294 path.add_module(unpacker)
297def add_neuro_2d_unpackers(path, debug_level=4, debugout=False, **kwargs):
299 unpacker = basf2.register_module(
'CDCTriggerUnpacker')
301 unpacker.logging.log_level = basf2.LogLevel.DEBUG
302 unpacker.logging.debug_level = debug_level
303 unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
305 unpacker.param(
'headerSize', 3)
307 unpacker.param(
'unpackTracker2D',
True)
309 unpacker.param(
'decode2DFinderTrack',
True)
311 unpacker.param(
'decode2DFinderInput',
True)
312 unpacker.param(
'2DNodeId', [
318 unpacker.param(
'NeuroNodeId', [
324 if 'useDB' in kwargs:
325 unpacker.param(
'useDB', kwargs[
'useDB'])
327 unpacker.param(
'useDB',
True)
329 if 'sim13dt' in kwargs:
330 unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
332 unpacker.param(
'sim13dt',
False)
333 unpacker.param(
'unpackNeuro',
True)
334 unpacker.param(
'decodeNeuro',
True)
335 path.add_module(unpacker)
337 if ((
'unpackDNN' in kwargs)
and (kwargs[
'unpackDNN'])):
339 DNN_unpacker = basf2.register_module(
'CDCTriggerUnpacker')
341 DNN_unpacker.logging.log_level = basf2.LogLevel.DEBUG
342 DNN_unpacker.logging.debug_level = debug_level
343 DNN_unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
346 DNN_unpacker.param(
'headerSize', 3)
348 DNN_unpacker.param(
'useDB',
True)
350 if 'sim13dt' in kwargs:
351 DNN_unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
353 DNN_unpacker.param(
'sim13dt',
False)
355 DNN_unpacker.param(
'NeuroNodeId_pcie40', [
362 DNN_unpacker.param(
'unpackNeuro',
True)
363 DNN_unpacker.param(
'decodeNeuro',
True)
364 DNN_unpacker.param(
'unpackMerger',
True)
365 DNN_unpacker.param(
'unpackTracker2D',
True)
366 DNN_unpacker.param(
'decode2DFinderTrack',
True)
368 DNN_unpacker.param(
"NNTrackName",
"CDCTriggerDNNTracks")
370 DNN_unpacker.param(
"NNInStereoTS",
"CDCTriggerDNNInputAllStereoSegmentHits")
372 DNN_unpacker.param(
"NNInSelectTS",
"CDCTriggerDNNInputSegmentHits")
374 DNN_unpacker.param(
"NNIn2DTrack",
"CDCTriggerDNNInput2DFinderTracks")
376 DNN_unpacker.param(
"NNInETFT0",
"CDCTriggerDNNETFT0")
378 DNN_unpacker.param(
"NNScaledInput",
"CDCTriggerDNNTracksInput")
380 DNN_unpacker.param(
"configName",
"DNNT_Config")
382 DNN_unpacker.param(
"isDNN",
True)
383 path.add_module(DNN_unpacker)
386def add_neurotrigger_sim(path, nntweightfile=None, debug_level=4, debugout=False, **kwargs):
387 nnt = basf2.register_module(
'CDCTriggerNeuro')
388 if 'inputCollectionName' in kwargs:
389 nnt.param(
'inputCollectionName', kwargs[
'inputCollectionName'])
391 nnt.param(
'inputCollectionName', hwneuroinput2dfindertracks)
392 if 'outputCollectionName' in kwargs:
393 nnt.param(
'outputCollectionName', kwargs[
'outputCollectionName'])
395 nnt.param(
'outputCollectionName', hwsimneurotracks)
396 if 'hitCollectionName' in kwargs:
397 nnt.param(
'hitCollectionName', kwargs[
'hitCollectionName'])
399 nnt.param(
'hitCollectionName', hwneuroinputsegmenthits)
400 if 'writeMLPinput' in kwargs:
401 nnt.param(
'writeMLPinput', kwargs[
'writeMLPinput'])
403 nnt.param(
'writeMLPinput',
True)
404 if 'fixedPoint' in kwargs:
405 nnt.param(
'fixedPoint', kwargs[
'fixedPoint'])
407 nnt.param(
'fixedPoint',
True)
408 if nntweightfile
is not None:
409 nnt.param(
'filename', basf2.find_file(nntweightfile))
411 if 'et_option' in kwargs:
412 nnt.param(
'et_option', kwargs[
'et_option'])
413 if 'EventTimeName' in kwargs:
414 nnt.param(
'EventTimeName', kwargs[
'EventTimeName'])
416 nnt.logging.log_level = basf2.LogLevel.DEBUG
417 nnt.logging.debug_level = debug_level
421def add_neurotrigger_hw(path, nntweightfile=None, debug_level=4, debugout=False, **kwargs):
422 nnt = basf2.register_module(
'CDCTriggerNeuro')
423 if 'inputCollectionName' in kwargs:
424 nnt.param(
'inputCollectionName', kwargs[
'inputCollectionName'])
426 nnt.param(
'inputCollectionName', hwneurotracks)
427 if 'outputCollectionName' in kwargs:
428 nnt.param(
'outputCollectionName', kwargs[
'outputCollectionName'])
430 nnt.param(
'outputCollectionName', hwsimneurotracks)
431 if 'hitCollectionName' in kwargs:
432 nnt.param(
'hitCollectionName', kwargs[
'hitCollectionName'])
434 nnt.param(
'hitCollectionName', hwneuroinputsegmenthits)
435 if 'writeMLPinput' in kwargs:
436 nnt.param(
'writeMLPinput', kwargs[
'writeMLPinput'])
438 nnt.param(
'writeMLPinput',
True)
439 if 'fixedPoint' in kwargs:
440 nnt.param(
'fixedPoint', kwargs[
'fixedPoint'])
442 nnt.param(
'fixedPoint',
True)
443 if 'realinputCollectonName' in kwargs:
444 nnt.param(
'realinputCollectionName', kwargs[
'realinputCollectionName'])
446 nnt.param(
'realinputCollectionName', hwneuroinput2dfindertracks)
448 if nntweightfile
is not None:
449 nnt.param(
'filename', basf2.find_file(nntweightfile))
450 nnt.param(
'NeuroHWTrackInputMode',
True)
451 if 'et_option' in kwargs:
452 nnt.param(
'et_option', kwargs[
'et_option'])
454 nnt.param(
'et_option',
'etfhwin')
456 if 'EventTimeName' in kwargs:
457 nnt.param(
'EventTimeName', kwargs[
'EventTimeName'])
459 nnt.param(
'EventTimeName',
'CDCTriggerNeuroETFT0')
461 nnt.logging.log_level = basf2.LogLevel.DEBUG
462 nnt.logging.debug_level = debug_level
466def add_neuro_simulation(path, nntweightfile=None, **kwargs):
467 nnt = basf2.register_module(
'CDCTriggerNeuro')
468 tsf = basf2.register_module(
'CDCTriggerTSF')
469 if "InnerTSLUTFile" in kwargs:
470 tsf.param(
"InnerTSLUTFile", kwargs[
"InnerTSLUTFile"])
472 tsf.param(
"InnerTSLUTFile", basf2.find_file(
"data/trg/cdc/innerLUT_Bkg_p0.70_b0.80.coe"))
473 if "OuterTSLUTFile" in kwargs:
474 tsf.param(
"OuterTSLUTFile", kwargs[
"OuterTSLUTFile"])
476 tsf.param(
"OuterTSLUTFile", basf2.find_file(
"data/trg/cdc/outerLUT_Bkg_p0.70_b0.80.coe"))
477 tsf.param(
"TSHitCollectionName", simsegmenthits)
478 tsf.param(
"CDCHitCollectionName",
"CDCHits")
479 if "relateAllHits" in kwargs:
480 tsf.param(
"relateAllHits", kwargs[
"relateAllHits"])
481 if "makeRecoLRTable" in kwargs:
482 tsf.param(
"makeRecoLRTable", kwargs[
"makeRecoLRTable"])
483 if "outerRecoLRTableFilename" in kwargs:
484 tsf.param(
"outerRecoLRTableFilename", kwargs[
"outerRecoLRTableFilename"])
485 if "innerRecoLRTableFilename" in kwargs:
486 tsf.param(
"innerRecoLRTableFilename", kwargs[
"innerRecoLRTableFilename"])
487 if "makeTrueLRTable" in kwargs:
488 tsf.param(
"makeTrueLRTable", kwargs[
"makeTrueLRTable"])
490 path.add_module(
'CDCTrigger2DFinder',
491 minHits=4, minHitsShort=4, minPt=0.3,
492 hitCollectionName=simsegmenthits,
493 outputCollectionName=sim2dtracks_swts)
494 if nntweightfile
is not None:
495 nnt.param(
'filename', basf2.find_file(nntweightfile))
496 if 'et_option' in kwargs:
497 nnt.param(
'et_option', kwargs[
'et_option'])
498 nnt.param(
'inputCollectionName', sim2dtracks_swts)
499 nnt.param(
'outputCollectionName', simneurotracks_swtssw2d)
500 nnt.param(
'hitCollectionName', simsegmenthits)
501 nnt.param(
'writeMLPinput',
True)
502 nnt.param(
'fixedPoint',
False)
A (simplified) python wrapper for StoreArray.
neurotrack_allgoodquality(self)