5 Skim list building functions for :math:`B\\to X_u +h` analyses
9 "Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"
12 import modularAnalysis
as ma
13 from skimExpertFunctions
import BaseSkim, fancy_skim_header
14 from stdV0s
import stdKshorts
15 from skim.standardlists.charmless
import (
16 loadStdVeryLooseTracks,
17 loadStdPi0ForBToCharmless,
18 loadStdVeryLooseKstar0,
20 loadStdVeryLooseKstarPlus,
21 loadStdVeryLooseKstarPlusPi0,
22 loadStdVeryLooseRhoPlus)
25 __liaison__ =
"Benedikt Wach <benedikt.wach@desy.de>"
31 Reconstructed decay modes:
33 * :math:'B^{0}\\to \\pi^0 \\pi^0'
37 * ``5.20 < Mbc < 5.29``
38 * ``abs(deltaE) < 0.5``
41 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Francis Pham",
"Benedikt Wach"]
42 __description__ =
"Skim list definitions for neutral B to two neutral pions."
43 __contact__ = __liaison__
44 __category__ =
"physics, hadronic B to charmless"
46 ApplyHLTHadronCut =
False
47 NoisyModules = [
"ParticleLoader",
"RootOutput"]
50 loadStdPi0ForBToCharmless(path=path)
53 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
55 ma.reconstructDecay(
'B0:Pi0Pi0 -> pi0:charmlessFit pi0:charmlessFit', Bcuts, path=path)
56 BsigList.append(
'B0:Pi0Pi0')
63 Reconstructed decay modes:
65 * :math:'B^{0}\\to \\pi^+ \\pi^-'
66 * :math:'B^{0}\\to \\K^+ \\pi^-'
67 * :math:'B^{0}\\to \\K^+ K^-'
68 * :math:'B^{+}\\to \\pi^+ \\pi^+ \\pi^-'
69 * :math:'B^{+}\\to K_{\\rm S}^0 \\pi^+'
70 * :math:'B^{+}\\to K_{\\rm S}^0 K^+'
71 * :math:'B^{+}\\to K^+ \\pi^+ \\pi^-'
72 * :math:'B^{+}\\to K^+ K^+ \\pi^-'
73 * :math:'B^{+}\\to K^+ K^- \\pi^+'
74 * :math:'B^{+}\\to K^+ K^+ K^-'
75 * :math:'B^{0}\\to \\pi^+ \\pi^- \\pi^+ \\pi^-'
76 * :math:'B^{0}\\to -> K^+ \\pi^- \\pi^+ \\pi^-'
77 * :math:'B^{0}\\to -> K^+ K^- \\pi^+ \\pi^-'
78 * :math:'B^{0}\\to -> K^+ \\pi^- K^+ \\pi^-'
79 * :math:'B^{0}\\to -> K^+ K^- K^+ \\pi^-'
80 * :math:'B^{0}\\to -> K^+ K^- K^+ K^-'
81 * :math:'B^{0}\\to -> K_{\\rm S}^0 \\pi^+ \\pi^-'
82 * :math:'B^{0}\\to -> K_{\\rm S}^0 K^+ \\pi^-'
83 * :math:'B^{0}\\to -> K_{\\rm S}^0 K^+ K^-'
84 * :math:'B^{0}\\to -> K_{\\rm S}^0 K_{\\rm S}^0'
85 * :math:'B^{0}\\to -> K^{*0} K^- K^+'
86 * :math:'B^{0}\\to -> K^{*0} \\pi^- \\pi^+'
87 * :math:'B^{0}\\to -> K^{*0} K^+ \\pi^-'
88 * :math:'B^{0}\\to -> \\rho^0 \\rho^0'
89 * :math:'B^{+}\\to -> K^{*+} K^- K^+'
90 * :math:'B^{+}\\to -> K^{*+} \\pi^- \\pi^+'
91 * :math:'B^{+}\\to -> K^{*+} K^+ \\pi^-'
95 * ``nTracks >= 2 (event level)``
96 * ``5.20 < Mbc < 5.29``
97 * ``abs(deltaE) < 0.3``
100 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
101 __description__ =
"Skim list definitions for all B to charmless modes with tracks only in the final state."
102 __contact__ = __liaison__
103 __category__ =
"physics, hadronic B to charmless"
105 ApplyHLTHadronCut =
True
106 NoisyModules = [
"ParticleLoader",
"RootOutput"]
109 loadStdVeryLooseTracks(
'K', path=path)
110 loadStdVeryLooseTracks(
'pi', path=path)
111 stdKshorts(path=path)
112 loadStdVeryLooseKstar0(path=path)
113 loadStdVeryLooseRho0(path=path)
114 loadStdVeryLooseKstarPlus(path=path)
117 Bcuts =
"5.2 < Mbc < 5.29 and abs(deltaE) < 0.3"
119 channels = {
'B0:Charmless_b2pipi':
'pi+:SkimVeryLoose pi-:SkimVeryLoose',
120 'B0:Charmless_b2Kpi':
'K+:SkimVeryLoose pi-:SkimVeryLoose',
121 'B0:Charmless_b2KK':
'K+:SkimVeryLoose K-:SkimVeryLoose',
122 'B+:Charmless_b2pipipi':
'pi+:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
123 'B+:Charmless_b2Kspi':
'K_S0:merged pi+:SkimVeryLoose',
124 'B+:Charmless_b2KsK':
'K_S0:merged K+:SkimVeryLoose',
125 'B+:Charmless_b2Kpipi':
'K+:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose ',
126 'B+:Charmless_b2KKpi_0':
'K+:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
127 'B+:Charmless_b2KKpi_1':
'K+:SkimVeryLoose K-:SkimVeryLoose pi+:SkimVeryLoose',
128 'B+:Charmless_b2KKK':
'K+:SkimVeryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
129 'B0:Charmless_b2pipipipi':
'pi+:SkimVeryLoose pi-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
130 'B0:Charmless_b2Kpipipi':
'K+:SkimVeryLoose pi-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
131 'B0:Charmless_b2KKpipi':
'K+:SkimVeryLoose K-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
132 'B0:Charmless_b2KpiKpi':
'K+:SkimVeryLoose pi-:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
133 'B0:Charmless_b2KKKpi':
'K+:SkimVeryLoose K-:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
134 'B0:Charmless_b2KKKK':
'K+:SkimVeryLoose K-:SkimVeryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
135 'B0:Charmless_b2Kspipi':
'K_S0:merged pi+:SkimVeryLoose pi-:SkimVeryLoose',
136 'B0:Charmless_b2KsKpi':
'K_S0:merged K+:SkimVeryLoose pi-:SkimVeryLoose',
137 'B0:Charmless_b2KsKK':
'K_S0:merged K+:SkimVeryLoose K-:SkimVeryLoose',
138 'B0:Charmless_b2KsKs':
'K_S0:merged K_S0:merged',
139 'B0:Charmless_b2K*KK':
'K*0:veryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
140 'B0:Charmless_b2K*pipi':
'K*0:veryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
141 'B0:Charmless_b2K*Kpi':
'K*0:veryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
142 'B0:Charmless_b2rhorho':
'rho0:veryLoose rho0:veryLoose',
143 'B+:Charmless_b2K*pKK':
'K*+:veryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
144 'B+:Charmless_b2K*ppipi':
'K*+:veryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
145 'B+:Charmless_b2K*pKpi':
'K*+:veryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
149 for chID, channel
in enumerate(channels.keys()):
150 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
151 cut=Bcuts, dmID=chID, path=path)
152 BsigList.append(channel)
160 Reconstructed decay modes:
162 * :math:'B^+\\to \\pi^+ \\pi^0'
163 * :math:'B^+\\to K^+ \\pi^0'
164 * :math:'B^0\\to \\pi^+ \\pi^- \\pi^0'
165 * :math:'B^0\\to K^+ \\pi^- \\pi^0'
166 * :math:'B^0\\to K^- \\pi^+ \\pi^0'
167 * :math:'B^0\\to K^+ K^- \\pi^0'
168 * :math:'B^0\\to K_{\\rm S}^0 \\pi^0'
169 * :math:'B^+\\to K_{\\rm S}^{0} \\pi^+ \\pi^0'
170 * :math:'B^+\\to K_{\\rm S}^{0} K^+ \\pi^0'
171 * :math:'B^+\\to \\rho^{+} \\rho^{0}'
175 * ``5.20 < Mbc < 5.29``
176 * ``abs(deltaE) < 0.5``
179 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
180 __description__ =
"Skim list for B to charmless modes including 1 pi0 in the final state."
181 __contact__ = __liaison__
182 __category__ =
"physics, hadronic B to charmless"
184 ApplyHLTHadronCut =
True
185 NoisyModules = [
"ParticleLoader",
"RootOutput"]
188 loadStdVeryLooseTracks(
'K', path=path)
189 loadStdVeryLooseTracks(
'pi', path=path)
190 loadStdPi0ForBToCharmless(path=path)
191 stdKshorts(path=path)
192 loadStdVeryLooseRho0(path=path)
193 loadStdVeryLooseRhoPlus(path=path)
196 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
199 'B+:Charmless_b2pipi0':
'pi+:SkimVeryLoose pi0:charmlessFit',
200 'B+:Charmless_b2Kpi0':
'K+:SkimVeryLoose pi0:charmlessFit',
201 'B0:Charmless_b2pipipi0':
'pi+:SkimVeryLoose pi-:SkimVeryLoose pi0:charmlessFit',
202 'B0:Charmless_b2Kpipi0_0':
'K+:SkimVeryLoose pi-:SkimVeryLoose pi0:charmlessFit',
203 'B0:Charmless_b2KKpi0':
'K+:SkimVeryLoose K-:SkimVeryLoose pi0:charmlessFit',
204 'B0:Charmless_b2Kspi0':
'K_S0:merged pi0:charmlessFit',
205 'B+:Charmless_b2Kspipi0':
'K_S0:merged pi+:SkimVeryLoose pi0:charmlessFit',
206 'B+:Charmless_b2KsKpi0':
'K_S0:merged K+:SkimVeryLoose pi0:charmlessFit',
207 'B+:Charmless_b2rhorho0':
'rho+:veryLoose rho0:veryLoose',
210 for chID, channel
in enumerate(channels.keys()):
211 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
212 cut=Bcuts, dmID=chID, path=path)
213 BsigList.append(channel)
220 Reconstructed decay modes:
222 * :math:'B^+\\to K^{*+} K^+ K^-'
223 * :math:'B^+\\to K^{*+} K^+ \\pi^-'
224 * :math:'B^+\\to K^{*+} \\pi^+ \\pi^-'
228 * ``5.20 < Mbc < 5.29``
229 * ``abs(deltaE) < 0.5``
232 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
233 __description__ =
"Skim list for all charged B to charmless modes with 3 tracks and 1 Pi0."
234 __contact__ = __liaison__
235 __category__ =
"physics, hadronic B to charmless"
237 ApplyHLTHadronCut =
True
238 NoisyModules = [
"ParticleLoader",
"RootOutput"]
241 loadStdVeryLooseTracks(
'K', path=path)
242 loadStdVeryLooseTracks(
'pi', path=path)
243 loadStdPi0ForBToCharmless(path=path)
244 loadStdVeryLooseKstarPlusPi0(path=path)
247 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
251 'B+:Charmless_b2K*KK_2':
'K*+:veryLoosePi0 K-:SkimVeryLoose K+:SkimVeryLoose',
252 'B+:Charmless_b2K*pipi_2':
'K*+:veryLoosePi0 pi-:SkimVeryLoose pi+:SkimVeryLoose',
253 'B+:Charmless_b2K*Kpi_2':
'K*+:veryLoosePi0 K+:SkimVeryLoose pi-:SkimVeryLoose',
255 for chID, channel
in enumerate(channels.keys()):
256 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
257 cut=Bcuts, dmID=chID, path=path)
258 ma.rankByHighest(particleList=channel, variable=
"cos(mdstIndex)", numBest=3,
259 outputVariable=
"cosMdstIndex_rank", path=path)
260 BsigList.append(channel)
268 Reconstructed decay modes:
270 * :math:'B^+ \\to \\rho^{+} \\rho^{-}'
274 * ``5.20 < Mbc < 5.29``
275 * ``abs(deltaE) < 0.5``
278 __authors__ = [
"Yu Nakazawa",
"Benedikt Wach"]
279 __description__ =
"Skim list for B to rho+ rho-."
280 __contact__ = __liaison__
281 __category__ =
"physics, hadronic B to charmless"
283 ApplyHLTHadronCut =
True
284 NoisyModules = [
"ParticleLoader",
"RootOutput"]
287 loadStdVeryLooseTracks(
'pi', path=path)
288 loadStdPi0ForBToCharmless(path=path)
289 loadStdVeryLooseRhoPlus(path=path)
292 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
294 ma.reconstructDecay(
'B0:Charmless_b2rr -> rho+:veryLoose rho-:veryLoose', Bcuts, path=path)
295 BsigList.append(
'B0:Charmless_b2rr')