Belle II Software  release-08-01-10
AafhGeneration.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 
18 
19 from basf2 import set_log_level, LogLevel, create_path, process, register_module
20 
21 # suppress messages and during processing:
22 set_log_level(LogLevel.WARNING)
23 
24 main = create_path()
25 
26 # event info setter
27 main.add_module("EventInfoSetter", expList=0, runList=1, evtNumList=100)
28 
29 # generator
30 aafh = register_module('AafhInput')
31 aafh.param({
32  # decay mode to generate.
33  # 1: e+e- -> mu+mu-L+L- where L is a user defined particle (default: tau)
34  # 2: e+e- -> mu+mu-mu+mu-
35  # 3: e+e- -> e+e-mu+mu-
36  # 4: e+e- -> e+e-L+L- where L is a user defined particle (default: tau)
37  # 5: e+e- -> e+e-e+e-
38  'mode': 3,
39  # to set the particle for modes 1 and 4 use set parameter "particle"
40  # rejection scheme to generate unweighted events
41  # 1: use rejection once for the final event weight
42  # 2: use rejection per sub generator and then for the final event
43  'rejection': 2,
44  # max subgenerator event weight, only used if rejection is set to 2
45  # (default). If this value is to low the generation will produce errors. If
46  # it is to high generation runs slower.
47  'maxSubgeneratorWeight': 1.0,
48  # max final event weight which is always used. If this value is to low the
49  # generation will produce errors. If it is to high generation runs slower.
50  # ==> should be around 2-4
51  'maxFinalWeight': 1.5,
52  # adjust subgenerator weights so that each sub generator has same
53  # probability to be called and the maximum weight is equal as well. These
54  # values are printed at the end of generation when output level is set to
55  # INFO. These weights strongly depend on the mode
56  'subgeneratorWeights': [1.000e+00, 2.216e+01, 3.301e+03, 6.606e+03, 1.000e+00, 1.675e+00, 5.948e+00, 6.513e+00],
57  # set to awfully precise
58  'suppressionLimits': [1e100] * 4,
59  # minimum invariant mass of the secondary pair
60  'minMass': 0.50,
61 })
62 aafh.logging.log_level = LogLevel.INFO
63 
64 # print generated particles
65 mcparticleprinter = register_module('PrintMCParticles')
66 mcparticleprinter.logging.log_level = LogLevel.INFO
67 
68 # creating the path for the processing
69 main.add_module(aafh)
70 main.add_module(mcparticleprinter)
71 
72 # process the events
73 process(main)