31 from beamparameters
import add_beamparameters
32 from simulation
import add_simulation
38 from pxd
import add_pxd_reconstruction
39 from svd
import add_svd_reconstruction
47 if(len(sys.argv) > 1):
52 if(len(sys.argv) > 2):
53 outputDir = sys.argv[2]
55 set_random_seed(rndseed)
59 set_log_level(LogLevel.ERROR)
64 eventinfosetter = register_module(
'EventInfoSetter')
68 if os.environ.get(
'USE_BEAST2_GEOMETRY'):
70 eventinfosetter.param(
"expList", [exp_number])
71 main.add_module(eventinfosetter)
73 eventinfoprinter = register_module(
'EventInfoPrinter')
74 main.add_module(eventinfoprinter)
76 progress = register_module(
'Progress')
77 main.add_module(progress)
93 vertex_x = random.uniform(vertex_x_min, vertex_x_max)
94 vertex_y = random.uniform(vertex_y_min, vertex_y_max)
95 vertex_z = random.uniform(vertex_z_min, vertex_z_max)
97 print(
"WARNING: setting non-default beam vertex at x= " + str(vertex_x) +
" y= " + str(vertex_y) +
" z= " + str(vertex_z))
105 particlegun = register_module(
'ParticleGun')
106 particlegun.logging.log_level = LogLevel.WARNING
108 'pdgCodes': [13, -13],
110 'momentumGeneration':
'uniform',
111 'momentumParams': [0.1, 4],
112 'vertexGeneration':
'uniform',
113 'xVertexParams': [vertex_x - vertex_delta, vertex_x + vertex_delta],
114 'yVertexParams': [vertex_y - vertex_delta, vertex_y + vertex_delta],
115 'zVertexParams': [vertex_z - vertex_delta, vertex_z + vertex_delta]
118 particlegun.param(param_pGun)
119 main.add_module(particlegun)
124 beamparameters = add_beamparameters(main,
"Y4S")
125 beamparameters.param(
"vertex", [vertex_x, vertex_y, vertex_z])
128 evtgenInput = register_module(
'EvtGenInput')
129 evtgenInput.logging.log_level = LogLevel.WARNING
130 main.add_module(evtgenInput)
137 add_simulation(path=main,
138 usePXDDataReduction=
False,
142 main.add_module(
'SetupGenfitExtrapolation')
145 add_pxd_reconstruction(path=main)
146 add_svd_reconstruction(path=main)
150 mctrackfinder = register_module(
'TrackFinderMCTruthRecoTracks')
151 mctrackfinder.param(
'UseCDCHits',
False)
152 mctrackfinder.param(
'UseSVDHits',
True)
155 mctrackfinder.param(
'UsePXDHits',
False)
156 mctrackfinder.param(
'Smearing',
False)
157 mctrackfinder.param(
'MinimalNDF', 6)
158 mctrackfinder.param(
'WhichParticles', [
'primary'])
159 mctrackfinder.param(
'RecoTracksStoreArrayName',
'MCRecoTracks')
161 mctrackfinder.param(
'UseNLoops', 0.5)
162 mctrackfinder.param(
'discardAuxiliaryHits',
True)
163 main.add_module(mctrackfinder)
167 main.add_module(
"IPTrackTimeEstimator", recoTracksStoreArrayName=
"MCRecoTracks", useFittedInformation=
False)
169 daffitter = register_module(
"DAFRecoFitter")
170 daffitter.param(
'recoTracksStoreArrayName',
"MCRecoTracks")
172 main.add_module(daffitter)
175 main.add_module(
'TrackCreator', recoTrackColName=
"MCRecoTracks", pdgCodes=[211, 321, 2212])
179 outputFileName = outputDir +
'./'
180 if os.environ.get(
'USE_BEAST2_GEOMETRY'):
181 outputFileName +=
"SimEvts_Beast2"
183 outputFileName +=
"SimEvts_Belle2"
184 outputFileName +=
'_' + str(rndseed) +
'.root'
187 rootOutput = register_module(
'RootOutput')
188 rootOutput.param(
'outputFileName', outputFileName)
190 rootOutput.param(
'excludeBranchNames', [
"ARICHAeroHits",
194 "BKLMSimHitPositions",
199 "CDCSimHitsToCDCHits4Trg",
213 main.add_module(rootOutput)
215 log_to_file(
'createSim.log', append=
False)