Belle II Software  release-08-01-10
check_payload_names.py
1 
8 '''
9 Check if the database correctly returns the names of all the payloads used by the basf2 process.
10 '''
11 
12 import basf2 as b2
13 import b2test_utils as b2tu
14 import ROOT.Belle2 as B2
15 
16 
17 class CheckPayloadNames(b2.Module):
18  '''
19  Small module that asks for some payloads and checks their names.
20  '''
21 
22  def __init__(self):
23  '''Constructor.'''
24  super().__init__()
25 
26  self.payload_namespayload_names = [
27  'BeamParameters',
28  'BeamSpot',
29  'BunchStructure',
30  'CollisionBoostVector',
31  'HardwareClockSettings',
32  'MagneticField']
33  self.payload_namespayload_names.sort()
34  for payload_name in self.payload_namespayload_names:
35  B2.PyDBObj(payload_name)
36 
37  def event(self):
38  '''Event.'''
39  payload_names = sorted(B2.Database.Instance().getAllDataNames())
40  print('Set payloads:', self.payload_namespayload_names)
41  print('Got payloads:', payload_names)
42  assert(self.payload_namespayload_names == payload_names)
43 
44 
45 if __name__ == '__main__':
46 
47  with b2tu.clean_working_directory():
48  main = b2.Path()
49  main.add_module('EventInfoSetter', expList=[0], runList=[0], evtNumList=[1])
50  main.add_module(CheckPayloadNames())
51  b2.process(main)
payload_names
Payload names to be required.