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