13 Skim list building functions for :math:`B\\to X_u +h` analyses
16 import modularAnalysis
as ma
17 from skim
import BaseSkim, fancy_skim_header
18 from stdV0s
import stdKshorts
19 from skim.standardlists.charmless
import (
20 loadStdVeryLooseTracks,
21 loadStdPi0ForBToCharmless,
22 loadStdVeryLooseKstar0,
24 loadStdVeryLooseKstarPlus,
25 loadStdVeryLooseKstarPlusPi0,
26 loadStdVeryLooseRhoPlus)
29 __liaison__ =
"Benedikt Wach <benedikt.wach@desy.de>"
30 _VALIDATION_SAMPLE =
"mdst14.root"
36 Reconstructed decay modes:
38 * :math:`B^{0}\\to \\pi^0 \\pi^0`
42 * ``5.20 < Mbc < 5.29``
43 * ``abs(deltaE) < 0.5``
46 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Francis Pham",
"Benedikt Wach"]
47 __description__ =
"Skim list definitions for neutral B to two neutral pions."
48 __contact__ = __liaison__
49 __category__ =
"physics, hadronic B to charmless"
51 ApplyHLTHadronCut =
False
52 NoisyModules = [
"ParticleLoader",
"RootOutput"]
55 loadStdPi0ForBToCharmless(path=path)
58 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
60 ma.reconstructDecay(
'B0:Pi0Pi0 -> pi0:charmlessFit pi0:charmlessFit', Bcuts, path=path)
61 BsigList.append(
'B0:Pi0Pi0')
68 Reconstructed decay modes:
70 * :math:`B^{0}\\to \\pi^+ \\pi^-`
71 * :math:`B^{0}\\to \\K^+ \\pi^-`
72 * :math:`B^{0}\\to \\K^+ K^-`
73 * :math:`B^{+}\\to \\pi^+ \\pi^+ \\pi^-`
74 * :math:`B^{+}\\to K_{\\rm S}^0 \\pi^+`
75 * :math:`B^{+}\\to K_{\\rm S}^0 K^+`
76 * :math:`B^{+}\\to K^+ \\pi^+ \\pi^-`
77 * :math:`B^{+}\\to K^+ K^+ \\pi^-`
78 * :math:`B^{+}\\to K^+ K^- \\pi^+`
79 * :math:`B^{+}\\to K^+ K^+ K^-`
80 * :math:`B^{0}\\to \\pi^+ \\pi^- \\pi^+ \\pi^-`
81 * :math:`B^{0}\\to -> K^+ \\pi^- \\pi^+ \\pi^-`
82 * :math:`B^{0}\\to -> K^+ K^- \\pi^+ \\pi^-`
83 * :math:`B^{0}\\to -> K^+ \\pi^- K^+ \\pi^-`
84 * :math:`B^{0}\\to -> K^+ K^- K^+ \\pi^-`
85 * :math:`B^{0}\\to -> K^+ K^- K^+ K^-`
86 * :math:`B^{0}\\to -> K_{\\rm S}^0 \\pi^+ \\pi^-`
87 * :math:`B^{0}\\to -> K_{\\rm S}^0 K^+ \\pi^-`
88 * :math:`B^{0}\\to -> K_{\\rm S}^0 K^+ K^-`
89 * :math:`B^{0}\\to -> K_{\\rm S}^0 K_{\\rm S}^0`
90 * :math:`B^{0}\\to -> K^{*0} K^- K^+`
91 * :math:`B^{0}\\to -> K^{*0} \\pi^- \\pi^+`
92 * :math:`B^{0}\\to -> K^{*0} K^+ \\pi^-`
93 * :math:`B^{0}\\to -> \\rho^0 \\rho^0`
94 * :math:`B^{+}\\to -> K^{*+} K^- K^+`
95 * :math:`B^{+}\\to -> K^{*+} \\pi^- \\pi^+`
96 * :math:`B^{+}\\to -> K^{*+} K^+ \\pi^-`
100 * ``nTracks >= 2 (event level)``
101 * ``5.20 < Mbc < 5.29``
102 * ``abs(deltaE) < 0.3``
105 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
106 __description__ =
"Skim list definitions for all B to charmless modes with tracks only in the final state."
107 __contact__ = __liaison__
108 __category__ =
"physics, hadronic B to charmless"
110 ApplyHLTHadronCut =
True
111 NoisyModules = [
"ParticleLoader",
"RootOutput"]
114 loadStdVeryLooseTracks(
'K', path=path)
115 loadStdVeryLooseTracks(
'pi', path=path)
116 stdKshorts(path=path)
117 loadStdVeryLooseKstar0(path=path)
118 loadStdVeryLooseRho0(path=path)
119 loadStdVeryLooseKstarPlus(path=path)
122 Bcuts =
"5.2 < Mbc < 5.29 and abs(deltaE) < 0.3"
124 channels = {
'B0:Charmless_b2pipi':
'pi+:SkimVeryLoose pi-:SkimVeryLoose',
125 'B0:Charmless_b2Kpi':
'K+:SkimVeryLoose pi-:SkimVeryLoose',
126 'B0:Charmless_b2KK':
'K+:SkimVeryLoose K-:SkimVeryLoose',
127 'B+:Charmless_b2pipipi':
'pi+:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
128 'B+:Charmless_b2Kspi':
'K_S0:merged pi+:SkimVeryLoose',
129 'B+:Charmless_b2KsK':
'K_S0:merged K+:SkimVeryLoose',
130 'B+:Charmless_b2Kpipi':
'K+:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose ',
131 'B+:Charmless_b2KKpi_0':
'K+:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
132 'B+:Charmless_b2KKpi_1':
'K+:SkimVeryLoose K-:SkimVeryLoose pi+:SkimVeryLoose',
133 'B+:Charmless_b2KKK':
'K+:SkimVeryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
134 'B0:Charmless_b2pipipipi':
'pi+:SkimVeryLoose pi-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
135 'B0:Charmless_b2Kpipipi':
'K+:SkimVeryLoose pi-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
136 'B0:Charmless_b2KKpipi':
'K+:SkimVeryLoose K-:SkimVeryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
137 'B0:Charmless_b2KpiKpi':
'K+:SkimVeryLoose pi-:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
138 'B0:Charmless_b2KKKpi':
'K+:SkimVeryLoose K-:SkimVeryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
139 'B0:Charmless_b2KKKK':
'K+:SkimVeryLoose K-:SkimVeryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
140 'B0:Charmless_b2Kspipi':
'K_S0:merged pi+:SkimVeryLoose pi-:SkimVeryLoose',
141 'B0:Charmless_b2KsKpi':
'K_S0:merged K+:SkimVeryLoose pi-:SkimVeryLoose',
142 'B0:Charmless_b2KsKK':
'K_S0:merged K+:SkimVeryLoose K-:SkimVeryLoose',
143 'B0:Charmless_b2KsKs':
'K_S0:merged K_S0:merged',
144 'B0:Charmless_b2K*KK':
'K*0:veryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
145 'B0:Charmless_b2K*pipi':
'K*0:veryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
146 'B0:Charmless_b2K*Kpi':
'K*0:veryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
147 'B0:Charmless_b2rhorho':
'rho0:veryLoose rho0:veryLoose',
148 'B+:Charmless_b2K*pKK':
'K*+:veryLoose K+:SkimVeryLoose K-:SkimVeryLoose',
149 'B+:Charmless_b2K*ppipi':
'K*+:veryLoose pi+:SkimVeryLoose pi-:SkimVeryLoose',
150 'B+:Charmless_b2K*pKpi':
'K*+:veryLoose K+:SkimVeryLoose pi-:SkimVeryLoose',
154 for chID, channel
in enumerate(channels.keys()):
155 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
156 cut=Bcuts, dmID=chID, path=path)
157 BsigList.append(channel)
165 Reconstructed decay modes:
167 * :math:`B^+\\to \\pi^+ \\pi^0`
168 * :math:`B^+\\to K^+ \\pi^0`
169 * :math:`B^0\\to \\pi^+ \\pi^- \\pi^0`
170 * :math:`B^0\\to K^+ \\pi^- \\pi^0`
171 * :math:`B^0\\to K^- \\pi^+ \\pi^0`
172 * :math:`B^0\\to K^+ K^- \\pi^0`
173 * :math:`B^0\\to K_{\\rm S}^0 \\pi^0`
174 * :math:`B^+\\to K_{\\rm S}^{0} \\pi^+ \\pi^0`
175 * :math:`B^+\\to K_{\\rm S}^{0} K^+ \\pi^0`
176 * :math:`B^+\\to \\rho^{+} \\rho^{0}`
180 * ``5.20 < Mbc < 5.29``
181 * ``abs(deltaE) < 0.5``
184 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
185 __description__ =
"Skim list for B to charmless modes including 1 pi0 in the final state."
186 __contact__ = __liaison__
187 __category__ =
"physics, hadronic B to charmless"
189 ApplyHLTHadronCut =
True
190 NoisyModules = [
"ParticleLoader",
"RootOutput"]
193 loadStdVeryLooseTracks(
'K', path=path)
194 loadStdVeryLooseTracks(
'pi', path=path)
195 loadStdPi0ForBToCharmless(path=path)
196 stdKshorts(path=path)
197 loadStdVeryLooseRho0(path=path)
198 loadStdVeryLooseRhoPlus(path=path)
201 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
204 'B+:Charmless_b2pipi0':
'pi+:SkimVeryLoose pi0:charmlessFit',
205 'B+:Charmless_b2Kpi0':
'K+:SkimVeryLoose pi0:charmlessFit',
206 'B0:Charmless_b2pipipi0':
'pi+:SkimVeryLoose pi-:SkimVeryLoose pi0:charmlessFit',
207 'B0:Charmless_b2Kpipi0_0':
'K+:SkimVeryLoose pi-:SkimVeryLoose pi0:charmlessFit',
208 'B0:Charmless_b2KKpi0':
'K+:SkimVeryLoose K-:SkimVeryLoose pi0:charmlessFit',
209 'B0:Charmless_b2Kspi0':
'K_S0:merged pi0:charmlessFit',
210 'B+:Charmless_b2Kspipi0':
'K_S0:merged pi+:SkimVeryLoose pi0:charmlessFit',
211 'B+:Charmless_b2KsKpi0':
'K_S0:merged K+:SkimVeryLoose pi0:charmlessFit',
212 'B+:Charmless_b2rhorho0':
'rho+:veryLoose rho0:veryLoose',
215 for chID, channel
in enumerate(channels.keys()):
216 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
217 cut=Bcuts, dmID=chID, path=path)
218 BsigList.append(channel)
225 Reconstructed decay modes:
227 * :math:`B^+\\to K^{*+} K^+ K^-`
228 * :math:`B^+\\to K^{*+} K^+ \\pi^-`
229 * :math:`B^+\\to K^{*+} \\pi^+ \\pi^-`
233 * ``5.20 < Mbc < 5.29``
234 * ``abs(deltaE) < 0.5``
237 __authors__ = [
"Fernando Abudinen",
"Riccardo Manfredi",
"Sebastiano Raiz",
"Benedikt Wach"]
238 __description__ =
"Skim list for all charged B to charmless modes with 3 tracks and 1 Pi0."
239 __contact__ = __liaison__
240 __category__ =
"physics, hadronic B to charmless"
242 ApplyHLTHadronCut =
True
243 NoisyModules = [
"ParticleLoader",
"RootOutput"]
246 loadStdVeryLooseTracks(
'K', path=path)
247 loadStdVeryLooseTracks(
'pi', path=path)
248 loadStdPi0ForBToCharmless(path=path)
249 loadStdVeryLooseKstarPlusPi0(path=path)
252 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
256 'B+:Charmless_b2K*KK_2':
'K*+:veryLoosePi0 K-:SkimVeryLoose K+:SkimVeryLoose',
257 'B+:Charmless_b2K*pipi_2':
'K*+:veryLoosePi0 pi-:SkimVeryLoose pi+:SkimVeryLoose',
258 'B+:Charmless_b2K*Kpi_2':
'K*+:veryLoosePi0 K+:SkimVeryLoose pi-:SkimVeryLoose',
260 for chID, channel
in enumerate(channels.keys()):
261 ma.reconstructDecay(decayString=channel +
' -> ' + channels[channel],
262 cut=Bcuts, dmID=chID, path=path)
263 ma.rankByHighest(particleList=channel, variable=
"cos(mdstIndex)", numBest=3,
264 outputVariable=
"cosMdstIndex_rank", path=path)
265 BsigList.append(channel)
273 Reconstructed decay modes:
275 * :math:`B^+ \\to \\rho^{+} \\rho^{-}`
279 * ``5.20 < Mbc < 5.29``
280 * ``abs(deltaE) < 0.5``
283 __authors__ = [
"Yu Nakazawa",
"Benedikt Wach"]
284 __description__ =
"Skim list for B to rho+ rho-."
285 __contact__ = __liaison__
286 __category__ =
"physics, hadronic B to charmless"
288 ApplyHLTHadronCut =
True
289 NoisyModules = [
"ParticleLoader",
"RootOutput"]
292 loadStdVeryLooseTracks(
'pi', path=path)
293 loadStdPi0ForBToCharmless(path=path)
294 loadStdVeryLooseRhoPlus(path=path)
297 Bcuts =
'5.20 < Mbc < 5.29 and abs(deltaE) < 0.5'
299 ma.reconstructDecay(
'B0:Charmless_b2rr -> rho+:veryLoose rho-:veryLoose', Bcuts, path=path)
300 BsigList.append(
'B0:Charmless_b2rr')
def build_lists(self, path)
def load_standard_lists(self, path)
def build_lists(self, path)
def load_standard_lists(self, path)
def build_lists(self, path)
def load_standard_lists(self, path)
def build_lists(self, path)
def load_standard_lists(self, path)
def build_lists(self, path)
def load_standard_lists(self, path)
def skim_event_cuts(self, cut, *path)