Belle II Software  release-05-01-25
trggrl.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 # ------------------------------------------------------------------------------------------------------
5 # TSim-ecl example code.
6 # ------------------------------------------------------------------------------------------------------
7 # In order to test Tsim-ecl code, you need a root file which has ECLHit table.(after Gsim)
8 # ex)
9 # commend > basf2 TrgEcl_pgun.py [Name of output root file]
10 # ------------------------------------------------------------------------------------------------------
11 import os
12 from basf2 import *
13 
14 
15 import sys # get argv
16 argvs = sys.argv # get arg
17 argc = len(argvs) # of arg
18 if argc != 2:
19  sys.exit("ztsim02.py> # of arg is strange. Exit.")
20 if argc == 2:
21 
22  f_out_root = argvs[1]
23 print()
24 # print 'f_in_root = %s' % f_in_root
25 print('f_out_root = %s\n' % f_out_root)
26 
27 
30 
31 # suppress messages and warnings during processing:
32 # level: LogLevel.DEBUG/INFO/WARNING/ERROR/FATALls
33 set_log_level(LogLevel.ERROR)
34 # set_log_level(LogLevel.INFO)
35 # set_log_level(LogLevel.DEBUG)
36 
37 set_random_seed(0)
38 basf2datadir = os.path.join(os.environ.get('BELLE2_LOCAL_DIR', None), 'data')
39 
40 # one event
41 # eventinfosetter.param({'evtNumList': [1000], 'runList': [1]})
42 
43 # Register necessary modules
44 eventinfosetter = register_module('EventInfoSetter')
45 eventinfoprinter = register_module('EventInfoPrinter')
46 
47 gearbox = register_module('Gearbox')
48 
49 # input
50 # rootinput1 = register_module('RootInput')
51 # rootinput1.param('inputFileName', f_in_root)
52 
53 # Geometry builder
54 geometry = register_module('Geometry')
55 
56 # Simulation
57 g4sim = register_module('FullSim')
58 
59 # register module for TRGCDC
60 # evtmetagen = register_module('EventInfoSetter')
61 evtmetainfo = register_module('Progress')
62 # paramloader = register_module('Gearbox')
63 # geobuilder = register_module('Geometry')
64 # particlegun = register_module('ParticleGun')
65 # evtgeninput = register_module('EvtGenInput')
66 # kkgeninput = register_module('KKGenInput')
67 mcparticleprinter = register_module('PrintMCParticles')
68 # g4sim = register_module('FullSim')
69 # bkgmixer = register_module('BeamBkgMixer')
70 cdcdigitizer = register_module('CDCDigitizer')
71 cdctrg = register_module("TRGCDC")
72 # rootOut = register_module('RootOutput')
73 # rootIn = register_module('RootInput')
74 
75 
76 # one event
77 eventinfosetter.param({'evtNumList': [100], 'runList': [1]})
78 
79 import random
80 intseed = random.randint(1, 10000000)
81 
82 pGun = register_module('ParticleGun')
83 param_pGun = {
84  'pdgCodes': [11],
85  'nTracks': 1,
86  'momentumGeneration': 'uniform',
87  'momentumParams': [1.0, 2.0],
88  'thetaGeneration': 'uniform',
89  'thetaParams': [50., 130.],
90  'phiGeneration': 'uniform',
91  # 'phiParams': [0, 360],
92  'phiParams': [-45, 45],
93  'vertexGeneration': 'uniform',
94  'xVertexParams': [0.0, 0.0],
95  'yVertexParams': [0.0, 0.0],
96  'zVertexParams': [0.0, 0.0],
97 }
98 
99 pGun.param(param_pGun)
100 
101 mcparticleprinter.param('maxLevel', -1)
102 # need to check
103 # g4sim.param('UICommandsAtIdle',['/control/execute ' +
104 # os.path.join(os.environ.get('BELLE2_LOCAL_DIR', None),"trg/cdc/examples/physics.mac")])
105 
106 # ...CDCDigitizer...
107 # set digitizer to no smearing
108 param_cdcdigi = {'Fraction': 1,
109  'Resolution1': 0.,
110  'Resolution2': 0.,
111  'Threshold': -10.0}
112 cdcdigitizer.param(param_cdcdigi)
113 cdcdigitizer.param('AddInWirePropagationDelay', True)
114 cdcdigitizer.param('AddTimeOfFlight', True)
115 
116 # ...CDC Trigger...
117 # ---General settings---
118 # cdctrg.param('ConfigFile', os.path.join(basf2datadir,"trg/cdc/TRGCDCConfig_0_20101111_1051.dat"))
119 cdctrg.param('ConfigFile', os.path.join(basf2datadir, "trg/cdc/TRGCDCConfig_0_20101111_1051_2013beamtest.dat"))
120 # cdctrg.param('DebugLevel', 1)
121 cdctrg.param('CurlBackStop', 0)
122 cdctrg.param('SimulationMode', 1) # 1:fast, 2:firm, 3:fast and firm
123 cdctrg.param('FastSimulationMode', 0)
124 # cdctrg.param('SimulationMode',0x11)
125 # cdctrg.param('TRGCDCRootFile',1)
126 # cdctrg.param('RootTRGCDCFile', 'TRGCDC.root')
127 # ---TSF settings---
128 # TSLUT (latest version @ 2014.07)
129 cdctrg.param('InnerTSLUTFile', os.path.join(basf2datadir, "trg/cdc/innerLUT_v2.2.coe"))
130 cdctrg.param('OuterTSLUTFile', os.path.join(basf2datadir, "trg/cdc/outerLUT_v2.2.coe"))
131 # cdctrg.param('TSFLogicLUT', 1)
132 # cdctrg.param('TSFRootFile',1)
133 # ---2D finder settings---
134 cdctrg.param('2DFinderPerfect', 0)
135 cdctrg.param('HoughFinderMeshX', 160)
136 cdctrg.param('HoughFinderMeshY', 26)
137 # ---3D finder settings---
138 cdctrg.param('Hough3DRootFile', 1)
139 # 0: perfect finder, 1: Hough3DFinder, 2: (Default) GeoFinder, 3: VHDL GeoFinder
140 # 0: (Default) Logic TSF, 1: LUT TSF
141 # cdctrg.param('Finder3DMode',0)
142 # ---3D fitter settings---
143 cdctrg.param('Fitter3DRootFile', 1)
144 cdctrg.param('RootFitter3DFile', 'Fitter3D.root')
145 cdctrg.param('Fitter3DLRLUT', 0)
146 
147 
148 # TRGECL
149 trgeclfam = register_module("TRGECLFAM")
150 trgecl = register_module("TRGECL")
151 trgeclMC = register_module("TRGECLMCMatching")
152 # addParam("FAMFitMethod", _famMethod, "TRGECLFAM fit method", _famMethod);
153 trgeclfam.param('FAMFitMethod', 1)
154 
155 grltrg = register_module('TRGGRL')
156 grltrg.param('DebugLevel', 0)
157 grltrg.param('ConfigFile',
158  os.path.join(os.environ['BELLE2_LOCAL_DIR'],
159  "trg/gdl/data/ftd/0.01/ftd_0.01"))
160 
161 # output
162 rootoutput = register_module('RootOutput')
163 rootoutput.param('outputFileName', f_out_root)
164 
165 # import random
166 # progress = register_module('Progress')
167 
168 
169 # Set parameters
170 
171 # Create paths
172 main = create_path()
173 
174 # main.add_module(rootinput1)
175 # main.add_module(rootinput2)
176 main.add_module(eventinfosetter)
177 main.add_module(eventinfoprinter)
178 main.add_module(evtmetainfo)
179 # main.add_module(paramloader)
180 main.add_module(gearbox)
181 main.add_module(geometry)
182 main.add_module(pGun)
183 main.add_module(mcparticleprinter)
184 main.add_module(g4sim)
185 
186 main.add_module(cdcdigitizer)
187 main.add_module(cdctrg)
188 main.add_module(trgeclfam)
189 main.add_module(trgecl)
190 main.add_module(grltrg)
191 # main.add_module(trgeclMC)
192 
193 main.add_module(rootoutput)
194 
195 
196 # main
197 process(main)
198 
201 print(statistics)
202 # ===<END>