ATLAS Offline Software
BPHY23.py
Go to the documentation of this file.
1 
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 
4 #====================================================================
5 # BPHY23.py
6 # Contact: xin.chen@cern.ch
7 #====================================================================
8 
9 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
10 from AthenaConfiguration.ComponentFactory import CompFactory
11 from AthenaConfiguration.Enums import MetadataCategory
12 
13 BPHYDerivationName = "BPHY23"
14 streamName = "StreamDAOD_BPHY23"
15 
16 def BPHY23Cfg(flags):
17  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
18  from JpsiUpsilonTools.JpsiUpsilonToolsConfig import PrimaryVertexRefittingToolCfg
19  acc = ComponentAccumulator()
20  isSimulation = flags.Input.isMC
21  V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
22  vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName)) # VKalVrt vertex fitter
23  acc.addPublicTool(vkalvrt)
24  acc.addPublicTool(V0Tools)
25  trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
26  acc.addPublicTool(trackselect)
27  vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
28  acc.addPublicTool(vpest)
29 
30  # mass bounds and constants used in the following
31  X_hi = 141000.0
32 
33  Jpsi_lo = 2600.0
34  Jpsi_hi = 3500.0
35  Zc_lo = 3650.0
36  Zc_hi = 4150.0
37  Psi_lo = 3350.0
38  Psi_hi = 4200.0
39  B_lo = 4850.0
40  B_hi = 5700.0
41  Bs0_lo = 4950.0
42  Bs0_hi = 5800.0
43  Upsi_lo = 8900.0
44  Upsi_hi = 9900.0
45 
46  Mumass = 105.658
47  Pimass = 139.570
48  Kmass = 493.677
49  Jpsimass = 3096.916
50  Psi2Smass = 3686.10
51  X3872mass = 3871.65
52  Zcmass = 3887.1
53  Bpmmass = 5279.34
54  B0mass = 5279.66
55  Bs0mass = 5366.92
56  Upsimass = 9460.30
57 
58  BPHY23JpsiFinder = CompFactory.Analysis.JpsiFinder(
59  name = "BPHY23JpsiFinder",
60  muAndMu = True,
61  muAndTrack = False,
62  TrackAndTrack = False,
63  assumeDiMuons = True, # If true, will assume dimu hypothesis and use PDG value for mu mass
64  trackThresholdPt = 2400.,
65  invMassLower = Jpsi_lo,
66  invMassUpper = Upsi_hi,
67  Chi2Cut = 10.,
68  oppChargesOnly = True,
69  atLeastOneComb = True,
70  useCombinedMeasurement = False, # Only takes effect if combOnly=True
71  muonCollectionKey = "Muons",
72  TrackParticleCollection = "InDetTrackParticles",
73  V0VertexFitterTool = None,
74  useV0Fitter = False, # if False a TrkVertexFitterTool will be used
75  TrkVertexFitterTool = vkalvrt, # VKalVrt vertex fitter
76  TrackSelectorTool = trackselect,
77  VertexPointEstimator = vpest,
78  useMCPCuts = False )
79  acc.addPublicTool(BPHY23JpsiFinder)
80 
81  BPHY23_Reco_mumu = CompFactory.DerivationFramework.Reco_Vertex(
82  name = "BPHY23_Reco_mumu",
83  VertexSearchTool = BPHY23JpsiFinder,
84  OutputVtxContainerName = "BPHY23OniaCandidates",
85  PVContainerName = "PrimaryVertices",
86  RefPVContainerName = "SHOULDNOTBEUSED",
87  V0Tools = V0Tools,
88  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
89  DoVertexType = 1)
90 
91 
92  # X(3872), Psi(2S) -> J/psi + pi pi
93  BPHY23PsiX3872_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
94  name = "BPHY23PsiX3872_Jpsi2Trk",
95  kaonkaonHypothesis = False,
96  pionpionHypothesis = True,
97  kaonpionHypothesis = False,
98  kaonprotonHypothesis = False,
99  trkThresholdPt = 380.,
100  trkMaxEta = 2.6,
101  oppChargesOnly = False,
102  JpsiMassLower = Jpsi_lo,
103  JpsiMassUpper = Jpsi_hi,
104  TrkQuadrupletMassLower = Psi_lo,
105  TrkQuadrupletMassUpper = Psi_hi,
106  Chi2Cut = 10.,
107  JpsiContainerKey = "BPHY23OniaCandidates",
108  TrackParticleCollection = "InDetTrackParticles",
109  MuonsUsedInJpsi = "Muons",
110  ExcludeJpsiMuonsOnly = True,
111  TrkVertexFitterTool = vkalvrt,
112  TrackSelectorTool = trackselect,
113  UseMassConstraint = False)
114  acc.addPublicTool(BPHY23PsiX3872_Jpsi2Trk)
115 
116  # Bs0 -> J/psi + K K
117  BPHY23Bs0_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
118  name = "BPHY23Bs0_Jpsi2Trk",
119  kaonkaonHypothesis = True,
120  pionpionHypothesis = False,
121  kaonpionHypothesis = False,
122  kaonprotonHypothesis = False,
123  trkThresholdPt = 380.,
124  trkMaxEta = 2.6,
125  oppChargesOnly = False,
126  JpsiMassLower = Jpsi_lo,
127  JpsiMassUpper = Jpsi_hi,
128  TrkQuadrupletMassLower = Bs0_lo,
129  TrkQuadrupletMassUpper = Bs0_hi,
130  Chi2Cut = 10.,
131  JpsiContainerKey = "BPHY23OniaCandidates",
132  TrackParticleCollection = "InDetTrackParticles",
133  MuonsUsedInJpsi = "Muons",
134  ExcludeJpsiMuonsOnly = True,
135  TrkVertexFitterTool = vkalvrt,
136  TrackSelectorTool = trackselect,
137  UseMassConstraint = False)
138  acc.addPublicTool(BPHY23Bs0_Jpsi2Trk)
139 
140  # B0 -> J/psi + K pi
141  BPHY23B0_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
142  name = "BPHY23B0_Jpsi2Trk",
143  kaonkaonHypothesis = False,
144  pionpionHypothesis = False,
145  kaonpionHypothesis = True,
146  kaonprotonHypothesis = False,
147  trkThresholdPt = 380.,
148  trkMaxEta = 2.6,
149  oppChargesOnly = False,
150  JpsiMassLower = Jpsi_lo,
151  JpsiMassUpper = Jpsi_hi,
152  TrkQuadrupletMassLower = B_lo,
153  TrkQuadrupletMassUpper = B_hi,
154  Chi2Cut = 10.,
155  JpsiContainerKey = "BPHY23OniaCandidates",
156  TrackParticleCollection = "InDetTrackParticles",
157  MuonsUsedInJpsi = "Muons",
158  ExcludeJpsiMuonsOnly = True,
159  TrkVertexFitterTool = vkalvrt,
160  TrackSelectorTool = trackselect,
161  UseMassConstraint = False)
162  acc.addPublicTool(BPHY23B0_Jpsi2Trk)
163 
164 
165  # Zc(3900)+ -> J/psi pi
166  BPHY23Zc3900_Jpsi1Trk = CompFactory.Analysis.JpsiPlus1Track(
167  name = "BPHY23Zc3900_Jpsi1Trk",
168  pionHypothesis = True,
169  kaonHypothesis = False,
170  trkThresholdPt = 380.,
171  trkMaxEta = 2.6,
172  JpsiMassLower = Jpsi_lo,
173  JpsiMassUpper = Jpsi_hi,
174  TrkTrippletMassLower = Zc_lo,
175  TrkTrippletMassUpper = Zc_hi,
176  Chi2Cut = 10.0,
177  JpsiContainerKey = "BPHY23OniaCandidates",
178  TrackParticleCollection = "InDetTrackParticles",
179  MuonsUsedInJpsi = "Muons",
180  ExcludeJpsiMuonsOnly = True,
181  TrkVertexFitterTool = vkalvrt,
182  TrackSelectorTool = trackselect,
183  UseMassConstraint = False)
184  acc.addPublicTool(BPHY23Zc3900_Jpsi1Trk)
185 
186  # B+ -> J/psi K
187  BPHY23Bpm_Jpsi1Trk = CompFactory.Analysis.JpsiPlus1Track(
188  name = "BPHY23Bpm_Jpsi1Trk",
189  pionHypothesis = False,
190  kaonHypothesis = True,
191  trkThresholdPt = 380.,
192  trkMaxEta = 2.6,
193  JpsiMassLower = Jpsi_lo,
194  JpsiMassUpper = Jpsi_hi,
195  TrkTrippletMassLower = B_lo,
196  TrkTrippletMassUpper = B_hi,
197  Chi2Cut = 10.0,
198  JpsiContainerKey = "BPHY23OniaCandidates",
199  TrackParticleCollection = "InDetTrackParticles",
200  MuonsUsedInJpsi = "Muons",
201  ExcludeJpsiMuonsOnly = True,
202  TrkVertexFitterTool = vkalvrt,
203  TrackSelectorTool = trackselect,
204  UseMassConstraint = False)
205  acc.addPublicTool(BPHY23Bpm_Jpsi1Trk)
206 
207  BPHY23FourTrackReco_PsiX3872 = CompFactory.DerivationFramework.Reco_Vertex(
208  name = "BPHY23FourTrackReco_PsiX3872",
209  VertexSearchTool = BPHY23PsiX3872_Jpsi2Trk,
210  OutputVtxContainerName = "BPHY23FourTrack_PsiX3872",
211  PVContainerName = "PrimaryVertices",
212  V0Tools = V0Tools,
213  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
214  RefitPV = False,
215  DoVertexType = 0)
216 
217  BPHY23FourTrackReco_Bs0 = CompFactory.DerivationFramework.Reco_Vertex(
218  name = "BPHY23FourTrackReco_Bs0",
219  VertexSearchTool = BPHY23Bs0_Jpsi2Trk,
220  OutputVtxContainerName = "BPHY23FourTrack_Bs0",
221  PVContainerName = "PrimaryVertices",
222  V0Tools = V0Tools,
223  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
224  RefitPV = False,
225  DoVertexType = 0)
226 
227  BPHY23FourTrackReco_B0 = CompFactory.DerivationFramework.Reco_Vertex(
228  name = "BPHY23FourTrackReco_B0",
229  VertexSearchTool = BPHY23B0_Jpsi2Trk,
230  OutputVtxContainerName = "BPHY23FourTrack_B0",
231  PVContainerName = "PrimaryVertices",
232  V0Tools = V0Tools,
233  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
234  RefitPV = False,
235  DoVertexType = 0)
236 
237  BPHY23ThreeTrackReco_Zc3900 = CompFactory.DerivationFramework.Reco_Vertex(
238  name = "BPHY23ThreeTrackReco_Zc3900",
239  VertexSearchTool = BPHY23Zc3900_Jpsi1Trk,
240  OutputVtxContainerName = "BPHY23ThreeTrack_Zc3900",
241  PVContainerName = "PrimaryVertices",
242  V0Tools = V0Tools,
243  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
244  RefitPV = False,
245  DoVertexType = 0)
246 
247  BPHY23ThreeTrackReco_Bpm = CompFactory.DerivationFramework.Reco_Vertex(
248  name = "BPHY23ThreeTrackReco_Bpm",
249  VertexSearchTool = BPHY23Bpm_Jpsi1Trk,
250  OutputVtxContainerName = "BPHY23ThreeTrack_Bpm",
251  PVContainerName = "PrimaryVertices",
252  V0Tools = V0Tools,
253  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
254  RefitPV = False,
255  DoVertexType = 0)
256 
257  # revertex with mass constraints to reduce combinatorics
258  # Psi(2S) -> J/psi pi pi
259  BPHY23Rev_Psi4Body = CompFactory.DerivationFramework.ReVertex(
260  name = "BPHY23Rev_Psi4Body",
261  InputVtxContainerName = "BPHY23FourTrack_PsiX3872",
262  TrackIndices = [ 0, 1, 2, 3 ],
263  SubVertexTrackIndices = [ 1, 2 ],
264  RefitPV = False,
265  UseMassConstraint = True,
266  VertexMass = Psi2Smass,
267  SubVertexMass = Jpsimass,
268  MassInputParticles = [Mumass, Mumass, Pimass, Pimass],
269  Chi2Cut = 25.,
270  TrkVertexFitterTool = vkalvrt,
271  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
272  V0Tools = V0Tools,
273  OutputVtxContainerName = "BPHY23Revtx_Psi4Body")
274 
275  # X(3872) -> J/psi pi pi
276  BPHY23Rev_X3872 = CompFactory.DerivationFramework.ReVertex(
277  name = "BPHY23Rev_X3872",
278  InputVtxContainerName = "BPHY23FourTrack_PsiX3872",
279  TrackIndices = [ 0, 1, 2, 3 ],
280  SubVertexTrackIndices = [ 1, 2 ],
281  RefitPV = False,
282  UseMassConstraint = True,
283  VertexMass = X3872mass,
284  SubVertexMass = Jpsimass,
285  MassInputParticles = [Mumass, Mumass, Pimass, Pimass],
286  Chi2Cut = 25.,
287  TrkVertexFitterTool = vkalvrt,
288  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
289  V0Tools = V0Tools,
290  OutputVtxContainerName = "BPHY23Revtx_X3872")
291 
292  # Bs0 -> J/psi K K
293  BPHY23Rev_Bs0 = CompFactory.DerivationFramework.ReVertex(
294  name = "BPHY23Rev_Bs0",
295  InputVtxContainerName = "BPHY23FourTrack_Bs0",
296  TrackIndices = [ 0, 1, 2, 3 ],
297  SubVertexTrackIndices = [ 1, 2 ],
298  RefitPV = False,
299  UseMassConstraint = True,
300  VertexMass = Bs0mass,
301  SubVertexMass = Jpsimass,
302  MassInputParticles = [Mumass, Mumass, Kmass, Kmass],
303  Chi2Cut = 25.,
304  TrkVertexFitterTool = vkalvrt,
305  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
306  V0Tools = V0Tools,
307  OutputVtxContainerName = "BPHY23Revtx_Bs0")
308 
309  # B0 -> J/psi K pi
310  BPHY23Rev_B0Kpi = CompFactory.DerivationFramework.ReVertex(
311  name = "BPHY23Rev_B0Kpi",
312  InputVtxContainerName = "BPHY23FourTrack_B0",
313  TrackIndices = [ 0, 1, 2, 3 ],
314  SubVertexTrackIndices = [ 1, 2 ],
315  RefitPV = False,
316  UseMassConstraint = True,
317  VertexMass = B0mass,
318  SubVertexMass = Jpsimass,
319  MassInputParticles = [Mumass, Mumass, Kmass, Pimass],
320  Chi2Cut = 25.,
321  TrkVertexFitterTool = vkalvrt,
322  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
323  V0Tools = V0Tools,
324  OutputVtxContainerName = "BPHY23Revtx_B0Kpi")
325 
326  # B0 -> J/psi pi K
327  BPHY23Rev_B0piK = CompFactory.DerivationFramework.ReVertex(
328  name = "BPHY23Rev_B0piK",
329  InputVtxContainerName = "BPHY23FourTrack_B0",
330  TrackIndices = [ 0, 1, 2, 3 ],
331  SubVertexTrackIndices = [ 1, 2 ],
332  RefitPV = False,
333  UseMassConstraint = True,
334  VertexMass = B0mass,
335  SubVertexMass = Jpsimass,
336  MassInputParticles = [Mumass, Mumass, Pimass, Kmass],
337  Chi2Cut = 25.,
338  TrkVertexFitterTool = vkalvrt,
339  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
340  V0Tools = V0Tools,
341  OutputVtxContainerName = "BPHY23Revtx_B0piK")
342 
343  # Zc3900 -> J/psi pi
344  BPHY23Rev_Zc3900 = CompFactory.DerivationFramework.ReVertex(
345  name = "BPHY23Rev_Zc3900",
346  InputVtxContainerName = "BPHY23ThreeTrack_Zc3900",
347  TrackIndices = [ 0, 1, 2 ],
348  SubVertexTrackIndices = [ 1, 2 ],
349  RefitPV = False,
350  UseMassConstraint = True,
351  SubVertexMass = Jpsimass,
352  MassInputParticles = [Mumass, Mumass, Pimass],
353  Chi2Cut = 25.,
354  BMassLower = Zc_lo,
355  BMassUpper = Zc_hi,
356  TrkVertexFitterTool = vkalvrt,
357  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
358  V0Tools = V0Tools,
359  OutputVtxContainerName = "BPHY23Revtx_Zc3900")
360 
361  # Bpm -> J/psi K
362  BPHY23Rev_Bpm = CompFactory.DerivationFramework.ReVertex(
363  name = "BPHY23Rev_Bpm",
364  InputVtxContainerName = "BPHY23ThreeTrack_Bpm",
365  TrackIndices = [ 0, 1, 2 ],
366  SubVertexTrackIndices = [ 1, 2 ],
367  RefitPV = False,
368  UseMassConstraint = True,
369  VertexMass = Bpmmass,
370  SubVertexMass = Jpsimass,
371  MassInputParticles = [Mumass, Mumass, Kmass],
372  Chi2Cut = 25.,
373  TrkVertexFitterTool = vkalvrt,
374  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
375  V0Tools = V0Tools,
376  OutputVtxContainerName = "BPHY23Revtx_Bpm")
377 
378 
379  BPHY23Select_Jpsi = CompFactory.DerivationFramework.Select_onia2mumu(
380  name = "BPHY23Select_Jpsi",
381  HypothesisName = "Jpsi",
382  InputVtxContainerName = "BPHY23OniaCandidates",
383  V0Tools = V0Tools,
384  TrkMasses = [Mumass, Mumass],
385  MassMin = Jpsi_lo,
386  MassMax = Jpsi_hi,
387  DoVertexType = 0)
388 
389  BPHY23Select_Psi = CompFactory.DerivationFramework.Select_onia2mumu(
390  name = "BPHY23Select_Psi",
391  HypothesisName = "Psi",
392  InputVtxContainerName = "BPHY23OniaCandidates",
393  V0Tools = V0Tools,
394  TrkMasses = [Mumass, Mumass],
395  MassMin = Psi_lo,
396  MassMax = Psi_hi,
397  DoVertexType = 0)
398 
399  BPHY23Select_Upsi = CompFactory.DerivationFramework.Select_onia2mumu(
400  name = "BPHY23Select_Upsi",
401  HypothesisName = "Upsi",
402  InputVtxContainerName = "BPHY23OniaCandidates",
403  V0Tools = V0Tools,
404  TrkMasses = [Mumass, Mumass],
405  MassMin = Upsi_lo,
406  MassMax = Upsi_hi,
407  DoVertexType = 0)
408 
409  BPHY23Rev_Jpsi = CompFactory.DerivationFramework.ReVertex(
410  name = "BPHY23Rev_Jpsi",
411  InputVtxContainerName = "BPHY23OniaCandidates",
412  HypothesisNames = [ "Jpsi" ],
413  TrackIndices = [ 0, 1 ],
414  RefitPV = False,
415  UseMassConstraint = True,
416  VertexMass = Jpsimass,
417  MassInputParticles = [Mumass, Mumass],
418  Chi2Cut = 50.,
419  TrkVertexFitterTool = vkalvrt,
420  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
421  V0Tools = V0Tools,
422  OutputVtxContainerName = "BPHY23Revtx_Jpsi")
423 
424  BPHY23Rev_Psi = CompFactory.DerivationFramework.ReVertex(
425  name = "BPHY23Rev_Psi",
426  InputVtxContainerName = "BPHY23OniaCandidates",
427  HypothesisNames = [ "Psi" ],
428  TrackIndices = [ 0, 1 ],
429  RefitPV = False,
430  UseMassConstraint = True,
431  VertexMass = Psi2Smass,
432  MassInputParticles = [Mumass, Mumass],
433  Chi2Cut = 50.,
434  TrkVertexFitterTool = vkalvrt,
435  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
436  V0Tools = V0Tools,
437  OutputVtxContainerName = "BPHY23Revtx_Psi")
438 
439  BPHY23Rev_Upsi = CompFactory.DerivationFramework.ReVertex(
440  name = "BPHY23Rev_Upsi",
441  InputVtxContainerName = "BPHY23OniaCandidates",
442  HypothesisNames = [ "Upsi" ],
443  TrackIndices = [ 0, 1 ],
444  RefitPV = False,
445  UseMassConstraint = True,
446  VertexMass = Upsimass,
447  MassInputParticles = [Mumass, Mumass],
448  Chi2Cut = 50.,
449  TrkVertexFitterTool = vkalvrt,
450  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
451  V0Tools = V0Tools,
452  OutputVtxContainerName = "BPHY23Revtx_Upsi")
453 
454 
455 
458 
459  list_2trk0trk_hypo = ["Bs2KJpsi0", "Bs2KPsi0", "Bs2KUpsi0",
460  "B0KpiJpsi0", "B0KpiPsi0", "B0KpiUpsi0",
461  "B0piKJpsi0", "B0piKPsi0", "B0piKUpsi0"]
462  list_2trk0trk_psiInput = ["BPHY23Revtx_Bs0", "BPHY23Revtx_Bs0", "BPHY23Revtx_Bs0",
463  "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0Kpi",
464  "BPHY23Revtx_B0piK", "BPHY23Revtx_B0piK", "BPHY23Revtx_B0piK"]
465  list_2trk0trk_jpsiInput = ["BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi",
466  "BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi",
467  "BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi"]
468  list_2trk0trk_jpsiMass = [Jpsimass, Jpsimass, Jpsimass,
469  Jpsimass, Jpsimass, Jpsimass,
470  Jpsimass, Jpsimass, Jpsimass]
471  list_2trk0trk_psiMass = [Bs0mass, Bs0mass, Bs0mass,
472  B0mass, B0mass, B0mass,
473  B0mass, B0mass, B0mass]
474  list_2trk0trk_dau3Mass = [Kmass, Kmass, Kmass,
475  Kmass, Kmass, Kmass,
476  Pimass, Pimass, Pimass]
477  list_2trk0trk_dau4Mass = [Kmass, Kmass, Kmass,
478  Pimass, Pimass, Pimass,
479  Kmass, Kmass, Kmass]
480  list_2trk0trk_jpsi2Mass = [Jpsimass, Psi2Smass, Upsimass,
481  Jpsimass, Psi2Smass, Upsimass,
482  Jpsimass, Psi2Smass, Upsimass]
483 
484  list_2trk0trk_obj = []
485  for hypo in list_2trk0trk_hypo:
486  list_2trk0trk_obj.append( CompFactory.DerivationFramework.JpsiPlusPsiCascade("BPHY23_"+hypo) )
487 
488  for i in range(len(list_2trk0trk_obj)):
489  list_2trk0trk_obj[i].HypothesisName = list_2trk0trk_hypo[i]
490  list_2trk0trk_obj[i].JpsiVertices = list_2trk0trk_jpsiInput[i]
491  list_2trk0trk_obj[i].PsiVertices = list_2trk0trk_psiInput[i]
492  list_2trk0trk_obj[i].NumberOfPsiDaughters = 4
493  list_2trk0trk_obj[i].MassLowerCut = 0.
494  list_2trk0trk_obj[i].MassUpperCut = X_hi
495  list_2trk0trk_obj[i].Chi2Cut = 30.
496  list_2trk0trk_obj[i].MaxCandidates = 15
497  list_2trk0trk_obj[i].MaxnPV = 100
498  list_2trk0trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
499  list_2trk0trk_obj[i].TrkVertexFitterTool = vkalvrt
500  list_2trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
501  list_2trk0trk_obj[i].RefPVContainerName = "BPHY23_"+list_2trk0trk_hypo[i]+"_RefPrimaryVertices"
502  list_2trk0trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_2trk0trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_2trk0trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_2trk0trk_hypo[i]+"_CascadeVtx3"]
503  list_2trk0trk_obj[i].RefitPV = True
504  list_2trk0trk_obj[i].Vtx1Daug3MassHypo = list_2trk0trk_dau3Mass[i]
505  list_2trk0trk_obj[i].Vtx1Daug4MassHypo = list_2trk0trk_dau4Mass[i]
506  list_2trk0trk_obj[i].ApplyJpsiMassConstraint = True
507  list_2trk0trk_obj[i].JpsiMass = list_2trk0trk_jpsiMass[i]
508  list_2trk0trk_obj[i].ApplyPsiMassConstraint = True
509  list_2trk0trk_obj[i].PsiMass = list_2trk0trk_psiMass[i]
510  list_2trk0trk_obj[i].ApplyJpsi2MassConstraint = True
511  list_2trk0trk_obj[i].Jpsi2Mass = list_2trk0trk_jpsi2Mass[i]
512 
513  list2_2trk0trk_hypo = ["Psi2Jpsi0", "Psi2Psi0", "Psi2Upsi0",
514  "X3872Jpsi0", "X3872Psi0", "X3872Upsi0"]
515  list2_2trk0trk_psi1Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_Psi4Body", "BPHY23Revtx_Psi4Body",
516  "BPHY23Revtx_X3872", "BPHY23Revtx_X3872", "BPHY23Revtx_X3872"]
517  list2_2trk0trk_psi2Input = ["BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi",
518  "BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi"]
519  list2_2trk0trk_jpsi2lo = [Jpsi_lo, Psi_lo, Upsi_lo, Jpsi_lo, Psi_lo, Upsi_lo]
520  list2_2trk0trk_jpsi2hi = [Jpsi_hi, Psi_hi, Upsi_hi, Jpsi_hi, Psi_hi, Upsi_hi]
521  list2_2trk0trk_jpsi1mass = [Jpsimass, Jpsimass, Jpsimass, Jpsimass, Jpsimass, Jpsimass]
522  list2_2trk0trk_psi1mass = [Psi2Smass, Psi2Smass, Psi2Smass, X3872mass, X3872mass, X3872mass]
523  list2_2trk0trk_jpsi2mass = [Jpsimass, Psi2Smass, Upsimass, Jpsimass, Psi2Smass, Upsimass]
524 
525  list2_2trk0trk_obj = []
526  for hypo in list2_2trk0trk_hypo:
527  list2_2trk0trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY23_"+hypo) )
528 
529  for i in range(len(list2_2trk0trk_obj)):
530  list2_2trk0trk_obj[i].HypothesisName = list2_2trk0trk_hypo[i]
531  list2_2trk0trk_obj[i].Psi1Vertices = list2_2trk0trk_psi1Input[i]
532  list2_2trk0trk_obj[i].Psi2Vertices = list2_2trk0trk_psi2Input[i]
533  list2_2trk0trk_obj[i].MaxCandidates = 15
534  list2_2trk0trk_obj[i].NumberOfPsi1Daughters = 4
535  list2_2trk0trk_obj[i].NumberOfPsi2Daughters = 2
536  list2_2trk0trk_obj[i].Jpsi1MassLowerCut = Jpsi_lo
537  list2_2trk0trk_obj[i].Jpsi1MassUpperCut = Jpsi_hi
538  list2_2trk0trk_obj[i].Psi1MassLowerCut = Psi_lo
539  list2_2trk0trk_obj[i].Psi1MassUpperCut = Psi_hi
540  list2_2trk0trk_obj[i].Jpsi2MassLowerCut = list2_2trk0trk_jpsi2lo[i]
541  list2_2trk0trk_obj[i].Jpsi2MassUpperCut = list2_2trk0trk_jpsi2hi[i]
542  list2_2trk0trk_obj[i].MassLowerCut = 0.
543  list2_2trk0trk_obj[i].MassUpperCut = X_hi
544  list2_2trk0trk_obj[i].Jpsi1Mass = list2_2trk0trk_jpsi1mass[i]
545  list2_2trk0trk_obj[i].Psi1Mass = list2_2trk0trk_psi1mass[i]
546  list2_2trk0trk_obj[i].Jpsi2Mass = list2_2trk0trk_jpsi2mass[i]
547  list2_2trk0trk_obj[i].ApplyJpsi1MassConstraint = True
548  list2_2trk0trk_obj[i].ApplyPsi1MassConstraint = True
549  list2_2trk0trk_obj[i].ApplyJpsi2MassConstraint = True
550  list2_2trk0trk_obj[i].Chi2Cut = 30.
551  list2_2trk0trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
552  list2_2trk0trk_obj[i].TrkVertexFitterTool = vkalvrt
553  list2_2trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
554  list2_2trk0trk_obj[i].OutputVertexCollections = ["BPHY23_"+list2_2trk0trk_hypo[i]+"_SubVtx1","BPHY23_"+list2_2trk0trk_hypo[i]+"_SubVtx2","BPHY23_"+list2_2trk0trk_hypo[i]+"_MainVtx"]
555  list2_2trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
556  list2_2trk0trk_obj[i].RefPVContainerName = "BPHY23_"+list2_2trk0trk_hypo[i]+"_RefPrimaryVertices"
557  list2_2trk0trk_obj[i].RefitPV = True
558  list2_2trk0trk_obj[i].MaxnPV = 100
559 
560 
563 
564  list_1trk0trk_hypo = ["BpmJpsi0", "BpmPsi0", "BpmUpsi0"]
565  list_1trk0trk_psiInput = ["BPHY23Revtx_Bpm", "BPHY23Revtx_Bpm", "BPHY23Revtx_Bpm"]
566  list_1trk0trk_jpsiInput = ["BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi"]
567  list_1trk0trk_jpsiMass = [Jpsimass, Jpsimass, Jpsimass]
568  list_1trk0trk_psiMass = [Bpmmass, Bpmmass, Bpmmass]
569  list_1trk0trk_dau3Mass = [Kmass, Kmass, Kmass]
570  list_1trk0trk_jpsi2Mass = [Jpsimass, Psi2Smass, Upsimass]
571 
572  list_1trk0trk_obj = []
573  for hypo in list_1trk0trk_hypo:
574  list_1trk0trk_obj.append( CompFactory.DerivationFramework.JpsiPlusPsiCascade("BPHY23_"+hypo) )
575 
576  for i in range(len(list_1trk0trk_obj)):
577  list_1trk0trk_obj[i].HypothesisName = list_1trk0trk_hypo[i]
578  list_1trk0trk_obj[i].JpsiVertices = list_1trk0trk_jpsiInput[i]
579  list_1trk0trk_obj[i].PsiVertices = list_1trk0trk_psiInput[i]
580  list_1trk0trk_obj[i].NumberOfPsiDaughters = 3
581  list_1trk0trk_obj[i].MassLowerCut = 0.
582  list_1trk0trk_obj[i].MassUpperCut = X_hi
583  list_1trk0trk_obj[i].Chi2Cut = 30.
584  list_1trk0trk_obj[i].MaxCandidates = 15
585  list_1trk0trk_obj[i].MaxnPV = 100
586  list_1trk0trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
587  list_1trk0trk_obj[i].TrkVertexFitterTool = vkalvrt
588  list_1trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
589  list_1trk0trk_obj[i].RefPVContainerName = "BPHY23_"+list_1trk0trk_hypo[i]+"_RefPrimaryVertices"
590  list_1trk0trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_1trk0trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_1trk0trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_1trk0trk_hypo[i]+"_CascadeVtx3"]
591  list_1trk0trk_obj[i].RefitPV = True
592  list_1trk0trk_obj[i].Vtx1Daug3MassHypo = list_1trk0trk_dau3Mass[i]
593  list_1trk0trk_obj[i].ApplyJpsiMassConstraint = True
594  list_1trk0trk_obj[i].JpsiMass = list_1trk0trk_jpsiMass[i]
595  list_1trk0trk_obj[i].ApplyPsiMassConstraint = True
596  list_1trk0trk_obj[i].PsiMass = list_1trk0trk_psiMass[i]
597  list_1trk0trk_obj[i].ApplyJpsi2MassConstraint = True
598  list_1trk0trk_obj[i].Jpsi2Mass = list_1trk0trk_jpsi2Mass[i]
599 
600  list2_1trk0trk_hypo = ["Zc3900Jpsi0", "Zc3900Psi0", "Zc3900Upsi0"]
601  list2_1trk0trk_psi1Input = ["BPHY23Revtx_Zc3900", "BPHY23Revtx_Zc3900", "BPHY23Revtx_Zc3900"]
602  list2_1trk0trk_psi2Input = ["BPHY23Revtx_Jpsi", "BPHY23Revtx_Psi", "BPHY23Revtx_Upsi"]
603  list2_1trk0trk_jpsi2lo = [Jpsi_lo, Psi_lo, Upsi_lo]
604  list2_1trk0trk_jpsi2hi = [Jpsi_hi, Psi_hi, Upsi_hi]
605  list2_1trk0trk_jpsi1mass = [Jpsimass, Jpsimass, Jpsimass]
606  list2_1trk0trk_psi1mass = [Zcmass, Zcmass, Zcmass]
607  list2_1trk0trk_jpsi2mass = [Jpsimass, Psi2Smass, Upsimass]
608 
609  list2_1trk0trk_obj = []
610  for hypo in list2_1trk0trk_hypo:
611  list2_1trk0trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY23_"+hypo) )
612 
613  for i in range(len(list2_1trk0trk_obj)):
614  list2_1trk0trk_obj[i].HypothesisName = list2_1trk0trk_hypo[i]
615  list2_1trk0trk_obj[i].Psi1Vertices = list2_1trk0trk_psi1Input[i]
616  list2_1trk0trk_obj[i].Psi2Vertices = list2_1trk0trk_psi2Input[i]
617  list2_1trk0trk_obj[i].MaxCandidates = 15
618  list2_1trk0trk_obj[i].NumberOfPsi1Daughters = 3
619  list2_1trk0trk_obj[i].NumberOfPsi2Daughters = 2
620  list2_1trk0trk_obj[i].Jpsi1MassLowerCut = Jpsi_lo
621  list2_1trk0trk_obj[i].Jpsi1MassUpperCut = Jpsi_hi
622  list2_1trk0trk_obj[i].Psi1MassLowerCut = Zc_lo
623  list2_1trk0trk_obj[i].Psi1MassUpperCut = Zc_hi
624  list2_1trk0trk_obj[i].Jpsi2MassLowerCut = list2_1trk0trk_jpsi2lo[i]
625  list2_1trk0trk_obj[i].Jpsi2MassUpperCut = list2_1trk0trk_jpsi2hi[i]
626  list2_1trk0trk_obj[i].MassLowerCut = 0.
627  list2_1trk0trk_obj[i].MassUpperCut = X_hi
628  list2_1trk0trk_obj[i].Jpsi1Mass = list2_1trk0trk_jpsi1mass[i]
629  list2_1trk0trk_obj[i].Psi1Mass = list2_1trk0trk_psi1mass[i]
630  list2_1trk0trk_obj[i].Jpsi2Mass = list2_1trk0trk_jpsi2mass[i]
631  list2_1trk0trk_obj[i].ApplyJpsi1MassConstraint = True
632  list2_1trk0trk_obj[i].ApplyPsi1MassConstraint = True
633  list2_1trk0trk_obj[i].ApplyJpsi2MassConstraint = True
634  list2_1trk0trk_obj[i].Chi2Cut = 30.
635  list2_1trk0trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
636  list2_1trk0trk_obj[i].TrkVertexFitterTool = vkalvrt
637  list2_1trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
638  list2_1trk0trk_obj[i].OutputVertexCollections = ["BPHY23_"+list2_1trk0trk_hypo[i]+"_SubVtx1","BPHY23_"+list2_1trk0trk_hypo[i]+"_SubVtx2","BPHY23_"+list2_1trk0trk_hypo[i]+"_MainVtx"]
639  list2_1trk0trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
640  list2_1trk0trk_obj[i].RefPVContainerName = "BPHY23_"+list2_1trk0trk_hypo[i]+"_RefPrimaryVertices"
641  list2_1trk0trk_obj[i].RefitPV = True
642  list2_1trk0trk_obj[i].MaxnPV = 100
643 
644 
647 
648  list_1trk1trk_hypo = ["BpmZc3900", "BpmBpm"]
649  list_1trk1trk_psi1Input = ["BPHY23Revtx_Bpm", "BPHY23Revtx_Bpm"]
650  list_1trk1trk_psi2Input = ["BPHY23Revtx_Zc3900", "BPHY23Revtx_Bpm"]
651  list_1trk1trk_jpsi1Mass = [Jpsimass, Jpsimass]
652  list_1trk1trk_psi1Mass = [Bpmmass, Bpmmass]
653  list_1trk1trk_p1dau3Mass = [Kmass, Kmass]
654  list_1trk1trk_jpsi2Mass = [Jpsimass, Jpsimass]
655  list_1trk1trk_psi2Mass = [Zcmass, Bpmmass]
656  list_1trk1trk_p2dau3Mass = [Pimass, Kmass]
657 
658  list_1trk1trk_obj = []
659  for hypo in list_1trk1trk_hypo:
660  list_1trk1trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiCascade("BPHY23_"+hypo) )
661 
662  for i in range(len(list_1trk1trk_obj)):
663  list_1trk1trk_obj[i].HypothesisName = list_1trk1trk_hypo[i]
664  list_1trk1trk_obj[i].Psi1Vertices = list_1trk1trk_psi1Input[i]
665  list_1trk1trk_obj[i].Psi2Vertices = list_1trk1trk_psi2Input[i]
666  list_1trk1trk_obj[i].NumberOfPsi1Daughters = 3
667  list_1trk1trk_obj[i].NumberOfPsi2Daughters = 3
668  list_1trk1trk_obj[i].MassLowerCut = 0.
669  list_1trk1trk_obj[i].MassUpperCut = X_hi
670  list_1trk1trk_obj[i].Chi2CutPsi1 = 5.
671  list_1trk1trk_obj[i].Chi2CutPsi2 = 5.
672  list_1trk1trk_obj[i].Chi2Cut = 30.
673  list_1trk1trk_obj[i].MaxCandidates = 15
674  list_1trk1trk_obj[i].RemoveDuplicatePairs = True
675  list_1trk1trk_obj[i].MaxnPV = 100
676  list_1trk1trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
677  list_1trk1trk_obj[i].TrkVertexFitterTool = vkalvrt
678  list_1trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
679  list_1trk1trk_obj[i].RefPVContainerName = "BPHY23_"+list_1trk1trk_hypo[i]+"_RefPrimaryVertices"
680  list_1trk1trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_1trk1trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_1trk1trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_1trk1trk_hypo[i]+"_CascadeVtx3"]
681  list_1trk1trk_obj[i].RefitPV = True
682  list_1trk1trk_obj[i].Vtx1Daug3MassHypo = list_1trk1trk_p1dau3Mass[i]
683  list_1trk1trk_obj[i].Vtx2Daug3MassHypo = list_1trk1trk_p2dau3Mass[i]
684  list_1trk1trk_obj[i].ApplyJpsi1MassConstraint = True
685  list_1trk1trk_obj[i].Jpsi1Mass = list_1trk1trk_jpsi1Mass[i]
686  list_1trk1trk_obj[i].ApplyPsi1MassConstraint = True
687  list_1trk1trk_obj[i].Psi1Mass = list_1trk1trk_psi1Mass[i]
688  list_1trk1trk_obj[i].ApplyJpsi2MassConstraint = True
689  list_1trk1trk_obj[i].Jpsi2Mass = list_1trk1trk_jpsi2Mass[i]
690  if list_1trk1trk_psi2Mass[i] != Zcmass:
691  list_1trk1trk_obj[i].ApplyPsi2MassConstraint = True
692  list_1trk1trk_obj[i].Psi2Mass = list_1trk1trk_psi2Mass[i]
693 
694  list2_1trk1trk_hypo = ["Zc3900Zc3900"]
695  list2_1trk1trk_psi1Input = ["BPHY23Revtx_Zc3900"]
696  list2_1trk1trk_psi2Input = ["BPHY23Revtx_Zc3900"]
697  list2_1trk1trk_jpsi1mass = [Jpsimass]
698  list2_1trk1trk_psi1mass = [Zcmass]
699  list2_1trk1trk_jpsi2mass = [Jpsimass]
700  list2_1trk1trk_psi2mass = [Zcmass]
701 
702  list2_1trk1trk_obj = []
703  for hypo in list2_1trk1trk_hypo:
704  list2_1trk1trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY23_"+hypo) )
705 
706  for i in range(len(list2_1trk1trk_obj)):
707  list2_1trk1trk_obj[i].HypothesisName = list2_1trk1trk_hypo[i]
708  list2_1trk1trk_obj[i].Psi1Vertices = list2_1trk1trk_psi1Input[i]
709  list2_1trk1trk_obj[i].Psi2Vertices = list2_1trk1trk_psi2Input[i]
710  list2_1trk1trk_obj[i].MaxCandidates = 15
711  list2_1trk1trk_obj[i].NumberOfPsi1Daughters = 3
712  list2_1trk1trk_obj[i].NumberOfPsi2Daughters = 3
713  list2_1trk1trk_obj[i].Jpsi1MassLowerCut = Jpsi_lo
714  list2_1trk1trk_obj[i].Jpsi1MassUpperCut = Jpsi_hi
715  list2_1trk1trk_obj[i].Psi1MassLowerCut = Zc_lo
716  list2_1trk1trk_obj[i].Psi1MassUpperCut = Zc_hi
717  list2_1trk1trk_obj[i].Jpsi2MassLowerCut = Jpsi_lo
718  list2_1trk1trk_obj[i].Jpsi2MassUpperCut = Jpsi_hi
719  list2_1trk1trk_obj[i].Psi2MassLowerCut = Zc_lo
720  list2_1trk1trk_obj[i].Psi2MassUpperCut = Zc_hi
721  list2_1trk1trk_obj[i].MassLowerCut = 0.
722  list2_1trk1trk_obj[i].MassUpperCut = X_hi
723  list2_1trk1trk_obj[i].Jpsi1Mass = list2_1trk1trk_jpsi1mass[i]
724  list2_1trk1trk_obj[i].Psi1Mass = list2_1trk1trk_psi1mass[i]
725  list2_1trk1trk_obj[i].Jpsi2Mass = list2_1trk1trk_jpsi2mass[i]
726  list2_1trk1trk_obj[i].Psi2Mass = list2_1trk1trk_psi2mass[i]
727  list2_1trk1trk_obj[i].ApplyJpsi1MassConstraint = True
728  list2_1trk1trk_obj[i].ApplyPsi1MassConstraint = True
729  list2_1trk1trk_obj[i].ApplyJpsi2MassConstraint = True
730  list2_1trk1trk_obj[i].ApplyPsi2MassConstraint = True
731  list2_1trk1trk_obj[i].Chi2Cut = 30.
732  list2_1trk1trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
733  list2_1trk1trk_obj[i].TrkVertexFitterTool = vkalvrt
734  list2_1trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
735  list2_1trk1trk_obj[i].OutputVertexCollections = ["BPHY23_"+list2_1trk1trk_hypo[i]+"_SubVtx1","BPHY23_"+list2_1trk1trk_hypo[i]+"_SubVtx2","BPHY23_"+list2_1trk1trk_hypo[i]+"_MainVtx"]
736  list2_1trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
737  list2_1trk1trk_obj[i].RefPVContainerName = "BPHY23_"+list2_1trk1trk_hypo[i]+"_RefPrimaryVertices"
738  list2_1trk1trk_obj[i].RefitPV = True
739  list2_1trk1trk_obj[i].MaxnPV = 100
740 
741 
744 
745  list_2trk1trk_hypo = ["Bs2KZc3900", "Bs2KBpm",
746  "B0KpiZc3900", "B0KpiBpm",
747  "B0piKZc3900", "B0piKBpm"]
748  list_2trk1trk_psi1Input = ["BPHY23Revtx_Bs0", "BPHY23Revtx_Bs0",
749  "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0Kpi",
750  "BPHY23Revtx_B0piK", "BPHY23Revtx_B0piK"]
751  list_2trk1trk_psi2Input = ["BPHY23Revtx_Zc3900", "BPHY23Revtx_Bpm",
752  "BPHY23Revtx_Zc3900", "BPHY23Revtx_Bpm",
753  "BPHY23Revtx_Zc3900", "BPHY23Revtx_Bpm"]
754  list_2trk1trk_jpsi1Mass = [Jpsimass, Jpsimass,
755  Jpsimass, Jpsimass,
756  Jpsimass, Jpsimass]
757  list_2trk1trk_psi1Mass = [Bs0mass, Bs0mass,
758  B0mass, B0mass,
759  B0mass, B0mass]
760  list_2trk1trk_p1dau3Mass = [Kmass, Kmass,
761  Kmass, Kmass,
762  Pimass, Pimass]
763  list_2trk1trk_p1dau4Mass = [Kmass, Kmass,
764  Pimass, Pimass,
765  Kmass, Kmass]
766  list_2trk1trk_jpsi2Mass = [Jpsimass, Jpsimass,
767  Jpsimass, Jpsimass,
768  Jpsimass, Jpsimass]
769  list_2trk1trk_psi2Mass = [Zcmass, Bpmmass,
770  Zcmass, Bpmmass,
771  Zcmass, Bpmmass]
772  list_2trk1trk_p2dau3Mass = [Pimass, Kmass,
773  Pimass, Kmass,
774  Pimass, Kmass]
775 
776  list_2trk1trk_obj = []
777  for hypo in list_2trk1trk_hypo:
778  list_2trk1trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiCascade("BPHY23_"+hypo) )
779 
780  for i in range(len(list_2trk1trk_obj)):
781  list_2trk1trk_obj[i].HypothesisName = list_2trk1trk_hypo[i]
782  list_2trk1trk_obj[i].Psi1Vertices = list_2trk1trk_psi1Input[i]
783  list_2trk1trk_obj[i].Psi2Vertices = list_2trk1trk_psi2Input[i]
784  list_2trk1trk_obj[i].NumberOfPsi1Daughters = 4
785  list_2trk1trk_obj[i].NumberOfPsi2Daughters = 3
786  list_2trk1trk_obj[i].MassLowerCut = 0.
787  list_2trk1trk_obj[i].MassUpperCut = X_hi
788  list_2trk1trk_obj[i].Chi2CutPsi1 = 5.
789  list_2trk1trk_obj[i].Chi2CutPsi2 = 5.
790  list_2trk1trk_obj[i].Chi2Cut = 30.
791  list_2trk1trk_obj[i].MaxCandidates = 15
792  list_2trk1trk_obj[i].MaxnPV = 100
793  list_2trk1trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
794  list_2trk1trk_obj[i].TrkVertexFitterTool = vkalvrt
795  list_2trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
796  list_2trk1trk_obj[i].RefPVContainerName = "BPHY23_"+list_2trk1trk_hypo[i]+"_RefPrimaryVertices"
797  list_2trk1trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_2trk1trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_2trk1trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_2trk1trk_hypo[i]+"_CascadeVtx3"]
798  list_2trk1trk_obj[i].RefitPV = True
799  list_2trk1trk_obj[i].Vtx1Daug3MassHypo = list_2trk1trk_p1dau3Mass[i]
800  list_2trk1trk_obj[i].Vtx1Daug4MassHypo = list_2trk1trk_p1dau4Mass[i]
801  list_2trk1trk_obj[i].Vtx2Daug3MassHypo = list_2trk1trk_p2dau3Mass[i]
802  list_2trk1trk_obj[i].ApplyJpsi1MassConstraint = True
803  list_2trk1trk_obj[i].Jpsi1Mass = list_2trk1trk_jpsi1Mass[i]
804  list_2trk1trk_obj[i].ApplyPsi1MassConstraint = True
805  list_2trk1trk_obj[i].Psi1Mass = list_2trk1trk_psi1Mass[i]
806  list_2trk1trk_obj[i].ApplyJpsi2MassConstraint = True
807  list_2trk1trk_obj[i].Jpsi2Mass = list_2trk1trk_jpsi2Mass[i]
808  if list_2trk1trk_psi2Mass[i] != Zcmass:
809  list_2trk1trk_obj[i].ApplyPsi2MassConstraint = True
810  list_2trk1trk_obj[i].Psi2Mass = list_2trk1trk_psi2Mass[i]
811 
812  list2_2trk1trk_hypo = ["Psi2Zc3900", "X3872Zc3900"]
813  list2_2trk1trk_psi1Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_X3872"]
814  list2_2trk1trk_psi2Input = ["BPHY23Revtx_Zc3900", "BPHY23Revtx_Zc3900"]
815  list2_2trk1trk_jpsi1mass = [Jpsimass, Jpsimass]
816  list2_2trk1trk_psi1mass = [Psi2Smass, X3872mass]
817  list2_2trk1trk_jpsi2mass = [Jpsimass, Jpsimass]
818  list2_2trk1trk_psi2mass = [Zcmass, Zcmass]
819 
820  list2_2trk1trk_obj = []
821  for hypo in list2_2trk1trk_hypo:
822  list2_2trk1trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY23_"+hypo) )
823 
824  for i in range(len(list2_2trk1trk_obj)):
825  list2_2trk1trk_obj[i].HypothesisName = list2_2trk1trk_hypo[i]
826  list2_2trk1trk_obj[i].Psi1Vertices = list2_2trk1trk_psi1Input[i]
827  list2_2trk1trk_obj[i].Psi2Vertices = list2_2trk1trk_psi2Input[i]
828  list2_2trk1trk_obj[i].MaxCandidates = 15
829  list2_2trk1trk_obj[i].NumberOfPsi1Daughters = 4
830  list2_2trk1trk_obj[i].NumberOfPsi2Daughters = 3
831  list2_2trk1trk_obj[i].Jpsi1MassLowerCut = Jpsi_lo
832  list2_2trk1trk_obj[i].Jpsi1MassUpperCut = Jpsi_hi
833  list2_2trk1trk_obj[i].Psi1MassLowerCut = Psi_lo
834  list2_2trk1trk_obj[i].Psi1MassUpperCut = Psi_hi
835  list2_2trk1trk_obj[i].Jpsi2MassLowerCut = Jpsi_lo
836  list2_2trk1trk_obj[i].Jpsi2MassUpperCut = Jpsi_hi
837  list2_2trk1trk_obj[i].Psi2MassLowerCut = Zc_lo
838  list2_2trk1trk_obj[i].Psi2MassUpperCut = Zc_hi
839  list2_2trk1trk_obj[i].MassLowerCut = 0.
840  list2_2trk1trk_obj[i].MassUpperCut = X_hi
841  list2_2trk1trk_obj[i].Jpsi1Mass = list2_2trk1trk_jpsi1mass[i]
842  list2_2trk1trk_obj[i].Psi1Mass = list2_2trk1trk_psi1mass[i]
843  list2_2trk1trk_obj[i].Jpsi2Mass = list2_2trk1trk_jpsi2mass[i]
844  list2_2trk1trk_obj[i].Psi2Mass = list2_2trk1trk_psi2mass[i]
845  list2_2trk1trk_obj[i].ApplyJpsi1MassConstraint = True
846  list2_2trk1trk_obj[i].ApplyPsi1MassConstraint = True
847  list2_2trk1trk_obj[i].ApplyJpsi2MassConstraint = True
848  list2_2trk1trk_obj[i].ApplyPsi2MassConstraint = True
849  list2_2trk1trk_obj[i].Chi2Cut = 30.
850  list2_2trk1trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
851  list2_2trk1trk_obj[i].TrkVertexFitterTool = vkalvrt
852  list2_2trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
853  list2_2trk1trk_obj[i].OutputVertexCollections = ["BPHY23_"+list2_2trk1trk_hypo[i]+"_SubVtx1","BPHY23_"+list2_2trk1trk_hypo[i]+"_SubVtx2","BPHY23_"+list2_2trk1trk_hypo[i]+"_MainVtx"]
854  list2_2trk1trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
855  list2_2trk1trk_obj[i].RefPVContainerName = "BPHY23_"+list2_2trk1trk_hypo[i]+"_RefPrimaryVertices"
856  list2_2trk1trk_obj[i].RefitPV = True
857  list2_2trk1trk_obj[i].MaxnPV = 100
858 
859 
862 
863  list_1trk2trk_hypo = ["BpmPsi2", "BpmX3872"]
864  list_1trk2trk_psi1Input = ["BPHY23Revtx_Bpm", "BPHY23Revtx_Bpm"]
865  list_1trk2trk_psi2Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_X3872"]
866  list_1trk2trk_jpsi1Mass = [Jpsimass, Jpsimass]
867  list_1trk2trk_psi1Mass = [Bpmmass, Bpmmass]
868  list_1trk2trk_p1dau3Mass = [Kmass, Kmass]
869  list_1trk2trk_jpsi2Mass = [Jpsimass, Jpsimass]
870  list_1trk2trk_psi2Mass = [Psi2Smass, X3872mass]
871  list_1trk2trk_p2dau3Mass = [Pimass, Pimass]
872  list_1trk2trk_p2dau4Mass = [Pimass, Pimass]
873 
874  list_1trk2trk_obj = []
875  for hypo in list_1trk2trk_hypo:
876  list_1trk2trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiCascade("BPHY23_"+hypo) )
877 
878  for i in range(len(list_1trk2trk_obj)):
879  list_1trk2trk_obj[i].HypothesisName = list_1trk2trk_hypo[i]
880  list_1trk2trk_obj[i].Psi1Vertices = list_1trk2trk_psi1Input[i]
881  list_1trk2trk_obj[i].Psi2Vertices = list_1trk2trk_psi2Input[i]
882  list_1trk2trk_obj[i].NumberOfPsi1Daughters = 3
883  list_1trk2trk_obj[i].NumberOfPsi2Daughters = 4
884  list_1trk2trk_obj[i].MassLowerCut = 0.
885  list_1trk2trk_obj[i].MassUpperCut = X_hi
886  list_1trk2trk_obj[i].Chi2CutPsi1 = 5.
887  list_1trk2trk_obj[i].Chi2CutPsi2 = 5.
888  list_1trk2trk_obj[i].Chi2Cut = 30.
889  list_1trk2trk_obj[i].MaxCandidates = 15
890  list_1trk2trk_obj[i].MaxnPV = 100
891  list_1trk2trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
892  list_1trk2trk_obj[i].TrkVertexFitterTool = vkalvrt
893  list_1trk2trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
894  list_1trk2trk_obj[i].RefPVContainerName = "BPHY23_"+list_1trk2trk_hypo[i]+"_RefPrimaryVertices"
895  list_1trk2trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_1trk2trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_1trk2trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_1trk2trk_hypo[i]+"_CascadeVtx3"]
896  list_1trk2trk_obj[i].RefitPV = True
897  list_1trk2trk_obj[i].Vtx1Daug3MassHypo = list_1trk2trk_p1dau3Mass[i]
898  list_1trk2trk_obj[i].Vtx2Daug3MassHypo = list_1trk2trk_p2dau3Mass[i]
899  list_1trk2trk_obj[i].Vtx2Daug4MassHypo = list_1trk2trk_p2dau4Mass[i]
900  list_1trk2trk_obj[i].ApplyJpsi1MassConstraint = True
901  list_1trk2trk_obj[i].Jpsi1Mass = list_1trk2trk_jpsi1Mass[i]
902  list_1trk2trk_obj[i].ApplyPsi1MassConstraint = True
903  list_1trk2trk_obj[i].Psi1Mass = list_1trk2trk_psi1Mass[i]
904  list_1trk2trk_obj[i].ApplyJpsi2MassConstraint = True
905  list_1trk2trk_obj[i].Jpsi2Mass = list_1trk2trk_jpsi2Mass[i]
906  list_1trk2trk_obj[i].ApplyPsi2MassConstraint = True
907  list_1trk2trk_obj[i].Psi2Mass = list_1trk2trk_psi2Mass[i]
908 
909 
912 
913  list_2trk2trk_hypo = ["Bs2KPsi2", "B0KpiPsi2", "B0piKPsi2",
914  "Bs2KX3872", "B0KpiX3872", "B0piKX3872",
915  "Bs2KBs2K", "Bs2KB0Kpi", "Bs2KB0piK",
916  "B0KpiB0Kpi", "B0KpiB0piK", "B0piKB0piK"]
917  list_2trk2trk_psi1Input = ["BPHY23Revtx_Bs0", "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0piK",
918  "BPHY23Revtx_Bs0", "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0piK",
919  "BPHY23Revtx_Bs0", "BPHY23Revtx_Bs0", "BPHY23Revtx_Bs0",
920  "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0piK"]
921  list_2trk2trk_psi2Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_Psi4Body", "BPHY23Revtx_Psi4Body",
922  "BPHY23Revtx_X3872", "BPHY23Revtx_X3872", "BPHY23Revtx_X3872",
923  "BPHY23Revtx_Bs0", "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0piK",
924  "BPHY23Revtx_B0Kpi", "BPHY23Revtx_B0piK", "BPHY23Revtx_B0piK"]
925  list_2trk2trk_jpsi1Mass = [Jpsimass, Jpsimass, Jpsimass,
926  Jpsimass, Jpsimass, Jpsimass,
927  Jpsimass, Jpsimass, Jpsimass,
928  Jpsimass, Jpsimass, Jpsimass]
929  list_2trk2trk_psi1Mass = [Bs0mass, B0mass, B0mass,
930  Bs0mass, B0mass, B0mass,
931  Bs0mass, Bs0mass, Bs0mass,
932  B0mass, B0mass, B0mass]
933  list_2trk2trk_p1dau3Mass = [Kmass, Kmass, Pimass,
934  Kmass, Kmass, Pimass,
935  Kmass, Kmass, Kmass,
936  Kmass, Kmass, Pimass]
937  list_2trk2trk_p1dau4Mass = [Kmass, Pimass, Kmass,
938  Kmass, Pimass, Kmass,
939  Kmass, Kmass, Kmass,
940  Pimass, Pimass, Kmass]
941  list_2trk2trk_jpsi2Mass = [Jpsimass, Jpsimass, Jpsimass,
942  Jpsimass, Jpsimass, Jpsimass,
943  Jpsimass, Jpsimass, Jpsimass,
944  Jpsimass, Jpsimass, Jpsimass]
945  list_2trk2trk_psi2Mass = [Psi2Smass, Psi2Smass, Psi2Smass,
946  X3872mass, X3872mass, X3872mass,
947  Bs0mass, B0mass, B0mass,
948  B0mass, B0mass, B0mass]
949  list_2trk2trk_p2dau3Mass = [Pimass, Pimass, Pimass,
950  Pimass, Pimass, Pimass,
951  Kmass, Kmass, Pimass,
952  Kmass, Pimass, Pimass]
953  list_2trk2trk_p2dau4Mass = [Pimass, Pimass, Pimass,
954  Pimass, Pimass, Pimass,
955  Kmass, Pimass, Kmass,
956  Pimass, Kmass, Kmass]
957 
958  list_2trk2trk_obj = []
959  for hypo in list_2trk2trk_hypo:
960  list_2trk2trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiCascade("BPHY23_"+hypo) )
961 
962  for i in range(len(list_2trk2trk_obj)):
963  list_2trk2trk_obj[i].HypothesisName = list_2trk2trk_hypo[i]
964  list_2trk2trk_obj[i].Psi1Vertices = list_2trk2trk_psi1Input[i]
965  list_2trk2trk_obj[i].Psi2Vertices = list_2trk2trk_psi2Input[i]
966  list_2trk2trk_obj[i].NumberOfPsi1Daughters = 4
967  list_2trk2trk_obj[i].NumberOfPsi2Daughters = 4
968  list_2trk2trk_obj[i].MassLowerCut = 0.
969  list_2trk2trk_obj[i].MassUpperCut = X_hi
970  list_2trk2trk_obj[i].Chi2CutPsi1 = 4.
971  list_2trk2trk_obj[i].Chi2CutPsi2 = 4.
972  list_2trk2trk_obj[i].Chi2Cut = 30.
973  list_2trk2trk_obj[i].MaxCandidates = 15
974  list_2trk2trk_obj[i].RemoveDuplicatePairs = True
975  list_2trk2trk_obj[i].MaxnPV = 100
976  list_2trk2trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
977  list_2trk2trk_obj[i].TrkVertexFitterTool = vkalvrt
978  list_2trk2trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
979  list_2trk2trk_obj[i].RefPVContainerName = "BPHY23_"+list_2trk2trk_hypo[i]+"_RefPrimaryVertices"
980  list_2trk2trk_obj[i].CascadeVertexCollections = ["BPHY23_"+list_2trk2trk_hypo[i]+"_CascadeVtx1","BPHY23_"+list_2trk2trk_hypo[i]+"_CascadeVtx2","BPHY23_"+list_2trk2trk_hypo[i]+"_CascadeVtx3"]
981  list_2trk2trk_obj[i].RefitPV = True
982  list_2trk2trk_obj[i].Vtx1Daug3MassHypo = list_2trk2trk_p1dau3Mass[i]
983  list_2trk2trk_obj[i].Vtx1Daug4MassHypo = list_2trk2trk_p1dau4Mass[i]
984  list_2trk2trk_obj[i].Vtx2Daug3MassHypo = list_2trk2trk_p2dau3Mass[i]
985  list_2trk2trk_obj[i].Vtx2Daug4MassHypo = list_2trk2trk_p2dau4Mass[i]
986  list_2trk2trk_obj[i].ApplyJpsi1MassConstraint = True
987  list_2trk2trk_obj[i].Jpsi1Mass = list_2trk2trk_jpsi1Mass[i]
988  list_2trk2trk_obj[i].ApplyPsi1MassConstraint = True
989  list_2trk2trk_obj[i].Psi1Mass = list_2trk2trk_psi1Mass[i]
990  list_2trk2trk_obj[i].ApplyJpsi2MassConstraint = True
991  list_2trk2trk_obj[i].Jpsi2Mass = list_2trk2trk_jpsi2Mass[i]
992  list_2trk2trk_obj[i].ApplyPsi2MassConstraint = True
993  list_2trk2trk_obj[i].Psi2Mass = list_2trk2trk_psi2Mass[i]
994 
995  list2_2trk2trk_hypo = ["Psi2Psi2", "Psi2X3872", "X3872X3872"]
996  list2_2trk2trk_psi1Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_Psi4Body", "BPHY23Revtx_X3872"]
997  list2_2trk2trk_psi2Input = ["BPHY23Revtx_Psi4Body", "BPHY23Revtx_X3872", "BPHY23Revtx_X3872"]
998  list2_2trk2trk_jpsi1mass = [Jpsimass, Jpsimass, Jpsimass]
999  list2_2trk2trk_psi1mass = [Psi2Smass, Psi2Smass, X3872mass]
1000  list2_2trk2trk_jpsi2mass = [Jpsimass, Jpsimass, Jpsimass]
1001  list2_2trk2trk_psi2mass = [Psi2Smass, X3872mass, X3872mass]
1002 
1003  list2_2trk2trk_obj = []
1004  for hypo in list2_2trk2trk_hypo:
1005  list2_2trk2trk_obj.append( CompFactory.DerivationFramework.PsiPlusPsiSingleVertex("BPHY23_"+hypo) )
1006 
1007  for i in range(len(list2_2trk2trk_obj)):
1008  list2_2trk2trk_obj[i].HypothesisName = list2_2trk2trk_hypo[i]
1009  list2_2trk2trk_obj[i].Psi1Vertices = list2_2trk2trk_psi1Input[i]
1010  list2_2trk2trk_obj[i].Psi2Vertices = list2_2trk2trk_psi2Input[i]
1011  list2_2trk2trk_obj[i].MaxCandidates = 15
1012  list2_2trk2trk_obj[i].NumberOfPsi1Daughters = 4
1013  list2_2trk2trk_obj[i].NumberOfPsi2Daughters = 4
1014  list2_2trk2trk_obj[i].Jpsi1MassLowerCut = Jpsi_lo
1015  list2_2trk2trk_obj[i].Jpsi1MassUpperCut = Jpsi_hi
1016  list2_2trk2trk_obj[i].Psi1MassLowerCut = Psi_lo
1017  list2_2trk2trk_obj[i].Psi1MassUpperCut = Psi_hi
1018  list2_2trk2trk_obj[i].Jpsi2MassLowerCut = Jpsi_lo
1019  list2_2trk2trk_obj[i].Jpsi2MassUpperCut = Jpsi_hi
1020  list2_2trk2trk_obj[i].Psi2MassLowerCut = Psi_lo
1021  list2_2trk2trk_obj[i].Psi2MassUpperCut = Psi_hi
1022  list2_2trk2trk_obj[i].MassLowerCut = 0.
1023  list2_2trk2trk_obj[i].MassUpperCut = X_hi
1024  list2_2trk2trk_obj[i].Jpsi1Mass = list2_2trk2trk_jpsi1mass[i]
1025  list2_2trk2trk_obj[i].Psi1Mass = list2_2trk2trk_psi1mass[i]
1026  list2_2trk2trk_obj[i].Jpsi2Mass = list2_2trk2trk_jpsi2mass[i]
1027  list2_2trk2trk_obj[i].Psi2Mass = list2_2trk2trk_psi2mass[i]
1028  list2_2trk2trk_obj[i].ApplyJpsi1MassConstraint = True
1029  list2_2trk2trk_obj[i].ApplyPsi1MassConstraint = True
1030  list2_2trk2trk_obj[i].ApplyJpsi2MassConstraint = True
1031  list2_2trk2trk_obj[i].ApplyPsi2MassConstraint = True
1032  list2_2trk2trk_obj[i].Chi2Cut = 30.
1033  list2_2trk2trk_obj[i].PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
1034  list2_2trk2trk_obj[i].TrkVertexFitterTool = vkalvrt
1035  list2_2trk2trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
1036  list2_2trk2trk_obj[i].OutputVertexCollections = ["BPHY23_"+list2_2trk2trk_hypo[i]+"_SubVtx1","BPHY23_"+list2_2trk2trk_hypo[i]+"_SubVtx2","BPHY23_"+list2_2trk2trk_hypo[i]+"_MainVtx"]
1037  list2_2trk2trk_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
1038  list2_2trk2trk_obj[i].RefPVContainerName = "BPHY23_"+list2_2trk2trk_hypo[i]+"_RefPrimaryVertices"
1039  list2_2trk2trk_obj[i].RefitPV = True
1040  list2_2trk2trk_obj[i].MaxnPV = 100
1041 
1042 
1043  list_all_obj = list_2trk0trk_obj + list_1trk0trk_obj + list_1trk1trk_obj + list_2trk1trk_obj + list_1trk2trk_obj + list_2trk2trk_obj
1044  list2_all_obj = list2_2trk0trk_obj + list2_1trk0trk_obj + list2_1trk1trk_obj + list2_2trk1trk_obj + list2_2trk2trk_obj
1045 
1046  OutputCollections = []
1047  RefPVContainers = []
1048  RefPVAuxContainers = []
1049  passedCandidates = []
1050 
1051  for obj in list_all_obj:
1052  OutputCollections += obj.CascadeVertexCollections
1053  RefPVContainers += ["xAOD::VertexContainer#BPHY23_" + obj.HypothesisName + "_RefPrimaryVertices"]
1054  RefPVAuxContainers += ["xAOD::VertexAuxContainer#BPHY23_" + obj.HypothesisName + "_RefPrimaryVerticesAux."]
1055  passedCandidates += ["BPHY23_" + obj.HypothesisName + "_CascadeVtx3"]
1056 
1057  for obj in list2_all_obj:
1058  OutputCollections += obj.OutputVertexCollections
1059  RefPVContainers += ["xAOD::VertexContainer#BPHY23_" + obj.HypothesisName + "_RefPrimaryVertices"]
1060  RefPVAuxContainers += ["xAOD::VertexAuxContainer#BPHY23_" + obj.HypothesisName + "_RefPrimaryVerticesAux."]
1061  passedCandidates += ["BPHY23_" + obj.HypothesisName + "_MainVtx"]
1062 
1063  BPHY23_SelectEvent = CompFactory.DerivationFramework.AnyVertexSkimmingTool(name = "BPHY23_SelectEvent", VertexContainerNames = passedCandidates)
1064  acc.addPublicTool(BPHY23_SelectEvent)
1065 
1066  augmentation_tools = [BPHY23_Reco_mumu, BPHY23FourTrackReco_PsiX3872, BPHY23FourTrackReco_Bs0, BPHY23FourTrackReco_B0, BPHY23ThreeTrackReco_Zc3900, BPHY23ThreeTrackReco_Bpm, BPHY23Rev_Psi4Body, BPHY23Rev_X3872, BPHY23Rev_Bs0, BPHY23Rev_B0Kpi, BPHY23Rev_B0piK, BPHY23Rev_Zc3900, BPHY23Rev_Bpm, BPHY23Select_Jpsi, BPHY23Select_Psi, BPHY23Select_Upsi, BPHY23Rev_Jpsi, BPHY23Rev_Psi, BPHY23Rev_Upsi] + list_all_obj + list2_all_obj
1067  for t in augmentation_tools : acc.addPublicTool(t)
1068 
1069  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
1070  "BPHY23Kernel",
1071  AugmentationTools = augmentation_tools,
1072  SkimmingTools = [BPHY23_SelectEvent]
1073  ))
1074 
1075  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
1076  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
1077  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
1078  BPHY23SlimmingHelper = SlimmingHelper("BPHY23SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
1079  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import getDefaultAllVariables
1080  BPHY23_AllVariables = getDefaultAllVariables()
1081  BPHY23_StaticContent = []
1082 
1083  # Needed for trigger objects
1084  BPHY23SlimmingHelper.IncludeMuonTriggerContent = True
1085  BPHY23SlimmingHelper.IncludeBPhysTriggerContent = True
1086 
1087 
1088  BPHY23_AllVariables += ["PrimaryVertices"]
1089  BPHY23_StaticContent += RefPVContainers
1090  BPHY23_StaticContent += RefPVAuxContainers
1091 
1092 
1093  BPHY23_AllVariables += ["InDetTrackParticles"]
1094 
1095 
1098  BPHY23_AllVariables += ["CombinedMuonTrackParticles", "ExtrapolatedMuonTrackParticles"]
1099 
1100 
1101  BPHY23_AllVariables += ["Muons", "MuonSegments"]
1102 
1103 
1104  for output in OutputCollections:
1105  BPHY23_StaticContent += ["xAOD::VertexContainer#%s" % output]
1106  BPHY23_StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % output]
1107 
1108  # Truth information for MC only
1109  if isSimulation:
1110  BPHY23_AllVariables += ["TruthEvents","TruthParticles","TruthVertices","MuonTruthParticles"]
1111 
1112  BPHY23SlimmingHelper.SmartCollections = ["Muons", "PrimaryVertices", "InDetTrackParticles"]
1113  BPHY23SlimmingHelper.AllVariables = BPHY23_AllVariables
1114  BPHY23SlimmingHelper.StaticContent = BPHY23_StaticContent
1115 
1116  BPHY23ItemList = BPHY23SlimmingHelper.GetItemList()
1117  acc.merge(OutputStreamCfg(flags, "DAOD_BPHY23", ItemList=BPHY23ItemList, AcceptAlgs=["BPHY23Kernel"]))
1118  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_BPHY23", AcceptAlgs=["BPHY23Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
1119  acc.printConfig(withDetails=True, summariseProps=True, onlyComponents = [], printDefaults=True, printComponentsOnly=False)
1120  return acc
python.HIGG1D1CustomVertexConfig.PrimaryVertexRefittingToolCfg
def PrimaryVertexRefittingToolCfg(flags, **kwargs)
Definition: HIGG1D1CustomVertexConfig.py:7
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
commonBPHYMethodsCfg.BPHY_TrkVKalVrtFitterCfg
def BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName, **kwargs)
Definition: commonBPHYMethodsCfg.py:6
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
commonBPHYMethodsCfg.BPHY_V0ToolCfg
def BPHY_V0ToolCfg(flags, BPHYDerivationName)
Definition: commonBPHYMethodsCfg.py:11
python.InDetConversionFinderToolsConfig.BPHY_VertexPointEstimatorCfg
def BPHY_VertexPointEstimatorCfg(flags, name="BPHY_VertexPointEstimator", **kwargs)
Definition: InDetConversionFinderToolsConfig.py:69
commonBPHYMethodsCfg.getDefaultAllVariables
def getDefaultAllVariables()
Definition: commonBPHYMethodsCfg.py:32
BPHY23.BPHY23Cfg
def BPHY23Cfg(flags)
Definition: BPHY23.py:16
python.InDetTrackSelectorToolConfig.BPHY_InDetDetailedTrackSelectorToolCfg
def BPHY_InDetDetailedTrackSelectorToolCfg(flags, name='BPHY_InDetDetailedTrackSelectorTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:215
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1