13 from ROOT
import Belle2
20 """Returns 1 if current event contains at least one BEAST hit, 0 otherwise"""
23 """reimplementation of Module::initialize()."""
26 """reimplementation of Module::event()."""
32 if len(p.getRelationsTo(
'MicrotpcSimHits')) > 0 \
33 or len(p.getRelationsTo(
'He3tubeSimHits')) > 0 \
34 or len(p.getRelationsTo(
'PindiodeSimHits')) > 0 \
35 or len(p.getRelationsTo(
'BgoSimHits')) > 0 \
36 or len(p.getRelationsTo(
'CsiSimHits')) > 0:
43 d = datetime.datetime.today()
44 print(d.strftime(
'job start: %Y-%m-%d %H:%M:%S\n'))
55 print(
'./RunBGMC.py [(RBB,Touschek,Coulomb)_(HER,LER)(,_far)] [num]')
59 if name.find(
'LER') != -1:
61 elif name.find(
'HER') != -1:
64 print(
'name should include either of HER or LER')
74 if name.find(
'far') != -1:
80 inputfilename =
'forIgal/' + name +
'.root'
81 logfilename =
'log/' + name +
'_' + num +
'.log'
82 outputfilename =
'output/out_phase1_pos_TiN_' + name +
'_' + num +
'.root'
83 seed =
'1' + num + num +
'1'
97 if name ==
'Brems_LER':
99 elif name ==
'Touschek_LER':
102 elif name ==
'Coulomb_LER':
105 elif name ==
'Brems_HER':
108 elif name ==
'Touschek_HER':
111 elif name ==
'Coulomb_HER':
117 print(
'Unknown name!')
120 print(
'accring: ', accring,
'(0:LER, 1:HER)')
121 print(
'input: ', inputfilename)
122 print(
'log: ', logfilename)
123 print(
'output: ', outputfilename)
124 print(
'range: ', range)
125 print(
'seed: ', seed)
126 print(
'nevent: ', nevent)
127 print(
'readouttime:', readouttime)
168 b2.set_log_level(b2.LogLevel.WARNING)
171 b2.set_random_seed(int(seed))
177 eventinfosetter = b2.register_module(
'EventInfoSetter')
178 eventinfosetter.param({
'evtNumList': [nevent],
'runList': [1],
'expList': [1]})
182 touschekinput = b2.register_module(
'SADInput')
183 touschekinput.param(
'Filename', inputfilename)
189 touschekinput.param(
'ReadMode', readmode)
194 touschekinput.param(
'AccRing', accring)
199 touschekinput.param(
'ReadoutTime', readouttime)
203 touschekinput.param(
'Range', range)
211 gearbox = b2.register_module(
'Gearbox')
212 geometry = b2.register_module(
'Geometry')
213 gearbox.param(
'fileName',
'/geometry/Beast2_phase1.xml')
214 fullsim = b2.register_module(
'FullSim')
216 param_fullsim = {
'RegisterOptics': 1,
'PhotonFraction': 0.3}
217 fullsim.param(param_fullsim)
218 fullsim.param(
'PhysicsList',
'QGSP_BERT_HP')
219 fullsim.param(
'UICommandsAtIdle', [
'/process/inactivate nKiller'])
223 fullsim.param(
'StoreAllSecondaries',
True)
224 fullsim.param(
'SecondariesEnergyCut', 0.0)
229 progress = b2.register_module(
'Progress')
232 rootoutput = b2.register_module(
'RootOutput')
233 rootoutput.param(
'outputFileName', outputfilename)
234 rootoutput.param(
'updateFileCatalog',
False)
241 rootoutput.param(
'branchNames', [
'BgoSimHits',
'MicrotpcSimHits',
242 'PindiodeSimHits',
'He3tubeSimHits',
'CsiSimHits'])
245 main = b2.create_path()
246 main.add_module(eventinfosetter)
247 main.add_module(gearbox)
248 main.add_module(touschekinput)
249 main.add_module(geometry)
250 main.add_module(fullsim)
251 main.add_module(progress)
262 main.add_module(rootoutput)
274 print(
'Event Statistics:')
277 d = datetime.datetime.today()
278 print(d.strftime(
'job finish: %Y-%m-%d %H:%M:%S\n'))
a (simplified) python wrapper for StoreArray.