Belle II Software  release-05-02-19
Digitize.py
1 import basf2
2 from basf2 import *
3 from beamparameters import add_beamparameters
4 import os
5 import sys
6 import math
7 import string
8 import datetime
9 from background import add_output
10 
11 
12 argvs = sys.argv
13 argc = len(argvs)
14 
15 bgType = argvs[1] # Coulomb, Touschek, Brems
16 accRing = argvs[2] # LER or HER
17 num = int(argvs[3]) # output file number
18 folder = argvs[4]
19 
20 d = datetime.datetime.today()
21 print(d.strftime('job start: %Y-%m-%d %H:%M:%S\n'))
22 
23 main = create_path()
24 
25 fnames = []
26 patha = "/group/belle2/BGcampaigns/g4sim/" + folder
27 
28 pathb = patha + '/output/'
29 pathc = patha + '/beast_hist/'
30 # takes 10 input files
31 for i in range(num * 10, (num + 1) * 10):
32  filenn = pathb + bgType + '_' + accRing + '_study-phase2-' + str(i) + '.root'
33  print(filenn)
34  fnames.append(filenn)
35 
36 histfile = pathc + bgType + '_' + accRing + '_' + str(num) + '.root'
37 
38 input_module = register_module('RootInput')
39 input_module.param('inputFileNames', fnames)
40 main.add_module(input_module)
41 
42 # Histogram manager module
43 histo = register_module('HistoManager')
44 histo.param('histoFileName', histfile) # File to save histograms
45 main.add_module(histo)
46 
47 gearbox = register_module('Gearbox')
48 gearbox.param('fileName', '/geometry/Beast2_phase2.xml')
49 main.add_module(gearbox)
50 
51 main.add_module("Progress")
52 
53 # set digitizers and study modules parameters according to my best knowledge
54 # should be examined by beast experts
55 
56 MIP_to_PE = [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27]
57 he3digi = register_module('He3Digitizer')
58 he3digi.param('conversionFactor', 0.303132019)
59 he3digi.param('useMCParticles', False)
60 main.add_module(he3digi)
61 diadigi = register_module('BeamDigitizer')
62 diadigi.param('WorkFunction', 13.25)
63 diadigi.param('FanoFactor', 0.382)
64 main.add_module(diadigi)
65 pindigi = register_module('PinDigitizer')
66 pindigi.param('WorkFunction', 3.64)
67 pindigi.param('FanoFactor', 0.13)
68 main.add_module(pindigi)
69 clawsdigi = register_module('ClawsDigitizer')
70 clawsdigi.param('C_MIP_to_PE', MIP_to_PE)
71 main.add_module(clawsdigi)
72 qcssdigi = register_module('QcsmonitorDigitizer')
73 qcssdigi.param('ScintCell', 40)
74 qcssdigi.param('C_keV_to_MIP', 1629.827)
75 qcssdigi.param('C_MIP_to_PE', 15.0)
76 qcssdigi.param('MIPthres', 0.5)
77 main.add_module(qcssdigi)
78 fangsdigi = register_module('FANGSDigitizer')
79 main.add_module(fangsdigi)
80 tpcdigi = register_module('TpcDigitizer')
81 main.add_module(tpcdigi)
82 
83 beamab_study = register_module('BeamabortStudy')
84 main.add_module(beamab_study)
85 
86 claws_study = register_module('ClawsStudy')
87 main.add_module(claws_study)
88 
89 fangs_study = register_module('FANGSStudy')
90 main.add_module(fangs_study)
91 
92 tpc_study = register_module('MicrotpcStudy')
93 main.add_module(tpc_study)
94 
95 he3_study = register_module('He3tubeStudy')
96 main.add_module(he3_study)
97 
98 pin_study = register_module('PindiodeStudy')
99 # main.add_module(pin_study)
100 
101 qcs_study = register_module('QcsmonitorStudy')
102 # main.add_module(qcs_study)
103 
104 basf2.process(main)
105 
106 print('Event Statistics:')
107 print(basf2.statistics)
108 
109 d = datetime.datetime.today()
110 print(d.strftime('job finish: %Y-%m-%d %H:%M:%S\n'))
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25