15def BPHY13Cfg(flags):
16 from DerivationFrameworkBPhys.commonBPHYMethodsCfg import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
17 from JpsiUpsilonTools.JpsiUpsilonToolsConfig import PrimaryVertexRefittingToolCfg
18 acc = ComponentAccumulator()
19 isSimulation = flags.Input.isMC
20 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
21 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
22 acc.addPublicTool(vkalvrt)
23 acc.addPublicTool(V0Tools)
24 trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
25 acc.addPublicTool(trackselect)
26 vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
27 acc.addPublicTool(vpest)
28 PVrefit = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
29 acc.addPublicTool(PVrefit)
30
31 Phi_lo = 770.0
32 Phi_hi = 1300.0
33 Jpsi_lo = 2600.0
34 Jpsi_hi = 3600.0
35 Psi_lo = 3300.0
36 Psi_hi = 4200.0
37 Upsi_lo = 8800.0
38 Upsi_hi = 10000.0
39 Dimu_lo = 5000.0
40 Dimu_hi = 9100.0
41
42 Mumass = 105.658
43 Phimass = 1019.461
44 Jpsimass = 3096.916
45 Psi2Smass = 3686.10
46 Upsimass = 9460.30
47
48 BPHY13PhiFinder_mumu = CompFactory.Analysis.JpsiFinder(
49 name = "BPHY13PhiFinder_mumu",
50 muAndMu = True,
51 muAndTrack = False,
52 TrackAndTrack = False,
53 assumeDiMuons = True,
54 muonThresholdPt = 2400.,
55 trackThresholdPt = 2400.,
56 invMassLower = Phi_lo,
57 invMassUpper = Phi_hi,
58 Chi2Cut = 50.,
59 oppChargesOnly = True,
60 atLeastOneComb = True,
61 useCombinedMeasurement = False,
62 muonCollectionKey = "Muons",
63 TrackParticleCollection = "InDetTrackParticles",
64 TrkVertexFitterTool = vkalvrt,
65 TrackSelectorTool = trackselect,
66 VertexPointEstimator = vpest,
67 useMCPCuts = False )
68 acc.addPublicTool(BPHY13PhiFinder_mumu)
69
70 BPHY13JpsiFinder_mumu = CompFactory.Analysis.JpsiFinder(
71 name = "BPHY13JpsiFinder_mumu",
72 muAndMu = True,
73 muAndTrack = False,
74 TrackAndTrack = False,
75 assumeDiMuons = True,
76 muonThresholdPt = 2400.,
77 trackThresholdPt = 2400.,
78 invMassLower = Jpsi_lo,
79 invMassUpper = Jpsi_hi,
80 Chi2Cut = 50.,
81 oppChargesOnly = True,
82 atLeastOneComb = True,
83 useCombinedMeasurement = False,
84 muonCollectionKey = "Muons",
85 TrackParticleCollection = "InDetTrackParticles",
86 TrkVertexFitterTool = vkalvrt,
87 TrackSelectorTool = trackselect,
88 VertexPointEstimator = vpest,
89 useMCPCuts = False )
90 acc.addPublicTool(BPHY13JpsiFinder_mumu)
91
92 BPHY13PsiFinder_mumu = CompFactory.Analysis.JpsiFinder(
93 name = "BPHY13PsiFinder_mumu",
94 muAndMu = True,
95 muAndTrack = False,
96 TrackAndTrack = False,
97 assumeDiMuons = True,
98 muonThresholdPt = 2400.,
99 trackThresholdPt = 2400.,
100 invMassLower = Psi_lo,
101 invMassUpper = Psi_hi,
102 Chi2Cut = 50.,
103 oppChargesOnly = True,
104 atLeastOneComb = True,
105 useCombinedMeasurement = False,
106 muonCollectionKey = "Muons",
107 TrackParticleCollection = "InDetTrackParticles",
108 TrkVertexFitterTool = vkalvrt,
109 TrackSelectorTool = trackselect,
110 VertexPointEstimator = vpest,
111 useMCPCuts = False )
112 acc.addPublicTool(BPHY13PsiFinder_mumu)
113
114 BPHY13UpsiFinder_mumu = CompFactory.Analysis.JpsiFinder(
115 name = "BPHY13UpsiFinder_mumu",
116 muAndMu = True,
117 muAndTrack = False,
118 TrackAndTrack = False,
119 assumeDiMuons = True,
120 muonThresholdPt = 2400.,
121 trackThresholdPt = 2400.,
122 invMassLower = Upsi_lo,
123 invMassUpper = Upsi_hi,
124 Chi2Cut = 50.,
125 oppChargesOnly = True,
126 atLeastOneComb = True,
127 useCombinedMeasurement = False,
128 muonCollectionKey = "Muons",
129 TrackParticleCollection = "InDetTrackParticles",
130 TrkVertexFitterTool = vkalvrt,
131 TrackSelectorTool = trackselect,
132 VertexPointEstimator = vpest,
133 useMCPCuts = False )
134 acc.addPublicTool(BPHY13UpsiFinder_mumu)
135
136 BPHY13DimuFinder_mumu = CompFactory.Analysis.JpsiFinder(
137 name = "BPHY13DimuFinder_mumu",
138 muAndMu = True,
139 muAndTrack = False,
140 TrackAndTrack = False,
141 assumeDiMuons = True,
142 muonThresholdPt = 2400.,
143 trackThresholdPt = 2400.,
144 invMassLower = Dimu_lo,
145 invMassUpper = Dimu_hi,
146 Chi2Cut = 50.,
147 oppChargesOnly = True,
148 atLeastOneComb = True,
149 useCombinedMeasurement = False,
150 muonCollectionKey = "Muons",
151 TrackParticleCollection = "InDetTrackParticles",
152 TrkVertexFitterTool = vkalvrt,
153 TrackSelectorTool = trackselect,
154 VertexPointEstimator = vpest,
155 useMCPCuts = False )
156 acc.addPublicTool(BPHY13DimuFinder_mumu)
157
158
159 BPHY13PhiFinder_mutrk = CompFactory.Analysis.JpsiFinder(
160 name = "BPHY13PhiFinder_mutrk",
161 muAndMu = False,
162 muAndTrack = True,
163 TrackAndTrack = False,
164 assumeDiMuons = True,
165 muonThresholdPt = 2400.,
166 trackThresholdPt = 2400.,
167 invMassLower = Phi_lo,
168 invMassUpper = Phi_hi,
169 Chi2Cut = 50.,
170 oppChargesOnly = True,
171 atLeastOneComb = False,
172 useCombinedMeasurement = False,
173 muonCollectionKey = "Muons",
174 TrackParticleCollection = "InDetTrackParticles",
175 TrkVertexFitterTool = vkalvrt,
176 TrackSelectorTool = trackselect,
177 VertexPointEstimator = vpest,
178 useMCPCuts = False,
179 doTagAndProbe = True)
180 acc.addPublicTool(BPHY13PhiFinder_mutrk)
181
182 BPHY13JpsiFinder_mutrk = CompFactory.Analysis.JpsiFinder(
183 name = "BPHY13JpsiFinder_mutrk",
184 muAndMu = False,
185 muAndTrack = True,
186 TrackAndTrack = False,
187 assumeDiMuons = True,
188 muonThresholdPt = 2400.,
189 trackThresholdPt = 2400.,
190 invMassLower = Jpsi_lo,
191 invMassUpper = Jpsi_hi,
192 Chi2Cut = 50.,
193 oppChargesOnly = True,
194 atLeastOneComb = False,
195 useCombinedMeasurement = False,
196 muonCollectionKey = "Muons",
197 TrackParticleCollection = "InDetTrackParticles",
198 TrkVertexFitterTool = vkalvrt,
199 TrackSelectorTool = trackselect,
200 VertexPointEstimator = vpest,
201 useMCPCuts = False,
202 doTagAndProbe = True )
203 acc.addPublicTool(BPHY13JpsiFinder_mutrk)
204
205 BPHY13PsiFinder_mutrk = CompFactory.Analysis.JpsiFinder(
206 name = "BPHY13PsiFinder_mutrk",
207 muAndMu = False,
208 muAndTrack = True,
209 TrackAndTrack = False,
210 assumeDiMuons = True,
211 muonThresholdPt = 2400.,
212 trackThresholdPt = 2400.,
213 invMassLower = Psi_lo,
214 invMassUpper = Psi_hi,
215 Chi2Cut = 50.,
216 oppChargesOnly = True,
217 atLeastOneComb = False,
218 useCombinedMeasurement = False,
219 muonCollectionKey = "Muons",
220 TrackParticleCollection = "InDetTrackParticles",
221 TrkVertexFitterTool = vkalvrt,
222 TrackSelectorTool = trackselect,
223 VertexPointEstimator = vpest,
224 useMCPCuts = False,
225 doTagAndProbe = True )
226 acc.addPublicTool(BPHY13PsiFinder_mutrk)
227
228 BPHY13UpsiFinder_mutrk = CompFactory.Analysis.JpsiFinder(
229 name = "BPHY13UpsiFinder_mutrk",
230 muAndMu = False,
231 muAndTrack = True,
232 TrackAndTrack = False,
233 assumeDiMuons = True,
234 muonThresholdPt = 2400.,
235 trackThresholdPt = 2400.,
236 invMassLower = Upsi_lo,
237 invMassUpper = Upsi_hi,
238 Chi2Cut = 50.,
239 oppChargesOnly = True,
240 atLeastOneComb = False,
241 useCombinedMeasurement = False,
242 muonCollectionKey = "Muons",
243 TrackParticleCollection = "InDetTrackParticles",
244 TrkVertexFitterTool = vkalvrt,
245 TrackSelectorTool = trackselect,
246 VertexPointEstimator = vpest,
247 useMCPCuts = False,
248 doTagAndProbe = True )
249 acc.addPublicTool(BPHY13UpsiFinder_mutrk)
250
251 BPHY13DimuFinder_mutrk = CompFactory.Analysis.JpsiFinder(
252 name = "BPHY13DimuFinder_mutrk",
253 muAndMu = False,
254 muAndTrack = True,
255 TrackAndTrack = False,
256 assumeDiMuons = True,
257 muonThresholdPt = 2400.,
258 trackThresholdPt = 2400.,
259 invMassLower = Dimu_lo,
260 invMassUpper = Dimu_hi,
261 Chi2Cut = 50.,
262 oppChargesOnly = True,
263 atLeastOneComb = False,
264 useCombinedMeasurement = False,
265 muonCollectionKey = "Muons",
266 TrackParticleCollection = "InDetTrackParticles",
267 TrkVertexFitterTool = vkalvrt,
268 TrackSelectorTool = trackselect,
269 VertexPointEstimator = vpest,
270 useMCPCuts = False,
271 doTagAndProbe = True )
272 acc.addPublicTool(BPHY13DimuFinder_mutrk)
273
274
275 BPHY13_Reco_Phimumu = CompFactory.DerivationFramework.Reco_Vertex(
276 name = "BPHY13_Reco_Phimumu",
277 VertexSearchTool = BPHY13PhiFinder_mumu,
278 OutputVtxContainerName = "BPHY13Phimumu",
279 PVContainerName = "PrimaryVertices",
280 RefPVContainerName = "SHOULDNOTBEUSED",
281 V0Tools = V0Tools,
282 PVRefitter = PVrefit,
283 DoVertexType = 1)
284
285 BPHY13_Reco_Jpsimumu = CompFactory.DerivationFramework.Reco_Vertex(
286 name = "BPHY13_Reco_Jpsimumu",
287 VertexSearchTool = BPHY13JpsiFinder_mumu,
288 OutputVtxContainerName = "BPHY13Jpsimumu",
289 PVContainerName = "PrimaryVertices",
290 RefPVContainerName = "SHOULDNOTBEUSED",
291 V0Tools = V0Tools,
292 PVRefitter = PVrefit,
293 DoVertexType = 1)
294
295 BPHY13_Reco_Psimumu = CompFactory.DerivationFramework.Reco_Vertex(
296 name = "BPHY13_Reco_Psimumu",
297 VertexSearchTool = BPHY13PsiFinder_mumu,
298 OutputVtxContainerName = "BPHY13Psimumu",
299 PVContainerName = "PrimaryVertices",
300 RefPVContainerName = "SHOULDNOTBEUSED",
301 V0Tools = V0Tools,
302 PVRefitter = PVrefit,
303 DoVertexType = 1)
304
305 BPHY13_Reco_Upsimumu = CompFactory.DerivationFramework.Reco_Vertex(
306 name = "BPHY13_Reco_Upsimumu",
307 VertexSearchTool = BPHY13UpsiFinder_mumu,
308 OutputVtxContainerName = "BPHY13Upsimumu",
309 PVContainerName = "PrimaryVertices",
310 RefPVContainerName = "SHOULDNOTBEUSED",
311 V0Tools = V0Tools,
312 PVRefitter = PVrefit,
313 DoVertexType = 1)
314
315 BPHY13_Reco_Dimumumu = CompFactory.DerivationFramework.Reco_Vertex(
316 name = "BPHY13_Reco_Dimumumu",
317 VertexSearchTool = BPHY13DimuFinder_mumu,
318 OutputVtxContainerName = "BPHY13Dimumumu",
319 PVContainerName = "PrimaryVertices",
320 RefPVContainerName = "SHOULDNOTBEUSED",
321 V0Tools = V0Tools,
322 PVRefitter = PVrefit,
323 DoVertexType = 1)
324
325
326 BPHY13_Reco_Phimutrk = CompFactory.DerivationFramework.Reco_Vertex(
327 name = "BPHY13_Reco_Phimutrk",
328 VertexSearchTool = BPHY13PhiFinder_mutrk,
329 OutputVtxContainerName = "BPHY13Phimutrk",
330 PVContainerName = "PrimaryVertices",
331 RefPVContainerName = "SHOULDNOTBEUSED",
332 V0Tools = V0Tools,
333 PVRefitter = PVrefit,
334 DoVertexType = 1)
335
336 BPHY13_Reco_Jpsimutrk = CompFactory.DerivationFramework.Reco_Vertex(
337 name = "BPHY13_Reco_Jpsimutrk",
338 VertexSearchTool = BPHY13JpsiFinder_mutrk,
339 OutputVtxContainerName = "BPHY13Jpsimutrk",
340 PVContainerName = "PrimaryVertices",
341 RefPVContainerName = "SHOULDNOTBEUSED",
342 V0Tools = V0Tools,
343 PVRefitter = PVrefit,
344 DoVertexType = 1)
345
346 BPHY13_Reco_Psimutrk = CompFactory.DerivationFramework.Reco_Vertex(
347 name = "BPHY13_Reco_Psimutrk",
348 VertexSearchTool = BPHY13PsiFinder_mutrk,
349 OutputVtxContainerName = "BPHY13Psimutrk",
350 PVContainerName = "PrimaryVertices",
351 RefPVContainerName = "SHOULDNOTBEUSED",
352 V0Tools = V0Tools,
353 PVRefitter = PVrefit,
354 DoVertexType = 1)
355
356 BPHY13_Reco_Upsimutrk = CompFactory.DerivationFramework.Reco_Vertex(
357 name = "BPHY13_Reco_Upsimutrk",
358 VertexSearchTool = BPHY13UpsiFinder_mutrk,
359 OutputVtxContainerName = "BPHY13Upsimutrk",
360 PVContainerName = "PrimaryVertices",
361 RefPVContainerName = "SHOULDNOTBEUSED",
362 V0Tools = V0Tools,
363 PVRefitter = PVrefit,
364 DoVertexType = 1)
365
366 BPHY13_Reco_Dimumutrk = CompFactory.DerivationFramework.Reco_Vertex(
367 name = "BPHY13_Reco_Dimumutrk",
368 VertexSearchTool = BPHY13DimuFinder_mutrk,
369 OutputVtxContainerName = "BPHY13Dimumutrk",
370 PVContainerName = "PrimaryVertices",
371 RefPVContainerName = "SHOULDNOTBEUSED",
372 V0Tools = V0Tools,
373 PVRefitter = PVrefit,
374 DoVertexType = 1)
375
376
377 BPHY13_Rev_Phimumu = CompFactory.DerivationFramework.ReVertex(
378 name = "BPHY13_Rev_Phimumu",
379 InputVtxContainerName = "BPHY13Phimumu",
380 TrackIndices = [ 0, 1 ],
381 RefitPV = False,
382 UseMassConstraint = True,
383 VertexMass = Phimass,
384 MassInputParticles = [Mumass, Mumass],
385 Chi2Cut = 50.,
386 PVRefitter = PVrefit,
387 V0Tools = V0Tools,
388 TrkVertexFitterTool = vkalvrt,
389 OutputVtxContainerName = "BPHY13Phimumu_revtx")
390
391 BPHY13_Rev_Jpsimumu = CompFactory.DerivationFramework.ReVertex(
392 name = "BPHY13_Rev_Jpsimumu",
393 InputVtxContainerName = "BPHY13Jpsimumu",
394 TrackIndices = [ 0, 1 ],
395 RefitPV = False,
396 UseMassConstraint = True,
397 VertexMass = Jpsimass,
398 MassInputParticles = [Mumass, Mumass],
399 Chi2Cut = 50.,
400 PVRefitter = PVrefit,
401 V0Tools = V0Tools,
402 TrkVertexFitterTool = vkalvrt,
403 OutputVtxContainerName = "BPHY13Jpsimumu_revtx")
404
405 BPHY13_Rev_Psimumu = CompFactory.DerivationFramework.ReVertex(
406 name = "BPHY13_Rev_Psimumu",
407 InputVtxContainerName = "BPHY13Psimumu",
408 TrackIndices = [ 0, 1 ],
409 RefitPV = False,
410 UseMassConstraint = True,
411 VertexMass = Psi2Smass,
412 MassInputParticles = [Mumass, Mumass],
413 Chi2Cut = 50.,
414 PVRefitter = PVrefit,
415 V0Tools = V0Tools,
416 TrkVertexFitterTool = vkalvrt,
417 OutputVtxContainerName = "BPHY13Psimumu_revtx")
418
419 BPHY13_Rev_Upsimumu = CompFactory.DerivationFramework.ReVertex(
420 name = "BPHY13_Rev_Upsimumu",
421 InputVtxContainerName = "BPHY13Upsimumu",
422 TrackIndices = [ 0, 1 ],
423 RefitPV = False,
424 UseMassConstraint = True,
425 VertexMass = Upsimass,
426 MassInputParticles = [Mumass, Mumass],
427 Chi2Cut = 50.,
428 PVRefitter = PVrefit,
429 V0Tools = V0Tools,
430 TrkVertexFitterTool = vkalvrt,
431 OutputVtxContainerName = "BPHY13Upsimumu_revtx")
432
433
434 BPHY13_Rev_Phimutrk = CompFactory.DerivationFramework.ReVertex(
435 name = "BPHY13_Rev_Phimutrk",
436 InputVtxContainerName = "BPHY13Phimutrk",
437 TrackIndices = [ 0, 1 ],
438 RefitPV = False,
439 UseMassConstraint = True,
440 VertexMass = Phimass,
441 MassInputParticles = [Mumass, Mumass],
442 Chi2Cut = 50.,
443 PVRefitter = PVrefit,
444 V0Tools = V0Tools,
445 TrkVertexFitterTool = vkalvrt,
446 OutputVtxContainerName = "BPHY13Phimutrk_revtx")
447
448 BPHY13_Rev_Jpsimutrk = CompFactory.DerivationFramework.ReVertex(
449 name = "BPHY13_Rev_Jpsimutrk",
450 InputVtxContainerName = "BPHY13Jpsimutrk",
451 TrackIndices = [ 0, 1 ],
452 RefitPV = False,
453 UseMassConstraint = True,
454 VertexMass = Jpsimass,
455 MassInputParticles = [Mumass, Mumass],
456 Chi2Cut = 50.,
457 PVRefitter = PVrefit,
458 V0Tools = V0Tools,
459 TrkVertexFitterTool = vkalvrt,
460 OutputVtxContainerName = "BPHY13Jpsimutrk_revtx")
461
462 BPHY13_Rev_Psimutrk = CompFactory.DerivationFramework.ReVertex(
463 name = "BPHY13_Rev_Psimutrk",
464 InputVtxContainerName = "BPHY13Psimutrk",
465 TrackIndices = [ 0, 1 ],
466 RefitPV = False,
467 UseMassConstraint = True,
468 VertexMass = Psi2Smass,
469 MassInputParticles = [Mumass, Mumass],
470 Chi2Cut = 50.,
471 PVRefitter = PVrefit,
472 V0Tools = V0Tools,
473 TrkVertexFitterTool = vkalvrt,
474 OutputVtxContainerName = "BPHY13Psimutrk_revtx")
475
476 BPHY13_Rev_Upsimutrk = CompFactory.DerivationFramework.ReVertex(
477 name = "BPHY13_Rev_Upsimutrk",
478 InputVtxContainerName = "BPHY13Upsimutrk",
479 TrackIndices = [ 0, 1 ],
480 RefitPV = False,
481 UseMassConstraint = True,
482 VertexMass = Upsimass,
483 MassInputParticles = [Mumass, Mumass],
484 Chi2Cut = 50.,
485 PVRefitter = PVrefit,
486 V0Tools = V0Tools,
487 TrkVertexFitterTool = vkalvrt,
488 OutputVtxContainerName = "BPHY13Upsimutrk_revtx")
489
490
491 list_4mu_hypo = ["UpsiUpsi_4mu", "UpsiPsi_4mu", "UpsiJpsi_4mu", "UpsiPhi_4mu",
492 "PsiPsi_4mu", "PsiJpsi_4mu", "PsiPhi_4mu",
493 "JpsiJpsi_4mu", "JpsiPhi_4mu", "PhiPhi_4mu",
494 "UpsiDimu_4mu"]
495 list_4mu_psi1Input = ["BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx",
496 "BPHY13Psimumu_revtx", "BPHY13Psimumu_revtx", "BPHY13Psimumu_revtx",
497 "BPHY13Jpsimumu_revtx", "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx",
498 "BPHY13Upsimumu_revtx"]
499 list_4mu_psi2Input = ["BPHY13Upsimumu_revtx", "BPHY13Psimumu_revtx", "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx",
500 "BPHY13Psimumu_revtx", "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx",
501 "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx", "BPHY13Phimumu_revtx",
502 "BPHY13Dimumumu"]
503 list_4mu_jpsi1lo = [Upsi_lo,Upsi_lo,Upsi_lo,Upsi_lo,
504 Psi_lo,Psi_lo,Psi_lo,
505 Jpsi_lo,Jpsi_lo,Phi_lo,
506 Upsi_lo]
507 list_4mu_jpsi1hi = [Upsi_hi,Upsi_hi,Upsi_hi,Upsi_hi,
508 Psi_hi,Psi_hi,Psi_hi,
509 Jpsi_hi,Jpsi_hi,Phi_hi,
510 Upsi_hi]
511 list_4mu_jpsi1mass = [Upsimass, Upsimass, Upsimass, Upsimass,
512 Psi2Smass, Psi2Smass, Psi2Smass,
513 Jpsimass, Jpsimass, Phimass,
514 Upsimass]
515 list_4mu_jpsi2lo = [Upsi_lo,Psi_lo,Jpsi_lo,Phi_lo,
516 Psi_lo,Jpsi_lo,Phi_lo,
517 Jpsi_lo,Phi_lo,Phi_lo,
518 Dimu_lo]
519 list_4mu_jpsi2hi = [Upsi_hi,Psi_hi,Jpsi_hi,Phi_hi,
520 Psi_hi,Jpsi_hi,Phi_hi,
521 Jpsi_hi,Phi_hi,Phi_hi,
522 Dimu_hi]
523 list_4mu_jpsi2mass = [Upsimass, Psi2Smass, Jpsimass, Phimass,
524 Psi2Smass, Jpsimass, Phimass,
525 Jpsimass, Phimass, Phimass]
526
527 list_4mu_obj = []
528 for hypo in list_4mu_hypo:
529 list_4mu_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY13_"+hypo) )
530
531 for i in range(len(list_4mu_obj)):
532 list_4mu_obj[i].HypothesisName = list_4mu_hypo[i]
533 list_4mu_obj[i].Psi1Vertices = list_4mu_psi1Input[i]
534 list_4mu_obj[i].Psi2Vertices = list_4mu_psi2Input[i]
535 list_4mu_obj[i].NumberOfPsi1Daughters = 2
536 list_4mu_obj[i].NumberOfPsi2Daughters = 2
537 list_4mu_obj[i].Jpsi1MassLowerCut = list_4mu_jpsi1lo[i]
538 list_4mu_obj[i].Jpsi1MassUpperCut = list_4mu_jpsi1hi[i]
539 list_4mu_obj[i].Jpsi2MassLowerCut = list_4mu_jpsi2lo[i]
540 list_4mu_obj[i].Jpsi2MassUpperCut = list_4mu_jpsi2hi[i]
541 list_4mu_obj[i].MassLowerCut = 0.
542 list_4mu_obj[i].MassUpperCut = 31000.
543 list_4mu_obj[i].Jpsi1Mass = list_4mu_jpsi1mass[i]
544 list_4mu_obj[i].ApplyJpsi1MassConstraint = True
545 if i == len(list_4mu_obj)-1:
546 list_4mu_obj[i].ApplyJpsi2MassConstraint = False
547 else:
548 list_4mu_obj[i].Jpsi2Mass = list_4mu_jpsi2mass[i]
549 list_4mu_obj[i].ApplyJpsi2MassConstraint = True
550 list_4mu_obj[i].Chi2Cut = 25.
551 list_4mu_obj[i].PVRefitter = PVrefit
552 list_4mu_obj[i].TrkVertexFitterTool = vkalvrt
553 list_4mu_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
554 list_4mu_obj[i].OutputVertexCollections = ["BPHY13_"+list_4mu_hypo[i]+"_SubVtx1","BPHY13_"+list_4mu_hypo[i]+"_SubVtx2","BPHY13_"+list_4mu_hypo[i]+"_MainVtx"]
555 list_4mu_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
556 list_4mu_obj[i].RefPVContainerName = "BPHY13_"+list_4mu_hypo[i]+"_RefPrimaryVertices"
557 list_4mu_obj[i].RefitPV = True
558 list_4mu_obj[i].MaxnPV = 100
559
560
561 list_3mu1trk_hypo = ["UpsiUpsi_3mu1trk", "UpsiPsi_3mu1trk", "UpsiJpsi_3mu1trk", "UpsiPhi_3mu1trk",
562 "PsiPsi_3mu1trk", "PsiJpsi_3mu1trk", "PsiPhi_3mu1trk",
563 "JpsiJpsi_3mu1trk", "JpsiPhi_3mu1trk", "PhiPhi_3mu1trk",
564 "PsiUpsi_3mu1trk", "JpsiUpsi_3mu1trk", "PhiUpsi_3mu1trk",
565 "JpsiPsi_3mu1trk", "PhiPsi_3mu1trk", "PhiJpsi_3mu1trk",
566 "UpsiDimu_3mu1trk", "DimuUpsi_3mu1trk"]
567 list_3mu1trk_psi1Input = ["BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx", "BPHY13Upsimumu_revtx",
568 "BPHY13Psimumu_revtx", "BPHY13Psimumu_revtx", "BPHY13Psimumu_revtx",
569 "BPHY13Jpsimumu_revtx", "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx",
570 "BPHY13Psimumu_revtx", "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx",
571 "BPHY13Jpsimumu_revtx", "BPHY13Phimumu_revtx", "BPHY13Phimumu_revtx",
572 "BPHY13Upsimumu_revtx", "BPHY13Dimumumu"]
573 list_3mu1trk_psi2Input = ["BPHY13Upsimutrk_revtx", "BPHY13Psimutrk_revtx", "BPHY13Jpsimutrk_revtx", "BPHY13Phimutrk_revtx",
574 "BPHY13Psimutrk_revtx", "BPHY13Jpsimutrk_revtx", "BPHY13Phimutrk_revtx",
575 "BPHY13Jpsimutrk_revtx", "BPHY13Phimutrk_revtx", "BPHY13Phimutrk_revtx",
576 "BPHY13Upsimutrk_revtx", "BPHY13Upsimutrk_revtx", "BPHY13Upsimutrk_revtx",
577 "BPHY13Psimutrk_revtx", "BPHY13Psimutrk_revtx", "BPHY13Jpsimutrk_revtx",
578 "BPHY13Dimumutrk", "BPHY13Upsimutrk_revtx"]
579 list_3mu1trk_jpsi1lo = [Upsi_lo,Upsi_lo,Upsi_lo,Upsi_lo,
580 Psi_lo,Psi_lo,Psi_lo,
581 Jpsi_lo,Jpsi_lo,Phi_lo,
582 Psi_lo,Jpsi_lo,Phi_lo,
583 Jpsi_lo,Phi_lo,Phi_lo,
584 Upsi_lo, Dimu_lo]
585 list_3mu1trk_jpsi1hi = [Upsi_hi,Upsi_hi,Upsi_hi,Upsi_hi,
586 Psi_hi,Psi_hi,Psi_hi,
587 Jpsi_hi,Jpsi_hi,Phi_hi,
588 Psi_hi,Jpsi_hi,Phi_hi,
589 Jpsi_hi,Phi_hi,Phi_hi,
590 Upsi_hi, Dimu_hi]
591 list_3mu1trk_jpsi1mass = [Upsimass, Upsimass, Upsimass, Upsimass,
592 Psi2Smass, Psi2Smass, Psi2Smass,
593 Jpsimass, Jpsimass, Phimass,
594 Psi2Smass, Jpsimass, Phimass,
595 Jpsimass, Phimass, Phimass,
596 Upsimass, 0.0]
597 list_3mu1trk_jpsi2lo = [Upsi_lo,Psi_lo,Jpsi_lo,Phi_lo,
598 Psi_lo,Jpsi_lo,Phi_lo,
599 Jpsi_lo,Phi_lo,Phi_lo,
600 Upsi_lo,Upsi_lo,Upsi_lo,
601 Psi_lo,Psi_lo,Jpsi_lo,
602 Dimu_lo, Upsi_lo]
603 list_3mu1trk_jpsi2hi = [Upsi_hi,Psi_hi,Jpsi_hi,Phi_hi,
604 Psi_hi,Jpsi_hi,Phi_hi,
605 Jpsi_hi,Phi_hi,Phi_hi,
606 Upsi_hi,Upsi_hi,Upsi_hi,
607 Psi_hi,Psi_hi,Jpsi_hi,
608 Dimu_hi, Upsi_lo]
609 list_3mu1trk_jpsi2mass = [Upsimass, Psi2Smass, Jpsimass, Phimass,
610 Psi2Smass, Jpsimass, Phimass,
611 Jpsimass, Phimass, Phimass,
612 Upsimass, Upsimass, Upsimass,
613 Psi2Smass, Psi2Smass, Jpsimass,
614 0.0, Upsimass]
615
616 list_3mu1trk_obj = []
617 for hypo in list_3mu1trk_hypo:
618 list_3mu1trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY13_"+hypo) )
619
620 for i in range(len(list_3mu1trk_obj)):
621 list_3mu1trk_obj[i].HypothesisName = list_3mu1trk_hypo[i]
622 list_3mu1trk_obj[i].Psi1Vertices = list_3mu1trk_psi1Input[i]
623 list_3mu1trk_obj[i].Psi2Vertices = list_3mu1trk_psi2Input[i]
624 list_3mu1trk_obj[i].NumberOfPsi1Daughters = 2
625 list_3mu1trk_obj[i].NumberOfPsi2Daughters = 2
626 list_3mu1trk_obj[i].MaxCandidates = 20
627 list_3mu1trk_obj[i].Jpsi1MassLowerCut = list_3mu1trk_jpsi1lo[i]
628 list_3mu1trk_obj[i].Jpsi1MassUpperCut = list_3mu1trk_jpsi1hi[i]
629 list_3mu1trk_obj[i].Jpsi2MassLowerCut = list_3mu1trk_jpsi2lo[i]
630 list_3mu1trk_obj[i].Jpsi2MassUpperCut = list_3mu1trk_jpsi2hi[i]
631 list_3mu1trk_obj[i].MassLowerCut = 0.
632 list_3mu1trk_obj[i].MassUpperCut = 31000.
633 if i == len(list_3mu1trk_obj)-2:
634 list_3mu1trk_obj[i].Jpsi1Mass = list_3mu1trk_jpsi1mass[i]
635 list_3mu1trk_obj[i].ApplyJpsi1MassConstraint = True
636 list_3mu1trk_obj[i].ApplyJpsi2MassConstraint = False
637 elif i == len(list_3mu1trk_obj)-1:
638 list_3mu1trk_obj[i].Jpsi2Mass = list_3mu1trk_jpsi2mass[i]
639 list_3mu1trk_obj[i].ApplyJpsi1MassConstraint = False
640 list_3mu1trk_obj[i].ApplyJpsi2MassConstraint = True
641 else:
642 list_3mu1trk_obj[i].Jpsi1Mass = list_3mu1trk_jpsi1mass[i]
643 list_3mu1trk_obj[i].Jpsi2Mass = list_3mu1trk_jpsi2mass[i]
644 list_3mu1trk_obj[i].ApplyJpsi1MassConstraint = True
645 list_3mu1trk_obj[i].ApplyJpsi2MassConstraint = True
646 list_3mu1trk_obj[i].Chi2Cut = 25.
647 list_3mu1trk_obj[i].PVRefitter = PVrefit
648 list_3mu1trk_obj[i].TrkVertexFitterTool = vkalvrt
649 list_3mu1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
650 list_3mu1trk_obj[i].OutputVertexCollections = ["BPHY13_"+list_3mu1trk_hypo[i]+"_SubVtx1","BPHY13_"+list_3mu1trk_hypo[i]+"_SubVtx2","BPHY13_"+list_3mu1trk_hypo[i]+"_MainVtx"]
651 list_3mu1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
652 list_3mu1trk_obj[i].RefPVContainerName = "BPHY13_"+list_3mu1trk_hypo[i]+"_RefPrimaryVertices"
653 list_3mu1trk_obj[i].RefitPV = True
654 list_3mu1trk_obj[i].MaxnPV = 100
655
656
657 list_all_obj = list_4mu_obj + list_3mu1trk_obj
658
659 OutputCollections = []
660 RefPVContainers = []
661 RefPVAuxContainers = []
662 passedCandidates = []
663
664 for obj in list_all_obj:
665 OutputCollections += obj.OutputVertexCollections
666 RefPVContainers += ["xAOD::VertexContainer#BPHY13_" + obj.HypothesisName + "_RefPrimaryVertices"]
667 RefPVAuxContainers += ["xAOD::VertexAuxContainer#BPHY13_" + obj.HypothesisName + "_RefPrimaryVerticesAux."]
668 passedCandidates += [ "BPHY13_" + obj.HypothesisName + "_MainVtx" ]
669
670 BPHY13_SelectEvent = CompFactory.DerivationFramework.AnyVertexSkimmingTool(name = "BPHY13_SelectEvent", VertexContainerNames = passedCandidates)
671 acc.addPublicTool(BPHY13_SelectEvent)
672
673 augmentation_tools = [BPHY13_Reco_Phimumu, BPHY13_Reco_Jpsimumu, BPHY13_Reco_Psimumu, BPHY13_Reco_Upsimumu, BPHY13_Reco_Dimumumu, BPHY13_Reco_Phimutrk, BPHY13_Reco_Jpsimutrk, BPHY13_Reco_Psimutrk, BPHY13_Reco_Upsimutrk, BPHY13_Reco_Dimumutrk, BPHY13_Rev_Phimumu, BPHY13_Rev_Jpsimumu, BPHY13_Rev_Psimumu, BPHY13_Rev_Upsimumu, BPHY13_Rev_Phimutrk, BPHY13_Rev_Jpsimutrk, BPHY13_Rev_Psimutrk, BPHY13_Rev_Upsimutrk] + list_all_obj
674 for t in augmentation_tools : acc.addPublicTool(t)
675
676 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
677 "BPHY13Kernel",
678 AugmentationTools = augmentation_tools,
679 SkimmingTools = [BPHY13_SelectEvent]
680 ))
681
682 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
683 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
684 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
685 BPHY13SlimmingHelper =
SlimmingHelper(
"BPHY13SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
686 from DerivationFrameworkBPhys.commonBPHYMethodsCfg import getDefaultAllVariables
687 BPHY13_AllVariables = getDefaultAllVariables()
688 BPHY13_StaticContent = []
689
690
691 BPHY13SlimmingHelper.IncludeMuonTriggerContent = True
692 BPHY13SlimmingHelper.IncludeBPhysTriggerContent = True
693
694
695 BPHY13_AllVariables += ["PrimaryVertices"]
696 BPHY13_StaticContent += RefPVContainers
697 BPHY13_StaticContent += RefPVAuxContainers
698
699
700 BPHY13_AllVariables += ["InDetTrackParticles"]
701
702
705 BPHY13_AllVariables += ["CombinedMuonTrackParticles", "ExtrapolatedMuonTrackParticles"]
706
707
708 BPHY13_AllVariables += ["Muons", "MuonSegments"]
709
710
711 for output in OutputCollections:
712 BPHY13_StaticContent += ["xAOD::VertexContainer#%s" % output]
713 BPHY13_StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % output]
714
715
716 if isSimulation:
717 BPHY13_AllVariables += ["TruthEvents","TruthParticles","TruthVertices","MuonTruthParticles"]
718
719 BPHY13SlimmingHelper.SmartCollections = ["Muons", "PrimaryVertices", "InDetTrackParticles"]
720 BPHY13SlimmingHelper.AllVariables = BPHY13_AllVariables
721 BPHY13SlimmingHelper.StaticContent = BPHY13_StaticContent
722
723 BPHY13ItemList = BPHY13SlimmingHelper.GetItemList()
724 acc.merge(OutputStreamCfg(flags, "DAOD_BPHY13", ItemList=BPHY13ItemList, AcceptAlgs=["BPHY13Kernel"]))
725 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_BPHY13", AcceptAlgs=["BPHY13Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
726 acc.printConfig(withDetails=True, summariseProps=True, onlyComponents = [], printDefaults=True)
727 return acc