Belle II Software  release-05-01-25
genTrigTimeStamps.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 from basf2 import *
5 import glob
6 import os
7 
8 # --------------------------------------------------------------------------
9 # Example of using TOPTriggerDigitizer to make time stamps for trigger input
10 # M. Staric, October 2017
11 # --------------------------------------------------------------------------
12 
13 # Create path
14 main = create_path()
15 
16 # Set number of events to generate
17 eventinfosetter = register_module('EventInfoSetter')
18 eventinfosetter.param({'evtNumList': [100]})
19 main.add_module(eventinfosetter)
20 
21 # Gearbox
22 gearbox = register_module('Gearbox')
23 main.add_module(gearbox)
24 
25 # Geometry
26 geometry = register_module('Geometry')
27 main.add_module(geometry)
28 
29 # generate BBbar events
30 evtgeninput = register_module('EvtGenInput')
31 main.add_module(evtgeninput)
32 
33 # Beam background mixer
34 bg = None
35 if 'BELLE2_BACKGROUND_MIXING_DIR' in os.environ:
36  bg = glob.glob(os.environ['BELLE2_BACKGROUND_MIXING_DIR'] + '/*.root')
37 if bg is not None:
38  bkgmixer = register_module('BeamBkgMixer')
39  bkgmixer.param('backgroundFiles', bg)
40  main.add_module(bkgmixer)
41  B2RESULT('Simulaton w/ beam background, samples taken from folder ' +
42  os.environ['BELLE2_BACKGROUND_MIXING_DIR'])
43 else:
44  B2RESULT('Simulaton w/o beam background')
45 
46 # Simulation
47 simulation = register_module('FullSim')
48 main.add_module(simulation)
49 
50 # TOP digitization
51 main.add_module('TOPDigitizer', allChannels=True, readoutWindows=12, offsetWindows=4)
52 
53 # TOP trigger digitization (time stamps)
54 trigdigi = register_module('TOPTriggerDigitizer')
55 trigdigi.param('threshold', 28) # 3 sigma of electronic noise
56 main.add_module(trigdigi)
57 
58 # Output
59 output = register_module('RootOutput')
60 output.param('branchNames', ['TOPDigits', 'TOPTriggerDigits', 'TOPTriggerMCInfo'])
61 main.add_module(output)
62 
63 # Show progress of processing
64 progress = register_module('Progress')
65 main.add_module(progress)
66 
67 # Process events
68 process(main)
69 
70 # Print call statistics
71 print(statistics)