10from ROOT
import Belle2
18hwneurotracks =
'CDCTriggerNeuroTracks'
19hwneuroinput2dfindertracks =
'CDCTriggerNNInput2DFinderTracks'
20hwneuroinputsegmenthits =
'CDCTriggerNNInputSegmentHits'
28hwsimneurotracks =
'TSimNeuroTracks'
32simneurotracks_swtssw2d =
'TRGCDCNeuroTracks'
33simsegmenthits =
'SimSegmentHits'
34sim2dtracks_swts =
'TRGCDC2DFinderTracks'
42 nullpath = basf2.create_path()
43 mfilter = basf2.register_module(
"CDCTriggerUnpacker", unpackNeuro=
True)
44 path.add_module(mfilter)
45 mfilter.if_value(
'<1', nullpath)
54 def param(self, params):
55 for key, value
in params.items():
56 setattr(self, key, value)
61 self.return_value(lower
and higher)
65lt2reco.param({
"filterarrayname":
"RecoTracks",
"lowerthan": 2})
68lt4reco.param({
"filterarrayname":
"RecoTracks",
"lowerthan": 4})
86 def neurotrack_allgoodquality(self):
89 if tr.getQualityVector() > 0:
111 print(
"some kind of error")
115def add_nnta_gzip_test_output(
121 excludeBranchNames=[],
126 outpaths.append([
".random_"+str(x), basf2.create_path()])
133 rm.if_value(
'==0', outpaths[0][1])
134 rm.if_value(
'==1', outpaths[1][1])
135 rm.if_value(
'==2', outpaths[2][1])
136 rm.if_value(
'==3', outpaths[3][1])
138 nnta = basf2.register_module(
nntd.nntd())
139 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
140 p[1].add_module(nnta)
141 p[1].add_module(
'CDCTriggerNeuroData',
143 NeuroTrackInputMode=
False,
144 inputCollectionName=hwneuroinput2dfindertracks,
147 hitCollectionName=hwneuroinputsegmenthits,
148 EventTimeName=
"CDCTriggerNeuroETFT0",
149 targetCollectionName=
'RecoTracks',
150 trainOnRecoTracks=
True,
151 gzipFilename=baseGzipFileName+p[0]+
".gz",
152 configFileName=configFileName,
153 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
155 if p[0] ==
".random_3":
156 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
157 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
160def add_nnta_gzip_output(path, baseAnaFileName, configFileName, baseGzipFileName):
164 outpaths.append([
".random_"+str(x), basf2.create_path()])
171 rm.if_value(
'==0', outpaths[0][1])
172 rm.if_value(
'==1', outpaths[1][1])
173 rm.if_value(
'==2', outpaths[2][1])
174 rm.if_value(
'==3', outpaths[3][1])
176 nnta = basf2.register_module(
nntd.nntd())
177 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
178 p[1].add_module(nnta)
179 p[1].add_module(
'CDCTriggerNeuroData',
181 NeuroTrackInputMode=
False,
182 inputCollectionName=hwneuroinput2dfindertracks,
185 hitCollectionName=hwneuroinputsegmenthits,
186 EventTimeName=
"CDCTriggerNeuroETFT0",
187 targetCollectionName=
'RecoTracks',
188 trainOnRecoTracks=
True,
189 gzipFilename=baseGzipFileName+p[0]+
".gz",
190 configFileName=configFileName,
191 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
201 excludeBranchNames=[],
206 outpaths.append([
".random_"+str(x), basf2.create_path()])
213 rm.if_value(
'==0', outpaths[0][1])
214 rm.if_value(
'==1', outpaths[1][1])
215 rm.if_value(
'==2', outpaths[2][1])
216 rm.if_value(
'==3', outpaths[3][1])
218 nnta = basf2.register_module(
nntd.nntd())
219 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
220 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
221 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
222 p[1].add_module(nnta)
223 p[1].add_module(
'CDCTriggerNeuroData',
225 NeuroTrackInputMode=
False,
226 inputCollectionName=hwneuroinput2dfindertracks,
229 hitCollectionName=hwneuroinputsegmenthits,
230 EventTimeName=
"CDCTriggerNeuroETFT0",
231 targetCollectionName=
'RecoTracks',
232 trainOnRecoTracks=
True,
233 gzipFilename=baseGzipFileName+p[0]+
".gz",
234 configFileName=configFileName,
235 writeconfigFileName=baseGzipFileName.split(
"/gzip")[0]+
"/"+configFileName.split(
'/')[-1],
239def add_nnta_root_output(path, baseOutputFileName, baseAnaFileName, excludeBranchNames=[], branchNames=[]):
243 outpaths.append([
".random_"+str(x), basf2.create_path()])
250 rm.if_value(
'==0', outpaths[0][1])
251 rm.if_value(
'==1', outpaths[1][1])
252 rm.if_value(
'==2', outpaths[2][1])
253 rm.if_value(
'==3', outpaths[3][1])
255 nnta = basf2.register_module(
nntd.nntd())
256 nnta.param({
"filename": baseAnaFileName+p[0]+
".pkl",
"netname":
"hardware"})
257 p[1].add_module(
"RootOutput", outputFileName=baseOutputFileName +
258 p[0]+
".root", excludeBranchNames=excludeBranchNames, branchNames=branchNames)
259 p[1].add_module(nnta)
262def add_neuro_unpacker(path, debug_level=4, debugout=False, **kwargs):
264 unpacker = basf2.register_module(
'CDCTriggerUnpacker')
266 unpacker.logging.log_level = basf2.LogLevel.DEBUG
267 unpacker.logging.debug_level = debug_level
268 unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
270 unpacker.param(
'headerSize', 3)
272 unpacker.param(
'unpackTracker2D',
False)
274 unpacker.param(
'decode2DFinderTrack',
False)
276 unpacker.param(
'decode2DFinderInput',
False)
277 unpacker.param(
'2DNodeId', [
282 unpacker.param(
'NeuroNodeId', [
288 if 'useDB' in kwargs:
289 unpacker.param(
'useDB', kwargs[
'useDB'])
291 unpacker.param(
'useDB',
True)
293 if 'sim13dt' in kwargs:
294 unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
296 unpacker.param(
'sim13dt',
False)
297 unpacker.param(
'unpackNeuro',
True)
298 unpacker.param(
'decodeNeuro',
True)
299 path.add_module(unpacker)
302def add_neuro_2d_unpackers(path, debug_level=4, debugout=False, **kwargs):
304 unpacker = basf2.register_module(
'CDCTriggerUnpacker')
306 unpacker.logging.log_level = basf2.LogLevel.DEBUG
307 unpacker.logging.debug_level = debug_level
308 unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
310 unpacker.param(
'headerSize', 3)
312 unpacker.param(
'unpackTracker2D',
True)
314 unpacker.param(
'decode2DFinderTrack',
True)
316 unpacker.param(
'decode2DFinderInput',
True)
317 unpacker.param(
'2DNodeId', [
323 unpacker.param(
'NeuroNodeId', [
329 if 'useDB' in kwargs:
330 unpacker.param(
'useDB', kwargs[
'useDB'])
332 unpacker.param(
'useDB',
True)
334 if 'sim13dt' in kwargs:
335 unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
337 unpacker.param(
'sim13dt',
False)
338 unpacker.param(
'unpackNeuro',
True)
339 unpacker.param(
'decodeNeuro',
True)
340 path.add_module(unpacker)
342 if ((
'unpackDNN' in kwargs)
and (kwargs[
'unpackDNN'])):
344 DNN_unpacker = basf2.register_module(
'CDCTriggerUnpacker')
346 DNN_unpacker.logging.log_level = basf2.LogLevel.DEBUG
347 DNN_unpacker.logging.debug_level = debug_level
348 DNN_unpacker.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
351 DNN_unpacker.param(
'headerSize', 3)
353 DNN_unpacker.param(
'useDB',
True)
355 if 'sim13dt' in kwargs:
356 DNN_unpacker.param(
'sim13dt', kwargs[
'sim13dt'])
358 DNN_unpacker.param(
'sim13dt',
False)
360 DNN_unpacker.param(
'NeuroNodeId_pcie40', [
367 DNN_unpacker.param(
'unpackNeuro',
True)
368 DNN_unpacker.param(
'decodeNeuro',
True)
369 DNN_unpacker.param(
'unpackMerger',
True)
370 DNN_unpacker.param(
'unpackTracker2D',
True)
371 DNN_unpacker.param(
'decode2DFinderTrack',
True)
373 DNN_unpacker.param(
"NNTrackName",
"CDCTriggerDNNTracks")
375 DNN_unpacker.param(
"NNInStereoTS",
"CDCTriggerDNNInputAllStereoSegmentHits")
377 DNN_unpacker.param(
"NNInSelectTS",
"CDCTriggerDNNInputSegmentHits")
379 DNN_unpacker.param(
"NNIn2DTrack",
"CDCTriggerDNNInput2DFinderTracks")
381 DNN_unpacker.param(
"NNInETFT0",
"CDCTriggerDNNETFT0")
383 DNN_unpacker.param(
"NNScaledInput",
"CDCTriggerDNNTracksInput")
385 DNN_unpacker.param(
"configName",
"DNNT_Config")
387 DNN_unpacker.param(
"isDNN",
True)
388 path.add_module(DNN_unpacker)
391def add_neurotrigger_sim(path, nntweightfile=None, debug_level=4, debugout=False, **kwargs):
392 nnt = basf2.register_module(
'CDCTriggerNeuro')
393 if 'inputCollectionName' in kwargs:
394 nnt.param(
'inputCollectionName', kwargs[
'inputCollectionName'])
396 nnt.param(
'inputCollectionName', hwneuroinput2dfindertracks)
397 if 'outputCollectionName' in kwargs:
398 nnt.param(
'outputCollectionName', kwargs[
'outputCollectionName'])
400 nnt.param(
'outputCollectionName', hwsimneurotracks)
401 if 'hitCollectionName' in kwargs:
402 nnt.param(
'hitCollectionName', kwargs[
'hitCollectionName'])
404 nnt.param(
'hitCollectionName', hwneuroinputsegmenthits)
405 if 'writeMLPinput' in kwargs:
406 nnt.param(
'writeMLPinput', kwargs[
'writeMLPinput'])
408 nnt.param(
'writeMLPinput',
True)
409 if 'fixedPoint' in kwargs:
410 nnt.param(
'fixedPoint', kwargs[
'fixedPoint'])
412 nnt.param(
'fixedPoint',
True)
413 if nntweightfile
is not None:
416 if 'et_option' in kwargs:
417 nnt.param(
'et_option', kwargs[
'et_option'])
418 if 'EventTimeName' in kwargs:
419 nnt.param(
'EventTimeName', kwargs[
'EventTimeName'])
421 nnt.logging.log_level = basf2.LogLevel.DEBUG
422 nnt.logging.debug_level = debug_level
426def add_neurotrigger_hw(path, nntweightfile=None, debug_level=4, debugout=False, **kwargs):
427 nnt = basf2.register_module(
'CDCTriggerNeuro')
428 if 'inputCollectionName' in kwargs:
429 nnt.param(
'inputCollectionName', kwargs[
'inputCollectionName'])
431 nnt.param(
'inputCollectionName', hwneurotracks)
432 if 'outputCollectionName' in kwargs:
433 nnt.param(
'outputCollectionName', kwargs[
'outputCollectionName'])
435 nnt.param(
'outputCollectionName', hwsimneurotracks)
436 if 'hitCollectionName' in kwargs:
437 nnt.param(
'hitCollectionName', kwargs[
'hitCollectionName'])
439 nnt.param(
'hitCollectionName', hwneuroinputsegmenthits)
440 if 'writeMLPinput' in kwargs:
441 nnt.param(
'writeMLPinput', kwargs[
'writeMLPinput'])
443 nnt.param(
'writeMLPinput',
True)
444 if 'fixedPoint' in kwargs:
445 nnt.param(
'fixedPoint', kwargs[
'fixedPoint'])
447 nnt.param(
'fixedPoint',
True)
448 if 'realinputCollectonName' in kwargs:
449 nnt.param(
'realinputCollectionName', kwargs[
'realinputCollectionName'])
451 nnt.param(
'realinputCollectionName', hwneuroinput2dfindertracks)
453 if nntweightfile
is not None:
455 nnt.param(
'NeuroHWTrackInputMode',
True)
456 if 'et_option' in kwargs:
457 nnt.param(
'et_option', kwargs[
'et_option'])
459 nnt.param(
'et_option',
'etfhwin')
461 if 'EventTimeName' in kwargs:
462 nnt.param(
'EventTimeName', kwargs[
'EventTimeName'])
464 nnt.param(
'EventTimeName',
'CDCTriggerNeuroETFT0')
466 nnt.logging.log_level = basf2.LogLevel.DEBUG
467 nnt.logging.debug_level = debug_level
471def add_neuro_simulation(path, nntweightfile=None, **kwargs):
472 nnt = basf2.register_module(
'CDCTriggerNeuro')
473 tsf = basf2.register_module(
'CDCTriggerTSF')
474 if "InnerTSLUTFile" in kwargs:
475 tsf.param(
"InnerTSLUTFile", kwargs[
"InnerTSLUTFile"])
478 if "OuterTSLUTFile" in kwargs:
479 tsf.param(
"OuterTSLUTFile", kwargs[
"OuterTSLUTFile"])
482 tsf.param(
"TSHitCollectionName", simsegmenthits)
483 tsf.param(
"CDCHitCollectionName",
"CDCHits")
484 if "relateAllHits" in kwargs:
485 tsf.param(
"relateAllHits", kwargs[
"relateAllHits"])
486 if "makeRecoLRTable" in kwargs:
487 tsf.param(
"makeRecoLRTable", kwargs[
"makeRecoLRTable"])
488 if "outerRecoLRTableFilename" in kwargs:
489 tsf.param(
"outerRecoLRTableFilename", kwargs[
"outerRecoLRTableFilename"])
490 if "innerRecoLRTableFilename" in kwargs:
491 tsf.param(
"innerRecoLRTableFilename", kwargs[
"innerRecoLRTableFilename"])
492 if "makeTrueLRTable" in kwargs:
493 tsf.param(
"makeTrueLRTable", kwargs[
"makeTrueLRTable"])
495 path.add_module(
'CDCTrigger2DFinder',
496 minHits=4, minHitsShort=4, minPt=0.3,
497 hitCollectionName=simsegmenthits,
498 outputCollectionName=sim2dtracks_swts)
499 if nntweightfile
is not None:
501 if 'et_option' in kwargs:
502 nnt.param(
'et_option', kwargs[
'et_option'])
503 nnt.param(
'inputCollectionName', sim2dtracks_swts)
504 nnt.param(
'outputCollectionName', simneurotracks_swtssw2d)
505 nnt.param(
'hitCollectionName', simsegmenthits)
506 nnt.param(
'writeMLPinput',
True)
507 nnt.param(
'fixedPoint',
False)
static std::string findFile(const std::string &path, bool silent=false)
Search for given file or directory in local or central release directory, and return absolute path if...
A (simplified) python wrapper for StoreArray.
neurotrack_allgoodquality(self)