13 from ROOT
import Belle2
14 from alignment
import MillepedeCalibration
18 tracks = [
'CosmicRecoTracks']
19 particles = [
'mu+:bbmu']
21 primary_vertices = [
'Z0:mumu']
23 geometry_components = []
24 do_reconstruction =
False
25 do_cosmics_reconstruction =
False
34 geometryComponents=None,
35 doReconstruction=None,
38 doCosmicsReconstruction=None):
39 if gearboxFile
is None:
40 gearboxFile = gearbox_file
41 if geometryComponents
is None:
42 geometryComponents = geometry_components
43 if doReconstruction
is None:
44 doReconstruction = do_reconstruction
45 if doAnalysis
is None:
46 doAnalysis = do_analysis
48 magnetOff = magnet_off
49 if do_cosmics_reconstruction
is None:
50 doCosmicsReconstruction = do_cosmics_reconstruction
52 import modularAnalysis
as ana
53 import reconstruction
as reco
55 path = b2.create_path()
56 path.add_module(
'Progress')
58 path.add_module(
'Gearbox', fileName=gearboxFile)
if gearboxFile
else path.add_module(
'Gearbox')
60 if geometryComponents:
61 path.add_module(
'Geometry', components=geometryComponents, excludedComponents=[
'MagneticField']
if magnetOff
else [])
63 path.add_module(
'Geometry', excludedComponents=[
'MagneticField']
if magnetOff
else [])
66 if geometryComponents:
67 reco.add_reconstruction(path, pruneTracks=
False, components=geometryComponents)
69 reco.add_reconstruction(path, pruneTracks=
False)
71 if doCosmicsReconstruction:
75 if not geometryComponents
or 'PXD' in geometryComponents:
77 if not geometryComponents
or 'SVD' in geometryComponents:
80 if geometryComponents:
81 reco.add_cosmics_reconstruction(
84 components=geometryComponents,
87 reco.add_cosmics_reconstruction(
92 if 'SetupGenfitExtrapolation' not in path:
93 path.add_module(
'SetupGenfitExtrapolation', noiseBetheBloch=
False, noiseCoulomb=
False, noiseBrems=
False)
96 ana.fillParticleList(
'mu+:bbmu',
'muonID > 0.1 and useLabFrame(p) > 0.5',
True, path)
97 ana.fillParticleList(
'mu+:qed',
'muonID > 0.1 and useLabFrame(p) > 2.',
True, path)
98 ana.reconstructDecay(
'Z0:mumu -> mu-:qed mu+:qed',
'', writeOut=
True, path=path)
99 ana.vertexRaveDaughtersUpdate(
'Z0:mumu', 0.0, path=path, constraint=
'ipprofile')
105 millepede = MillepedeCalibration()
110 millepede = MillepedeCalibration(components,
114 primary_vertices=primary_vertices,
118 millepede.set_command(
'chiscut',
None)
119 millepede.set_command(
'outlierdownweighting',
None)
120 millepede.set_command(
'dwfractioncut',
None)
122 millepede.algo.invertSign()
128 millepede = setup_default()
129 millepede.set_command(
'Fortranfiles')
130 millepede.set_command(
'constraints.txt')
134 def setup_BeamVertex():
135 millepede = setup_default()
136 millepede.set_components([
'BeamSpot'])
140 def setup_VXDHalfShells():
141 millepede = setup_default()
142 millepede.set_components([
'VXDAlignment'])
143 millepede.fixSVDPat()
144 for layer
in range(1, 7):
145 for ladder
in range(1, 17):
147 millepede.fixVXDid(layer, ladder, 0)
148 for sensor
in range(1, 6):
150 millepede.fixVXDid(layer, ladder, sensor)
154 def setup_VXDFullHierarchy():
155 millepede = setup_default()
156 millepede.set_components([
'VXDAlignment'])
157 millepede.set_command(
'Fortranfiles')
158 millepede.set_command(
'constraints.txt')
162 def setup_VXDSensors():
163 millepede = setup_default()
164 millepede.set_components([
'VXDAlignment'])
165 millepede.fixSVDPat()
166 millepede.fixSVDMat()
167 millepede.fixPXDYing()
168 millepede.fixPXDYang()
169 for layer
in range(1, 7):
170 for ladder
in range(1, 17):
172 millepede.fixVXDid(layer, ladder, 0)
173 for sensor
in range(1, 6):
177 millepede.fixVXDid(1, 1, 1)
181 def setup_CDCLayers():
182 millepede = setup_default()
183 millepede.set_components([
'CDCAlignment',
'CDCLayerAlignment'])
184 millepede.fixCDCLayerX(49)
185 millepede.fixCDCLayerY(49)
186 millepede.fixCDCLayerRot(49)
187 millepede.fixCDCLayerX(55)
188 millepede.fixCDCLayerY(55)
189 millepede.fixCDCLayerRot(55)
193 def setup_CDCTimeWalks():
194 millepede = setup_default()
195 millepede.set_components([
'CDCTimeWalks'])
196 millepede.fixCDCTimeWalk(1)
200 def setup_BKLMAlignment():
201 millepede = setup_default()
202 millepede.set_components([
'BKLMAlignment'])
206 for sector
in range(1, 9):
207 for layer
in range(1, 16):
208 for forward
in [0, 1]:
209 millepede.fixBKLMModule(forward, sector, layer, [1, 2, 3, 4, 5, 6])
213 def setup_EKLMAlignment():
214 millepede = setup_default()
215 millepede.set_components([
'EKLMAlignment'])
216 millepede.fixEKLMModule(1, 12, 2, 1, 1, [1, 2, 6])
220 def setup_CDCLayers_GCR_Karim():
221 geometry =
'/alignment/examples/GCR_Summer2017.xml'
222 recotracks = [
'RecoTracks']
223 global do_cosmics_reconstruction
224 do_cosmics_reconstruction =
True
227 millepede = setup_CDCLayers()
228 millepede.algo.invertSign(
False)
230 millepede.set_param(recotracks,
'tracks')
231 millepede.set_param(geometry,
'fileName',
'Gearbox')
232 millepede.set_param(1.e-20,
'minPValue')
static unsigned short getGlobalUniqueID()
Get global unique identifier.
int getID(const std::vector< double > &breaks, double t)
get id of the time point t
def add_pxd_reconstruction(path, clusterName=None, digitsName=None, usePXDClusterShapes=False)
def add_svd_reconstruction(path, isROIsimulation=False, createRecoDigits=False, applyMasking=False)