Belle II Software development
reconstruction_utils.py
1#!/usr/bin/env python3
2
3
10
11import modularAnalysis as ma
12
13
14def bToCharmHLTSkim(path):
15 """
16 Function to reconstruct B meson candidates for HLT skims
17 @param path modules are added to this path
18 """
19
20 BplusList = []
21 BzeroList = []
22
23 # Light mesons
24 ma.fillParticleList("pi+:GoodTrackForHLT", "abs(d0) < 2 and abs(z0) < 5", path=path)
25 ma.fillParticleList("K+:GoodTrackForHLT", "abs(d0) < 2 and abs(z0) < 5", path=path)
26 ma.fillParticleList('gamma:GoodPi0ForHLT', '[clusterReg == 1 and E > 0.02250] or \
27 [clusterReg == 2 and E > 0.020] or \
28 [clusterReg == 3 and E > 0.020]',
29 writeOut=True, path=path)
30 ma.reconstructDecay('pi0:GoodPi0ForHLT -> gamma:GoodPi0ForHLT gamma:GoodPi0ForHLT', '0.105 < M < 0.150', 1, True, path)
31 ma.matchMCTruth('pi0:GoodPi0ForHLT', path)
32
33 # D0 lists
34 ma.reconstructDecay(decayString='D0:KpiForHLT -> K-:GoodTrackForHLT pi+:GoodTrackForHLT', cut='1.7 < M < 2.0', path=path)
35 ma.reconstructDecay(
36 decayString='D0:Kpipi0ForHLT -> K-:GoodTrackForHLT pi+:GoodTrackForHLT pi0:GoodPi0ForHLT',
37 cut='1.7 < M < 2.0',
38 path=path)
39 ma.reconstructDecay(
40 decayString='D0:KpipipiForHLT -> K-:GoodTrackForHLT pi+:GoodTrackForHLT pi+:GoodTrackForHLT pi-:GoodTrackForHLT',
41 cut='1.7 < M < 2.0',
42 path=path)
43 # D+ list
44 ma.reconstructDecay(
45 decayString='D+:KpipiForHLT -> K-:GoodTrackForHLT pi+:GoodTrackForHLT pi+:GoodTrackForHLT',
46 cut='1.8 < M < 1.9',
47 path=path)
48
49 # D*+ lists
50 ma.reconstructDecay(
51 decayString='D*+:D0_KpiForHLT -> D0:KpiForHLT pi+:GoodTrackForHLT',
52 cut='massDifference(0) < 0.16',
53 path=path)
54 ma.reconstructDecay(
55 decayString='D*+:D0_Kpipi0ForHLT -> D0:Kpipi0ForHLT pi+:GoodTrackForHLT',
56 cut='massDifference(0) < 0.16',
57 path=path)
58 ma.reconstructDecay(
59 decayString='D*+:D0_KpipipiForHLT -> D0:KpipipiForHLT pi+:GoodTrackForHLT',
60 cut='massDifference(0) < 0.16',
61 path=path)
62
63 # B+ lists
64 ma.reconstructDecay("B+:BtoD0pi_KpiForHLT -> anti-D0:KpiForHLT pi+:GoodTrackForHLT",
65 "Mbc > 5.15 and abs(deltaE) < 0.5", path=path)
66 BplusList.append("B+:BtoD0pi_KpiForHLT")
67 ma.reconstructDecay("B+:BtoD0pi_Kpipi0ForHLT -> anti-D0:Kpipi0ForHLT pi+:GoodTrackForHLT",
68 "Mbc > 5.15 and abs(deltaE) < 0.3", path=path)
69 BplusList.append("B+:BtoD0pi_Kpipi0ForHLT")
70 ma.reconstructDecay("B+:BtoD0pi_KpipipiForHLT -> anti-D0:KpipipiForHLT pi+:GoodTrackForHLT",
71 "Mbc > 5.15 and abs(deltaE) < 0.3", path=path)
72 BplusList.append("B+:BtoD0pi_KpipipiForHLT")
73
74 # B0 lists
75 ma.reconstructDecay("B0:B0toDpi_KpipiForHLT -> D-:KpipiForHLT pi+:GoodTrackForHLT",
76 "5.15 < Mbc and abs(deltaE) < 0.3", path=path)
77 BzeroList.append("B0:B0toDpi_KpipiForHLT")
78 ma.reconstructDecay("B0:B0toDstarPi_D0pi_KpiForHLT -> D*-:D0_KpiForHLT pi+:GoodTrackForHLT",
79 "5.15 < Mbc and abs(deltaE) < 0.3", path=path)
80 BzeroList.append("B0:B0toDstarPi_D0pi_KpiForHLT")
81 ma.reconstructDecay("B0:B0toDstarPi_D0pi_KpipipiForHLT -> D*-:D0_KpipipiForHLT pi+:GoodTrackForHLT",
82 "5.15 < Mbc and abs(deltaE) < 0.3", path=path)
83 BzeroList.append("B0:B0toDstarPi_D0pi_KpipipiForHLT")
84 ma.reconstructDecay("B0:B0toDstarPi_D0pi_Kpipi0ForHLT -> D*-:D0_Kpipi0ForHLT pi+:GoodTrackForHLT",
85 "5.15 < Mbc and abs(deltaE) < 0.3", path=path)
86 BzeroList.append("B0:B0toDstarPi_D0pi_Kpipi0ForHLT")
87
88 ma.copyLists("B+:BtoCharmForHLT", BplusList, path=path)
89 ma.copyLists("B0:BtoCharmForHLT", BzeroList, path=path)