19 from background
import add_output
52 print(
' basf2', argvs[0],
'equivTime_us num [sampleType phase outdir]')
54 print(
' equivTime_us equivalent SuperKEKB running time in micro-seconds')
55 print(
' num output file number')
56 print(
' sampleType one of: study, usual, PXD, ECL')
57 print(
' phase 2, 31 (=early phase 3) or 3')
58 print(
' outdir output directory path')
73 print(
'phase ', phase,
'not supported')
76 realTime = float(equivTime) * 1000
77 numEvents = int(crossect * lumi * realTime * 1e-9)
78 fname = bgType +
'_' + sampleType +
'-phase' + str(phase) +
'-' + num
79 outputFile = outdir +
'/' + fname +
'.root'
82 B2ERROR(
'number of events is 0 -> increase equivTime_us')
87 if not os.path.exists(outdir):
92 B2RESULT(
'Events to be generated: ' + str(numEvents) +
' - corresponds to ' + equivTime +
93 ' us of running at ' + str(lumi) +
' /nb/s (phase ' + str(phase) +
')')
94 B2RESULT(
'Output file: ' + outputFile)
97 set_log_level(LogLevel.RESULT)
103 eventinfosetter = register_module(
'EventInfoSetter')
104 eventinfosetter.param(
'evtNumList', [numEvents])
105 main.add_module(eventinfosetter)
108 gearbox = register_module(
'Gearbox')
110 gearbox.param(
'fileName',
'geometry/Beast2_phase2.xml')
112 gearbox.param(
'fileName',
'geometry/Belle2_earlyPhase3.xml')
113 if sampleType ==
'study':
114 gearbox.param(
'override', [
115 (
"/DetectorComponent[@name='PXD']//ActiveChips",
'true',
''),
116 (
"/DetectorComponent[@name='PXD']//SeeNeutrons",
'true',
''),
117 (
"/DetectorComponent[@name='SVD']//ActiveChips",
'true',
''),
118 (
"/DetectorComponent[@name='SVD']//SeeNeutrons",
'true',
''),
119 (
"/DetectorComponent[@name='TOP']//BeamBackgroundStudy",
'1',
''),
120 (
"/DetectorComponent[@name='ARICH']//BeamBackgroundStudy",
'1',
''),
121 (
"/DetectorComponent[@name='ECL']//BeamBackgroundStudy",
'1',
''),
122 (
"/DetectorComponent[@name='KLM']//BeamBackgroundStudy",
'1',
''),
124 main.add_module(gearbox)
127 aafh = register_module(
'AafhInput')
131 'suppressionLimits': [1e100] * 4,
133 'maxFinalWeight': 2.5,
134 'maxSubgeneratorWeight': 1.0,
135 'subgeneratorWeights': [1.000e+00, 2.216e+01, 3.301e+03, 6.606e+03, 1.000e+00,
136 1.675e+00, 5.948e+00, 6.513e+00],
138 main.add_module(aafh)
141 geometry = register_module(
'Geometry')
142 geometry.param(
'useDB',
False)
143 addComp = [
"MagneticField3dQuadBeamline"]
145 if phase == 31
and sampleType ==
'study':
146 addComp.extend([
"BEAMABORT",
"MICROTPC",
"CLAWS",
"HE3TUBE"])
148 geometry.param({
"excludedComponents": [
"MagneticField"],
149 "additionalComponents": addComp})
150 main.add_module(geometry)
153 fullsim = register_module(
'FullSim')
154 if sampleType ==
'study':
155 fullsim.param(
'PhysicsList',
'FTFP_BERT_HP')
156 fullsim.param(
'UICommandsAtIdle', [
'/process/inactivate nKiller'])
157 fullsim.param(
'StoreAllSecondaries',
True)
158 fullsim.param(
'SecondariesEnergyCut', 0.000001)
159 main.add_module(fullsim)
162 progress = register_module(
'Progress')
163 main.add_module(progress)
168 add_output(main, bgType, realTime, sampleType, phase, fileName=outputFile)