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