ATLAS Offline Software
Functions | Variables
BPHY25 Namespace Reference

Functions

def BPHY25Cfg (flags)
 

Variables

string BPHYDerivationName = "BPHY25"
 
string streamName = "StreamDAOD_BPHY25"
 

Function Documentation

◆ BPHY25Cfg()

def BPHY25.BPHY25Cfg (   flags)

Definition at line 14 of file BPHY25.py.

14 def BPHY25Cfg(flags):
15  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
16  from JpsiUpsilonTools.JpsiUpsilonToolsConfig import PrimaryVertexRefittingToolCfg
17  acc = ComponentAccumulator()
18  isSimulation = flags.Input.isMC
19 
20  doLRT = True
21  # Adds primary vertex counts and track counts to EventInfo before they are thinned
22  BPHY25_AugOriginalCounts = CompFactory.DerivationFramework.AugOriginalCounts(
23  name = "BPHY25_AugOriginalCounts",
24  VertexContainer = "PrimaryVertices",
25  TrackContainer = "InDetTrackParticles",
26  TrackLRTContainer = "InDetLargeD0TrackParticles" if doLRT else "" )
27  acc.addPublicTool(BPHY25_AugOriginalCounts)
28 
29  mainIDInput = "InDetWithLRTTrackParticles" if doLRT else "InDetTrackParticles"
30  if doLRT:
31  from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
32  acc.merge(InDetLRTMergeCfg( flags,
33  OutputTrackParticleLocation = mainIDInput ))
34 
35  TrkToRelink = ["InDetTrackParticles", "InDetLargeD0TrackParticles"] if doLRT else ["InDetTrackParticles"]
36 
37  V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
38  vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName)) # VKalVrt vertex fitter
39  acc.addPublicTool(vkalvrt)
40  acc.addPublicTool(V0Tools)
41  trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
42  acc.addPublicTool(trackselect)
43  vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
44  acc.addPublicTool(vpest)
45  pvrefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
46  acc.addPublicTool(pvrefitter)
47  from TrkConfig.TrkV0FitterConfig import TrkV0VertexFitter_InDetExtrCfg
48  v0fitter = acc.popToolsAndMerge(TrkV0VertexFitter_InDetExtrCfg(flags))
49  acc.addPublicTool(v0fitter)
50  from TrackToVertex.TrackToVertexConfig import InDetTrackToVertexCfg
51  tracktovtxtool = acc.popToolsAndMerge(InDetTrackToVertexCfg(flags))
52  acc.addPublicTool(tracktovtxtool)
53  from TrkConfig.TrkVKalVrtFitterConfig import V0VKalVrtFitterCfg
54  gammafitter = acc.popToolsAndMerge(V0VKalVrtFitterCfg(
55  flags, BPHYDerivationName+"_GammaFitter",
56  Robustness = 6,
57  usePhiCnst = True,
58  useThetaCnst = True,
59  InputParticleMasses = [0.511,0.511] ))
60  acc.addPublicTool(gammafitter)
61  from InDetConfig.InDetTrackSelectorToolConfig import V0InDetConversionTrackSelectorToolCfg
62  v0trackselect = acc.popToolsAndMerge(V0InDetConversionTrackSelectorToolCfg(flags))
63  acc.addPublicTool(v0trackselect)
64  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
65  extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
66  acc.addPublicTool(extrapolator)
67 
68  # mass limits and constants used in the following
69  Jpsi_lo = 2600.0
70  Jpsi_hi = 3500.0
71  Psi_lo = 3350.0
72  Psi_hi = 4200.0
73  etac_lo = 2750.0
74  etac_hi = 3150.0
75  Dpm_lo = 1690.0
76  Dpm_hi = 2050.0
77  D0_lo = 1685.0
78  D0_hi = 2045.0
79  Dstarpm_lo = 1850.0
80  Dstarpm_hi = 2150.0
81  B_lo = 5000.0
82  B_hi = 5550.0
83  Bs0_lo = 5080.0
84  Bs0_hi = 5650.0
85  Bc_lo = 6000.0
86  Bc_hi = 6550.0
87  Ks_lo = 290.0
88  Ks_hi = 690.0
89  Ld_lo = 900.0
90  Ld_hi = 1350.0
91  Xi_lo = 1100.0
92  Xi_hi = 1550.0
93  Omg_lo = 1450.0
94  Omg_hi = 1900.0
95  Ldb0_lo = 5310.0
96  Ldb0_hi = 5910.0
97  Xib_lo = 5500.0
98  Xib_hi = 6090.0
99  Sigmabp_lo = 5500.0
100  Sigmabp_hi = 6100.0
101  Sigmabm_lo = 5510.0
102  Sigmabm_hi = 6110.0
103 
104  Mumass = 105.658
105  Pimass = 139.570
106  Kmass = 493.677
107  Ksmass = 497.611
108  Protonmass = 938.2721
109  Jpsimass = 3096.916
110  Psi2Smass = 3686.10
111  etacmass = 2984.1
112  Dpmmass = 1869.66
113  D0mass = 1864.84
114  Dstarpmmass = 2010.26
115  Bpmmass = 5279.34
116  B0mass = 5279.66
117  Bs0mass = 5366.92
118  Bcmass = 6274.47
119  Lambdamass = 1115.683
120  Lambdab0mass = 5619.60
121  Ximass = 1321.71
122  Omegamass = 1672.45
123  Xibmass = 5797.0
124  Xib0mass = 5791.9
125  Sigmabpmass = 5810.56
126  Sigmabmmass = 5815.64
127 
128  BPHY25JpsiFinder = CompFactory.Analysis.JpsiFinder(
129  name = "BPHY25JpsiFinder",
130  muAndMu = True,
131  muAndTrack = False,
132  TrackAndTrack = False,
133  assumeDiMuons = True, # If true, will assume dimu hypothesis and use PDG value for mu mass
134  trackThresholdPt = 3800.,
135  invMassLower = Jpsi_lo,
136  invMassUpper = Psi_hi,
137  Chi2Cut = 5., # NDF=1 if no mass constraint
138  oppChargesOnly = True,
139  atLeastOneComb = True,
140  useCombinedMeasurement = False, # Only takes effect if combOnly=True
141  muonCollectionKey = "Muons",
142  TrackParticleCollection = "InDetTrackParticles",
143  V0VertexFitterTool = None,
144  useV0Fitter = False, # if False a TrkVertexFitterTool will be used
145  TrkVertexFitterTool = vkalvrt, # VKalVrt vertex fitter
146  TrackSelectorTool = trackselect,
147  VertexPointEstimator = vpest,
148  useMCPCuts = False )
149  acc.addPublicTool(BPHY25JpsiFinder)
150 
151  BPHY25_Reco_mumu = CompFactory.DerivationFramework.Reco_Vertex(
152  name = "BPHY25_Reco_mumu",
153  VertexSearchTool = BPHY25JpsiFinder,
154  OutputVtxContainerName = "BPHY25OniaCandidates",
155  PVContainerName = "PrimaryVertices",
156  RelinkTracks = TrkToRelink,
157  V0Tools = V0Tools,
158  PVRefitter = pvrefitter,
159  RefitPV = False,
160  DoVertexType = 0)
161 
162  # B+ -> J/psi K
163  BPHY25Bpm_Jpsi1Trk = CompFactory.Analysis.JpsiPlus1Track(
164  name = "BPHY25Bpm_Jpsi1Trk",
165  pionHypothesis = False,
166  kaonHypothesis = True,
167  trkThresholdPt = 950.,
168  trkMaxEta = 2.6,
169  JpsiMassLower = Jpsi_lo,
170  JpsiMassUpper = Jpsi_hi,
171  TrkTrippletMassLower = B_lo,
172  TrkTrippletMassUpper = B_hi,
173  Chi2Cut = 5.,
174  JpsiContainerKey = "BPHY25OniaCandidates",
175  TrackParticleCollection = "InDetTrackParticles",
176  MuonsUsedInJpsi = "Muons",
177  ExcludeJpsiMuonsOnly = True,
178  TrkVertexFitterTool = vkalvrt,
179  TrackSelectorTool = trackselect,
180  UseMassConstraint = False)
181  acc.addPublicTool(BPHY25Bpm_Jpsi1Trk)
182 
183  # Bs0 -> J/psi + K K
184  BPHY25Bs0_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
185  name = "BPHY25Bs0_Jpsi2Trk",
186  kaonkaonHypothesis = True,
187  pionpionHypothesis = False,
188  kaonpionHypothesis = False,
189  kaonprotonHypothesis = False,
190  trkThresholdPt = 760.,
191  trkMaxEta = 2.6,
192  oppChargesOnly = False,
193  JpsiMassLower = Jpsi_lo,
194  JpsiMassUpper = Jpsi_hi,
195  TrkQuadrupletMassLower = Bs0_lo,
196  TrkQuadrupletMassUpper = Bs0_hi,
197  Chi2Cut = 5.,
198  JpsiContainerKey = "BPHY25OniaCandidates",
199  TrackParticleCollection = "InDetTrackParticles",
200  MuonsUsedInJpsi = "Muons",
201  ExcludeJpsiMuonsOnly = True,
202  TrkVertexFitterTool = vkalvrt,
203  TrackSelectorTool = trackselect,
204  UseMassConstraint = False)
205  acc.addPublicTool(BPHY25Bs0_Jpsi2Trk)
206 
207  # B0 -> J/psi + K pi
208  BPHY25B0_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
209  name = "BPHY25B0_Jpsi2Trk",
210  kaonkaonHypothesis = False,
211  pionpionHypothesis = False,
212  kaonpionHypothesis = True,
213  kaonprotonHypothesis = False,
214  trkThresholdPt = 760.,
215  trkMaxEta = 2.6,
216  oppChargesOnly = False,
217  JpsiMassLower = Jpsi_lo,
218  JpsiMassUpper = Jpsi_hi,
219  TrkQuadrupletMassLower = B_lo,
220  TrkQuadrupletMassUpper = B_hi,
221  Chi2Cut = 5.,
222  JpsiContainerKey = "BPHY25OniaCandidates",
223  TrackParticleCollection = "InDetTrackParticles",
224  MuonsUsedInJpsi = "Muons",
225  ExcludeJpsiMuonsOnly = True,
226  TrkVertexFitterTool = vkalvrt,
227  TrackSelectorTool = trackselect,
228  UseMassConstraint = False)
229  acc.addPublicTool(BPHY25B0_Jpsi2Trk)
230 
231  BPHY25ThreeTrackReco_Bpm = CompFactory.DerivationFramework.Reco_Vertex(
232  name = "BPHY25ThreeTrackReco_Bpm",
233  VertexSearchTool = BPHY25Bpm_Jpsi1Trk,
234  OutputVtxContainerName = "BPHY25ThreeTrack_Bpm",
235  PVContainerName = "PrimaryVertices",
236  RelinkTracks = TrkToRelink,
237  V0Tools = V0Tools,
238  PVRefitter = pvrefitter,
239  RefitPV = False,
240  DoVertexType = 0)
241 
242  BPHY25FourTrackReco_Bs0 = CompFactory.DerivationFramework.Reco_Vertex(
243  name = "BPHY25FourTrackReco_Bs0",
244  VertexSearchTool = BPHY25Bs0_Jpsi2Trk,
245  OutputVtxContainerName = "BPHY25FourTrack_Bs0",
246  PVContainerName = "PrimaryVertices",
247  RelinkTracks = TrkToRelink,
248  V0Tools = V0Tools,
249  PVRefitter = pvrefitter,
250  RefitPV = False,
251  DoVertexType = 0)
252 
253  BPHY25FourTrackReco_B0 = CompFactory.DerivationFramework.Reco_Vertex(
254  name = "BPHY25FourTrackReco_B0",
255  VertexSearchTool = BPHY25B0_Jpsi2Trk,
256  OutputVtxContainerName = "BPHY25FourTrack_B0",
257  PVContainerName = "PrimaryVertices",
258  RelinkTracks = TrkToRelink,
259  V0Tools = V0Tools,
260  PVRefitter = pvrefitter,
261  RefitPV = False,
262  DoVertexType = 0)
263 
264  BPHY25Select_Jpsi = CompFactory.DerivationFramework.Select_onia2mumu(
265  name = "BPHY25Select_Jpsi",
266  HypothesisName = "Jpsi",
267  InputVtxContainerName = "BPHY25OniaCandidates",
268  V0Tools = V0Tools,
269  TrkMasses = [Mumass, Mumass],
270  MassMin = Jpsi_lo,
271  MassMax = Jpsi_hi,
272  DoVertexType = 0)
273 
274  BPHY25Select_Psi = CompFactory.DerivationFramework.Select_onia2mumu(
275  name = "BPHY25Select_Psi",
276  HypothesisName = "Psi",
277  InputVtxContainerName = "BPHY25OniaCandidates",
278  V0Tools = V0Tools,
279  TrkMasses = [Mumass, Mumass],
280  MassMin = Psi_lo,
281  MassMax = Psi_hi,
282  DoVertexType = 0)
283 
284 
290 
291  list_disV_hypo = ["JpsiXi", "PsiXi", "JpsiOmg", "PsiOmg"]
292  list_disV_jxHypo = ["Jpsi", "Psi", "Jpsi", "Psi"]
293  list_disV_disVLo = [Xi_lo, Xi_lo, Omg_lo, Omg_lo]
294  list_disV_disVHi = [Xi_hi, Xi_hi, Omg_hi, Omg_hi]
295  list_disV_disVDau3Mass = [Pimass, Pimass, Kmass, Kmass]
296  list_disV_jxMass = [Jpsimass, Psi2Smass, Jpsimass, Psi2Smass]
297  list_disV_disVMass = [Ximass, Ximass, Omegamass, Omegamass]
298 
299  list_disV_obj = []
300  for hypo in list_disV_hypo:
301  list_disV_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
302 
303  for i in range(len(list_disV_obj)):
304  list_disV_obj[i].JXVertices = "BPHY25OniaCandidates"
305  list_disV_obj[i].JXVtxHypoNames = [list_disV_jxHypo[i]]
306  list_disV_obj[i].TrackParticleCollection = mainIDInput
307  list_disV_obj[i].RelinkTracks = TrkToRelink
308  if i == 0:
309  # create V0 container for all following instances
310  list_disV_obj[i].OutoutV0VtxCollection = "V0Collection"
311  else:
312  list_disV_obj[i].V0Vertices = "V0Collection"
313  list_disV_obj[i].V0MassLowerCut = Ld_lo
314  list_disV_obj[i].V0MassUpperCut = Ld_hi
315  list_disV_obj[i].DisplacedMassLowerCut = list_disV_disVLo[i]
316  list_disV_obj[i].DisplacedMassUpperCut = list_disV_disVHi[i]
317  list_disV_obj[i].CascadeVertexCollections = ["BPHY25_"+list_disV_hypo[i]+"_CascadeVtx1_sub","BPHY25_"+list_disV_hypo[i]+"_CascadeVtx1","BPHY25_"+list_disV_hypo[i]+"_CascadeMainVtx"]
318  list_disV_obj[i].HasJXSubVertex = False
319  list_disV_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
320  list_disV_obj[i].V0Hypothesis = "Lambda"
321  list_disV_obj[i].MassCutGamma = 10.
322  list_disV_obj[i].Chi2CutGamma = 3.
323  list_disV_obj[i].LxyV0Cut = 10.
324  list_disV_obj[i].LxyDisVtxCut = 10.
325  list_disV_obj[i].HypothesisName = list_disV_hypo[i]
326  list_disV_obj[i].NumberOfJXDaughters = 2
327  list_disV_obj[i].JXDaug1MassHypo = Mumass
328  list_disV_obj[i].JXDaug2MassHypo = Mumass
329  list_disV_obj[i].NumberOfDisVDaughters = 3
330  list_disV_obj[i].DisVDaug3MassHypo = list_disV_disVDau3Mass[i]
331  list_disV_obj[i].DisVDaug3MinPt = 850.
332  list_disV_obj[i].JpsiMass = list_disV_jxMass[i]
333  list_disV_obj[i].V0Mass = Lambdamass
334  list_disV_obj[i].DisVtxMass = list_disV_disVMass[i]
335  list_disV_obj[i].ApplyJpsiMassConstraint = True
336  list_disV_obj[i].ApplyV0MassConstraint = True
337  list_disV_obj[i].ApplyDisVMassConstraint = True
338  list_disV_obj[i].Chi2CutV0 = 5.
339  list_disV_obj[i].Chi2CutDisV = 5.
340  list_disV_obj[i].Chi2Cut = 5.
341  list_disV_obj[i].Trackd0Cut = 2.5
342  list_disV_obj[i].MaxJXCandidates = 10
343  list_disV_obj[i].MaxV0Candidates = 20
344  list_disV_obj[i].MaxDisVCandidates = 30
345  list_disV_obj[i].MaxMainVCandidates = 30
346  list_disV_obj[i].RefitPV = True
347  list_disV_obj[i].MaxnPV = 50
348  list_disV_obj[i].RefPVContainerName = "BPHY25_"+list_disV_hypo[i]+"_RefPrimaryVertices"
349  list_disV_obj[i].TrkVertexFitterTool = vkalvrt
350  list_disV_obj[i].V0VertexFitterTool = v0fitter
351  list_disV_obj[i].GammaFitterTool = gammafitter
352  list_disV_obj[i].PVRefitter = pvrefitter
353  list_disV_obj[i].V0Tools = V0Tools
354  list_disV_obj[i].TrackToVertexTool = tracktovtxtool
355  list_disV_obj[i].V0TrackSelectorTool = v0trackselect
356  list_disV_obj[i].TrackSelectorTool = trackselect
357  list_disV_obj[i].Extrapolator = extrapolator
358 
359 
362 
363  list_trkLd_hypo = ["BpmLd", "Bs2KLd", "B0KpiLd", "B0piKLd"]
364  list_trkLd_jxInput = ["BPHY25ThreeTrack_Bpm", "BPHY25FourTrack_Bs0", "BPHY25FourTrack_B0", "BPHY25FourTrack_B0"]
365  list_trkLd_jxMass = [Bpmmass, Bs0mass, B0mass, B0mass]
366  list_trkLd_jxDau3Mass = [Kmass, Kmass, Kmass, Pimass]
367  list_trkLd_jxDau4Mass = [0, Kmass, Pimass, Kmass] # 0 is dummy
368  list_trkLd_jxMassLo = [B_lo, Bs0_lo, B_lo, B_lo]
369  list_trkLd_jxMassHi = [B_hi, Bs0_hi, B_hi, B_hi]
370 
371  list_trkLd_obj = []
372  for hypo in list_trkLd_hypo:
373  list_trkLd_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
374 
375  for i in range(len(list_trkLd_obj)):
376  list_trkLd_obj[i].JXVertices = list_trkLd_jxInput[i]
377  list_trkLd_obj[i].TrackParticleCollection = mainIDInput
378  list_trkLd_obj[i].RelinkTracks = TrkToRelink
379  list_trkLd_obj[i].V0Vertices = "V0Collection"
380  list_trkLd_obj[i].V0MassLowerCut = Ld_lo
381  list_trkLd_obj[i].V0MassUpperCut = Ld_hi
382  list_trkLd_obj[i].CascadeVertexCollections = ["BPHY25_"+list_trkLd_hypo[i]+"_CascadeVtx1","BPHY25_"+list_trkLd_hypo[i]+"_CascadeVtx2","BPHY25_"+list_trkLd_hypo[i]+"_CascadeMainVtx"]
383  list_trkLd_obj[i].HasJXSubVertex = True
384  list_trkLd_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
385  list_trkLd_obj[i].V0Hypothesis = "Lambda"
386  list_trkLd_obj[i].MassCutGamma = 10.
387  list_trkLd_obj[i].Chi2CutGamma = 3.
388  list_trkLd_obj[i].LxyV0Cut = 20.
389  list_trkLd_obj[i].HypothesisName = list_trkLd_hypo[i]
390  if i == 0:
391  list_trkLd_obj[i].NumberOfJXDaughters = 3
392  else:
393  list_trkLd_obj[i].NumberOfJXDaughters = 4
394  list_trkLd_obj[i].JXDaug4MassHypo = list_trkLd_jxDau4Mass[i]
395  list_trkLd_obj[i].JXDaug1MassHypo = Mumass
396  list_trkLd_obj[i].JXDaug2MassHypo = Mumass
397  list_trkLd_obj[i].JXDaug3MassHypo = list_trkLd_jxDau3Mass[i]
398  list_trkLd_obj[i].JXPtOrdering = True
399  list_trkLd_obj[i].JXMassLowerCut = list_trkLd_jxMassLo[i]
400  list_trkLd_obj[i].JXMassUpperCut = list_trkLd_jxMassHi[i]
401  list_trkLd_obj[i].JpsiMassLowerCut = Jpsi_lo
402  list_trkLd_obj[i].JpsiMassUpperCut = Jpsi_hi
403  list_trkLd_obj[i].NumberOfDisVDaughters = 2
404  list_trkLd_obj[i].JXMass = list_trkLd_jxMass[i]
405  list_trkLd_obj[i].JpsiMass = Jpsimass
406  list_trkLd_obj[i].V0Mass = Lambdamass
407  list_trkLd_obj[i].ApplyJXMassConstraint = True
408  list_trkLd_obj[i].ApplyJpsiMassConstraint = True
409  list_trkLd_obj[i].ApplyV0MassConstraint = True
410  list_trkLd_obj[i].Chi2CutV0 = 5.
411  list_trkLd_obj[i].Chi2Cut = 5.
412  list_trkLd_obj[i].Trackd0Cut = 2.5
413  list_trkLd_obj[i].MaxJXCandidates = 20
414  list_trkLd_obj[i].MaxV0Candidates = 20
415  list_trkLd_obj[i].MaxMainVCandidates = 30
416  list_trkLd_obj[i].RefitPV = True
417  list_trkLd_obj[i].MaxnPV = 50
418  list_trkLd_obj[i].RefPVContainerName = "BPHY25_"+list_trkLd_hypo[i]+"_RefPrimaryVertices"
419  list_trkLd_obj[i].TrkVertexFitterTool = vkalvrt
420  list_trkLd_obj[i].V0VertexFitterTool = v0fitter
421  list_trkLd_obj[i].GammaFitterTool = gammafitter
422  list_trkLd_obj[i].PVRefitter = pvrefitter
423  list_trkLd_obj[i].V0Tools = V0Tools
424  list_trkLd_obj[i].TrackToVertexTool = tracktovtxtool
425  list_trkLd_obj[i].V0TrackSelectorTool = v0trackselect
426  list_trkLd_obj[i].TrackSelectorTool = trackselect
427  list_trkLd_obj[i].Extrapolator = extrapolator
428 
429 
433 
434  list_jpsietac_hypo = ["JpsiEtac_Kpi", "JpsiEtac_piK"]
435  list_jpsietac_extraTrk1Mass = [Kmass, Pimass]
436  list_jpsietac_extraTrk2Mass = [Pimass, Kmass]
437 
438  list_jpsietac_obj = []
439  for hypo in list_jpsietac_hypo:
440  list_jpsietac_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
441 
442  for i in range(len(list_jpsietac_obj)):
443  list_jpsietac_obj[i].JXVertices = "BPHY25OniaCandidates"
444  list_jpsietac_obj[i].JXVtxHypoNames = ["Jpsi"]
445  list_jpsietac_obj[i].TrackParticleCollection = mainIDInput
446  list_jpsietac_obj[i].RelinkTracks = TrkToRelink
447  list_jpsietac_obj[i].V0Vertices = "V0Collection"
448  list_jpsietac_obj[i].V0MassLowerCut = Ks_lo
449  list_jpsietac_obj[i].V0MassUpperCut = Ks_hi
450  list_jpsietac_obj[i].CascadeVertexCollections = ["BPHY25_"+list_jpsietac_hypo[i]+"_CascadeVtx1","BPHY25_"+list_jpsietac_hypo[i]+"_CascadeMainVtx"]
451  list_jpsietac_obj[i].HasJXSubVertex = False
452  list_jpsietac_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
453  list_jpsietac_obj[i].V0Hypothesis = "Ks"
454  list_jpsietac_obj[i].MassCutGamma = 10.
455  list_jpsietac_obj[i].Chi2CutGamma = 3.
456  list_jpsietac_obj[i].LxyV0Cut = 20.
457  list_jpsietac_obj[i].HypothesisName = list_jpsietac_hypo[i]
458  list_jpsietac_obj[i].NumberOfJXDaughters = 2
459  list_jpsietac_obj[i].JXDaug1MassHypo = Mumass
460  list_jpsietac_obj[i].JXDaug2MassHypo = Mumass
461  list_jpsietac_obj[i].NumberOfDisVDaughters = 2
462  list_jpsietac_obj[i].ExtraTrack1MassHypo = list_jpsietac_extraTrk1Mass[i]
463  list_jpsietac_obj[i].ExtraTrack1MinPt = 1900.
464  list_jpsietac_obj[i].ExtraTrack2MassHypo = list_jpsietac_extraTrk2Mass[i]
465  list_jpsietac_obj[i].ExtraTrack2MinPt = 1230.
466  list_jpsietac_obj[i].V0ExtraMassLowerCut = etac_lo
467  list_jpsietac_obj[i].V0ExtraMassUpperCut = etac_hi
468  list_jpsietac_obj[i].MaxMesonCandidates = 20
469  list_jpsietac_obj[i].MesonPtOrdering = True
470  list_jpsietac_obj[i].V0ExtraMass = etacmass
471  list_jpsietac_obj[i].JpsiMass = Jpsimass
472  list_jpsietac_obj[i].V0Mass = Ksmass
473  list_jpsietac_obj[i].ApplyJpsiMassConstraint = True
474  list_jpsietac_obj[i].ApplyV0MassConstraint = True
475  list_jpsietac_obj[i].ApplyV0ExtraMassConstraint = True
476  list_jpsietac_obj[i].Chi2CutV0 = 4.
477  list_jpsietac_obj[i].Chi2CutV0Extra = 4.
478  list_jpsietac_obj[i].Chi2Cut = 4.
479  list_jpsietac_obj[i].Trackd0Cut = 2.5
480  list_jpsietac_obj[i].MaxJXCandidates = 10
481  list_jpsietac_obj[i].MaxV0Candidates = 20
482  list_jpsietac_obj[i].MaxMainVCandidates = 30
483  list_jpsietac_obj[i].RefitPV = True
484  list_jpsietac_obj[i].MaxnPV = 50
485  list_jpsietac_obj[i].RefPVContainerName = "BPHY25_"+list_jpsietac_hypo[i]+"_RefPrimaryVertices"
486  list_jpsietac_obj[i].TrkVertexFitterTool = vkalvrt
487  list_jpsietac_obj[i].V0VertexFitterTool = v0fitter
488  list_jpsietac_obj[i].GammaFitterTool = gammafitter
489  list_jpsietac_obj[i].PVRefitter = pvrefitter
490  list_jpsietac_obj[i].V0Tools = V0Tools
491  list_jpsietac_obj[i].TrackToVertexTool = tracktovtxtool
492  list_jpsietac_obj[i].V0TrackSelectorTool = v0trackselect
493  list_jpsietac_obj[i].TrackSelectorTool = trackselect
494  list_jpsietac_obj[i].Extrapolator = extrapolator
495 
496 
500 
501  list_3bodyA_hypo = ["Bc_3body"]
502  list_3bodyA_extraTrk1Mass = [Kmass]
503  list_3bodyA_extraTrk2Mass = [Pimass]
504  list_3bodyA_extraTrk3Mass = [Pimass]
505 
506  list_3bodyA_obj = []
507  for hypo in list_3bodyA_hypo:
508  list_3bodyA_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
509 
510  for i in range(len(list_3bodyA_obj)):
511  list_3bodyA_obj[i].JXVertices = "BPHY25OniaCandidates"
512  list_3bodyA_obj[i].JXVtxHypoNames = ["Jpsi"]
513  list_3bodyA_obj[i].TrackParticleCollection = mainIDInput
514  list_3bodyA_obj[i].RelinkTracks = TrkToRelink
515  list_3bodyA_obj[i].V0Vertices = "V0Collection"
516  list_3bodyA_obj[i].V0MassLowerCut = Ks_lo
517  list_3bodyA_obj[i].V0MassUpperCut = Ks_hi
518  list_3bodyA_obj[i].CascadeVertexCollections = ["BPHY25_"+list_3bodyA_hypo[i]+"_CascadeVtx1","BPHY25_"+list_3bodyA_hypo[i]+"_CascadeVtx2","BPHY25_"+list_3bodyA_hypo[i]+"_CascadeMainVtx"]
519  list_3bodyA_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
520  list_3bodyA_obj[i].V0Hypothesis = "Ks"
521  list_3bodyA_obj[i].MassCutGamma = 10.
522  list_3bodyA_obj[i].Chi2CutGamma = 3.
523  list_3bodyA_obj[i].LxyV0Cut = 20.
524  list_3bodyA_obj[i].HypothesisName = list_3bodyA_hypo[i]
525  list_3bodyA_obj[i].NumberOfJXDaughters = 2
526  list_3bodyA_obj[i].JXDaug1MassHypo = Mumass
527  list_3bodyA_obj[i].JXDaug2MassHypo = Mumass
528  list_3bodyA_obj[i].NumberOfDisVDaughters = 2
529  list_3bodyA_obj[i].ExtraTrack1MassHypo = list_3bodyA_extraTrk1Mass[i]
530  list_3bodyA_obj[i].ExtraTrack1MinPt = 2370.
531  list_3bodyA_obj[i].ExtraTrack2MassHypo = list_3bodyA_extraTrk2Mass[i]
532  list_3bodyA_obj[i].ExtraTrack2MinPt = 1610.
533  list_3bodyA_obj[i].ExtraTrack3MassHypo = list_3bodyA_extraTrk3Mass[i]
534  list_3bodyA_obj[i].ExtraTrack3MinPt = 1230.
535  list_3bodyA_obj[i].LxyDpmCut = 0.25
536  list_3bodyA_obj[i].LxyD0Cut = 0.15
537  list_3bodyA_obj[i].DpmMassLowerCut = Dpm_lo
538  list_3bodyA_obj[i].DpmMassUpperCut = Dpm_hi
539  list_3bodyA_obj[i].D0MassLowerCut = D0_lo
540  list_3bodyA_obj[i].D0MassUpperCut = D0_hi
541  list_3bodyA_obj[i].DstarpmMassLowerCut = Dstarpm_lo
542  list_3bodyA_obj[i].DstarpmMassUpperCut = Dstarpm_hi
543  list_3bodyA_obj[i].MaxMesonCandidates = 30
544  list_3bodyA_obj[i].MesonPtOrdering = True
545  list_3bodyA_obj[i].MassLowerCut = Bc_lo
546  list_3bodyA_obj[i].MassUpperCut = Bc_hi
547  list_3bodyA_obj[i].DpmMass = Dpmmass
548  list_3bodyA_obj[i].D0Mass = D0mass
549  list_3bodyA_obj[i].DstarpmMass = Dstarpmmass
550  list_3bodyA_obj[i].JpsiMass = Jpsimass
551  list_3bodyA_obj[i].V0Mass = Ksmass
552  list_3bodyA_obj[i].MainVtxMass = Bcmass
553  list_3bodyA_obj[i].ApplyJpsiMassConstraint = True
554  list_3bodyA_obj[i].ApplyV0MassConstraint = True
555  list_3bodyA_obj[i].ApplyDpmMassConstraint = True
556  list_3bodyA_obj[i].ApplyD0MassConstraint = True
557  list_3bodyA_obj[i].ApplyDstarpmMassConstraint = True
558  list_3bodyA_obj[i].ApplyMainVMassConstraint = True
559  list_3bodyA_obj[i].Chi2CutV0 = 4.
560  list_3bodyA_obj[i].Chi2CutJXDpm = 3.
561  list_3bodyA_obj[i].Chi2CutJXDstarpm = 3.
562  list_3bodyA_obj[i].Chi2Cut = 4.
563  list_3bodyA_obj[i].Trackd0Cut = 2.5
564  list_3bodyA_obj[i].MaxJXCandidates = 10
565  list_3bodyA_obj[i].MaxV0Candidates = 20
566  list_3bodyA_obj[i].MaxMainVCandidates = 30
567  list_3bodyA_obj[i].RefitPV = True
568  list_3bodyA_obj[i].MaxnPV = 50
569  list_3bodyA_obj[i].RefPVContainerName = "BPHY25_"+list_3bodyA_hypo[i]+"_RefPrimaryVertices"
570  list_3bodyA_obj[i].TrkVertexFitterTool = vkalvrt
571  list_3bodyA_obj[i].V0VertexFitterTool = v0fitter
572  list_3bodyA_obj[i].GammaFitterTool = gammafitter
573  list_3bodyA_obj[i].PVRefitter = pvrefitter
574  list_3bodyA_obj[i].V0Tools = V0Tools
575  list_3bodyA_obj[i].TrackToVertexTool = tracktovtxtool
576  list_3bodyA_obj[i].V0TrackSelectorTool = v0trackselect
577  list_3bodyA_obj[i].TrackSelectorTool = trackselect
578  list_3bodyA_obj[i].Extrapolator = extrapolator
579 
580 
586 
587  list_3bodyB_hypo = ["Bpm_3body", "Xib_3body", "Sigmabp_3body", "Sigmabm_3body"]
588  list_3bodyB_extraTrkMass = [Protonmass, Kmass, Pimass, Pimass]
589  list_3bodyB_mainVtxMass = [Bpmmass, Xibmass, Sigmabpmass, Sigmabmmass]
590  list_3bodyB_massLo = [B_lo, Xib_lo, Sigmabp_lo, Sigmabm_lo]
591  list_3bodyB_massHi = [B_hi, Xib_hi, Sigmabp_hi, Sigmabm_hi]
592 
593  list_3bodyB_obj = []
594  for hypo in list_3bodyB_hypo:
595  list_3bodyB_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
596 
597  for i in range(len(list_3bodyB_obj)):
598  list_3bodyB_obj[i].JXVertices = "BPHY25OniaCandidates"
599  list_3bodyB_obj[i].JXVtxHypoNames = ["Jpsi"]
600  list_3bodyB_obj[i].TrackParticleCollection = mainIDInput
601  list_3bodyB_obj[i].RelinkTracks = TrkToRelink
602  list_3bodyB_obj[i].V0Vertices = "V0Collection"
603  list_3bodyB_obj[i].V0MassLowerCut = Ld_lo
604  list_3bodyB_obj[i].V0MassUpperCut = Ld_hi
605  list_3bodyB_obj[i].CascadeVertexCollections = ["BPHY25_"+list_3bodyB_hypo[i]+"_CascadeVtx1","BPHY25_"+list_3bodyB_hypo[i]+"_CascadeMainVtx"]
606  list_3bodyB_obj[i].HasJXSubVertex = False
607  list_3bodyB_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
608  list_3bodyB_obj[i].V0Hypothesis = "Lambda"
609  list_3bodyB_obj[i].MassCutGamma = 10.
610  list_3bodyB_obj[i].Chi2CutGamma = 3.
611  list_3bodyB_obj[i].LxyV0Cut = 20.
612  list_3bodyB_obj[i].HypothesisName = list_3bodyB_hypo[i]
613  list_3bodyB_obj[i].NumberOfJXDaughters = 2
614  list_3bodyB_obj[i].JXDaug1MassHypo = Mumass
615  list_3bodyB_obj[i].JXDaug2MassHypo = Mumass
616  list_3bodyB_obj[i].NumberOfDisVDaughters = 2
617  list_3bodyB_obj[i].ExtraTrack1MassHypo = list_3bodyB_extraTrkMass[i]
618  list_3bodyB_obj[i].ExtraTrack1MinPt = 480.
619  list_3bodyB_obj[i].MassLowerCut = list_3bodyB_massLo[i]
620  list_3bodyB_obj[i].MassUpperCut = list_3bodyB_massHi[i]
621  list_3bodyB_obj[i].JpsiMass = Jpsimass
622  list_3bodyB_obj[i].V0Mass = Lambdamass
623  list_3bodyB_obj[i].MainVtxMass = list_3bodyB_mainVtxMass[i]
624  list_3bodyB_obj[i].ApplyJpsiMassConstraint = True
625  list_3bodyB_obj[i].ApplyV0MassConstraint = True
626  list_3bodyB_obj[i].ApplyMainVMassConstraint = True
627  list_3bodyB_obj[i].Chi2CutV0 = 5.
628  list_3bodyB_obj[i].Chi2Cut = 5.
629  list_3bodyB_obj[i].Trackd0Cut = 2.5
630  list_3bodyB_obj[i].MaxJXCandidates = 10
631  list_3bodyB_obj[i].MaxV0Candidates = 20
632  list_3bodyB_obj[i].MaxMainVCandidates = 30
633  list_3bodyB_obj[i].RefitPV = True
634  list_3bodyB_obj[i].MaxnPV = 50
635  list_3bodyB_obj[i].RefPVContainerName = "BPHY25_"+list_3bodyB_hypo[i]+"_RefPrimaryVertices"
636  list_3bodyB_obj[i].TrkVertexFitterTool = vkalvrt
637  list_3bodyB_obj[i].V0VertexFitterTool = v0fitter
638  list_3bodyB_obj[i].GammaFitterTool = gammafitter
639  list_3bodyB_obj[i].PVRefitter = pvrefitter
640  list_3bodyB_obj[i].V0Tools = V0Tools
641  list_3bodyB_obj[i].TrackToVertexTool = tracktovtxtool
642  list_3bodyB_obj[i].V0TrackSelectorTool = v0trackselect
643  list_3bodyB_obj[i].TrackSelectorTool = trackselect
644  list_3bodyB_obj[i].Extrapolator = extrapolator
645 
646 
650 
651  list_3bodyC_hypo = ["Xib0_3body", "Lambdab0_3body"]
652  list_3bodyC_extraTrkMass = [Pimass, Kmass]
653  list_3bodyC_mainVtxMass = [Xib0mass, Lambdab0mass]
654  list_3bodyC_massLo = [Xib_lo, Ldb0_lo]
655  list_3bodyC_massHi = [Xib_hi, Ldb0_hi]
656 
657  list_3bodyC_obj = []
658  for hypo in list_3bodyC_hypo:
659  list_3bodyC_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced("BPHY25_"+hypo) )
660 
661  for i in range(len(list_3bodyC_obj)):
662  list_3bodyC_obj[i].JXVertices = "BPHY25OniaCandidates"
663  list_3bodyC_obj[i].JXVtxHypoNames = ["Jpsi"]
664  list_3bodyC_obj[i].TrackParticleCollection = mainIDInput
665  list_3bodyC_obj[i].RelinkTracks = TrkToRelink
666  list_3bodyC_obj[i].V0Vertices = "V0Collection"
667  list_3bodyC_obj[i].V0MassLowerCut = Ld_lo
668  list_3bodyC_obj[i].V0MassUpperCut = Ld_hi
669  list_3bodyC_obj[i].DisplacedMassLowerCut = Xi_lo
670  list_3bodyC_obj[i].DisplacedMassUpperCut = Xi_hi
671  list_3bodyC_obj[i].CascadeVertexCollections = ["BPHY25_"+list_3bodyC_hypo[i]+"_CascadeVtx1_sub","BPHY25_"+list_3bodyC_hypo[i]+"_CascadeVtx1","BPHY25_"+list_3bodyC_hypo[i]+"_CascadeMainVtx"]
672  list_3bodyC_obj[i].HasJXSubVertex = False
673  list_3bodyC_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
674  list_3bodyC_obj[i].V0Hypothesis = "Lambda"
675  list_3bodyC_obj[i].MassCutGamma = 10.
676  list_3bodyC_obj[i].Chi2CutGamma = 3.
677  list_3bodyC_obj[i].LxyV0Cut = 10.
678  list_3bodyC_obj[i].LxyDisVtxCut = 10.
679  list_3bodyC_obj[i].HypothesisName = list_3bodyC_hypo[i]
680  list_3bodyC_obj[i].NumberOfJXDaughters = 2
681  list_3bodyC_obj[i].JXDaug1MassHypo = Mumass
682  list_3bodyC_obj[i].JXDaug2MassHypo = Mumass
683  list_3bodyC_obj[i].NumberOfDisVDaughters = 3
684  list_3bodyC_obj[i].DisVDaug3MassHypo = Pimass
685  list_3bodyC_obj[i].DisVDaug3MinPt = 850.
686  list_3bodyC_obj[i].ExtraTrack1MassHypo = list_3bodyC_extraTrkMass[i]
687  list_3bodyC_obj[i].ExtraTrack1MinPt = 480.
688  list_3bodyC_obj[i].MassLowerCut = list_3bodyC_massLo[i]
689  list_3bodyC_obj[i].MassUpperCut = list_3bodyC_massHi[i]
690  list_3bodyC_obj[i].JpsiMass = Jpsimass
691  list_3bodyC_obj[i].V0Mass = Lambdamass
692  list_3bodyC_obj[i].DisVtxMass = Ximass
693  list_3bodyC_obj[i].MainVtxMass = list_3bodyC_mainVtxMass[i]
694  list_3bodyC_obj[i].ApplyJpsiMassConstraint = True
695  list_3bodyC_obj[i].ApplyV0MassConstraint = True
696  list_3bodyC_obj[i].ApplyDisVMassConstraint = True
697  list_3bodyC_obj[i].ApplyMainVMassConstraint = True
698  list_3bodyC_obj[i].Chi2CutV0 = 5.
699  list_3bodyC_obj[i].Chi2CutDisV = 5.
700  list_3bodyC_obj[i].Chi2Cut = 5.
701  list_3bodyC_obj[i].Trackd0Cut = 2.5
702  list_3bodyC_obj[i].MaxJXCandidates = 10
703  list_3bodyC_obj[i].MaxV0Candidates = 20
704  list_3bodyC_obj[i].MaxDisVCandidates = 30
705  list_3bodyC_obj[i].MaxMainVCandidates = 30
706  list_3bodyC_obj[i].RefitPV = True
707  list_3bodyC_obj[i].MaxnPV = 50
708  list_3bodyC_obj[i].RefPVContainerName = "BPHY25_"+list_3bodyC_hypo[i]+"_RefPrimaryVertices"
709  list_3bodyC_obj[i].TrkVertexFitterTool = vkalvrt
710  list_3bodyC_obj[i].V0VertexFitterTool = v0fitter
711  list_3bodyC_obj[i].GammaFitterTool = gammafitter
712  list_3bodyC_obj[i].PVRefitter = pvrefitter
713  list_3bodyC_obj[i].V0Tools = V0Tools
714  list_3bodyC_obj[i].TrackToVertexTool = tracktovtxtool
715  list_3bodyC_obj[i].V0TrackSelectorTool = v0trackselect
716  list_3bodyC_obj[i].TrackSelectorTool = trackselect
717  list_3bodyC_obj[i].Extrapolator = extrapolator
718 
719 
723 
724  list_2V0_hypo = ["Bs0_2V0", "Xib0_2V0"]
725  list_2V0_v02hypo = ["Lambda", "Ks"]
726  list_2V0_v02mass = [Lambdamass, Ksmass]
727  list_2V0_v02MassLo = [Ld_lo, Ks_lo]
728  list_2V0_v02MassHi = [Ld_hi, Ks_hi]
729  list_2V0_mainVtxMass = [Bs0mass, Xib0mass]
730  list_2V0_massLo = [Bs0_lo, Xib_lo]
731  list_2V0_massHi = [Bs0_hi, Xib_hi]
732 
733  list_2V0_obj = []
734  for hypo in list_2V0_hypo:
735  list_2V0_obj.append( CompFactory.DerivationFramework.JpsiXPlus2V0("BPHY25_"+hypo) )
736 
737  for i in range(len(list_2V0_obj)):
738  list_2V0_obj[i].JXVertices = "BPHY25OniaCandidates"
739  list_2V0_obj[i].JXVtxHypoNames = ["Jpsi"]
740  list_2V0_obj[i].TrackParticleCollection = mainIDInput
741  list_2V0_obj[i].RelinkTracks = TrkToRelink
742  list_2V0_obj[i].V0Vertices = "V0Collection"
743  list_2V0_obj[i].CascadeVertexCollections = ["BPHY25_"+list_2V0_hypo[i]+"_CascadeVtx1","BPHY25_"+list_2V0_hypo[i]+"_CascadeVtx2","BPHY25_"+list_2V0_hypo[i]+"_CascadeMainVtx"]
744  list_2V0_obj[i].HasJXSubVertex = False
745  list_2V0_obj[i].HasJXV02SubVertex = False
746  list_2V0_obj[i].VxPrimaryCandidateName = "PrimaryVertices"
747  list_2V0_obj[i].V01Hypothesis = "Lambda"
748  list_2V0_obj[i].V01MassLowerCut = Ld_lo
749  list_2V0_obj[i].V01MassUpperCut = Ld_hi
750  list_2V0_obj[i].LxyV01Cut = 20.
751  list_2V0_obj[i].V02Hypothesis = list_2V0_v02hypo[i]
752  list_2V0_obj[i].V02MassLowerCut = list_2V0_v02MassLo[i]
753  list_2V0_obj[i].V02MassUpperCut = list_2V0_v02MassHi[i]
754  list_2V0_obj[i].LxyV02Cut = 20.
755  list_2V0_obj[i].MassCutGamma = 10.
756  list_2V0_obj[i].Chi2CutGamma = 3.
757  list_2V0_obj[i].HypothesisName = list_2V0_hypo[i]
758  list_2V0_obj[i].NumberOfJXDaughters = 2
759  list_2V0_obj[i].JXDaug1MassHypo = Mumass
760  list_2V0_obj[i].JXDaug2MassHypo = Mumass
761  list_2V0_obj[i].MassLowerCut = list_2V0_massLo[i]
762  list_2V0_obj[i].MassUpperCut = list_2V0_massHi[i]
763  list_2V0_obj[i].JpsiMass = Jpsimass
764  list_2V0_obj[i].V01Mass = Lambdamass
765  list_2V0_obj[i].V02Mass = list_2V0_v02mass[i]
766  list_2V0_obj[i].MainVtxMass = list_2V0_mainVtxMass[i]
767  list_2V0_obj[i].ApplyJpsiMassConstraint = True
768  list_2V0_obj[i].ApplyV01MassConstraint = True
769  list_2V0_obj[i].ApplyV02MassConstraint = True
770  list_2V0_obj[i].ApplyMainVMassConstraint = True
771  list_2V0_obj[i].Chi2CutV0 = 5.
772  list_2V0_obj[i].Chi2Cut = 5.
773  list_2V0_obj[i].Trackd0Cut = 2.5
774  list_2V0_obj[i].MaxJXCandidates = 10
775  list_2V0_obj[i].MaxV0Candidates = 20
776  list_2V0_obj[i].MaxMainVCandidates = 30
777  list_2V0_obj[i].RefitPV = True
778  list_2V0_obj[i].MaxnPV = 50
779  list_2V0_obj[i].RefPVContainerName = "BPHY25_"+list_2V0_hypo[i]+"_RefPrimaryVertices"
780  list_2V0_obj[i].TrkVertexFitterTool = vkalvrt
781  list_2V0_obj[i].V0VertexFitterTool = v0fitter
782  list_2V0_obj[i].GammaFitterTool = gammafitter
783  list_2V0_obj[i].PVRefitter = pvrefitter
784  list_2V0_obj[i].V0Tools = V0Tools
785  list_2V0_obj[i].TrackToVertexTool = tracktovtxtool
786  list_2V0_obj[i].V0TrackSelectorTool = v0trackselect
787  list_2V0_obj[i].Extrapolator = extrapolator
788 
789 
792 
793  list_2V0_obj.append( CompFactory.DerivationFramework.JpsiXPlus2V0("BPHY25_Xibc_2V0") )
794  idx = len(list_2V0_obj)-1
795  list_2V0_obj[idx].JXVertices = "BPHY25OniaCandidates"
796  list_2V0_obj[idx].JXVtxHypoNames = ["Jpsi"]
797  list_2V0_obj[idx].TrackParticleCollection = mainIDInput
798  list_2V0_obj[idx].RelinkTracks = TrkToRelink
799  list_2V0_obj[idx].V0Vertices = "V0Collection"
800  list_2V0_obj[idx].CascadeVertexCollections = ["BPHY25_Xibc_2V0_CascadeVtx1","BPHY25_Xibc_2V0_CascadeVtx2","BPHY25_Xibc_2V0_CascadeVtx3","BPHY25_Xibc_2V0_CascadeMainVtx"]
801  list_2V0_obj[idx].HasJXSubVertex = True
802  list_2V0_obj[idx].HasJXV02SubVertex = True
803  list_2V0_obj[idx].VxPrimaryCandidateName = "PrimaryVertices"
804  list_2V0_obj[idx].V01Hypothesis = "Ks"
805  list_2V0_obj[idx].V01MassLowerCut = Ks_lo
806  list_2V0_obj[idx].V01MassUpperCut = Ks_hi
807  list_2V0_obj[idx].LxyV01Cut = 20.
808  list_2V0_obj[idx].V02Hypothesis = "Lambda"
809  list_2V0_obj[idx].V02MassLowerCut = Ld_lo
810  list_2V0_obj[idx].V02MassUpperCut = Ld_hi
811  list_2V0_obj[idx].LxyV02Cut = 20.
812  list_2V0_obj[idx].MassCutGamma = 10.
813  list_2V0_obj[idx].Chi2CutGamma = 3.
814  list_2V0_obj[idx].HypothesisName = "Xibc_2V0"
815  list_2V0_obj[idx].NumberOfJXDaughters = 2
816  list_2V0_obj[idx].JXDaug1MassHypo = Mumass
817  list_2V0_obj[idx].JXDaug2MassHypo = Mumass
818  list_2V0_obj[idx].JXV02MassLowerCut = Ldb0_lo
819  list_2V0_obj[idx].JXV02MassUpperCut = Ldb0_hi
820  list_2V0_obj[idx].JpsiMass = Jpsimass
821  list_2V0_obj[idx].V01Mass = Ksmass
822  list_2V0_obj[idx].V02Mass = Lambdamass
823  list_2V0_obj[idx].JXV02VtxMass = Lambdab0mass
824  list_2V0_obj[idx].ApplyJpsiMassConstraint = True
825  list_2V0_obj[idx].ApplyV01MassConstraint = True
826  list_2V0_obj[idx].ApplyV02MassConstraint = True
827  list_2V0_obj[idx].ApplyJXV02MassConstraint = True
828  list_2V0_obj[idx].Chi2CutV0 = 5.
829  list_2V0_obj[idx].Chi2Cut = 5.
830  list_2V0_obj[idx].Trackd0Cut = 2.5
831  list_2V0_obj[idx].MaxJXCandidates = 10
832  list_2V0_obj[idx].MaxV0Candidates = 20
833  list_2V0_obj[idx].MaxMainVCandidates = 30
834  list_2V0_obj[idx].RefitPV = True
835  list_2V0_obj[idx].MaxnPV = 50
836  list_2V0_obj[idx].RefPVContainerName = "BPHY25_Xibc_2V0_RefPrimaryVertices"
837  list_2V0_obj[idx].TrkVertexFitterTool = vkalvrt
838  list_2V0_obj[idx].V0VertexFitterTool = v0fitter
839  list_2V0_obj[idx].GammaFitterTool = gammafitter
840  list_2V0_obj[idx].PVRefitter = pvrefitter
841  list_2V0_obj[idx].V0Tools = V0Tools
842  list_2V0_obj[idx].TrackToVertexTool = tracktovtxtool
843  list_2V0_obj[idx].V0TrackSelectorTool = v0trackselect
844  list_2V0_obj[idx].Extrapolator = extrapolator
845 
846  CascadeCollections = []
847  RefPVContainers = []
848  RefPVAuxContainers = []
849  passedCandidates = []
850 
851  list_obj = list_disV_obj + list_trkLd_obj + list_jpsietac_obj + list_3bodyA_obj + list_3bodyB_obj + list_3bodyC_obj + list_2V0_obj
852 
853  for obj in list_obj:
854  CascadeCollections += obj.CascadeVertexCollections
855  RefPVContainers += ["xAOD::VertexContainer#BPHY25_" + obj.HypothesisName + "_RefPrimaryVertices"]
856  RefPVAuxContainers += ["xAOD::VertexAuxContainer#BPHY25_" + obj.HypothesisName + "_RefPrimaryVerticesAux."]
857  passedCandidates += ["BPHY25_" + obj.HypothesisName + "_CascadeMainVtx"]
858 
859  BPHY25_SelectEvent = CompFactory.DerivationFramework.AnyVertexSkimmingTool(name = "BPHY25_SelectEvent", VertexContainerNames = passedCandidates)
860  acc.addPublicTool(BPHY25_SelectEvent)
861 
862  augmentation_tools = [BPHY25_AugOriginalCounts, BPHY25_Reco_mumu, BPHY25ThreeTrackReco_Bpm, BPHY25FourTrackReco_Bs0, BPHY25FourTrackReco_B0, BPHY25Select_Jpsi, BPHY25Select_Psi] + list_obj
863  for t in augmentation_tools : acc.addPublicTool(t)
864 
865  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
866  "BPHY25Kernel",
867  AugmentationTools = augmentation_tools,
868  SkimmingTools = [BPHY25_SelectEvent]
869  ))
870 
871  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
872  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
873  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
874  BPHY25SlimmingHelper = SlimmingHelper("BPHY25SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
875  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import getDefaultAllVariables
876  BPHY25_AllVariables = getDefaultAllVariables()
877  BPHY25_StaticContent = []
878 
879  # Needed for trigger objects
880  BPHY25SlimmingHelper.IncludeMuonTriggerContent = True
881  BPHY25SlimmingHelper.IncludeBPhysTriggerContent = True
882 
883 
884  BPHY25_AllVariables += ["PrimaryVertices"]
885  BPHY25_StaticContent += RefPVContainers
886  BPHY25_StaticContent += RefPVAuxContainers
887 
888 
889  BPHY25_AllVariables += ["InDetTrackParticles", "InDetLargeD0TrackParticles"]
890 
891 
894  BPHY25_AllVariables += ["CombinedMuonTrackParticles", "ExtrapolatedMuonTrackParticles"]
895 
896 
897  BPHY25_AllVariables += ["Muons", "MuonSegments"]
898 
899 
900  for cascade in CascadeCollections:
901  BPHY25_StaticContent += ["xAOD::VertexContainer#%s" % cascade]
902  BPHY25_StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % cascade]
903 
904  # Truth information for MC only
905  if isSimulation:
906  BPHY25_AllVariables += ["TruthEvents","TruthParticles","TruthVertices","MuonTruthParticles"]
907 
908  BPHY25SlimmingHelper.SmartCollections = ["Muons", "PrimaryVertices", "InDetTrackParticles", "InDetLargeD0TrackParticles"]
909  BPHY25SlimmingHelper.AllVariables = BPHY25_AllVariables
910  BPHY25SlimmingHelper.StaticContent = BPHY25_StaticContent
911 
912  BPHY25ItemList = BPHY25SlimmingHelper.GetItemList()
913  acc.merge(OutputStreamCfg(flags, "DAOD_BPHY25", ItemList=BPHY25ItemList, AcceptAlgs=["BPHY25Kernel"]))
914  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_BPHY25", AcceptAlgs=["BPHY25Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
915  acc.printConfig(withDetails=True, summariseProps=True, onlyComponents = [], printDefaults=True, printComponentsOnly=False)
916  return acc

