ATLAS Offline Software
BPHY5.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 #====================================================================
4 # BPHY5.py
5 #====================================================================
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.Enums import MetadataCategory
10 
11 
12 BPHYDerivationName = "BPHY5"
13 streamName = "StreamDAOD_BPHY5"
14 
15 JpsiContainerName = "BPHY5JpsiCandidates"
16 BsJpsiPhiContainerName = "BPHY5BsJpsiKKCandidates"
17 BPlusContainerName = "BPHY5BpmJpsiKpmCandidates"
18 BpipiContainerName = "BPHY5BJpsipipiXCandidates"
19 BdJpsiKstContainerName = "BPHY5BdJpsiKstCandidates"
20 
21 def BPHY5Kernel(flags, Decays="BsB+BdKstBpipiX"):
22  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
23  from JpsiUpsilonTools.JpsiUpsilonToolsConfig import PrimaryVertexRefittingToolCfg
24  acc = ComponentAccumulator()
25  isSimulation = flags.Input.isMC
26 
27  doLRT = flags.Tracking.doLargeD0
28  if not doLRT : print("BPHY5: LRT tracks disabled")
29  mainMuonInput = "StdWithLRTMuons" if doLRT else "Muons"
30  mainIDInput = "InDetWithLRTTrackParticles" if doLRT else "InDetTrackParticles"
31  if doLRT:
32  from DerivationFrameworkLLP.LLPToolsConfig import LRTMuonMergerAlg
33  from AthenaConfiguration.Enums import LHCPeriod
34  acc.merge(LRTMuonMergerAlg( flags,
35  PromptMuonLocation = "Muons",
36  LRTMuonLocation = "MuonsLRT",
37  OutputMuonLocation = mainMuonInput,
38  CreateViewCollection = True,
39  UseRun3WP = flags.GeoModel.Run == LHCPeriod.Run3))
40  from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
41  acc.merge(InDetLRTMergeCfg(flags))
42 
43  BPHY5_AugOriginalCounts = CompFactory.DerivationFramework.AugOriginalCounts(
44  name = "BPHY5_AugOriginalCounts",
45  VertexContainer = "PrimaryVertices",
46  TrackContainer = "InDetTrackParticles",
47  TrackLRTContainer = "InDetLargeD0TrackParticles" if doLRT else "")
48  toRelink = ["InDetTrackParticles", "InDetLargeD0TrackParticles"] if doLRT else []
49  MuonReLink = [ "Muons", "MuonsLRT" ] if doLRT else []
50 
51  V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
52  vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName)) # VKalVrt vertex fitter
53  acc.addPublicTool(vkalvrt)
54  acc.addPublicTool(V0Tools)
55  trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
56  acc.addPublicTool(trackselect)
57  vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
58  acc.addPublicTool(vpest)
59  BPHY5JpsiFinder = CompFactory.Analysis.JpsiFinder(
60  name = "BPHY5JpsiFinder",
61  muAndMu = True,
62  muAndTrack = False,
63  TrackAndTrack = False,
64  assumeDiMuons = True,
65  invMassUpper = 3600.0,
66  invMassLower = 2600.0,
67  Chi2Cut = 30.,
68  oppChargesOnly = True,
69  combOnly = True,
70  atLeastOneComb = False,
71  useCombinedMeasurement = False, # Only takes effect if combOnly=True
72  muonCollectionKey = mainMuonInput,
73  TrackParticleCollection = mainIDInput,
74  useV0Fitter = False, # if False a TrkVertexFitterTool will be used
75  TrkVertexFitterTool = vkalvrt,
76  V0VertexFitterTool = None,
77  TrackSelectorTool = trackselect,
78  VertexPointEstimator = vpest,
79  useMCPCuts = False )
80  acc.addPublicTool(BPHY5JpsiFinder )
81 
82  BPHY5JpsiSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name = "BPHY5JpsiSelectAndWrite",
83  VertexSearchTool = BPHY5JpsiFinder,
84  OutputVtxContainerName = JpsiContainerName,
85  PVContainerName = "PrimaryVertices",
86  V0Tools = V0Tools,
87  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
88  RefPVContainerName = "SHOULDNOTBEUSED",
89  RelinkTracks = toRelink,
90  RelinkMuons = MuonReLink,
91  DoVertexType =1)
92 
93 
94  BPHY5_Select_Jpsi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(
95  name = "BPHY5_Select_Jpsi2mumu",
96  HypothesisName = "Jpsi",
97  InputVtxContainerName = JpsiContainerName,
98  V0Tools = V0Tools,
99  VtxMassHypo = 3096.916,
100  MassMin = 2000.0,
101  MassMax = 3600.0,
102  Chi2Max = 200, Do3d = False,
103  DoVertexType =1)
104 
105  BPHY5BsJpsiKK = CompFactory.Analysis.JpsiPlus2Tracks(name = "BPHY5BsJpsiKK",
106  kaonkaonHypothesis = True,
107  pionpionHypothesis = False,
108  kaonpionHypothesis = False,
109  trkThresholdPt = 800.0,
110  trkMaxEta = 3.0,
111  BMassUpper = 5800.0,
112  BMassLower = 5000.0,
113  #DiTrackMassUpper = 1019.445 + 100.,
114  #DiTrackMassLower = 1019.445 - 100.,
115  Chi2Cut = 15.0,
116  TrkQuadrupletMassUpper = 6000.0,
117  TrkQuadrupletMassLower = 4800.0,
118  JpsiContainerKey = JpsiContainerName,
119  TrackParticleCollection = mainIDInput,
120  MuonsUsedInJpsi = mainMuonInput,
121  TrkVertexFitterTool = vkalvrt,
122  TrackSelectorTool = trackselect,
123  UseMassConstraint = True)
124  acc.addPublicTool(BPHY5BsJpsiKK )
125  BPHY5BdJpsiKst = CompFactory.Analysis.JpsiPlus2Tracks(
126  name = "BPHY5BdJpsiKst",
127  kaonkaonHypothesis = False,
128  pionpionHypothesis = False,
129  kaonpionHypothesis = True,
130  trkThresholdPt = 800.0,
131  trkMaxEta = 3.0,
132  BThresholdPt = 5000.,
133  BMassLower = 4300.0,
134  BMassUpper = 6300.0,
135  JpsiContainerKey = JpsiContainerName,
136  TrackParticleCollection = mainIDInput,
137  #MuonsUsedInJpsi = "Muons", #Don't remove all muons, just those in J/psi candidate (see the following cut)
138  ExcludeCrossJpsiTracks = False, #setting this to False rejects the muons from J/psi candidate
139  TrkVertexFitterTool = vkalvrt,
140  TrackSelectorTool = trackselect,
141  UseMassConstraint = True,
142  Chi2Cut = 15.0,
143  TrkQuadrupletMassLower = 3500.0,
144  TrkQuadrupletMassUpper = 6800.0,
145  )
146  acc.addPublicTool(BPHY5BdJpsiKst )
147  BPHY5BplJpsiKpl = CompFactory.Analysis.JpsiPlus1Track(name = "BPHY5BplJpsiKpl",
148  pionHypothesis = True,
149  kaonHypothesis = True,
150  trkThresholdPt = 750.0,
151  trkMaxEta = 3.0,
152  BThresholdPt = 4000.0,
153  BMassUpper = 7000.0,
154  BMassLower = 4500.0,
155  Chi2Cut = 15.0,
156  TrkTrippletMassUpper = 8000,
157  TrkTrippletMassLower = 4000,
158  JpsiContainerKey = JpsiContainerName,
159  TrackParticleCollection = mainIDInput,
160  MuonsUsedInJpsi = mainMuonInput,
161  TrkVertexFitterTool = vkalvrt,
162  TrackSelectorTool = trackselect,
163  UseMassConstraint = True,
164  ExcludeCrossJpsiTracks = False,
165  ExcludeJpsiMuonsOnly = True)
166  acc.addPublicTool(BPHY5BplJpsiKpl )
167  BPHY5BJpsipipiX = CompFactory.Analysis.JpsiPlus2Tracks(name = "BPHY5BJpsipipiX",
168  kaonkaonHypothesis = False,
169  pionpionHypothesis = True,
170  kaonpionHypothesis = False,
171  trkThresholdPt = 800.0,
172  trkMaxEta = 3.0,
173  BMassUpper = 5800.0,
174  BMassLower = 3400.0,
175  #DiTrackMassUpper = 1019.445 + 100.,
176  #DiTrackMassLower = 1019.445 - 100.,
177  Chi2Cut = 15.0,
178  TrkQuadrupletMassUpper = 5800.0,
179  TrkQuadrupletMassLower = 3400.0,
180  JpsiContainerKey = JpsiContainerName,
181  TrackParticleCollection = mainIDInput,
182  MuonsUsedInJpsi = mainMuonInput,
183  TrkVertexFitterTool = vkalvrt,
184  TrackSelectorTool = trackselect,
185  UseMassConstraint = True,
186  ExcludeCrossJpsiTracks = False,
187  ExcludeJpsiMuonsOnly = True)
188  acc.addPublicTool(BPHY5BJpsipipiX )
189  BPHY5BsKKSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name = "BPHY5BsKKSelectAndWrite",
190  VertexSearchTool = BPHY5BsJpsiKK,
191  OutputVtxContainerName = BsJpsiPhiContainerName,
192  PVContainerName = "PrimaryVertices",
193  V0Tools = V0Tools,
194  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
195  RefPVContainerName = "BPHY5RefittedPrimaryVertices",
196  RefitPV = True, Do3d = False,
197  RelinkTracks = toRelink,
198  MaxPVrefit = 10000, DoVertexType = 7)
199 
200  BPHY5BplKplSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name = "BPHY5BplKplSelectAndWrite",
201  VertexSearchTool = BPHY5BplJpsiKpl,
202  OutputVtxContainerName = BPlusContainerName,
203  PVContainerName = "PrimaryVertices",
204  V0Tools = V0Tools,
205  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
206  RefPVContainerName = "BPHY5RefBplJpsiKplPrimaryVertices",
207  RefitPV = True,
208  RelinkTracks = toRelink,
209  MaxPVrefit = 10000 )
210 
211  BPHY5BpipiXSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name = "BPHY5BpipiXSelectAndWrite",
212  VertexSearchTool = BPHY5BJpsipipiX,
213  OutputVtxContainerName = BpipiContainerName,
214  PVContainerName = "PrimaryVertices",
215  V0Tools = V0Tools,
216  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
217  RefPVContainerName = "BPHY5RefittedBPipiPrimaryVertices",
218  RefitPV = True, Do3d = False,
219  RelinkTracks = toRelink,
220  MaxPVrefit = 10000, DoVertexType = 7)
221 
222  BPHY5BdKstSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
223  name = "BPHY5BdKstSelectAndWrite",
224  VertexSearchTool = BPHY5BdJpsiKst,
225  OutputVtxContainerName = BdJpsiKstContainerName,
226  V0Tools = V0Tools,
227  PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
228  PVContainerName = "PrimaryVertices",
229  RefPVContainerName = "BPHY5RefittedKstPrimaryVertices",
230  RefitPV = True,
231  RelinkTracks = toRelink,
232  MaxPVrefit = 10000,
233  DoVertexType = 7)
234 
235  BPHY5_Select_Bd2JpsiKst = CompFactory.DerivationFramework.Select_onia2mumu(
236  name = "BPHY5_Select_Bd2JpsiKst",
237  HypothesisName = "Bd",
238  InputVtxContainerName = BdJpsiKstContainerName,
239  V0Tools = V0Tools,
240  TrkMasses = [105.658, 105.658, 493.677, 139.570],
241  VtxMassHypo = 5279.6,
242  MassMin = 100.0, #no mass cuts here
243  MassMax = 100000.0, #no mass cuts here
244  Chi2Max = 200)
245 
246  BPHY5_Select_Bd2JpsiKstbar = CompFactory.DerivationFramework.Select_onia2mumu(
247  name = "BPHY5_Select_Bd2JpsiKstbar",
248  HypothesisName = "Bdbar",
249  InputVtxContainerName = BdJpsiKstContainerName,
250  V0Tools = V0Tools,
251  TrkMasses = [105.658, 105.658, 139.570, 493.677],
252  VtxMassHypo = 5279.6,
253  MassMin = 100.0, #no mass cuts here
254  MassMax = 100000.0, #no mass cuts here
255  Chi2Max = 200)
256 
257  BPHY5_Select_Bs2JpsiKK = CompFactory.DerivationFramework.Select_onia2mumu(
258  name = "BPHY5_Select_Bs2JpsiKK",
259  HypothesisName = "Bs",
260  InputVtxContainerName = BsJpsiPhiContainerName,
261  V0Tools = V0Tools,
262  TrkMasses = [105.658, 105.658, 493.677, 493.677],
263  VtxMassHypo = 5366.3,
264  MassMin = 5000.0,
265  MassMax = 5800.0, Do3d = False,
266  Chi2Max = 200)
267 
268  BPHY5_Select_Bpl2JpsiKpl = CompFactory.DerivationFramework.Select_onia2mumu(
269  name = "BPHY5_Select_Bpl2JpsiKpl",
270  HypothesisName = "Bplus",
271  InputVtxContainerName = BPlusContainerName,
272  V0Tools = V0Tools,
273  TrkMasses = [105.658, 105.658, 493.677],
274  VtxMassHypo = 5279.26,
275  MassMin = 5279.26 - 500, Do3d = False,
276  MassMax = 5279.26 + 500,
277  Chi2Max = 200 )
278 
279  BPHY5_Select_Bpl2JpsiPi = CompFactory.DerivationFramework.Select_onia2mumu(
280  name = "BPHY5_Select_Bpl2JpsiPi",
281  HypothesisName = "Bc",
282  InputVtxContainerName = BPlusContainerName,
283  V0Tools = V0Tools,
284  TrkMasses = [105.658, 105.658, 139.570],
285  VtxMassHypo = 6275.1, Do3d = False,
286  MassMin = 6275.1 - 500,
287  MassMax = 6275.1 + 500,
288  Chi2Max = 200 )
289 
290  BPHY5_Select_B2JpsipipiX = CompFactory.DerivationFramework.Select_onia2mumu(
291  name = "BPHY5_Select_B2JpsipipiX",
292  HypothesisName = "pipiJpsi",
293  InputVtxContainerName = BpipiContainerName,
294  V0Tools = V0Tools,
295  TrkMasses = [105.658, 105.658, 139.570, 139.570],
296  VtxMassHypo = 4260,
297  MassMin = 3400.0,
298  MassMax = 5800.0, Do3d = False,
299  Chi2Max = 200)
300 
301  if not isSimulation: #Only Skim Data
302  BPHY5_SelectBsJpsiKKEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(
303  name = "BPHY5_SelectBsJpsiKKEvent",
304  expression = f"count({BsJpsiPhiContainerName}.passed_Bs > 0) > 0")
305 
306  BPHY5_SelectBplJpsiKplEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "BPHY5_SelectBplJpsiKplEvent",
307  expression = f"count({BPlusContainerName}.passed_Bplus>0) > 0")
308 
309  BPHY5_SelectBplJpsiKplEventBc = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "BPHY5_SelectBplJpsiKplEventBc",
310  expression = f"count({BPlusContainerName}.passed_Bc>0) > 0")
311 
312  BPHY5_SelectBdKstarEventBd = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "BPHY5_SelectBdKstarEventBd",
313  expression = f"count({BdJpsiKstContainerName}.passed_Bd>0) > 0")
314 
315  BPHY5_SelectBdKstarEventBdBar = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "BPHY5_SelectBdKstarEventBdbar",
316  expression = f"count({BdJpsiKstContainerName}.passed_Bdbar>0) > 0")
317  #====================================================================
318  # Make event selection based on an OR of the input skimming tools
319  #====================================================================
320  filterlist = []
321  if "Bs" in Decays : filterlist.append(BPHY5_SelectBsJpsiKKEvent)
322  if "B+" in Decays : filterlist += [ BPHY5_SelectBplJpsiKplEvent,BPHY5_SelectBplJpsiKplEventBc]
323  if "BdKst" in Decays : filterlist += [BPHY5_SelectBdKstarEventBd, BPHY5_SelectBdKstarEventBdBar]
324 
325  BPHY5SkimmingOR = CompFactory.DerivationFramework.FilterCombinationOR("BPHY5SkimmingOR",
326  FilterList = filterlist)
327  for t in filterlist +[BPHY5SkimmingOR]: acc.addPublicTool(t)
328 
329  augTools = [BPHY5JpsiSelectAndWrite, BPHY5_Select_Jpsi2mumu, BPHY5_AugOriginalCounts]
330  if "Bs" in Decays : augTools += [BPHY5BsKKSelectAndWrite, BPHY5_Select_Bs2JpsiKK]
331  if "B+" in Decays : augTools += [BPHY5BplKplSelectAndWrite, BPHY5_Select_Bpl2JpsiKpl, BPHY5_Select_Bpl2JpsiPi]
332  if "BdKst" in Decays : augTools += [ BPHY5BdKstSelectAndWrite, BPHY5_Select_Bd2JpsiKst, BPHY5_Select_Bd2JpsiKstbar]
333  if "BpipiX" in Decays : augTools+= [ BPHY5BpipiXSelectAndWrite, BPHY5_Select_B2JpsipipiX]
334  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel("BPHY5Kernel",
335  AugmentationTools = augTools,
336  #Only skim if not MC
337  SkimmingTools = [BPHY5SkimmingOR] if not isSimulation else [],
338  ThinningTools = []))
339  for t in augTools : acc.addPublicTool(t)
340  return acc
341 
342 
343 def BPHY5Cfg(flags):
344  doLRT = flags.Tracking.doLargeD0
345  isSimulation = flags.Input.isMC
346  acc = BPHY5Kernel(flags)
347  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
348  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
349  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
350  BPHY5SlimmingHelper = SlimmingHelper("BPHY5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
351  from DerivationFrameworkBPhys.commonBPHYMethodsCfg import getDefaultAllVariables
352  AllVariables = getDefaultAllVariables()
353  StaticContent = []
354 
355  # Needed for trigger objects
356  BPHY5SlimmingHelper.IncludeMuonTriggerContent = True
357  BPHY5SlimmingHelper.IncludeBPhysTriggerContent = True
358 
359 
360  AllVariables += ["PrimaryVertices"]
361  StaticContent += ["xAOD::VertexContainer#BPHY5RefittedPrimaryVertices"]
362  StaticContent += ["xAOD::VertexAuxContainer#BPHY5RefittedPrimaryVerticesAux."]
363  StaticContent += ["xAOD::VertexContainer#BPHY5RefBplJpsiKplPrimaryVertices"]
364  StaticContent += ["xAOD::VertexAuxContainer#BPHY5RefBplJpsiKplPrimaryVerticesAux."]
365  StaticContent += ["xAOD::VertexContainer#BPHY5RefittedBPipiPrimaryVertices"]
366  StaticContent += ["xAOD::VertexAuxContainer#BPHY5RefittedBPipiPrimaryVerticesAux."]
367  StaticContent += ["xAOD::VertexContainer#BPHY5RefittedKstPrimaryVertices"]
368  StaticContent += ["xAOD::VertexAuxContainer#BPHY5RefittedKstPrimaryVerticesAux."]
369 
370 
371  AllVariables += ["InDetTrackParticles", "InDetLargeD0TrackParticles"] if doLRT else ["InDetTrackParticles"]
372 
373 
376  AllVariables += ["CombinedMuonTrackParticles"]
377  AllVariables += ["ExtrapolatedMuonTrackParticles"]
378 
379 
380  AllVariables += ["Muons", "MuonsLRT"] if doLRT else ["Muons"]
381 
382 
383 
384  StaticContent += ["xAOD::VertexContainer#%s" % JpsiContainerName]
385 
386  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % JpsiContainerName]
387 
388  StaticContent += ["xAOD::VertexContainer#%s" % BsJpsiPhiContainerName]
389  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BsJpsiPhiContainerName]
390 
391  StaticContent += ["xAOD::VertexContainer#%s" % BPlusContainerName]
392  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPlusContainerName]
393 
394  StaticContent += ["xAOD::VertexContainer#%s" % BpipiContainerName]
395  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BpipiContainerName]
396 
397  StaticContent += ["xAOD::VertexContainer#%s" % BdJpsiKstContainerName]
398  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BdJpsiKstContainerName]
399 
400  # Tagging information (in addition to that already requested by usual algorithms)
401  AllVariables += ["GSFTrackParticles", "MuonSpectrometerTrackParticles" ]
402  tagJetCollections = ['AntiKt4LCTopoJets', 'AntiKt4EMTopoJets', 'AntiKt4PV0TrackJets']
403 
404  AllVariables += [ "Kt4LCTopoOriginEventShape", "Kt4EMTopoOriginEventShape" ]
405  SmartVar = ["Photons", "Electrons", "LRTElectrons"] #[ tagJetCollections ]
406 
407  for jet_collection in tagJetCollections:
408  AllVariables += [jet_collection]
409  AllVariables += ["BTagging_%s" % (jet_collection[:-4]) ]
410  AllVariables += ["BTagging_%sJFVtx" % (jet_collection[:-4]) ]
411  AllVariables += ["BTagging_%sSecVtx" % (jet_collection[:-4]) ]
412 
413 
414  # Truth information for MC only
415  if isSimulation:
416  AllVariables += ["TruthEvents","TruthParticles","TruthVertices","MuonTruthParticles", "egammaTruthParticles" ]
417  AllVariables += ["AntiKt4TruthJets", "AntiKt4TruthWZJets" ]
418  tagJetCollections += [ "AntiKt4TruthJets", "AntiKt4TruthWZJets" ]
419 
420 
421  AllVariables = list(set(AllVariables)) # remove duplicates
422 
423  BPHY5SlimmingHelper.AllVariables = AllVariables
424  BPHY5SlimmingHelper.StaticContent = StaticContent
425  BPHY5SlimmingHelper.SmartCollections = SmartVar
426  BPHY5ItemList = BPHY5SlimmingHelper.GetItemList()
427  acc.merge(OutputStreamCfg(flags, "DAOD_BPHY5", ItemList=BPHY5ItemList, AcceptAlgs=["BPHY5Kernel"]))
428  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_BPHY5", AcceptAlgs=["BPHY5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
429  acc.printConfig(withDetails=True, summariseProps=True, onlyComponents = [], printDefaults=True, printComponentsOnly=False)
430  return acc
python.HIGG1D1CustomVertexConfig.PrimaryVertexRefittingToolCfg
def PrimaryVertexRefittingToolCfg(flags, **kwargs)
Definition: HIGG1D1CustomVertexConfig.py:7
python.LLPToolsConfig.LRTMuonMergerAlg
def LRTMuonMergerAlg(flags, name="LLP1_MuonLRTMergingAlg", **kwargs)
Definition: LLPToolsConfig.py:172
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
BPHY5.BPHY5Kernel
def BPHY5Kernel(flags, Decays="BsB+BdKstBpipiX")
Definition: BPHY5.py:21
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
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
BPHY5.BPHY5Cfg
def BPHY5Cfg(flags)
Definition: BPHY5.py:343
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
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