Belle II Software  release-06-02-00
evaluateSimulation.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 import basf2 as b2
13 from basf2 import conditions as b2conditions
14 from svd import add_svd_trgsummary
15 from simulation import add_simulation
16 
17 numEvents = 2000
18 svdOnlySimulation = False
19 
20 if svdOnlySimulation:
21  b2conditions.prepend_globaltag("svd_onlySVDinGeoConfiguration")
22 
23 main = b2.create_path()
24 
25 b2.set_random_seed(1)
26 
27 eventinfosetter = b2.register_module('EventInfoSetter')
28 eventinfosetter.param('expList', [0])
29 eventinfosetter.param('runList', [1])
30 eventinfosetter.param('evtNumList', [numEvents])
31 main.add_module(eventinfosetter)
32 main.add_module('EventInfoPrinter')
33 main.add_module('EvtGenInput')
34 
35 if not svdOnlySimulation:
36  # Belle2 Simulation
37  add_simulation(main, simulateT0jitter=True, usePXDDataReduction=False, forceSetPXDDataReduction=True)
38 
39  for m in main.modules():
40  if m.name() == "SVDEventInfoSetter":
41  m.param("useDB", True)
42  m.param("daqMode", 3)
43  m.param("relativeShift", 9)
44  m.set_log_level(b2.LogLevel.DEBUG)
45  m.set_debug_level(25)
46  if m.name() == "SVDDigitizer":
47  m.set_log_level(b2.LogLevel.INFO)
48  m.set_debug_level(25)
49 
50 else:
51 
52  # gearbox
53  main.add_module('Gearbox')
54 
55  # detector geometry
56  geometry = b2.register_module('Geometry')
57  main.add_module(geometry)
58 
59  # event T0 jitter simulation
60  eventt0 = b2.register_module('EventT0Generator')
61  eventt0.param('coreGaussWidth', 10.0) # 10 sigma of core gaussian [ns]
62  # eventt0.param('fixedT0', nan) If set, a fixed event t0 is used instead of simulating the bunch timing.
63  eventt0.param('tailGaussFraction', 0.0) # 0 fraction (by area) of tail gaussian
64  eventt0.param('tailGaussWidth', 20.0) # 20 sigma of tail gaussian [ns]
65  # main.add_module(eventt0)
66 
67  # detector simulation
68  main.add_module('FullSim')
69 
70  # including the timing module
71  # main.add_module("FullSimTiming", rootFile="EvtGenTiming.root", logLevel=LogLevel.INFO)
72 
73  # add_svd_trgsummary(main)
74 
75  # SVD simulation
76  svdevtinfoset = b2.register_module("SVDEventInfoSetter")
77  # svdevtinfoset.param("useDB",True)
78  svdevtinfoset.param("daqMode", 3)
79  svdevtinfoset.param("relativeShift", 9)
80  svdevtinfoset.set_log_level(b2.LogLevel.DEBUG)
81  svdevtinfoset.set_debug_level(25)
82 
83  main.add_module(svdevtinfoset)
84 
85  digitizer = b2.register_module('SVDDigitizer')
86  digitizer.param('statisticsFilename', "digitizer_test2021_1_hwclock.root")
87  digitizer.param('storeWaveforms', True)
88  digitizer.param('signalsList', "digitizer_test2021_1_hwclock.txt")
89  digitizer.set_log_level(b2.LogLevel.DEBUG)
90  digitizer.set_debug_level(30)
91  main.add_module(digitizer)
92 
93 main.add_module('RootOutput')
94 main.add_module('Progress')
95 
96 b2.print_path(main)
97 
98 b2.process(main)
99 
100 print(b2.statistics)