Variable Documentation

◆ BPHYDerivationName

string BPHY25.BPHYDerivationName = "BPHY25"

Definition at line 11 of file BPHY25.py.

◆ streamName

string BPHY25.streamName = "StreamDAOD_BPHY25"

Definition at line 12 of file BPHY25.py.

python.HIGG1D1CustomVertexConfig.PrimaryVertexRefittingToolCfg
def PrimaryVertexRefittingToolCfg(flags, **kwargs)
Definition: HIGG1D1CustomVertexConfig.py:7
python.TrkV0FitterConfig.TrkV0VertexFitter_InDetExtrCfg
def TrkV0VertexFitter_InDetExtrCfg(flags, name="TrkV0VertexFitter_InDetExtr", **kwargs)
Definition: TrkV0FitterConfig.py:22
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
BPHY25.BPHY25Cfg
def BPHY25Cfg(flags)
Definition: BPHY25.py:14
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
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
python.InDetToolsConfig.InDetLRTMergeCfg
def InDetLRTMergeCfg(flags, name="InDetLRTMerge", **kwargs)
Definition: InDetToolsConfig.py:14
python.TrkVKalVrtFitterConfig.V0VKalVrtFitterCfg
def V0VKalVrtFitterCfg(flags, name="V0VKalVrtFitter", **kwargs)
Definition: TrkVKalVrtFitterConfig.py:57
TrackToVertexConfig.InDetTrackToVertexCfg
def InDetTrackToVertexCfg(flags, name='InDetTrackToVertex', **kwargs)
Definition: TrackToVertexConfig.py:14
python.InDetTrackSelectorToolConfig.V0InDetConversionTrackSelectorToolCfg
def V0InDetConversionTrackSelectorToolCfg(flags, name='InDetV0VxTrackSelector', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:38
python.InDetTrackSelectorToolConfig.BPHY_InDetDetailedTrackSelectorToolCfg
def BPHY_InDetDetailedTrackSelectorToolCfg(flags, name='BPHY_InDetDetailedTrackSelectorTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:213
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:219
SlimmingHelper
Definition: SlimmingHelper.py:1