Belle II Software development
sendroi.py
1#!/usr/bin/env python3
2
3
10
11import sys
12
13import basf2 as b2
14# from simulation import register_simulation
15# from reconstruction import register_reconstruction
16
17b2.set_log_level(b2.LogLevel.ERROR)
18
19argvs = sys.argv
20argc = len(argvs)
21
22# print argvs[1]
23# print argc
24# argvs[1] = input ring buffer
25# argvs[2] = input ring buffer
26# argvs[3] = RoI queue name
27
28print("MQname = " + argvs[3])
29
30# detecor components to be reconstructed
31components = [
32 'MagneticField',
33 'BeamPipe',
34 'PXD',
35 'SVD',
36 'CDC',
37 'TOP',
38 'ARICH',
39 'BKLM',
40 'ECL',
41]
42
43# Local database access
44databasefile = "/dev/shm/LocalDB/database.txt"
45b2.prepend_testing_payloads(databasefile)
46
47# Register modules to declare objects
48# register_simulation(components)
49# register_reconstruction(components)
50
51# Register RoI related modules for object decoding
52# roiGen = register_module('ROIGenerator')
53# roiPayloadAssembler = register_module('ROIPayloadAssembler')
54
55# to avoid undefined symbol
56geom = b2.register_module("Geometry")
57
58# create a main path
59main = b2.create_path()
60
61# Add input module
62# input = register_module("SeqRootInput")
63# input.param ( "inputFileName", "/fcdisk1-1/data/sim/sim-evtgen.sroot")
64# main.add_module(input)
65
66# Add output module
67# output= register_module("SeqRootOutput")
68# output.param ( "outputFileName", "/dev/null" )
69# main.add_module(output)
70
71# Add Rbuf2Ds
72rbuf2ds = b2.register_module("Rbuf2Ds")
73# rbuf2ds = register_module("FastRbuf2Ds")
74rbuf2ds.param("RingBufferName", argvs[1])
75main.add_module(rbuf2ds)
76
77# RoI related codes here
78# roiReadTest = register_module('ROIReadTest')
79# param_roiReadTest = {'outfileName': 'ROIoutReceiver.txt',
80# 'ROIpayloadName': 'ROIpayload'}
81# roiReadTest.param(param_roiReadTest)
82# main.add_module(roiReadTest)
83
84# RoI sender
85roisender = b2.register_module('ROISender')
86roisender.param("MessageQueueName", argvs[3])
87roisender.param("MessageQueueDepth", 20)
88roisender.param("MessageSize", 16384)
89roisender.param("ROIpayloadName", "ROIpayload")
90main.add_module(roisender)
91
92# Add Progress
93progress = b2.register_module("Progress")
94progress.param('maxN', 4)
95main.add_module(progress)
96
97# Add Elapsed Time
98etime = b2.register_module("ElapsedTime")
99etime.param("EventInterval", 20000)
100main.add_module(etime)
101
102# Add Ds2Raw
103ds2raw = b2.register_module("Ds2Raw")
104ds2raw.param("RingBufferName", argvs[2])
105main.add_module(ds2raw)
106
107
108# Run
109b2.process(main)