7 from ROOT
import Belle2
8 from testbeam.utils
import add_vxdtf_v2
16 geometry_xml='testbeam/vxd/2017_geometry.xml',
17 excluded_components=[],
20 additonal_components = []
22 if geometry_version == 0:
23 print(
'WARNING: overriding the setting of parameter geometry_xml! Old value: ' + geometry_xml)
24 geometry_xml =
'testbeam/vxd/2017_geometry.xml'
25 print(
'New value: ' + geometry_xml)
27 if geometry_version == 1:
28 print(
'WARNING: overriding the setting of parameter geometry_xml! Old value: ' + geometry_xml)
29 geometry_xml =
'testbeam/vxd/2017_geometry_1.xml'
30 print(
'New value: ' + geometry_xml)
32 if target
is not None:
33 additonal_components += [target]
36 excluded_components += [
'MagneticField']
38 if field_override
is not None:
39 excluded_components += [
'MagneticField']
40 additonal_components += [
'MagneticFieldConstant']
43 if field_override
is not None:
44 path.add_module(
'Gearbox',
45 fileName=geometry_xml,
46 override=[(
"/DetectorComponent[@name='MagneticFieldConstant']//Z",
50 path.add_module(
'Gearbox', fileName=geometry_xml)
53 path.add_module(
'Geometry', excludedComponents=excluded_components, additionalComponents=additonal_components)
56 def add_simulation(path, momentum=5., positrons=False, momentum_spread=0.05):
63 gun_x_position = -100.
68 particlegun = register_module(
'ParticleGun')
70 particlegun.param(
'nTracks', 1)
73 particlegun.param(
'pdgCodes', [11])
75 particlegun.param(
'pdgCodes', [-11])
81 particlegun.param(
'momentumGeneration',
'normal')
82 particlegun.param(
'momentumParams', [momentum, momentum * momentum_spread])
84 particlegun.param(
'thetaGeneration',
'normal')
85 particlegun.param(
'thetaParams', [theta, theta_spread])
86 particlegun.param(
'phiGeneration',
'normal')
87 particlegun.param(
'phiParams', [phi, phi_spread])
88 particlegun.param(
'vertexGeneration',
'normal')
89 particlegun.param(
'xVertexParams', [gun_x_position, 0.])
90 particlegun.param(
'yVertexParams', [0., beamspot_size_y])
91 particlegun.param(
'zVertexParams', [0., beamspot_size_z])
92 particlegun.param(
'independentVertices',
True)
94 path.add_module(particlegun)
96 path.add_module(
'FullSim', StoreAllSecondaries=
True)
97 path.add_module(
'SVDDigitizer')
100 def add_reconstruction(
109 useThisGeometry =
'TB2017newGeo'
110 if geometry_version == 0:
111 useThisGeometry =
'TB2017'
113 path.add_module(
'SetupGenfitExtrapolation')
115 path.add_module(
'TrackFinderMCTruthRecoTracks')
120 filter_overlapping=
True,
121 use_segment_network_filters=
True,
123 log_level=LogLevel.ERROR,
125 usedGeometry=useThisGeometry
128 print(
"VXDTF1 not supported")
129 daf = register_module(
'DAFRecoFitter')
130 daf.param(
'initializeCDCTranslators',
False)
131 daf.logging.log_level = LogLevel.ERROR
133 track_creator = register_module(
'TrackCreator')
134 track_creator.param(
'beamSpot', [0., 0., 0.])
135 track_creator.param(
'pdgCodes', [11])
136 track_creator.logging.log_level = LogLevel.ERROR
137 path.add_module(track_creator)