15 from AthenaServices.PartPropSvcConfig
import PartPropSvcCfg
16 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (
17 BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg,
18 BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg,
20 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
21 acc = ComponentAccumulator()
22 acc.getPrimaryAndMerge(PartPropSvcCfg(flags))
23 isSimulation = flags.Input.isMC
26 BPHY25_AugOriginalCounts = acc.popToolsAndMerge(
27 AugOriginalCountsCfg(flags, name =
"BPHY25_AugOriginalCounts"))
29 doLRT = flags.Tracking.doLargeD0
30 mainIDInput =
"InDetWithLRTTrackParticles" if doLRT
else "InDetTrackParticles"
32 from DerivationFrameworkInDet.InDetToolsConfig
import InDetLRTMergeCfg
33 acc.merge(InDetLRTMergeCfg( flags, OutputTrackParticleLocation = mainIDInput ))
35 TrkToRelink = [
"InDetTrackParticles",
"InDetLargeD0TrackParticles"]
if doLRT
else [
"InDetTrackParticles"]
37 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
38 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
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",
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)
93 Lambdab0mass = 5619.60
95 BPHY25JpsiFinder = CompFactory.Analysis.JpsiFinder(
96 name =
"BPHY25JpsiFinder",
99 TrackAndTrack =
False,
100 assumeDiMuons =
True,
101 trackThresholdPt = 3400.,
103 invMassUpper = 4500.,
105 oppChargesOnly =
True,
106 atLeastOneComb =
True,
107 useCombinedMeasurement =
False,
108 muonCollectionKey =
"Muons",
109 TrackParticleCollection =
"InDetTrackParticles",
110 TrkVertexFitterTool = vkalvrt,
111 TrackSelectorTool = trackselect,
112 VertexPointEstimator = vpest,
114 acc.addPublicTool(BPHY25JpsiFinder)
116 BPHY25_Reco_mumu = CompFactory.DerivationFramework.Reco_Vertex(
117 name =
"BPHY25_Reco_mumu",
118 VertexSearchTool = BPHY25JpsiFinder,
119 OutputVtxContainerName =
"BPHY25OniaCandidates",
120 PVContainerName =
"PrimaryVertices",
121 RelinkTracks = TrkToRelink,
123 PVRefitter = pvrefitter,
126 RefPVContainerName =
"BPHY25_mumuRefittedPrimaryVertices",
130 BPHY25B0_Jpsi2Trk = CompFactory.Analysis.JpsiPlus2Tracks(
131 name =
"BPHY25B0_Jpsi2Trk",
132 kaonkaonHypothesis =
False,
133 pionpionHypothesis =
False,
134 kaonpionHypothesis =
True,
135 kaonprotonHypothesis =
False,
136 trkThresholdPt = 760.,
138 oppChargesOnly =
False,
139 JpsiMassLower = Jpsi_lo,
140 JpsiMassUpper = Jpsi_hi,
141 TrkQuadrupletMassLower = B_lo-100,
142 TrkQuadrupletMassUpper = B_hi+100,
145 DiTrackMassLower = 500.,
146 DiTrackMassUpper = 1100.,
148 JpsiContainerKey =
"BPHY25OniaCandidates",
149 TrackParticleCollection =
"InDetTrackParticles",
150 MuonsUsedInJpsi =
"Muons",
151 ExcludeJpsiMuonsOnly =
True,
152 TrkVertexFitterTool = vkalvrt,
153 TrackSelectorTool = trackselect,
154 UseMassConstraint =
True)
155 acc.addPublicTool(BPHY25B0_Jpsi2Trk)
158 BPHY25Bpm_Jpsi1Trk = CompFactory.Analysis.JpsiPlus1Track(
159 name =
"BPHY25Bpm_Jpsi1Trk",
160 pionHypothesis =
False,
161 kaonHypothesis =
True,
162 trkThresholdPt = 950.,
164 JpsiMassLower = Jpsi_lo,
165 JpsiMassUpper = Jpsi_hi,
166 TrkTrippletMassLower = B_lo-100,
167 TrkTrippletMassUpper = B_hi+100,
171 JpsiContainerKey =
"BPHY25OniaCandidates",
172 TrackParticleCollection =
"InDetTrackParticles",
173 MuonsUsedInJpsi =
"Muons",
174 ExcludeJpsiMuonsOnly =
True,
175 TrkVertexFitterTool = vkalvrt,
176 TrackSelectorTool = trackselect,
177 UseMassConstraint =
True)
178 acc.addPublicTool(BPHY25Bpm_Jpsi1Trk)
180 BPHY25FourTrackReco_B0 = CompFactory.DerivationFramework.Reco_Vertex(
181 name =
"BPHY25FourTrackReco_B0",
182 VertexSearchTool = BPHY25B0_Jpsi2Trk,
183 OutputVtxContainerName =
"BPHY25FourTrack_B0",
184 PVContainerName =
"PrimaryVertices",
185 RelinkTracks = TrkToRelink,
187 PVRefitter = pvrefitter,
190 RefPVContainerName =
"BPHY25_B0RefittedPrimaryVertices",
193 BPHY25ThreeTrackReco_Bpm = CompFactory.DerivationFramework.Reco_Vertex(
194 name =
"BPHY25ThreeTrackReco_Bpm",
195 VertexSearchTool = BPHY25Bpm_Jpsi1Trk,
196 OutputVtxContainerName =
"BPHY25ThreeTrack_Bpm",
197 PVContainerName =
"PrimaryVertices",
198 RelinkTracks = TrkToRelink,
200 PVRefitter = pvrefitter,
203 RefPVContainerName =
"BPHY25_BpmRefittedPrimaryVertices",
206 BPHY25Select_Jpsi = CompFactory.DerivationFramework.Select_onia2mumu(
207 name =
"BPHY25Select_Jpsi",
208 HypothesisName =
"Jpsi",
209 InputVtxContainerName =
"BPHY25OniaCandidates",
211 TrkMasses = [Mumass, Mumass],
216 BPHY25Select_mumu = CompFactory.DerivationFramework.Select_onia2mumu(
217 name =
"BPHY25Select_mumu",
218 HypothesisName =
"mumu",
219 InputVtxContainerName =
"BPHY25OniaCandidates",
221 TrkMasses = [Mumass, Mumass],
231 list_disV_hypo = [
"JpsiXi",
"JpsiOmg",
"mumuXi"]
232 list_disV_jxHypo = [
"Jpsi",
"Jpsi",
"mumu"]
233 list_disV_jxCons = [
True,
True,
False]
234 list_disV_disVLo = [Xi_lo, Omg_lo, Xi_lo]
235 list_disV_disVHi = [Xi_hi, Omg_hi, Xi_hi]
236 list_disV_disVDau3Mass = [Pimass, Kmass, Pimass]
237 list_disV_disVDaug3MinPt = [650., 750., 650.]
238 list_disV_jxMass = [Jpsimass, Jpsimass, -9999.]
239 list_disV_disVMass = [Ximass, Omegamass, Ximass]
242 for hypo
in list_disV_hypo:
243 list_disV_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced(
"BPHY25_"+hypo) )
245 for i
in range(len(list_disV_obj)):
246 list_disV_obj[i].JXVertices =
"BPHY25OniaCandidates"
247 list_disV_obj[i].JXVtxHypoNames = [list_disV_jxHypo[i]]
248 list_disV_obj[i].TrackParticleCollection = mainIDInput
249 list_disV_obj[i].RelinkTracks = TrkToRelink
252 list_disV_obj[i].OutputV0VtxCollection =
"V0Collection"
254 list_disV_obj[i].V0Vertices =
"V0Collection"
255 list_disV_obj[i].UseImprovedMass =
True
256 list_disV_obj[i].LambdaMassLowerCut = Ld_lo
257 list_disV_obj[i].LambdaMassUpperCut = Ld_hi
258 list_disV_obj[i].KsMassLowerCut = Ks_lo
259 list_disV_obj[i].KsMassUpperCut = Ks_hi
260 list_disV_obj[i].DisplacedMassLowerCut = list_disV_disVLo[i]
261 list_disV_obj[i].DisplacedMassUpperCut = list_disV_disVHi[i]
262 list_disV_obj[i].MassLowerCut = 0.
263 list_disV_obj[i].MassUpperCut = 20000.
264 list_disV_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_disV_hypo[i]+
"_CascadeVtx1_sub",
"BPHY25_"+list_disV_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_disV_hypo[i]+
"_CascadeMainVtx"]
265 list_disV_obj[i].HasJXSubVertex =
False
266 list_disV_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
267 list_disV_obj[i].V0Hypothesis =
"Lambda"
268 list_disV_obj[i].MassCutGamma = 10.
269 list_disV_obj[i].Chi2CutGamma = 3.
270 list_disV_obj[i].LxyV0Cut = 1.
271 list_disV_obj[i].LxyDisVtxCut = 2.
272 list_disV_obj[i].HypothesisName = list_disV_hypo[i]
273 list_disV_obj[i].NumberOfJXDaughters = 2
274 list_disV_obj[i].JXDaug1MassHypo = Mumass
275 list_disV_obj[i].JXDaug2MassHypo = Mumass
276 list_disV_obj[i].NumberOfDisVDaughters = 3
277 list_disV_obj[i].DisVDaug3MassHypo = list_disV_disVDau3Mass[i]
278 list_disV_obj[i].DisVDaug3MinPt = list_disV_disVDaug3MinPt[i]
279 list_disV_obj[i].JpsiMass = list_disV_jxMass[i]
280 list_disV_obj[i].LambdaMass = Lambdamass
281 list_disV_obj[i].KsMass = Ksmass
282 list_disV_obj[i].DisVtxMass = list_disV_disVMass[i]
283 list_disV_obj[i].ApplyJpsiMassConstraint = list_disV_jxCons[i]
284 list_disV_obj[i].ApplyV0MassConstraint =
True
285 list_disV_obj[i].ApplyDisVMassConstraint =
True
286 list_disV_obj[i].ApplyMainVMassConstraint =
False
287 list_disV_obj[i].Chi2CutV0 = 4.
288 list_disV_obj[i].Chi2CutDisV = 4.
289 list_disV_obj[i].Chi2Cut = 4.
290 list_disV_obj[i].Trackd0Cut = 3.0
291 list_disV_obj[i].MaxJXCandidates = 10
292 list_disV_obj[i].MaxV0Candidates = 20
293 list_disV_obj[i].MaxDisVCandidates = 30
294 list_disV_obj[i].MaxMainVCandidates = 30
295 list_disV_obj[i].RefitPV =
False
296 list_disV_obj[i].PVContainerName =
"BPHY25_mumuRefittedPrimaryVertices"
297 list_disV_obj[i].DoCascadeFitWithPV = 2
298 list_disV_obj[i].FirstDecayAtPV =
False
299 list_disV_obj[i].TrkVertexFitterTool = vkalvrt
300 list_disV_obj[i].V0VertexFitterTool = v0fitter
301 list_disV_obj[i].GammaFitterTool = gammafitter
302 list_disV_obj[i].PVRefitter = pvrefitter
303 list_disV_obj[i].V0Tools = V0Tools
304 list_disV_obj[i].TrackToVertexTool = tracktovtxtool
305 list_disV_obj[i].V0TrackSelectorTool = v0trackselect
306 list_disV_obj[i].TrackSelectorTool = trackselect
307 list_disV_obj[i].Extrapolator = extrapolator
312 list_BpmV0_hypo = [
"BpmLd",
"BpmKs"]
313 list_BpmV0_jxInput = [
"BPHY25ThreeTrack_Bpm",
"BPHY25ThreeTrack_Bpm"]
314 list_BpmV0_jxDau3Mass = [Kmass, Kmass]
315 list_BpmV0_jxMassLo = [B_lo, B_lo]
316 list_BpmV0_jxMassHi = [B_hi, B_hi]
317 list_BpmV0_v0hypo = [
"Lambda",
"Ks"]
320 for hypo
in list_BpmV0_hypo:
321 list_BpmV0_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced(
"BPHY25_"+hypo) )
323 for i
in range(len(list_BpmV0_obj)):
324 list_BpmV0_obj[i].JXVertices = list_BpmV0_jxInput[i]
325 list_BpmV0_obj[i].TrackParticleCollection = mainIDInput
326 list_BpmV0_obj[i].RelinkTracks = TrkToRelink
327 list_BpmV0_obj[i].V0Vertices =
"V0Collection"
328 list_BpmV0_obj[i].UseImprovedMass =
True
329 list_BpmV0_obj[i].LambdaMassLowerCut = Ld_lo
330 list_BpmV0_obj[i].LambdaMassUpperCut = Ld_hi
331 list_BpmV0_obj[i].KsMassLowerCut = Ks_lo
332 list_BpmV0_obj[i].KsMassUpperCut = Ks_hi
333 list_BpmV0_obj[i].JXMassLowerCut = list_BpmV0_jxMassLo[i]
334 list_BpmV0_obj[i].JXMassUpperCut = list_BpmV0_jxMassHi[i]
335 list_BpmV0_obj[i].JpsiMassLowerCut = Jpsi_lo
336 list_BpmV0_obj[i].JpsiMassUpperCut = Jpsi_hi
337 list_BpmV0_obj[i].MassLowerCut = 0.
338 list_BpmV0_obj[i].MassUpperCut = 150000.
339 list_BpmV0_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_BpmV0_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_BpmV0_hypo[i]+
"_CascadeVtx2",
"BPHY25_"+list_BpmV0_hypo[i]+
"_CascadeMainVtx"]
340 list_BpmV0_obj[i].HasJXSubVertex =
True
341 list_BpmV0_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
342 list_BpmV0_obj[i].V0Hypothesis = list_BpmV0_v0hypo[i]
343 list_BpmV0_obj[i].MassCutGamma = 10.
344 list_BpmV0_obj[i].Chi2CutGamma = 3.
345 list_BpmV0_obj[i].LxyV0Cut = 3.
346 list_BpmV0_obj[i].HypothesisName = list_BpmV0_hypo[i]
347 list_BpmV0_obj[i].NumberOfJXDaughters = 3
348 list_BpmV0_obj[i].JXDaug1MassHypo = Mumass
349 list_BpmV0_obj[i].JXDaug2MassHypo = Mumass
350 list_BpmV0_obj[i].JXDaug3MassHypo = list_BpmV0_jxDau3Mass[i]
351 list_BpmV0_obj[i].JXPtOrdering =
False
352 list_BpmV0_obj[i].NumberOfDisVDaughters = 2
353 list_BpmV0_obj[i].JpsiMass = Jpsimass
354 list_BpmV0_obj[i].LambdaMass = Lambdamass
355 list_BpmV0_obj[i].KsMass = Ksmass
356 list_BpmV0_obj[i].ApplyJXMassConstraint =
True
357 list_BpmV0_obj[i].ApplyJpsiMassConstraint =
True
358 list_BpmV0_obj[i].ApplyV0MassConstraint =
True
359 list_BpmV0_obj[i].ApplyMainVMassConstraint =
False
360 list_BpmV0_obj[i].Chi2CutV0 = 4.
361 list_BpmV0_obj[i].Chi2Cut = 4.
362 list_BpmV0_obj[i].Trackd0Cut = 3.0
363 list_BpmV0_obj[i].MaxJXCandidates = 20
364 list_BpmV0_obj[i].MaxV0Candidates = 20
365 list_BpmV0_obj[i].MaxMainVCandidates = 30
366 list_BpmV0_obj[i].RefitPV =
False
367 list_BpmV0_obj[i].PVContainerName =
"BPHY25_BpmRefittedPrimaryVertices"
368 list_BpmV0_obj[i].DoCascadeFitWithPV = 2
369 list_BpmV0_obj[i].FirstDecayAtPV =
True
370 list_BpmV0_obj[i].TrkVertexFitterTool = vkalvrt
371 list_BpmV0_obj[i].V0VertexFitterTool = v0fitter
372 list_BpmV0_obj[i].GammaFitterTool = gammafitter
373 list_BpmV0_obj[i].PVRefitter = pvrefitter
374 list_BpmV0_obj[i].V0Tools = V0Tools
375 list_BpmV0_obj[i].TrackToVertexTool = tracktovtxtool
376 list_BpmV0_obj[i].V0TrackSelectorTool = v0trackselect
377 list_BpmV0_obj[i].TrackSelectorTool = trackselect
378 list_BpmV0_obj[i].Extrapolator = extrapolator
384 list_B0Ld_hypo = [
"B0KpiLd",
"B0piKLd"]
385 list_B0Ld_jxInput = [
"BPHY25FourTrack_B0",
"BPHY25FourTrack_B0"]
386 list_B0Ld_jxMass = [B0mass, B0mass]
387 list_B0Ld_jxDau3Mass = [Kmass, Pimass]
388 list_B0Ld_jxDau4Mass = [Pimass, Kmass]
389 list_B0Ld_jxMassLo = [B_lo, B_lo]
390 list_B0Ld_jxMassHi = [B_hi, B_hi]
393 for hypo
in list_B0Ld_hypo:
394 list_B0Ld_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced(
"BPHY25_"+hypo) )
396 for i
in range(len(list_B0Ld_obj)):
397 list_B0Ld_obj[i].JXVertices = list_B0Ld_jxInput[i]
398 list_B0Ld_obj[i].TrackParticleCollection = mainIDInput
399 list_B0Ld_obj[i].RelinkTracks = TrkToRelink
400 list_B0Ld_obj[i].V0Vertices =
"V0Collection"
401 list_B0Ld_obj[i].UseImprovedMass =
True
402 list_B0Ld_obj[i].LambdaMassLowerCut = Ld_lo
403 list_B0Ld_obj[i].LambdaMassUpperCut = Ld_hi
404 list_B0Ld_obj[i].KsMassLowerCut = Ks_lo
405 list_B0Ld_obj[i].KsMassUpperCut = Ks_hi
406 list_B0Ld_obj[i].JXMassLowerCut = list_B0Ld_jxMassLo[i]
407 list_B0Ld_obj[i].JXMassUpperCut = list_B0Ld_jxMassHi[i]
408 list_B0Ld_obj[i].JpsiMassLowerCut = Jpsi_lo
409 list_B0Ld_obj[i].JpsiMassUpperCut = Jpsi_hi
410 list_B0Ld_obj[i].MassLowerCut = 0.
411 list_B0Ld_obj[i].MassUpperCut = 150000.
412 list_B0Ld_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_B0Ld_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_B0Ld_hypo[i]+
"_CascadeVtx2",
"BPHY25_"+list_B0Ld_hypo[i]+
"_CascadeMainVtx"]
413 list_B0Ld_obj[i].HasJXSubVertex =
True
414 list_B0Ld_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
415 list_B0Ld_obj[i].V0Hypothesis =
"Lambda"
416 list_B0Ld_obj[i].MassCutGamma = 10.
417 list_B0Ld_obj[i].Chi2CutGamma = 3.
418 list_B0Ld_obj[i].LxyV0Cut = 3.
419 list_B0Ld_obj[i].HypothesisName = list_B0Ld_hypo[i]
420 list_B0Ld_obj[i].NumberOfJXDaughters = 4
421 list_B0Ld_obj[i].JXDaug1MassHypo = Mumass
422 list_B0Ld_obj[i].JXDaug2MassHypo = Mumass
423 list_B0Ld_obj[i].JXDaug3MassHypo = list_B0Ld_jxDau3Mass[i]
424 list_B0Ld_obj[i].JXDaug4MassHypo = list_B0Ld_jxDau4Mass[i]
425 list_B0Ld_obj[i].JXPtOrdering =
False
426 list_B0Ld_obj[i].NumberOfDisVDaughters = 2
427 list_B0Ld_obj[i].JXMass = list_B0Ld_jxMass[i]
428 list_B0Ld_obj[i].JpsiMass = Jpsimass
429 list_B0Ld_obj[i].LambdaMass = Lambdamass
430 list_B0Ld_obj[i].KsMass = Ksmass
431 list_B0Ld_obj[i].ApplyJXMassConstraint =
True
432 list_B0Ld_obj[i].ApplyJpsiMassConstraint =
True
433 list_B0Ld_obj[i].ApplyV0MassConstraint =
True
434 list_B0Ld_obj[i].ApplyMainVMassConstraint =
False
435 list_B0Ld_obj[i].Chi2CutV0 = 4.
436 list_B0Ld_obj[i].Chi2Cut = 4.
437 list_B0Ld_obj[i].Trackd0Cut = 3.0
438 list_B0Ld_obj[i].MaxJXCandidates = 20
439 list_B0Ld_obj[i].MaxV0Candidates = 20
440 list_B0Ld_obj[i].MaxMainVCandidates = 30
441 list_B0Ld_obj[i].RefitPV =
False
442 list_B0Ld_obj[i].PVContainerName =
"BPHY25_B0RefittedPrimaryVertices"
443 list_B0Ld_obj[i].DoCascadeFitWithPV = 2
444 list_B0Ld_obj[i].FirstDecayAtPV =
True
445 list_B0Ld_obj[i].TrkVertexFitterTool = vkalvrt
446 list_B0Ld_obj[i].V0VertexFitterTool = v0fitter
447 list_B0Ld_obj[i].GammaFitterTool = gammafitter
448 list_B0Ld_obj[i].PVRefitter = pvrefitter
449 list_B0Ld_obj[i].V0Tools = V0Tools
450 list_B0Ld_obj[i].TrackToVertexTool = tracktovtxtool
451 list_B0Ld_obj[i].V0TrackSelectorTool = v0trackselect
452 list_B0Ld_obj[i].TrackSelectorTool = trackselect
453 list_B0Ld_obj[i].Extrapolator = extrapolator
459 list_B0Ks_hypo = [
"B0KpiKs",
"B0piKKs"]
460 list_B0Ks_jxInput = [
"BPHY25FourTrack_B0",
"BPHY25FourTrack_B0"]
461 list_B0Ks_jxMass = [B0mass, B0mass]
462 list_B0Ks_jxDau3Mass = [Kmass, Pimass]
463 list_B0Ks_jxDau4Mass = [Pimass, Kmass]
464 list_B0Ks_jxMassLo = [B_lo, B_lo]
465 list_B0Ks_jxMassHi = [B_hi, B_hi]
468 for hypo
in list_B0Ks_hypo:
469 list_B0Ks_obj.append( CompFactory.DerivationFramework.JpsiXPlusDisplaced(
"BPHY25_"+hypo) )
471 for i
in range(len(list_B0Ks_obj)):
472 list_B0Ks_obj[i].JXVertices = list_B0Ks_jxInput[i]
473 list_B0Ks_obj[i].TrackParticleCollection = mainIDInput
474 list_B0Ks_obj[i].RelinkTracks = TrkToRelink
475 list_B0Ks_obj[i].V0Vertices =
"V0Collection"
476 list_B0Ks_obj[i].UseImprovedMass =
True
477 list_B0Ks_obj[i].LambdaMassLowerCut = Ld_lo
478 list_B0Ks_obj[i].LambdaMassUpperCut = Ld_hi
479 list_B0Ks_obj[i].KsMassLowerCut = Ks_lo
480 list_B0Ks_obj[i].KsMassUpperCut = Ks_hi
481 list_B0Ks_obj[i].JXMassLowerCut = list_B0Ks_jxMassLo[i]
482 list_B0Ks_obj[i].JXMassUpperCut = list_B0Ks_jxMassHi[i]
483 list_B0Ks_obj[i].JpsiMassLowerCut = Jpsi_lo
484 list_B0Ks_obj[i].JpsiMassUpperCut = Jpsi_hi
485 list_B0Ks_obj[i].MassLowerCut = 0.
486 list_B0Ks_obj[i].MassUpperCut = 150000.
487 list_B0Ks_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_B0Ks_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_B0Ks_hypo[i]+
"_CascadeVtx2",
"BPHY25_"+list_B0Ks_hypo[i]+
"_CascadeMainVtx"]
488 list_B0Ks_obj[i].HasJXSubVertex =
True
489 list_B0Ks_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
490 list_B0Ks_obj[i].V0Hypothesis =
"Ks"
491 list_B0Ks_obj[i].MassCutGamma = 10.
492 list_B0Ks_obj[i].Chi2CutGamma = 3.
493 list_B0Ks_obj[i].LxyV0Cut = 3.
494 list_B0Ks_obj[i].HypothesisName = list_B0Ks_hypo[i]
495 list_B0Ks_obj[i].NumberOfJXDaughters = 4
496 list_B0Ks_obj[i].JXDaug1MassHypo = Mumass
497 list_B0Ks_obj[i].JXDaug2MassHypo = Mumass
498 list_B0Ks_obj[i].JXDaug3MassHypo = list_B0Ks_jxDau3Mass[i]
499 list_B0Ks_obj[i].JXDaug4MassHypo = list_B0Ks_jxDau4Mass[i]
500 list_B0Ks_obj[i].JXPtOrdering =
False
501 list_B0Ks_obj[i].NumberOfDisVDaughters = 2
502 list_B0Ks_obj[i].JXMass = list_B0Ks_jxMass[i]
503 list_B0Ks_obj[i].JpsiMass = Jpsimass
504 list_B0Ks_obj[i].LambdaMass = Lambdamass
505 list_B0Ks_obj[i].KsMass = Ksmass
506 list_B0Ks_obj[i].MainVtxMass = 5839.88
507 list_B0Ks_obj[i].ApplyJXMassConstraint =
True
508 list_B0Ks_obj[i].ApplyJpsiMassConstraint =
True
509 list_B0Ks_obj[i].ApplyV0MassConstraint =
True
510 list_B0Ks_obj[i].ApplyMainVMassConstraint =
False
511 list_B0Ks_obj[i].Chi2CutV0 = 5.
512 list_B0Ks_obj[i].Chi2Cut = 5.
513 list_B0Ks_obj[i].Trackd0Cut = 3.0
514 list_B0Ks_obj[i].MaxJXCandidates = 20
515 list_B0Ks_obj[i].MaxV0Candidates = 20
516 list_B0Ks_obj[i].MaxMainVCandidates = 30
517 list_B0Ks_obj[i].RefitPV =
False
518 list_B0Ks_obj[i].PVContainerName =
"BPHY25_B0RefittedPrimaryVertices"
519 list_B0Ks_obj[i].DoCascadeFitWithPV = 2
520 list_B0Ks_obj[i].FirstDecayAtPV =
True
521 list_B0Ks_obj[i].TrkVertexFitterTool = vkalvrt
522 list_B0Ks_obj[i].V0VertexFitterTool = v0fitter
523 list_B0Ks_obj[i].GammaFitterTool = gammafitter
524 list_B0Ks_obj[i].PVRefitter = pvrefitter
525 list_B0Ks_obj[i].V0Tools = V0Tools
526 list_B0Ks_obj[i].TrackToVertexTool = tracktovtxtool
527 list_B0Ks_obj[i].V0TrackSelectorTool = v0trackselect
528 list_B0Ks_obj[i].TrackSelectorTool = trackselect
529 list_B0Ks_obj[i].Extrapolator = extrapolator
535 list_2V0A_hypo = [
"Jpsi2V0A"]
538 for hypo
in list_2V0A_hypo:
539 list_2V0A_obj.append( CompFactory.DerivationFramework.JpsiXPlus2V0(
"BPHY25_"+hypo) )
541 for i
in range(len(list_2V0A_obj)):
542 list_2V0A_obj[i].JXVertices =
"BPHY25OniaCandidates"
543 list_2V0A_obj[i].JXVtxHypoNames = [
"Jpsi"]
544 list_2V0A_obj[i].TrackParticleCollection = mainIDInput
545 list_2V0A_obj[i].RelinkTracks = TrkToRelink
546 list_2V0A_obj[i].V0Vertices =
"V0Collection"
547 list_2V0A_obj[i].UseImprovedMass =
True
548 list_2V0A_obj[i].LambdaMassLowerCut = Ld_lo
549 list_2V0A_obj[i].LambdaMassUpperCut = Ld_hi
550 list_2V0A_obj[i].KsMassLowerCut = Ks_lo
551 list_2V0A_obj[i].KsMassUpperCut = Ks_hi
552 list_2V0A_obj[i].JpsiMassLowerCut = Jpsi_lo
553 list_2V0A_obj[i].JpsiMassUpperCut = Jpsi_hi
554 list_2V0A_obj[i].MassLowerCut = 0.
555 list_2V0A_obj[i].MassUpperCut = 150000.
556 list_2V0A_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_2V0A_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_2V0A_hypo[i]+
"_CascadeVtx2",
"BPHY25_"+list_2V0A_hypo[i]+
"_CascadeMainVtx"]
557 list_2V0A_obj[i].HasJXSubVertex =
False
558 list_2V0A_obj[i].HasJXV02SubVertex =
False
559 list_2V0A_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
560 list_2V0A_obj[i].V01Hypothesis =
"Lambda/Ks"
561 list_2V0A_obj[i].V02Hypothesis =
"Lambda/Ks"
562 list_2V0A_obj[i].LxyV01Cut = 2.
563 list_2V0A_obj[i].LxyV02Cut = 2.
564 list_2V0A_obj[i].MassCutGamma = 10.
565 list_2V0A_obj[i].Chi2CutGamma = 3.
566 list_2V0A_obj[i].HypothesisName = list_2V0A_hypo[i]
567 list_2V0A_obj[i].NumberOfJXDaughters = 2
568 list_2V0A_obj[i].JXDaug1MassHypo = Mumass
569 list_2V0A_obj[i].JXDaug2MassHypo = Mumass
570 list_2V0A_obj[i].JpsiMass = Jpsimass
571 list_2V0A_obj[i].LambdaMass = Lambdamass
572 list_2V0A_obj[i].KsMass = Ksmass
573 list_2V0A_obj[i].ApplyJpsiMassConstraint =
True
574 list_2V0A_obj[i].ApplyV01MassConstraint =
True
575 list_2V0A_obj[i].ApplyV02MassConstraint =
True
576 list_2V0A_obj[i].ApplyMainVMassConstraint =
False
577 list_2V0A_obj[i].Chi2CutV0 = 4.
578 list_2V0A_obj[i].Chi2Cut = 4.
579 list_2V0A_obj[i].Trackd0Cut = 3.0
580 list_2V0A_obj[i].MaxJXCandidates = 10
581 list_2V0A_obj[i].MaxV0Candidates = 20
582 list_2V0A_obj[i].MaxMainVCandidates = 30
583 list_2V0A_obj[i].RefitPV =
False
584 list_2V0A_obj[i].PVContainerName =
"BPHY25_mumuRefittedPrimaryVertices"
585 list_2V0A_obj[i].DoCascadeFitWithPV = 2
586 list_2V0A_obj[i].FirstDecayAtPV =
False
587 list_2V0A_obj[i].TrkVertexFitterTool = vkalvrt
588 list_2V0A_obj[i].V0VertexFitterTool = v0fitter
589 list_2V0A_obj[i].GammaFitterTool = gammafitter
590 list_2V0A_obj[i].PVRefitter = pvrefitter
591 list_2V0A_obj[i].V0Tools = V0Tools
592 list_2V0A_obj[i].TrackToVertexTool = tracktovtxtool
593 list_2V0A_obj[i].V0TrackSelectorTool = v0trackselect
594 list_2V0A_obj[i].Extrapolator = extrapolator
596 list_2V0B_hypo = [
"Jpsi2V0B1",
"Jpsi2V0B2"]
597 list_2V0B_v02hypo = [
"Lambda",
"Ks"]
598 list_2V0B_jxv02mass = [Lambdab0mass, B0mass]
599 list_2V0B_jxv02massLo = [Ldb0_lo, B_lo]
600 list_2V0B_jxv02massHi = [Ldb0_hi, B_hi]
603 for hypo
in list_2V0B_hypo:
604 list_2V0B_obj.append( CompFactory.DerivationFramework.JpsiXPlus2V0(
"BPHY25_"+hypo) )
606 for i
in range(len(list_2V0B_obj)):
607 list_2V0B_obj[i].JXVertices =
"BPHY25OniaCandidates"
608 list_2V0B_obj[i].JXVtxHypoNames = [
"Jpsi"]
609 list_2V0B_obj[i].TrackParticleCollection = mainIDInput
610 list_2V0B_obj[i].RelinkTracks = TrkToRelink
611 list_2V0B_obj[i].V0Vertices =
"V0Collection"
612 list_2V0B_obj[i].UseImprovedMass =
True
613 list_2V0B_obj[i].LambdaMassLowerCut = Ld_lo
614 list_2V0B_obj[i].LambdaMassUpperCut = Ld_hi
615 list_2V0B_obj[i].KsMassLowerCut = Ks_lo
616 list_2V0B_obj[i].KsMassUpperCut = Ks_hi
617 list_2V0B_obj[i].JpsiMassLowerCut = Jpsi_lo
618 list_2V0B_obj[i].JpsiMassUpperCut = Jpsi_hi
619 list_2V0B_obj[i].JXV02MassLowerCut = list_2V0B_jxv02massLo[i]
620 list_2V0B_obj[i].JXV02MassUpperCut = list_2V0B_jxv02massHi[i]
621 list_2V0B_obj[i].MassLowerCut = 0.
622 list_2V0B_obj[i].MassUpperCut = 150000.
623 list_2V0B_obj[i].CascadeVertexCollections = [
"BPHY25_"+list_2V0B_hypo[i]+
"_CascadeVtx1",
"BPHY25_"+list_2V0B_hypo[i]+
"_CascadeVtx2",
"BPHY25_"+list_2V0B_hypo[i]+
"_CascadeVtx3",
"BPHY25_"+list_2V0B_hypo[i]+
"_CascadeMainVtx"]
624 list_2V0B_obj[i].HasJXSubVertex =
True
625 list_2V0B_obj[i].HasJXV02SubVertex =
True
626 list_2V0B_obj[i].VxPrimaryCandidateName =
"PrimaryVertices"
627 list_2V0B_obj[i].V01Hypothesis =
"Lambda/Ks"
628 list_2V0B_obj[i].V02Hypothesis = list_2V0B_v02hypo[i]
629 list_2V0B_obj[i].LxyV01Cut = 2.
630 list_2V0B_obj[i].LxyV02Cut = 2.
631 list_2V0B_obj[i].MassCutGamma = 10.
632 list_2V0B_obj[i].Chi2CutGamma = 3.
633 list_2V0B_obj[i].HypothesisName = list_2V0B_hypo[i]
634 list_2V0B_obj[i].NumberOfJXDaughters = 2
635 list_2V0B_obj[i].JXDaug1MassHypo = Mumass
636 list_2V0B_obj[i].JXDaug2MassHypo = Mumass
637 list_2V0B_obj[i].JpsiMass = Jpsimass
638 list_2V0B_obj[i].LambdaMass = Lambdamass
639 list_2V0B_obj[i].KsMass = Ksmass
640 list_2V0B_obj[i].JXV02VtxMass = list_2V0B_jxv02mass[i]
641 list_2V0B_obj[i].ApplyJpsiMassConstraint =
True
642 list_2V0B_obj[i].ApplyV01MassConstraint =
True
643 list_2V0B_obj[i].ApplyV02MassConstraint =
True
644 list_2V0B_obj[i].ApplyJXV02MassConstraint =
True
645 list_2V0B_obj[i].ApplyMainVMassConstraint =
False
646 list_2V0B_obj[i].Chi2CutV0 = 4.
647 list_2V0B_obj[i].Chi2Cut = 4.
648 list_2V0B_obj[i].Trackd0Cut = 3.0
649 list_2V0B_obj[i].MaxJXCandidates = 10
650 list_2V0B_obj[i].MaxV0Candidates = 20
651 list_2V0B_obj[i].MaxMainVCandidates = 30
652 list_2V0B_obj[i].RefitPV =
False
653 list_2V0B_obj[i].PVContainerName =
"BPHY25_mumuRefittedPrimaryVertices"
654 list_2V0B_obj[i].DoCascadeFitWithPV = 2
655 list_2V0B_obj[i].FirstDecayAtPV =
True
656 list_2V0B_obj[i].TrkVertexFitterTool = vkalvrt
657 list_2V0B_obj[i].V0VertexFitterTool = v0fitter
658 list_2V0B_obj[i].GammaFitterTool = gammafitter
659 list_2V0B_obj[i].PVRefitter = pvrefitter
660 list_2V0B_obj[i].V0Tools = V0Tools
661 list_2V0B_obj[i].TrackToVertexTool = tracktovtxtool
662 list_2V0B_obj[i].V0TrackSelectorTool = v0trackselect
663 list_2V0B_obj[i].Extrapolator = extrapolator
666 RefPVContainers = [ ]
667 RefPVAuxContainers = [ ]
668 passedCandidates = [ ]
670 list_obj = list_disV_obj + list_BpmV0_obj + list_B0Ld_obj + list_B0Ks_obj + list_2V0A_obj + list_2V0B_obj
673 Collections += obj.CascadeVertexCollections
674 passedCandidates += [
"BPHY25_" + obj.HypothesisName +
"_CascadeMainVtx"]
677 "xAOD::VertexContainer#BPHY25_mumuRefittedPrimaryVertices",
678 "xAOD::VertexContainer#BPHY25_BpmRefittedPrimaryVertices",
679 "xAOD::VertexContainer#BPHY25_B0RefittedPrimaryVertices"
681 RefPVAuxContainers += [
682 "xAOD::VertexAuxContainer#BPHY25_mumuRefittedPrimaryVerticesAux.",
683 "xAOD::VertexAuxContainer#BPHY25_BpmRefittedPrimaryVerticesAux.",
684 "xAOD::VertexAuxContainer#BPHY25_B0RefittedPrimaryVerticesAux."
687 BPHY25_SelectEvent = CompFactory.DerivationFramework.AnyVertexSkimmingTool(name =
"BPHY25_SelectEvent", VertexContainerNames = passedCandidates)
688 acc.addPublicTool(BPHY25_SelectEvent)
690 augmentation_tools = [BPHY25_AugOriginalCounts, BPHY25_Reco_mumu,
691 BPHY25FourTrackReco_B0, BPHY25ThreeTrackReco_Bpm,
692 BPHY25Select_Jpsi, BPHY25Select_mumu] + list_obj
693 for t
in augmentation_tools : acc.addPublicTool(t)
695 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
697 AugmentationTools = augmentation_tools,
698 SkimmingTools = [BPHY25_SelectEvent]
701 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
702 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
703 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
704 BPHY25SlimmingHelper =
SlimmingHelper(
"BPHY25SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
705 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
706 BPHY25_AllVariables = getDefaultAllVariables()
707 BPHY25_StaticContent = []
710 BPHY25SlimmingHelper.IncludeMuonTriggerContent =
True
711 BPHY25SlimmingHelper.IncludeBPhysTriggerContent =
True
714 BPHY25_AllVariables += [
"PrimaryVertices"]
715 BPHY25_StaticContent += RefPVContainers
716 BPHY25_StaticContent += RefPVAuxContainers
719 BPHY25_AllVariables += [
"InDetTrackParticles",
"InDetLargeD0TrackParticles"]
724 BPHY25_AllVariables += [
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles"]
727 BPHY25_AllVariables += [
"Muons",
"MuonSegments"]
730 for collection
in Collections:
731 BPHY25_StaticContent += [
"xAOD::VertexContainer#%s" % collection]
732 BPHY25_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % collection]
736 BPHY25_AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"MuonTruthParticles"]
738 BPHY25SlimmingHelper.SmartCollections = [
"Muons",
"PrimaryVertices",
"InDetTrackParticles",
"InDetLargeD0TrackParticles"]
739 BPHY25SlimmingHelper.AllVariables = BPHY25_AllVariables
740 BPHY25SlimmingHelper.StaticContent = BPHY25_StaticContent
742 BPHY25ItemList = BPHY25SlimmingHelper.GetItemList()
743 acc.merge(OutputStreamCfg(flags,
"DAOD_BPHY25", ItemList=BPHY25ItemList, AcceptAlgs=[
"BPHY25Kernel"]))
744 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY25", AcceptAlgs=[
"BPHY25Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
745 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)