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