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