5 from ROOT
import Belle2
6 from alignment
import MillepedeCalibration
10 tracks = [
'CosmicRecoTracks']
11 particles = [
'mu+:bbmu']
13 primary_vertices = [
'Z0:mumu']
15 geometry_components = []
16 do_reconstruction =
False
17 do_cosmics_reconstruction =
False
26 geometryComponents=None,
27 doReconstruction=None,
30 doCosmicsReconstruction=None):
31 if gearboxFile
is None:
32 gearboxFile = gearbox_file
33 if geometryComponents
is None:
34 geometryComponents = geometry_components
35 if doReconstruction
is None:
36 doReconstruction = do_reconstruction
37 if doAnalysis
is None:
38 doAnalysis = do_analysis
40 magnetOff = magnet_off
41 if do_cosmics_reconstruction
is None:
42 doCosmicsReconstruction = do_cosmics_reconstruction
44 import modularAnalysis
as ana
45 import reconstruction
as reco
47 path = b2.create_path()
48 path.add_module(
'Progress')
50 path.add_module(
'Gearbox', fileName=gearboxFile)
if gearboxFile
else path.add_module(
'Gearbox')
52 if geometryComponents:
53 path.add_module(
'Geometry', components=geometryComponents, excludedComponents=[
'MagneticField']
if magnetOff
else [])
55 path.add_module(
'Geometry', excludedComponents=[
'MagneticField']
if magnetOff
else [])
58 if geometryComponents:
59 reco.add_reconstruction(path, pruneTracks=
False, components=geometryComponents)
61 reco.add_reconstruction(path, pruneTracks=
False)
63 if doCosmicsReconstruction:
67 if not geometryComponents
or 'PXD' in geometryComponents:
69 if not geometryComponents
or 'SVD' in geometryComponents:
72 if geometryComponents:
73 reco.add_cosmics_reconstruction(
76 components=geometryComponents,
79 reco.add_cosmics_reconstruction(
84 if 'SetupGenfitExtrapolation' not in path:
85 path.add_module(
'SetupGenfitExtrapolation', noiseBetheBloch=
False, noiseCoulomb=
False, noiseBrems=
False)
88 ana.fillParticleList(
'mu+:bbmu',
'muonID > 0.1 and useLabFrame(p) > 0.5',
True, path)
89 ana.fillParticleList(
'mu+:qed',
'muonID > 0.1 and useLabFrame(p) > 2.',
True, path)
90 ana.reconstructDecay(
'Z0:mumu -> mu-:qed mu+:qed',
'', writeOut=
True, path=path)
91 ana.vertexRaveDaughtersUpdate(
'Z0:mumu', 0.0, path=path, constraint=
'ipprofile')
97 millepede = MillepedeCalibration()
102 millepede = MillepedeCalibration(components,
106 primary_vertices=primary_vertices,
110 millepede.set_command(
'chiscut',
None)
111 millepede.set_command(
'outlierdownweighting',
None)
112 millepede.set_command(
'dwfractioncut',
None)
114 millepede.algo.invertSign()
120 millepede = setup_default()
121 millepede.set_command(
'Fortranfiles')
122 millepede.set_command(
'constraints.txt')
126 def setup_BeamVertex():
127 millepede = setup_default()
128 millepede.set_components([
'BeamSpot'])
132 def setup_VXDHalfShells():
133 millepede = setup_default()
134 millepede.set_components([
'VXDAlignment'])
135 millepede.fixSVDPat()
136 for layer
in range(1, 7):
137 for ladder
in range(1, 17):
139 millepede.fixVXDid(layer, ladder, 0)
140 for sensor
in range(1, 6):
142 millepede.fixVXDid(layer, ladder, sensor)
146 def setup_VXDFullHierarchy():
147 millepede = setup_default()
148 millepede.set_components([
'VXDAlignment'])
149 millepede.set_command(
'Fortranfiles')
150 millepede.set_command(
'constraints.txt')
154 def setup_VXDSensors():
155 millepede = setup_default()
156 millepede.set_components([
'VXDAlignment'])
157 millepede.fixSVDPat()
158 millepede.fixSVDMat()
159 millepede.fixPXDYing()
160 millepede.fixPXDYang()
161 for layer
in range(1, 7):
162 for ladder
in range(1, 17):
164 millepede.fixVXDid(layer, ladder, 0)
165 for sensor
in range(1, 6):
169 millepede.fixVXDid(1, 1, 1)
173 def setup_CDCLayers():
174 millepede = setup_default()
175 millepede.set_components([
'CDCAlignment',
'CDCLayerAlignment'])
176 millepede.fixCDCLayerX(49)
177 millepede.fixCDCLayerY(49)
178 millepede.fixCDCLayerRot(49)
179 millepede.fixCDCLayerX(55)
180 millepede.fixCDCLayerY(55)
181 millepede.fixCDCLayerRot(55)
185 def setup_CDCTimeWalks():
186 millepede = setup_default()
187 millepede.set_components([
'CDCTimeWalks'])
188 millepede.fixCDCTimeWalk(1)
192 def setup_BKLMAlignment():
193 millepede = setup_default()
194 millepede.set_components([
'BKLMAlignment'])
198 for sector
in range(1, 9):
199 for layer
in range(1, 16):
200 for forward
in [0, 1]:
201 millepede.fixBKLMModule(forward, sector, layer, [1, 2, 3, 4, 5, 6])
205 def setup_EKLMAlignment():
206 millepede = setup_default()
207 millepede.set_components([
'EKLMAlignment'])
208 millepede.fixEKLMModule(1, 12, 2, 1, 1, [1, 2, 6])
212 def setup_CDCLayers_GCR_Karim():
213 geometry =
'/alignment/examples/GCR_Summer2017.xml'
214 recotracks = [
'RecoTracks']
215 global do_cosmics_reconstruction
216 do_cosmics_reconstruction =
True
219 millepede = setup_CDCLayers()
220 millepede.algo.invertSign(
False)
222 millepede.set_param(recotracks,
'tracks')
223 millepede.set_param(geometry,
'fileName',
'Gearbox')
224 millepede.set_param(1.e-20,
'minPValue')