Belle II Software  release-06-01-15
PXDTest.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 
21 
22 import basf2 as b2
23 
24 # show warnings during processing
25 b2.set_log_level(b2.LogLevel.WARNING)
26 
27 # Register modules
28 
29 # Particle gun module
30 particlegun = b2.register_module('ParticleGun')
31 # Create Event information
32 eventinfosetter = b2.register_module('EventInfoSetter')
33 # Show progress of processing
34 progress = b2.register_module('Progress')
35 # Load parameters
36 gearbox = b2.register_module('Gearbox')
37 # Create geometry
38 geometry = b2.register_module('Geometry')
39 # Run simulation
40 simulation = b2.register_module('FullSim')
41 # PXD digitization module
42 PXDDIGI = b2.register_module('PXDDigitizer')
43 # PXD clusterizer
44 PXDCLUST = b2.register_module('PXDClusterizer')
45 # Save output of simulation
46 output = b2.register_module('RootOutput')
47 
48 # ============================================================================
49 # Set a fixed random seed for particle generation:
50 b2.set_random_seed(1028307)
51 
52 # ============================================================================
53 # Setting the list of particle codes (PDG codes) for the generated particles
54 particlegun.param('pdgCodes', [-11, 11])
55 
56 # ============================================================================
57 # Setting the number of tracks to be generated per event:
58 particlegun.param('nTracks', 1)
59 
60 # ============================================================================
61 # Set the number of events to be processed (10 events)
62 eventinfosetter.param({'evtNumList': [1000], 'runList': [1]})
63 
64 # Set output filename
65 output.param('outputFileName', 'PXDTestOutput.root')
66 
67 # Select subdetectors to be built
68 geometry.param('components', ['MagneticField', 'PXD'])
69 
70 PXDDIGI.set_log_level(b2.LogLevel.INFO)
71 
72 PXDCLUST.set_log_level(b2.LogLevel.INFO)
73 
74 # ============================================================================
75 # Do the simulation
76 
77 main = b2.create_path()
78 main.add_module(eventinfosetter)
79 main.add_module(progress)
80 main.add_module(gearbox)
81 main.add_module(geometry)
82 main.add_module(particlegun)
83 main.add_module(simulation)
84 main.add_module(PXDDIGI)
85 main.add_module(PXDCLUST)
86 
87 main.add_module(output)
88 
89 # Process events
90 b2.process(main)
91 
92 # Print call statistics
93 print(b2.statistics)
94 #