Belle II Software  release-08-01-10
conditional_iov.py
1 
8 import basf2
9 from iov_conditional import phase_2_conditional, make_conditional_at
10 
11 
12 class PrinterModule(basf2.Module):
13  """Print the given string on each event"""
14 
15  def __init__(self, print_string):
16  """Remember the given string to print later"""
17  super().__init__()
18 
19  self._print_string_print_string = print_string
20 
21  def event(self):
22  """And now would be a good time for printing ..."""
23  print(self._print_string_print_string)
24 
25 
26 def simulate_run(run_numbers, exp_numbers):
27  assert len(exp_numbers) == len(run_numbers)
28 
29  path = basf2.create_path()
30 
31  path.add_module("EventInfoSetter", evtNumList=[1] * len(run_numbers), runList=run_numbers, expList=exp_numbers)
32  path.add_module("EventInfoPrinter")
33 
34  # Phase 2 path
35  phase2_path = basf2.create_path()
36  phase2_path.add_module(PrinterModule("Phase 2 is here"))
37 
38  # Phase 3 path
39  phase3_path = basf2.create_path()
40  phase3_path.add_module(PrinterModule("Phase 3 is here"))
41 
42  # No Phase 3 path
43  no_phase3_path = basf2.create_path()
44  no_phase3_path.add_module(PrinterModule("Phase 3 is not here"))
45 
46  # Weird path
47  weird_path = basf2.create_path()
48  weird_path.add_module(PrinterModule("Strange condition"))
49 
50  # Condition for phase2
51  phase_2_conditional(path, phase2_path=phase2_path)
52 
53  # Condition for phase3
54  make_conditional_at(path, iov_list=[(0, 0, 0, -1)], path_when_in_iov=phase3_path, path_when_not_in_iov=no_phase3_path)
55 
56  # Some weird condition
57  make_conditional_at(path, iov_list=[(42, 42, 47, 47)], path_when_in_iov=weird_path)
58 
59  # Finished path
60  path.add_module(PrinterModule("Finish"))
61 
62  basf2.process(path)
63 
64 
65 if __name__ == "__main__":
66  basf2.set_random_seed(1)
67  simulate_run(exp_numbers=[0, 1002], run_numbers=[1, 67])
68  simulate_run(exp_numbers=[42, 43, 47], run_numbers=[41, 1, 48])
_print_string
The string we want to print each event.
def __init__(self, print_string)